自己紹介 ● 井田 健太 (Kenta IDA) ● My current job: Writing ESP32 firmware of smart home products ○ My previous job: Designing logic for Xilinx FPGAs. ● My hobby: Writing ESP32 firmware in Rust, etc… ● twitter: @ciniml
ATOM Display Lite / Display Module ● Extension module to output HDMI video signal from M5Stack cores. ○ ATOM Display Lite: from M5ATOM series (ATOM Lite, Matrix, S3, S3 Lite) ○ Display Module: Core, Core2, (maybe CoreS3) ● You can show screen outputs from your software to larger display easily. ● You can also output sounds from the display (Display Module only) https://www.switch-science.com/products/8779 https://www.switch-science.com/products/7592 ATOM Lite, Matrix, S3, S3 Lite Core, Core2, (CoreS3?) HDMI Cable
Structure of ATOM Display / Display Module system ● M5Unified/M5GFX sends display command and audio data. ● FPGA processes the display command and update the output. ● FPGA outputs video signal to the HDMI transmitter. ○ Audio data is passed through to the HDMI transmitter. ● HDMI transmitter outputs HDMI signal to the display. M5Stack MCU module (ATOM series, Core series) M5Unified M5GFX ATOM Display / Display Module User Software FPGA HDMI Transmitter Display Command Audio (Display Module only)
Why am I giving this presentation today? ● Because all main developers of these modules are present here. ○ M5Unified/M5GFX -> らびやんさん ○ UI Flow support -> BoBoさん ○ ATOM Display / Display Module hardware -> HanXiaoさん ○ ATOM Display / Display Module FPGA -> me M5Stack MCU module (ATOM series, Core series) M5Unified M5GFX ATOM Display / Display Module User Software FPGA HDMI Transmitter @lovyan03 @ciniml @HanxiaoM UI Flow @its_hard_2_name
Main feature of display modules ● Output resolution: 1920x1080@24Hz max. ○ Some displays does not support this video parameters. ● Note that this does not mean you can update the display content at this refresh rate. ○ Fill rate in the FPGA is limited due to its memory throughput. M5Stack MCU module (ATOM series, Core series) M5Unified M5GFX User Software ATOM Display / Display Module FPGA HDMI Transmitter Display Command SPI (80MHz)
How to improve actual fill rate? (1/2) ● Use magnification function of display modules. ○ e.g. 4x magnification: draw 320x180 image -> shown as 1280x720 ○ No extra cost for MCU module CPU. ■ Display module automatically magnificates the image and output to the display. 320 180 1280 720
How to improve actual fill rate? (2/2) ● Use lower resolution and magnification. ○ e.g. draw 320x240 image -> shown as 640x480 image. ○ No extra cost for MCU module CPU. ● Display module supports various resolutions. ○ M5GFX automatically calculates appropriate video parameters. 320 240 640 480
Audio output (Display Module only) ● Output audio from the display ● Audio data is output from MCU module as I2S stream. ● FPGA just passthrough the I2S signal. M5Stack MCU module (ATOM series, Core series) M5Unified M5GFX ATOM Display / Display Module User Software FPGA HDMI Transmitter Audio via I2S passthrough
Customization of display modules ● You can change the FPGA logic by yourself! ● Source code of the FPGA logic is available. ○ https://github.com/ciniml/atom_display_fpga ○ Written mainly in Chisel. ● Development environment is available at no extra cost. ○ You can download the EDA tool from GOWIN website. ○ You need to submit an application to obtain a license.
Example: Display latency checker ● Measures latency of displays. ○ Output blinking video signal from ATOM Display. ○ Measure actual display output by photo diode. ○ Use customized version of the FPGA design.
Conclusion ● You can show images from your application to larger display by using ATOM Display / Display Module. ● You can control these modules easily by using M5GFX / UIFlow. ● Display Module also supports audio output. ● Customization of display modules FPGA is possible. ○ If you want to do it, I’ll give you a jig to support it.