DIY Arduboy Kit

As Arduboy is a very simple platform, it would be interesting to make a DIY kit version for those who want to learn soldering (parents with children, soldering workshops, maker faires, etc.)

This kit would be made of 9 through-hole components:

  • 1 OLED screen 0.96" or 1.3" (depending on price)
  • 6 buttons 12x12 mm with white & red caps
  • 1 Pro Micro
  • 1 buzzer

As such, the DIY Arduboy Kit would have less features than the Arduboy (no battery and no case), but could be offered at a lower price point (19$ or 29$).

I have already made a first prototype with a 0.96" screen:

I have also made a mockup with a 1.3" screen and talked a little bit with @bateske so he can produce it:

What do you think?


The design of the Arduboy that will be delivered to Kickstarter backers hasn’t been finalised (or at least not published), so I can’t say for certain, but due to the I/O lines required by what’s been proposed so far, I’d consider making yours with an Arduino/Genuino MICRO instead of a Pro Micro. It would cost a bit more but would give you the extra I/O lines to make it easier to be 100% software compatible, or at least closer. You’d also get the reset switch built in, instead of needing to add one (which your above design doesn’t include).

Note that you don’t need a Start button. @bateske has said he won’t be including one. Also, based on current design proposals, you may wish to add an RGB LED and dropping resistors for it. It’s possible you may also need a resistor for the speaker.

1 Like

Thanks for the input @MLXXXp! This is exactly what I had in mind when making this topic.

I had in fact thought about the Genuino Micro. The problem is that its ICSP pins would need to be cut otherwise they would be protruding from the bottom of DIY Arduboy Kit. The nice thing if you solder the Pro Micro on the bottom of the board is that from the top side the pins are hidden by the screen. With the Genuino Micro, the additional pins would be visible from the top side which wouldn’t be very pretty.

I was also thinking about a way to auto-detect this DIY Arduboy Kit to account for the differences in hardware (Sh1106 screen, I/O lines). Maybe by doing an analog read on the floating D12 pin? Or with some fuses?

I already removed the Start button from the mockup.

An RGB LED is a nice idea, as it is cheap and people love playing with them. I am not so enthusiastic about adding 4 through-hole resistors. Maybe 4 SMD resistors could be already assembled? Or use with the RGB LED with a very low PWM?

Anyone assembling a kit would probably have or need a good pair of wire clippers, so cutting the ICSP pins shouldn’t be a problem. The header isn’t even available on a Pro Micro, so loosing it wouldn’t be a problem. Since you mention that one goal of the kit is for learning how to solder, optionally learning how to de-solder the header could also be offered in the instructions, for those wanting a bit more of a challenge.

Regardless of the “ugliness” of visible pins (a matter of opinion), I’d still rather use the Genuino Micro if it offers a better chance for full software compatibility. It would be a disappointment for some to discover that they can’t just load up a game and have it work without having to make some modifications to the code. Sketches could be written to work on both platforms but it may take extra effort, and developers would need to have both platforms available for proper testing. Besides, there are soldered pins visible on the display module, which look equally not very pretty (again, a matter of opinion).

[quote=“davidperrenoud, post:3, topic:313”]
An RGB LED is a nice idea, as it is cheap and people love playing with them.[/quote]

If the Kickstarter Arduboy includes an RGB LED, which is currently almost certain, then you should too, again for software compatibility. Some sketches may rely on it.

Not including dropping resistors and running a low PWM would mean software incompatibility. Also, running Kickstarter version code, or a programming error could cause high current to flow though an LED, possibly causing damage to it or the processor.

Maybe through-hole resistors could be placed on the bottom side, along side the Arduino board, with their leads hidden by the display.

Another thing to consider:
If you plan to use an inexpensive display module to keep costs down, it may not be 5V tolerant (many of those that claim to be 5V tolerant really aren’t), so you might need to add level shifting logic, either using discreet components or a module. The nice thing about using a Genuino Micro is that it can provide the 3.3V required by such displays and level shifters.

So, the Pro Micro is missing the following 8 pins: 11, 12, 13, A4, A5, AREF, SS and 3.3V.

The Pro Micro has 18 pins free. We need 5 (OLED) + 2 (speaker) + 6 (buttons) + 3 (RGB LED) = 16 pins. That leaves only RX/TX or SDA/SCL free, which is feasible but allows no expansion.

Another possibility would be to have an ATmega32u4 with a couple of SMD components on the top side: 4 resistors, 4 capacitors, 1 oscillator and 1 LED. This way, we can also pre-assemble the 4 resistors needed for the speaker and the RGB LED. This would allow total compatibility and we would have an empty bottom side for easy soldering. (We can even use UCAP to provide 55 mA at 3.3V, see table 29.2 in datasheet.)

I have seen your discussion about 5V on the Kickstarter version design topic. The good thing is that most of these breakout boards have a regulator on VDD and the input pins seem to have some beefy protection diodes.

I have seen that on breakout boards from Adafruit and TinySine they use diodes for CS, RST and DC and they use a BSS138 transistor with 2 pull-up resistors just like your Sparkfun module. Couldn’t they use just diodes?

Here is a mockup of what it would look like with a 0.96" screen, 5 mm RGB LED and ATmega32u4:

You can’t make a level shifter with just a diode. At least a resistor would also be required. Plus, you would have to use Schottky diodes to stay within spec. Even then it may be dangerous, depending on the voltage drop of the selected diode and how it’s used. The 0.7V drop of a regular diode could cause problems.

Although a diode/resistor combination would be possible for CS, RST and DC, it’s probably too slow for the high speed MOSI and SCLK signals, which is why the BSS138 circuit is used for them.

The display I used for my breadboarded unit claimed to be 5V tolerant. It has the on board 3.3V regulator for Vdd. However, for signal level shifting it just uses 100 ohm resistors in series, which is definitely not safe.

New mockup with an horizontal design and 0.96" screen:

I like how the buttons fall nicely into place on this one. What do you think?

1 Like

You said you had removed the Start button from your first mockup. What’s the grey button at top right for on this one? If it’s for Reset I wouldn’t make it so large and easy to accidentally push.

The big grey disk at the top is a buzzer (12x12x6 mm).

I did not put a reset button for the moment. If it is really needed, a small SMD reset switch can be put next to the Micro USB connector.

  • I prefer the horizontal design
  • I prefer the vertical design
  • I like chocolate

0 voters

1 Like

OK, that makes sense. I forgot about the buzzer.

The Kickstarter version will include one. It’s mainly for dealing with sketch download problems, so it doesn’t have to be large or accessible from the front. @bateske has indicated that you may need to use a bent paper clip or similar object to press the reset button on the Kickstarter version.

If the goal of the project, as stated to start this topic, is to help learn soldering skills and electronic kit construction, why are you proposing pre-installing so many components?

The processor itself is only available as SMD and rather difficult to solder in, so I can see having that pre-soldered. Also, finding a through-hole micro-USB connector may prove challenging, so you may wish to pre-install it, as well.

All other components are available in through-hole versions, so why not make them something that the user must solder in? Otherwise, you’re getting close to just a pre-assembled caseless, batteryless alternative to the Kickstarter Arduboy.

Hooray for chocolate!

Damn you @davidperrenoud. you make me choose between chocolate and horizontal

1 Like

Yes, that is a good criticism. It may indeed be more coherent to add 4 through-hole resistors for the RGB LED and speaker and use a Pro Micro or Genuino Micro (although there is really not much place for the later one on the horizontal design). It would not be practical to add a level shifter (2 transistors, 3 diodes and 7 through-hole resistors) but this could be easily corrected with a better designed OLED breakout board, like the one from TinySine.

This device will never be as thin, and thus as “pocketable”, as the Arduboy. Therefore, I wouldn’t think size would be as much of an issue. I’d still be striving for as close to 100% software compatibility as possible. As I’ve said, it adds complexity to make sketches compatible with multiple hardware platforms, so this may not be commonly implemented, especially if your device ends up to have a low overall quantity compared to the real Arduboy. In my opinion, increasing the size slightly to accommodate a Genuino Micro, if necessary, would be a good trade off for increased software compatibility.

You’re going to have to design your board for a specific OLED module, unless you get creative and lay the board out to accept multiple parts. You’ll have to trade off between cost, convenience, real estate, availability, etc., when deciding which OLED to use and where the level shifting is done.

Note that using a level shifting module, instead of discrete components, is still an option. Since the common ones only have 4 lines, you would need an additional diode and resistor for one of the signals (I’d use it for the reset line).

F.Y.I. Since the signals to the display using an SPI interface are unidirectional, you don’t need the resistor on the input side of a BSS138 transistor type level shifter.

Here is my “size” problem (Pro Micro or Genuino Micro on the bottom side):

Also, if I put the buzzer somewhere on the bottom side and remove the non-essential RGB LED, I can put some 0.1" prototyping holes around the screen. This way, if someone wants to add the RGB LED, a multiplayer cable or some other extension, he has some place to do it.

1 Like

So make the board a bit higher and wider. Move the A and B buttons down and the display up. Place the Genuino Micro just below the display connector and above the lower red button (I don’t know which is A or B), and between the Right D-pad button and the upper red button. Put the prototyping holes in whatever areas are left.

Otherwise, go with the vertical design. It’ll be closer to the Arduboy that way.

And here is the new version !

Does anyone know if the white silkscreen is broken because I put it too close to the bottom of the PCB or if it is because of the fab I used (Ragworm)?