ATOM Display is an all-in-one display driver kit designed to provide a comprehensive solution for driving TFT-LCD displays. It utilizes an FPGA (Field-Programmable Gate Array) to simulate traditional SPI (Serial Peripheral Interface) TFT-LCD data output.The kit supports a maximum image resolution of 1280 x 720 pixels, enabling high-quality visuals on compatible displays. It offers advanced signal processing capabilities, resulting in precise and vibrant colors for an enhanced viewing experience.In addition to display functionality, ATOM Display integrates several other features. It includes 2.4G Wi-Fi connectivity, which allows for wireless communication and data transfer. With 8M Flash + 2M PSRAM memory combination, it provides ample storage for storing image data and other resources. The kit also incorporates an RGB to HDMI converter chip, enabling easy conversion of RGB signals to HDMI output.Despite its small size, ATOM Display packs powerful capabilities, making it a versatile and efficient alternative to traditional display driving solutions. By consolidating multiple functionalities into a single unit, it simplifies the integration process and reduces the need for additional components.
It comes in a box. New units are now in bags.
It comes in a bag.
It came with the main unit, screws, and a hex wrench.
The screws secure the ATOM from the back.
There is an HDMI connector on the top side.
Comparison of Atom Lite and PSRAM. The only difference in appearance is the color.
Connects to LITE, which does not need PSRAM to work.
USB HDMI Capture. This is convenient because you can check it on your computer.
Easy to check.
The M5GFX library page has instructions on how to use it.
#include <M5AtomDisplay.h>
M5AtomDisplay display(1280, 720);
void setup(void)
{
display.init();
display.setRotation(0);
display.setColorDepth(24); // 24bit per pixel color setting
display.startWrite();
for (int y = 0; y < display.height(); ++y) {
for (int x = 0; x < display.width(); ++x) {
display.writePixel(x, y, display.color888(x, x + y, y));
}
}
display.endWrite();
for (int i = 0; i < 16; ++i) {
int x = rand() % display.width();
int y = rand() % display.height();
display.drawCircle(x, y, 16, rand());
}
}
void loop(void)
{
display.startWrite();
static constexpr const char hello_str[] = "Hello ATOM Display !";
display.setFont(&fonts::Orbitron_Light_32);
for (int i = -display.textWidth(hello_str); i < display.width(); ++i) {
display.drawString(hello_str, i, (display.height() - display.fontHeight()) >> 1);
}
display.endWrite();
}
I modified this and measured the fps.
- static LGFX lcd;
+ M5AtomDisplay lcd(1280, 720);
The M5GFX is based on the LovyanGFX. There are more sketch examples in LovyanGFX.
In the case of 1280x720, it was 5fps.
In the case of 640x360, it was 21fps.
width | height | pixels | fps |
---|---|---|---|
480 | 1920 | 921,600 | 5 |
1920 | 480 | 921,600 | 5 |
1280 | 720 | 921,600 | 5 |
1024 | 768 | 786,432 | 6 |
960 | 540 | 518,400 | 10 |
800 | 600 | 480,000 | 10 |
640 | 480 | 307,200 | 16 |
640 | 400 | 256,000 | 20 |
640 | 360 | 230,400 | 22 |
512 | 212 | 108,544 | 46 |
256 | 192 | 49,152 | 102 |
320 | 240 | 76,800 | 65 |
240 | 320 | 76,800 | 65 |
200 | 200 | 40,000 | 125 |
240 | 135 | 32,400 | 154 |
135 | 240 | 32,400 | 154 |
160 | 160 | 25,600 | 195 |
160 | 80 | 12,800 | 391 |
80 | 160 | 12,800 | 391 |
80 | 80 | 6,400 | 781 |
The number of pixels changes the fps.
PSRAM is not available now. Try to develop it with Timer-CAM, etc.
In preparation. Available in develop branch.
M5AtomDisplay display(1920, 1080, 24);
M5AtomDisplay display(1920, 960, 30);
Refresh rate has been added. When omitted, it is 60. For 1920x1080, you need to set it to 24. The monitor must support 24Hz.