3Pi+ 2040 EA Addition OLED quit working

Hello, I assembled and tested the Early Adopters edition of the 3Pi+ 2040 and it all worked as described in the documentation. Today I loaded Thonny on my Mac to attempt to begin modifying some of the programs, and now the OLED stopped working. The buttons still allow me to select menu items from the supplied firmware, but I’m doing it blind. Is there a reset procedure?

I guess you could try re-installing the MicroPython image. The User’s Guide documents the process in the Upgrade instructions of this page: Pololu - 5.1. Updating the MicroPython firmware

Thanks Adam, I replaced the firmware as directed, but the screen remains dark. I tried it twice to be sure, but we’re still running blind. I also removed and reseated the OLED connection, but it didn’t help either. Batteries are fully charged as well. What else might you suggest?

Since it stopped working after you tried using Thonny, I thought that maybe it had corrupted something in FLASH but if you have tried replacing the firmware and it still doesn’t work then it doesn’t seem like that was the cause.

Hopefully someone else here on the forums can help. Have you tried contacting Pololu support?

Looks like you tried pretty much everything to get the OLED back to normal. Hopefully somebody from the pololu team will be kind enough to suggest a fruitful solution. @Claire

Hello, timalot.

Thank you for your 3pi+ early adopter purchase! I am sorry to hear you are having problems with your OLED display. Did you get the fully assembled version or the kit version of the 3pi+ 2040 robot? Could you post some pictures of your robot, including some close-up pictures of both sides of your OLED board?

You mentioned modifying some of the programs; are you sure you reloaded the 3pi+ with the default unmodified programs (in Thonny it can be easy to accidentally save to your computer and not actually upload it to the robot)? Also, did anything change between when the display was working and when it stopped (e.g. did you remove and install the display or change anything else with the hardware)?


Hi Brandon,
Thank you for looking into this. I purchased the kit and built it using the guide listed on your site. I added 4 of the Panasonic Eneloop AAA cells to test it. It worked fine using all of the demo programs loaded. I was able to step through the menus and verify basic functionality. I even modified the timing on the blink.py program using a text editor and dragging the file over to verify editability. I’d never used MicroPy before.

The next day, I loaded Thonny on my Macbook pro and began editing using microPy on the robot directly. I verified that the firmware was at the latest rev by looking at the string in the shell window which reads:

“MicroPython v1.19.1-902-gc9526d9d6 build 230303-535e305; with ulab 5.1.1-20-gf2dd223; Pololu 3pi+ 2040 Robot”

Thonny did ask me which source to use (local drive or MicroPy) before I’d added the plugin. The batteries were still installed and charged during all of this. The OLED screen was working for a few minutes, but stopped at one point during the programming. The motors also don’t seem to work either when tested by executing “spin.py” from Thonny directly. One thing that’s troubling is that the Mac complains about “unsafe eject of removable media” when restarting the robot from Thonny. This also occurs after reloadinf firmware in bootloader mode.

Here are the images: Imgur: The magic of the Internet

Thanks again for your help. I appreciate what Pololu does to come up with interesting things to make. I’ve built two of the Balboa robots and have them running BLE boards (one serial and one SPI) so I can drive them around from my phone. Good stuff!

Thank you for the additional information and pictures. It looks like your battery contacts and the VCC pin on your OLED display header could probably use a little bit more solder (although I am doubtful that either of those is causing of the problem, and battery power is not required to run the display). For the battery contacts, solder should ideally be wetted all the way around the pad and contact.

As far as the motors not working when running spin.py from Thonny, the motor power comes from the batteries, so could you make sure that the robot is powered on using the power button (i.e. not from just the USB) when you run the code? You might want to prop the robot up so its wheels aren’t touching the ground since the USB cable is connected.

Unfortunately, it still is not clear to me what could be the problem with the OLED display. I will email you directly to discuss setting up an RMA or sending you a replacement display.


Hi Brandon,
Thank you for the help. I took your suggestion and touched up all of my soldering to make it look real pretty ;). See the updated photos here.

I reloaded the firmware being careful to eject the drive from the mac whenever possible. Also, I powered up the robot before plugging in the USB cable and now the “spin.py” program works as intended.

I look forward to the RMA for a replacement screen. In the meantime, is there any way I can test this screen using an arduino? I have several other boards I can try. Is there documentation for the screen that you can point me to? Is it SPI or I2C?

Thanks again for the help.


The OLED display that comes with the 3pi+ 2040 robot is functionally the same as this one. It uses SPI, but please note that it is not 5V tolerant, so if you want to test it with a 5V Arduino, you will need to use level shifters or voltage dividers. If you want to try to test it, we generally recommend the U8g2 library for Arduino, using the U8g2 constructor U8G2_SH1106_128X64_NONAME_1_4W_SW_SPI as we mention on that product page.


Hello Brandon,
I see by the tracking number that the robot and screen were delivered yesterday. Hopefully your team can swap out components to see what is causing the issue with the OLED. Let us know what they find.
Thank you again for the help!

1 Like

The robot itself seems to be working fine and is fully functional again after replacing the display (I ran it through all of the example programs and our production test). There are no indications as to what caused your original display to fail, and this is not something we have seen before. You might have just been unlucky with something like an electrostatic zap.

We are sending your robot back to you today with a new display, and we will send you a confirmation email with tracking information when it ships. Please let me know if you have any further questions or concerns.


1 Like

Thanks Brandon,

I’ll keep an eye out for it.

1 Like