Publish Date : 2021-11-18
Last Modified : 2024-03-25

(K115)ATOM Display

M5Stack Atom PSRAM - LCD Display Driver Kit

img

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.

Variation

Datasheet

Review

Box

It comes in a box. New units are now in bags.

Includes

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.

How to use

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();
}

Benchmark

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.

Estimated fps

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.

FAQ

How to use PSRAM

PSRAM is not available now. Try to develop it with Timer-CAM, etc.

How to 1920x1080@24Hz

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.