Sparkfun Pro Micro Homemade Issue

Greetings all,

This forum and community are awesome, and I was inspired to try to create a homemade Arduboy using Mr. Blinky’s homemade package. Having put everything together I can successfully compile and upload an example Arduboy2 sketch, but that’s where the problem starts. After the upload completes, it almost seems like the code doesn’t actually run: I get an all-white screen, no sound, and no changing colors on the RGB LED. Has anyone encountered this?

I will describe my parts/process:

  • Genuine Sparkfun Pro Micro @5 MHz
  • 1306 OLED display
  • 2 pin piezo speaker
  • 4 pin common anode RGB LED
  • regular clicky buttons

I have everything wired according to the “alternate wiring” Pro Micro pin description from Blinky’s github page, and I have double and triple checked all wiring and pins. I don’t have a flash cart hooked up at the moment.

Any ideas? I have tried the “double tap reset” as suggested by Sparkfun but with no change. Also reinstalled pro micro drivers!

Thanks everyone and kudos again to this great little community!

Finally, I am typing this on a phone so I apologize for sloppy formatting :slight_smile:

A Sparkfun Pro Micro ought to be running at 16MHz.

I2C or SPI?

Some pictures might be helpful.

Ah sorry, silly to mix up 5V/16MHz.

SPI for display.

I have also double checked the settings in Arduino IDE for the board, port, display, etc.

I am out of the house right now (but with the project on my mind) so I figured I’d make an initial post in case this was a “known” issue.

Thanks for the fast reply too! I’ll get a pic later for you.

1 Like

Since you’ve wired according to the “alternate wiring”, are you using @Mr.Blinky’s modified Arduboy2 library?

:flushed: …is there one of those?

The adjusted libraries are part of the Homemade package. Installing libraries manually will override the libraries of the Homemade package. @n64 did you install libraries manually?

as @Pharap said pictures would be helpful. They may show us something you might have forget to tell us.

then it receives some data otherwise it would stay black. I’m wondering if your 1306 display is actually an SH1106 which are often advertised as SSD1306 compatible. (but they are just partly compatible)

I would recommend to upload the hardwareTest from the Arduboy2 examples and try selecting SH1106 as display (also works for SSD1306 displays but the screen is shifted by 2 pixels) you can also test the piezo speaker and RGB LED with it.

1 Like

Thank you for the advice so far! I did not install any libraries other than yours, so I think I’m safe there. I will try hardware test later, when I can!

This is the screen I got:
HiLetgo 0.96" SPI Serial 128X64 OLED LCD Display SSD1306 for 51 STM32 Arduino Font Color White

It’s probably overpriced. I know you guys know where to get stuff cheap but it was very convenient at least :slight_smile:

More importantly it might highlight something @n64 has missed or isn’t aware of,
e.g. a subtle wiring mistake or a loose connection.

A little anecdote:
One of my programmable consoles once had a problem that turned out to just be a bit of excess solder causing a short.

That looks correct to me, but I still think it would be better to see pictures of the actual device.

It could turn out that they sent you the wrong screen by mistake,
or that the pins are actually ordered differently to how they’re displayed on the product listing,
or any number of other subtle problems.

There’s this place:

But I’ve never bought anything from them so I can’t vouch for the service,
and it’s possible that there’s some kind of catch that I’m not aware of.
(E.g. maybe they only sell wholesale? Maybe you have to pay import tax?)

As it’s a 0.96" display it’s most likely an SSD1306 display alright. you did get the 7 pin SPI version and not the 4 pin I2C one which is also in that offer, right?

Note that that’s just the OLED Display without the PCB.

1 Like

I knew I’d end up overlooking something.
I’m not really cut out for this electrical engineering stuff. :P

1 Like

And that’s why you’re so valuable to those who are, but can’t code for toffee.

1 Like

I am really opening myself up to ridicule here but I took some pics: it is a pretty sloppy project, I just wanted to do something quick and fun over the holidays!

You’ll notice some things:

1.) I made a couple “rails” for power and ground near the controls.

2.) there aren’t clicky buttons, rather I am fitting the whole thing into a controller shell with capacitive pads under the buttons.

3.) soldering not pro.

Any comments or harsh critiques accepted!

P.S. I tried the different display type that Blinky suggested but still no luck!

Thanks all!


And that’s the main thing. Love it. Reminds me of my failed attempt to smodge a DIY gamebuino together before going on holiday last year.

1 Like

Thanks for posting those images. Doesn’t look so bad.

The purple wires at the display look pretty close. There’s no short there? I’ll have a better look at the wiring tomorrow.

BTW the 10K pull-ups are not really neccessary as the buttons are pulled up by internal pullups of the atmega32u4


Thanks for taking a look you guys! The wires are quite close (I have since moved them away from each other) but I can confirm they were not touching as of this pic either!

Also, that’s good advice for the resistors…I learned “the way” to do Arduino buttons and have never thought to re-evaluate it :slight_smile:

If you’re getting an all white screen then most likely your MOSI line is pulled high and thus always sending a value of 0xFF which will display all white pixels. Your pro-micro is soldered to one side of the board and the display is soldered to the otherside with the back of the display chip hanging over the pins from the micro. There’s no picture showing between the display and the board so can’t tell, but if there’s no kapton tape between the two then it’s very likely to have a short or at least some noise leaching onto the MOSI line.

I have this exact display and can confirm that it works with a pro-micro as I too am building one, though I’m breadboarding it first. I ultimately switched to an itsybitsy 5v 32u4 though so that I didn’t have to recompile games and could maintain proper compatibility.

On trick I did was to temporarily connect an led to the MOSI line to see if it flickers at all (be sure to add an in-series resistor to it or you’ll blow out the LED). This comes in handy if you don’t have an oscilloscope handy.

One thing I’d recommend is to test everything on a breadboard before actually soldering everything together. This will make it a lot easier to make sure everything is wired correctly and working properly. Then from there you can transfer it to a protoboard like you’ve done here. Skipping that step is fine, but it makes it harder to test if the wires are going to the right pins and not shorted. If your breadboard test worked and your soldered one doesn’t then you know exactly what to look for.

1 Like

Thank you for the suggestions! I do normally breadboard things but this time I skipped that step, now to my own disadvantage.

Is there anything I can use to simulate that insulating tape temporarily to test for interference?

Here’s a shot of the gap between the screen and the board pins:

I don’t have time this morning but I can perform the LED test tonight!

Edit: @tuxinator2009 is the itsybitsy a preferable board? You mention maintaining compat, is that because that board doesn’t require custom firmware?

Actually it’s because the pro-micro doesn’t have all the pinouts. If you look at Mr.Blinky’s github page detailing the pinouts you’ll see there’s an alternate wiring for the pro-micro. Without the alternate wiring it’s not easy to use the flash cart mod and you loose the green led. The itsybitsy has all the pins needed broken out.

When we speak of compatibility we’re referring to games already compiled for the Arduboy not having to be re-compiled in order to function on a homebrew (some don’t provide source code for example). The pro-micro can be made into a fully functioning homemade arduboy, but it will not be compatible with pre-compiled hex files. You’ll have to locate their source and compile them yourself using Mr.Blinky’s homemade board utilities.

1 Like

The wiring to display looks okay to me. You could give a good scrape with a screw driver between the display pins though to make sure there’s nothing between the pins.

About the RGB LED not lighting up you’re sure it’s a common anode? If you have a multimeter, you could use the continuity test to check if the RGB LED lights up.

It does light up, but only “full on” (mostly white). Trying the “RGBled” example sketch does not cause it to change colors.

I wonder, maybe I should try to reburn the boot loader on the micro?