Have a display driver on Kinetis and STM32, need to port it to ESP32

Dear All,
I am looking for someone who has:

  • Experience with ESP32
  • Experience with NXP Kinetis K64F
  • Experience with STM32
  • Knows about writing display device drivers
  • Worked with displays that use SPI

The task is to verify an existing display driver on Kinetis or STM32 and port it to ESP32.

I am building a power-efficient interface between a display and an ESP32 micro-controller for a wearable device. The image to be displayed will be downloaded from a mobile app using BlueTooth or Wi-Fi integrated to ESP32. Please let me know if you’re (or know someone who’d be) interested in helping me out with this project.


Hi @Mehmet I remember talking to you a year or two ago about epaper displays.

Could you post a link to the display driver in question?

Generally porting this kind of driver between 32 bit platforms isn’t very involved since mostly everyone is using GCC these days which means most of the code doesn’t need to be touched. For an SPI display driver mostly you just need to find/replace the calls to GPIO functions and SPI transfer functions, and sometimes timing functions too. Then if you’re lucky it “just works” and otherwise you’re left with some random weird things to debug which end up taking longer than everything else combined.

You may also need to refactor the driver a bit to optimize for low-power, as many drivers aren’t written with that in mind. For instance you’ll almost certainly want to use DMA or at least interrupts so the CPU isn’t spinning during SPI transfers, but most drivers on github (adafruit, sparkfun, etc.) are barebones without any fancy stuff like DMA. Actually, this lack of platform-specific features is what makes the drivers so trivial to port.

This is a bit late and I’m assuming you’ve already found some solution, but if it’s still unresolved I’d be happy to help. As long as you have the actual hardware (which is integral to the aforementioned debugging step, which is almost always required) it shouldn’t take more than a few hours or up to a day to get it working. The optimizations for low-power and/or drawing speed may take a few days longer.