M5Stack ATOM Display Lite adds HDMI output to ESP32 module

M5Stack ATOM Display Lite is a kit based on GOWIN Gowin GW1NR-9C FPGA and LT8618SX RGB to HDMI chip designed to add HDMI output up to 720p to the company’s ESP32-based M5Stack ATOM Lite module.

The ATOM Lite sees the ATOM Display Lite kit as an SPI display, but the solution outputs the data to an HDMI monitor or TV with up to 1280×720 resolution and can be used for information display, menu board, and more.

ATOM Display Lite specifications:

  • Wireless IoT modules – M5Stack ATOM Lite ESP32-PICO-D4 based module with 240MHz dual-core CPU, 520KB SRAM, 4MB flash, Wi-Fi 4 and Bluetooth connectivity
  • FPGA – Gowin GW1NR-9C (PDF datasheet) FPGA with 8,640 LUTs used to simulate SPI TFT-LCD data output,
  • HDMI bridge – Lontium Semi LT8618SX RGB to HDMI chip with 24-bit color depth up to 1280×720 output @ 60 fps (optimized frame rate up to 12 ~ 16FPS)
  • Misc- Programmable RGB LED, reset button, user button, Grove expansion port
  • Net weight – 21 grams
  • Dimensions – 64 x 24 x 29mm

 

The M5Stack ATOM Lite module is connected to the kit through SPI to the FPGA, and I2C to the LT8618SX RGB to HDMI chip.

Block Diagram

At this time, the kit is programmable through the Arduino IDE, but M5Stack is also working on getting UIFlow support (visual programming) to work.  The FPGA resources are available on Github. You’ll need Chisel 3.4 and GOWIN EDA v1.9.8 IDE, as well as PlatformIO if you want to run the test from the Github repo.

But as I understand it, it’s just programmable as if another SPI display was connected to the board, and for instance, M5Stack provides a single Arduino demo in the Wiki switching between red, green, and blue screens:


The M5Stack Atom Lite LCD Display Driver Kit is sold for $36.90 with the ATOM Lite module and the ATOM Display kit.

It’s not the first time an SPI to HDMI solution is provided for microcontroller boards, and several years ago, Leung John demonstrated an Arduino HDMI shield in the video below. I’d expect similar capabilities from the M5Stack kit.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

17 Replies to “M5Stack ATOM Display Lite adds HDMI output to ESP32 module”

  1. At this price point, having a RP2040 do this is probably better, it’s only one chip, it’s dirt cheap compared to this and widely available. You do need to “overclock” it, but it seems like it’s not that much of a problem, and there were talks of RPi validating them for higher frequencies.

    1. Instead of such half-baked software bitbanging solutions, why not just use a Raspi Zero?

      And if you don’t like Linux, you can also use bare metal C or Micropython.

        1. Fair point. But can you buy a M5Stack ATOM Display Lite?
          They’re based in Shenzhen, China, which is currently under lockdown.

          1. Is Shenzhen still in lockdown, or back in lockdown? Some people I know told me it was back to normal.

          2. @Cyk said: “Fair point. But can you buy a M5Stack ATOM Display Lite? They’re based in Shenzhen, China, which is currently under lockdown.”

            Can buy a M5Stack ATOM Lite LCD Display Driver Kit:

            * M5Stack Atom Lite – LCD Display Driver Kit, SKU:K115-B, $36.90 USD, 10+ In Stock

            Currently Shenzhen seems open but maybe not for long. Shanghai is now in COVID-19 lockdown. See my comment with link below.

    2. @Ignas Kiela said: “At this price point, having a RP2040 do this is probably better, it’s only one chip, it’s dirt cheap compared to this and widely available. You do need to “overclock” it, but it seems like it’s not that much of a problem, and there were talks of RPi validating them for higher frequencies.”

      An RP2040 that supports HDMI out natively you say? Bit-bangging? Link please?

      1. One of the reasons we have a dedicated RGB2HDMI converter is to ensure compatibility across all different HDMI receivers. We can do everything in the FPGA, which is roughly the same price as RP2040, but the customer may end up finding their TV does not work it due to some weird compatibility issue. After all , HDMI protocol is not just shifting out TMDS signals.

  2. >The M5Stack Atom Lite LCD Display Driver Kit is sold for $36.90 

    mmm there are HDMI pucks that have wifi, 64MB of RAM, two Cortex A7s for $15.
    I get the feeling if you want to drive a HDMI display you’re going to repurpose something like that instead. That said Arduino people would attach a whole Xeon system to an AVR if they could.

    1. > That said Arduino people would attach a whole Xeon system to an AVR if they could.

      🙂

      Already done. At work in the lab, an AVR emulates a USB serial port and drives relays that power on/off up to 8 machines among which some Xeons 😉

      1. That seems to be the right use of an AVR. If you had the Xeon systems funneling raw packets from ethernet to a hand crafted TCP/IP stack running on the AVR because “you needed ethernet on the arduino” then you’d have a true arduino project.

    2. I’ll never understand why someone would want to combine an ATMEGA328 (as main processor) with an ESP32 (only as WiFi interface).

      The ESP32 can run around the ATMEGA in circles, all while handling the WiFI stuff (including webserver), and many more things.

      1. @Cyk said: “I’ll never understand why someone would want to combine an ATMEGA328 (as main processor) with an ESP32 (only as WiFi interface). The ESP32 can run around the ATMEGA in circles, all while handling the WiFI stuff (including webserver), and many more things.”

        People combine other things with the ESP32 when they need fast GPIO. The ESP32 is rather slow when it comes to straight-forward GPIO speed, e.g. 10MHz maximum with port-direct manipulation in C/C++. Read the code snippet and two reference links below to understand why. So if you need fast GPIO, especially for more than one pin at a time in parallel, plus WiFi/BLE connectivity, try a separate fast micro-controller (faster than a ATMega328), or better-yet a CPLD/FPGA connected to the ESP32 for its radios. If you need to toggle only one ESP32 pin a bit faster than 10MHz, that might be possible by bit-banging one of the built-in periperals in conjunction with DMA. Programming closer to the metal might really improve ESP32 GPIO speed, but I’m not seeing the needed documentation for this.

        Ref.-1: Why is my ESP32 GPIO Soooo SLOW?

        https://www.reddit.com/r/esp32/comments/s3i2dp/why_is_my_esp32_gpio_soooo_slow/

        Ref.-2: ESP32 – GPIO speed lower than expected

        https://www.esp32.com/viewtopic.php?t=1595

Leave a Reply

Your email address will not be published.

Advertisement
Advertisement