Selectable colour for the mono palette using a parallel-interface display

Continuing the discussion from When will the next Arduboy drop?:

Right. Well, just use a serial-to-parallel shift register instead to clock out the configuration commands at start-up, and then set it to all on (white), and clock out / latch other fixed colours as desired…

I need to pump the brakes a little here - whenever I read “that won’t work” / “that’s not possible” I just take it as a challenge to go and spend time proving that it can work!

My only point is that you can at least have a variable fixed colour for the display, without having to either increase the screen buffer or sacrifice speed.

The bigger problem would be having to refactor the format of the screen buffer, unless you can find a colour display that uses the same ‘page’ system…

EDIT: True to my word, I could not resist going out of my way to prove this could work! :tired_face:

Only additional parts needed for the Parallel / SPI marriage were two SN74AHC595 shift registers and two 8-element resistor arrays (for pull-downs)! The code is here:

I used a spare Arduino Nano and a HX8357 based display, as it was the only parallel-interface display I had on hand - but I have also ordered one of these to play with…

So basically it works as I theorised above - the configuration commands are clocked out to the shift registers at start up, and after that the desired colour is clocked out.

No increase to the screen buffer or to the amount of data transmitted is necessary. The SPI Clock is acting as the WR line for the for display, and the SPI Data line is connected to the shift register’s Output Enable. So they are either disabled (in which case the pull-down resistors take effect and this represents ‘black’) or enabled (in which case the colour that has been clocked out is represented).

5 Likes

Thats really neat! Too bad it would raise the price of the arduboy by an extra 10 dollars unless simplifications are made.