Skip to content

GeekMagic SmallTV Pro

Device Type:misc
Electrical Standard:global
Board:esp32
Difficulty:Plug-n-flash (2/5)

Product Description

The GeekMagic SmallTV Pro is a LCD display designed to look like a mini computer.

It is USB-C powered and has an ESP32 inside (sometimes labeled GM32-N16).

The LCD panel has a 28x28mm size resulting in a 240x240 pixel resolution.

Available on AliExpress at various vendors.

Product Images

GeekMagic SmallTV Pro

Flash ESPHome

Flashing the device can be done in 2 different ways.

1. Upload .bin file (using original firmware)(easiest)

The original firmware comes with the option to upload a custom .bin file. This can be done by connecting to the device’s access point over Wi-Fi. Open a browser and navigate to the IP address displayed on the screen of the device. Find the “Firmware update” section in the web interface and upload your .bin file. The .bin file can be generated with ESPHome Device Builder using the correct config below.

2. Manual flashing via Serial (Disassembly needed)

If the first option is not usable for you, you can always flash the device manually by disassembling it first. Unscrew the 2 screws at the bottom of the device and slide the plastic casing open from the back of the device. Because this device doesn’t have a USB to serial chip, we need to connect some wires to it in order to flash it.

PCB and Pinout - ESP32:

PCB and Pinout PCB

PCB and Pinout - GM32-N16:

PCB and Pinout PCB

Note: To enter flash mode, GPIO0 must be pulled to GND during power-up.

Basic Configuration

esphome:
name: geekmagic-smalltv-pro
friendly_name: GeekMagic SmallTV Pro
esp32:
variant: esp32
esp32_touch:
setup_mode: false
iir_filter: 10ms
binary_sensor:
- platform: esp32_touch
name: "Touch"
pin: GPIO32
threshold: 1450
filters:
- delayed_on: 50ms
- delayed_off: 300ms
spi:
clk_pin: GPIO18
mosi_pin: GPIO23
interface: hardware
id: spihwd
output:
- platform: ledc
pin: GPIO25
inverted: true
id: backlight_pwm
light:
- platform: monochromatic
output: backlight_pwm
name: "Backlight"
id: backlight
restore_mode: ALWAYS_ON
default_transition_length: 1s
display:
- platform: mipi_spi
id: my_display
model: ST7789V
spi_id: spihwd
dc_pin: GPIO02
reset_pin: GPIO04
dimensions:
width: 240
height: 240
offset_width: 0
offset_height: 0
invert_colors: true
color_depth: 16
spi_mode: MODE3
data_rate: 40MHz
update_interval: 1s
show_test_card: true