u/Dele_xu

Image 1 —
Image 2 —

Hey everyone!

The original author of the base driver is WSTRN. The actual source is here: https://github.com/WSTRN/LPM009M360_demo

Not the other repo some people found. WSTRN wrote a working driver and even attempted to upstream it into ZMK, but the ZMK maintainers suggested he contribute it directly to the official Zephyr project instead — that way, future ZMK version updates would automatically stay in sync. For reasons I don't know, he eventually stopped pursuing it. I owe a huge thank you to his groundwork.

Taking WSTRN's foundation, I poured about two weeks into turning it into the color driver you see now. Specifically:

Added real color support (RGB111) — the original could only do monochrome.

Added two more rotation directions, bringing full orientation flexibility. I referenced Gbertaz/JDI_MIP_Display to make screen layout much easier for us.

Optimized refresh algorithms so the screen updates noticeably faster.

Updated and modified APIs to work cleanly with Zephyr 4.1, which the latest ZMK relies on.

One by one, I colored every single status component that was originally monochrome in nice!view — battery, layers, Bluetooth, peripheral status — and debugged each of them until they looked right.

I personally prefer to build locally, but I know most people just want things to work out of the box. So I spent an entire day debugging the GitHub Actions workflow to make the module compile smoothly with the latest ZMK. Now you can simply add the shield, and it will build with no extra headache.

If you want to build your own colorful nice!view, here's how to find the JDI LPM009M360A display:

Direct purchase: QuestWise Ventures https://www.questwiseventures.com/products/ultra-low-power-jdi-0-96-144x72-color-memory-lcd carries it.

eBay also has listings if you search for the model number.

Cheap hack: Buy a second-hand PHICOMM W3 bracelet, carefully remove the screen, and it's exactly the same display — a fraction of the cost.

If you have any questions, ideas, or run into issues, please open a discussion or issue on GitHub. I'd love to chat and help however I can.

Thanks for reading this far, and for all the encouragement on the first photo — it genuinely meant the world to me.

GitHub Repo: https://github.com/JU-YANG-NING-HUO/Color_nice_view

Happy building, everyone!

u/Dele_xu — 11 days ago

Hi everyone!

I'm excited to finally share "Color_nice_view" with the community — a custom ZMK module for the Corne keyboard (crkbd) that integrates a JDI LPM009M360A color display (72x144 RGB) for an awesome, colorful status screen directly on your split keyboard.

The Struggle Behind the Scenes

Let me be upfront: writing this driver was brutally difficult.

This isn't your standard SPI display that works out of the box. The LPM009M360A is a niche Memory-in-Pixel display with proprietary VCOM (Voltage Compensation) requirements. There were virtually no readily-available open-source C drivers for Zephyr/ZMK environments. I spent countless nights:

  • Going back and forth with a logic analyzer, chasing signal timing issues
  • Implementing a software VCOM refresh via a background thread (a painful balancing act to not break Bluetooth timing or drain the battery)
  • Decompiling and studying proprietary datasheets across multiple forums just to get a single pixel to light up correctly
  • Tackling memory layout differences between the existing LS013B7DH06 drivers and the LPM009M360A — a deceptively simple "LSB to MSB" address shift that cost me a full weekend of debugging.

For the initial release, I actually shipped a closed-source pre-compiled static library for the driver. But I made a discovery: the closed-source approach resulted in significantly worse display performance and choppy animations. Compiling from the full source unlocked buttery smooth transitions and truly made the display shine. That's why I decided to ditch the static lib and open-source the complete driver.

What the Project Offers

  • Drop-in ZMK module: Just add the shield to your Corne build.
  • Full open-source display driver: Transparent driver for the LPM009M360A, including the tricky software VCOM logic.
  • Custom status widgets: Battery, layer, Bluetooth, peripheral status, and animated art — all optimized for the 72x144 RGB canvas.
  • Low-power sleep mode to preserve your nice!nano battery.
  • ZMK Studio support: Configure and customize without recompiling.

Why I'm Asking For Donations

I'm a student and hardware enthusiast. I've poured hundreds of hours into this project, and the hardware costs (test boards, damaged displays, logic analyzers) have been entirely out of pocket. I genuinely want to keep building great things for the keyboard community — better graphics, more widget options, support for other boards — but I can't do it without some help.

If this project helps you, please consider donating via PayPal (link right on the GitHub repo). A few bucks for a coffee or a pizza goes a long way toward keeping this sustainable. I also warmly welcome GitHub stars, issues, and pull requests!

🔗 GitHub Repohttps://github.com/JU-YANG-NING-HUO/Color_nice_view

Thank you all, and happy building! 💛⌨️

u/Dele_xu — 11 days ago