I am making my own DIY Arduboy and I need info. Should I use a 6 pin oled screen? Or should I use the 4 pin version. Whats the difference. Does it even matter? Also, which board should I use? Arduino nano? Or Arduino pro micro? Whats the difference. Does it even matter?
You want a 6 pin OLED display, which has an SPI interface. A 4 pin display will have an I²C interface, which will require a custom version of the library and will be too slow for some games. You also want the make sure the display has an SSD1306 controller, not an SH1106 or other type, otherwise you will have to recompile or modify games to work with it.
The Arduino Nano is based on an ATmega328 microcontroller, not the ATmega32U4 that the Arduboy uses, so isn’t very suitable at all. If you use a Pro Micro, you will either end up with some missing functionality or need to use a custom version of the library because not all the required pins are brought out.
The ideal board would be one with an ATmega32U4 that brings out the required pins.
- An Arduino Leonardo will work but is quite large.
- An Arduino Micro brings out all the pins but the Tx and Rx LEDs have reversed polarity (on when they’re off on an Arduboy), so unless you recompile sketches for a Micro these LEDs may sometimes be on when they should be off.
- There are some Pro Micro “clones” that use the TQFP package version of the ATmega32U4 rather than the QFN package. If you’re adept at soldering small wires, you may be able to solder to the larger pins on this package to bring out the required ones.
- It’s possible that a 3rd party ATmega32U4 based board exists that brings out the required pins but it likely isn’t very common or it would have been frequently used by others.
4 pin will be i2c instead of SPI, i2c is slower so it can’t draw as fast as the production Arduboy. 6-7pin is a good bet as it’ll be an SPI interface, and will be much smoother. I say go with the pro micro, it has the same 32u4 microcontroller as production, whereas nano has a 328p, so there’s some timer and pwm differences at the very least. 32u4 will be more familiar/compatible if you’ve used Arduboy before.
Check these pages before deciding what to do, both could technically work, but I found it easier to use a pro micro and 7 pin screen (really 6 cuz I just connect chip select CS to ground):
Wow! Thanks you guys! But one thing…I can’t find a 6 pin oled anywhere on amazon. Keep in mine I’m in Canada too.
Okay, I found one in Walmart. The driver is SSD1306 so it’s good. I also have the board. I am using Arduino pro micro because it is meant for breadboard and small. I have the buttons and speakers and wires and breadboard and…well everything. It might take some time to deliver so you might not see me post for some time. When I get my stuff, can you guide me through the journey of DIY Arduboys? Thanks. But, I’m actually not really sure of the board too much. Is the pro micro good for this? Because I’ve seen literaly everyone on Youtube use a pro micro for this.
This one says it comes with either a SSD1306 or SH1106 controller. 0.96" displays are almost always a SSD1306 but you may wish to contact the seller to be sure.
This one says SSD1306 but is far more expensive.
I’ve always bought my displays from sellers on eBay, which tends to be cheaper than Amazon (but shipping times can be longer).
Thanks man. I dont know how you found this…but awesome!
I searched Amazon for “0.96 OLED SPI”
Like I said above, it will work but with some limitations.
If you want to load sketches compiled for an actual Arduboy:
- Pin 11 isn’t brought out. This is used by the green RGB LED so you can only get blue and red.
- Pin 13 isn’t brought out. This is used for speaker pin 2, so any sketches that generate sound using this pin may be missing some sounds or will output at lower volume.
You can use an alternative wiring to regain most functionality, but sketches will have to be compiled using modified libraries. @Mr.Blinky has done extensive work for this, as @poevoid posted above, which I’ll repeat:
Then why does everyone on Youtube use a pro micro?
Because it and clones of it are cheap, easy to get, and small and a good percentage of games compiled for the real Arduboy will run on it without any problems.
Not many sketches use the RGB LED. Many only use speaker pin 1 for sound. Many games are still playable without needing to see whatever they output to the RGB LED or hearing whatever is output to speaker pin 2.
Oh ok. But can I use an Arduino nano or uno instead? Also, what games will have problems?
Not easily. The ATmega328p microcontroller used by the Uno and Nano has some significant differences from the ATmega32U4 used by the Arduboy. The ATmega328p has only 2K of RAM instead of 2.5K. There are differences in the internal peripherals and their mapping in each of the two.
Because of this, you have to compile every sketch specifically for them using customised versions of the libraries, and because of the above mentioned differences, many sketches won’t compile or run properly at all.
Basically, using an ATmega328p makes it quite far from being an Arduboy. You’re far better off using a Pro Micro, given the choice.
Nice, 'cause I already bought em pro micros.
Also, out of nano and uno and pro micro, is the pro micro my best bet?
Did you read what I just wrote 7 minutes ago?
My components will not come until this Friday, to next Tuesday, then some days to sanitize them. So you wont see me post a lot anymore. Also, I found a wiring chart on YouTube by Print n Play. Also a software guide from him too. Are they both good tutorials?
The documentation in @Mr.Blinky’s homemade package GitHub repository, from the link given above, will provide the proper pin wiring. You can compare that to the tutorials if you wish.
@Mr.Blinky probably knows way more than this guy, so I’ll use his wiring. But, I don’t have the IDE. I use Chromeduino 2 because I have a Chromebook. Will I still be able to get the bootloader for it? Because I did ctrl and , on chromeduino but I never found an aditional board manager section. Even if I can’t get the bootloader, will the wiring still be correct? Also I dont understand the wiring sheet. I have a active and passive buzzer. Which do I use?
Do I use a passive buzzer or an active buzzer?