Repository navigation
Add Freenove ESP32 Display 3.5 inch - #11540
Merged
tannewt merged 2 commits intoOct 12, 2026
Merged
Conversation
ESP32-WROOM-32E (4 MB flash, no PSRAM, CH340C USB-serial) with a 3.5" 320x480 ST7796 display over SPI, XPT2046 resistive touch on the same bus, microSD slot, RGB LED, DAC speaker output through an amplifier, LiPo charger with battery sense and UART/I2C/SPI/input headers. Sold by Freenove as FNK0103N and as the "Bitcoin Miner Solo Lottery Miner, ESP32 CYD 3.5 inch". board.DISPLAY is set up at boot in landscape and honours CIRCUITPY_DISPLAY_ROTATION from settings.toml. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tannewt
requested changes
Oct 9, 2026
tannewt
left a comment
Member
There was a problem hiding this comment.
One ID comment. Please let us know when you've tested it on the device.
Freenove already has creator ID 0x1C33_0000 in creationid/creators. The creation ID 0x0103_0035 is registered there in creationid/creators#95. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Author
|
Thanks for the review. Freenove already has creator ID Pushed as a follow-up commit so the change is visible on its own. I'll follow up separately on the on-device testing. |
tannewt
pushed a commit
to creationid/creators
that referenced
this pull request
Oct 12, 2026
Used by the CircuitPython board definitions freenove_esp32_display_3_5 (adafruit/circuitpython#11540) and freenove_esp32_display_2_8. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tannewt
approved these changes
Oct 12, 2026
tannewt
left a comment
Member
There was a problem hiding this comment.
Def looks good. Will merge as-is. Feel free to follow up if on device testing shows an issue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the Freenove ESP32 Display 3.5 inch
(FNK0103N, also sold as the "Freenove Bitcoin Miner Solo Lottery Miner, ESP32 CYD
3.5 inch"): an ESP32-WROOM-32E "Cheap Yellow Display" style board with a 3.5"
320x480 ST7796 TFT over SPI, XPT2046 resistive touch, microSD slot, RGB LED,
DAC speaker output through an SC8002B amplifier, TP4054 LiPo charger with
battery sense, and UART/I2C/SPI/input headers. The USB-C port goes through a
CH340C, so there is no native USB (no VID/PID; serial REPL and web workflow).
Notes on the board definition:
board.DISPLAYis a 480x320BusDisplay(ST7796, 16-bit colour, initsequence from the vendor's TFT_eSPI setup) with PWM backlight on GPIO27.
Rotation 0 is landscape with the USB connector on the left;
CIRCUITPY_DISPLAY_ROTATIONinsettings.tomlrotates it, as on the Suntonboards.
matrix, which is the ESP32's full-duplex limit there. (Asking for 40 MHz
makes
busio.SPIraise, and an exception insideboard_init()silentlyresets the chip.)
TOUCH_CS,TOUCH_IRQ); afterdisplayio.release_displays()the display and the touchdriver can share
board.LCD_SPI().board.SPI()(SD_CS GPIO5, headerCS GPIO21).
board.I2C()is the I2C header (SDA GPIO32, SCL GPIO25).LED (
MICROPY_HW_LED_STATUS_INVERTED).SPEAKER_ENABLE_INVERTEDis theamplifier's shutdown pin (pulled up, drive low to enable).
Tested on hardware (11.0.0-alpha.1 at df53dd9 + this commit, ESP-IDF 6.1):
1.2 MB CIRCUITPY filesystem created.
pixels read back from the ST7796 GRAM over MISO match what was written;
CIRCUITPY_DISPLAY_ROTATIONround-trips;DISPLAY.brightnesssets thebacklight PWM.
TOUCH_IRQhigh while not pressed) afterrelease_displays()andre-creating the display on
board.LCD_SPI().battery ADC through the 1:2 divider reads the TP4054 float voltage (4.2 V,
no cell attached).
SPEAKERwithSPEAKER_ENABLE_INVERTEDlow runs.board.I2C()scan runs (nothing attached);sdcardioonboard.SPI()reports "no SD card" with the slot empty.
pre-commit run --all-filesand the VID/PID / creator-ID duplicate check pass.Not yet checked by eye, ear or finger: display orientation and colour order,
touch coordinates under a finger, LED colours and speaker audibility; also
an SD card mount with a card inserted and Wi-Fi station mode. I will follow
up here once those are confirmed.
🤖 Generated with Claude Code