diff --git a/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro.jpg b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro.jpg new file mode 100644 index 000000000..a3b8f9fc5 Binary files /dev/null and b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro.jpg differ diff --git a/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_ESP32.jpg b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_ESP32.jpg new file mode 100644 index 000000000..a39c8f5af Binary files /dev/null and b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_ESP32.jpg differ diff --git a/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_GM32-N16.jpg b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_GM32-N16.jpg new file mode 100644 index 000000000..79c558553 Binary files /dev/null and b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB2_GM32-N16.jpg differ diff --git a/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_ESP32.jpg b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_ESP32.jpg new file mode 100644 index 000000000..05561a20b Binary files /dev/null and b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_ESP32.jpg differ diff --git a/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_GM32-N16.jpg b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_GM32-N16.jpg new file mode 100644 index 000000000..d843489c4 Binary files /dev/null and b/src/docs/devices/geekmagic-smalltv-pro/GeekMagic_SmallTV_Pro_PCB_GM32-N16.jpg differ diff --git a/src/docs/devices/geekmagic-smalltv-pro/config.yaml b/src/docs/devices/geekmagic-smalltv-pro/config.yaml new file mode 100644 index 000000000..598244d66 --- /dev/null +++ b/src/docs/devices/geekmagic-smalltv-pro/config.yaml @@ -0,0 +1,58 @@ +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 diff --git a/src/docs/devices/geekmagic-smalltv-pro/index.md b/src/docs/devices/geekmagic-smalltv-pro/index.md new file mode 100644 index 000000000..d0fb835d8 --- /dev/null +++ b/src/docs/devices/geekmagic-smalltv-pro/index.md @@ -0,0 +1,58 @@ +--- +title: "GeekMagic SmallTV Pro" +date-published: 2026-08-01 +type: misc +standard: global +board: esp32 +made-for-esphome: false +difficulty: 2 +--- + +## 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](https://de.aliexpress.com/item/1005005132140010.html) at various vendors. + +## Product Images + +![GeekMagic SmallTV Pro](GeekMagic_SmallTV_Pro.jpg) + +## 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](GeekMagic_SmallTV_Pro_PCB_ESP32.jpg) +![PCB](GeekMagic_SmallTV_Pro_PCB2_ESP32.jpg) + +PCB and Pinout - GM32-N16: + +![PCB and Pinout](GeekMagic_SmallTV_Pro_PCB_GM32-N16.jpg) +![PCB](GeekMagic_SmallTV_Pro_PCB2_GM32-N16.jpg) + +**Note:** To enter flash mode, GPIO0 must be pulled to GND during power-up. + +## Basic Configuration + +```yaml file=config.yaml +```