How to break memory displays

A project log for Aloidia: wireless split solar powered keyboard

Aloidia is a staggered, split, fully wireless solar-powered mechanical keyboard with extremely long battery life.

nguyen-vincentNguyen Vincent 02/20/2023 at 21:480 Comments

Surely, one of the most interesting features of the board are its memory displays. They are very low power, have high refresh rate and boast a fairly high resolution. But they are fragile. And I mean VERY fragile. 

I ordered four memory displays from aliexpress, as they are the only ones from which you can order with a MOQ < 1600. Out of the four, three were defective...

Here you can see the sole working memory display. Zephyr provides a driver for this display, but it sadly doesn't support rotation (which is crucial in my case because of how the displays are placed on the halves). I had to manually modify the driver to support flipping the display 180 degrees. Currently, I've modified the zephyr driver directly, which is not ideal as you wouldn't be able to compile locally without having the modified RTOS. Eventually, I will move the driver from Zephyr to a custom driver defined in the ZMK repo, or wait for Zephyr 3.0, which should support LVGL rotation.

Edit: I've now moved it to its own driver. You can check the implementation in my ZMK fork.

Right now, the display has its EXTCOMIN and EXTMODE pins low, which is not ideal. This is because sharp memory displays require the VCOM signal to be toggled periodically to prevent DC bias thus reducing lifetime of the display. In the Zephyr implementation, this is done by toggling the EXTCOMIN pin while EXTMODE is high. As can be seen below, the current implementation works but it will probably be reviewed in a future iteration. Fortunately, as the memory uses 3-wire SPI, and because I made it compatible with the e-paper display which uses 6 pins, there are 3 free pins which could be used to control both the EXTMODE and EXTCOMIN signals.

It was working, but...

I didn't realize how fragile the FFC cable was... I'll be ordering new ones soon...