Display-o-tron RGB BREAKOUT doesn't work


Hi, i recently bought a Display-o-tron RGB BREAKOUT. I installed the python driver and all the dependencies by launching:

curl https://get.pimoroni.com/displayotron | bash

as stated in the tutorial here

then I wired it up following the wiring scheme suggested in the same page (even tried to switch to 3v3, i am that desperate). The backlight goes on and i can correctly switch the three different leds on and off for that matters. Here comes the pain: any other function doesn’t work: changing contrast, writing text, moving the cursor: they don’t show a visible outcome on the screen. I am using a script as simple as:

import dot3k.lcd as lcd 
lcd.write('HELLO WORLD!')


This is what i’m getting :(
I double (and triple) checked the wiring, spi is enabled and working, the MISO/MOSI test gives positive results.

I’ve tried every trivial solution (apart from connecting it via the 4bit bus and talking to it via wiringPi, but i really need to use this via SPI)

Is it faulty? Am i missing something so obvious i should be ashamed of?


Is this on a Pi 3 with Raspbian Stretch?
if so, then there maybe an issue with the SPI clock frequency. It may vary with CPU load.
You can fix this by making the GPU core frequency 250 MHz
Do this by adding the following line to /boot/config.txt:


and reboot.

Maybe a red herring, but worth a try


Even though i am on rpi2 jessie i tried it anyway with no results.
I could try to bypass the pimoroni header provided and communicate directly with the DOGM163x-A (using the 4 bits configuration just to exclude any spi related issue) but i think it should be the last resort :D (mainly because i’m stuck with a really small breadboard with not enough space for the 20+ pins of the screen)

I’m open to some other suggestions


It’s hard to tell from the picture, but I’d double-check the soldering between the display and the breakout board.

At 3.3v logic- ie from the Pi - it should be running from a 3.3v power supply.


I will review my soldering (i am not that skilled anyway so possibly some pins are not making contact perfectly) and post the result.

Apart from that: is it true that it should be running only in 3v3 if provided with a 3v3 logic? It is not stated anywhere. Good to know

[EDIT] it is made clear in the manufacturer datasheet which i didn’t read carefully :D



I was having the same problem as you are experiencing. I’m running Raspbian Stretch Lite on a RPi3 and driving the Display-o-Tron Breakout. After following the guide with the pin mapping provided and the software installed, I could drive the backlight but not the text importing the dot3k.lcd module.

But using the module dothat.lcd I can successfully drive the text and backlight(1)! And it works regardless if I have core_freq=250 in /boot/config.txt or not and using 3V3 or 5V.

I’m not sure why this is happening since I suppose the dot3k is intended to be used with the Breakout version, the one you and I have. Any ideas?

Edit 1: I’m not getting backlight to work properly, because I’m getting the following error with both modules and the core_freq=250 or not. I will update when I have it working.

File "/usr/lib/python3/dist-packages/sn3218.py", line 62, in enable_leds
[enable_mask & 0x3F, (enable_mask >> 6) & 0x3F, (enable_mask >> 12) & 0X3F])
OSError: [Errno 121] Remote I/O error

Edit 2 Solved: dothat.backlight still does not work for me, but the example scripts in the tutorial that use PWM to drive the backlight are working for me now


dothat.backlight wont work with the breakout, since it’s trying to talk to a driver chip that isn’t present on the breakout at all. The breakout simply uses 3 channels - R, G, B that must be PWMed by the Pi or an appropriate driver chip.

I think the problems outlined here lend weight to this GitHub issue/request: https://github.com/pimoroni/displayotron/issues/41

There needs to be a dotbreakout or similar namespace that’s intended for use with the breakout, since neither DotHAT nor Dot3K are quite suitable.


I agree, or at least it should be indicated in the tutorial. In the meantime, I’m happy to be able to use dothat for the text part :D