See the main repo for instructions on how to use this plugin.
This plugin works with the Adafruit 400x240 SHARP Memory Display breakout.
The SHARP Memory Display is connected as follows:
These pins can be changed by editing config.h.
(The protective film is still on the screen, so that's why there's a yellow stripe there.)
The SHARP Memory Display is only black and white, while Uxn provides four colors. The current color mapping is:
|fg||3||Blinking, mainly white|
|bg||2||Blinking, mainly white|
|bg||3||Blinking, mainly black|
It's a bit of a bizarre mapping, compared to Uxn's original scheme, and of course flashing can be achieved in the ROM that Uxn runs, but it's an easy way to provide simple UIs where, e.g., the selected tool in a toolbox blinks.
The color mapping is done entirely in the PIO program, so the
Screen's memory can be transferred with DMA out to the SHARP display with hardly any work done by the ARM core.
Writing the whole screen takes around 50 ms or three standard Uxn frames, limited by the communication rate of the display hardware. Individual rows of the display can be written independently, so to improve the framerate only dirty rows are written when
screen_redraw is called. Uxn's
Screen vector is still called at 60 Hz so time-sensitive things run at the correct speed even if writing to the display falls behind.
Controllerdevice over USB, perhaps