LCD Display Working

A project log for LCIRIC - Low Cost Infrared Imaging Camera

A standalone, open-source thermal imager which can be built for under $50 in parts.

Josh LangeJosh Lange 05/25/2016 at 06:180 Comments

I've been working on getting the LCD display working. This display uses an ILI9341 controller which has built-in RAM. The display is interfaced with the microcontroller using the SPI bus running at 24 MHz. I am using the uGUI library for this project, and I currently have one of the example projects up and running. Since the microcontroller doesn't have anywhere near enough RAM for an internal frame buffer, the image is drawn to the display directly, one element at a time. I've implemented the uGUI hardware acceleration functions, and made a few improvements, so that straight lines, rectangles, images, and text are sent in sections, rather than pixel-by-pixel. It currently takes between 0.1-0.2 seconds to draw a full image. This does depend significantly on the complexity of the interface being drawn. (Filling rectangles is faster than drawing text, for example.) In addition, I am currently operating the SPI bus in blocking mode, so the CPU is locked up while the rendered region is being sent to the display. There is potential for significant speed improvements if DMA were implemented so that the next region could be rendered while the current region is being pushed to the display over SPI. It's on my to-do list.

Next up, I'm going to try to get the GridEYE sensor working.