Repository navigation
feat(board): add Freenove FNK0104AB support - #3073
Open
chinderdelis wants to merge 1 commit into
Open
chinderdelis wants to merge 1 commit into
chinderdelis wants to merge 1 commit into
Conversation
Hardware-validated fixes: RGB LED on GPIO42 (40 is SD CMD), battery divider on GPIO9, 4-bit SDMMC (opt-in via SD_MMC_4BIT), shared touch/codec I2C marked as sys_i2c, single LEDC backlight attach, real backlight off in powerOff(), no FT6X36 reset on every read, brightness clamped to >=1, and the board added to PR_check CI.
This branch has not been deployed
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.
Proposed Changes
Fix and complete the existing Freenove FNK0104AB board support. All changes were validated on hardware (ESP32-S3 N16R8, 2.8" ILI9341 + FT6336G, ES8311 + FM8002E, SDMMC, WS2812).
Freenove-FNK0104AB.ini: RGB LED is on GPIO42 (GPIO40 is SD CMD); battery divider is on GPIO9 (not 8); enable 4-bit SDMMC.interface.cpp: add D1/D2/D3 SD pins; mark the touch/codec I2C bus assys_i2csobus_HALdoes notWire.end()it and the wedged-bus recovery works; callsetSysI2CBus()before touch init; attach the backlight PWM once in_pre_storage_gpio(); actually extinguish the backlight and send DISPOFF inpowerOff().sd_functions.cpp: make 4-bit SDMMC opt-in per board viaSD_MMC_4BIT(1-bit remains the default for every other board).touch.cpp: do not calltouch.reset()for FT6X36 on every read (it toggles the hardware RST pin, making drags slow and occasionally wedging the controller).settings.cpp: clamp brightness to >=1 (a saved 0 leaves the screen dark with no visible UI to raise it) and disable the body touch zone while the brightness menu is open..github/workflows/PR_check.yml: build the board in PR CI.Verification
Tested on the device:
poweroffwith BOOT wakeBuilds: Freenove FNK0104AB, plus ES3C28P as a regression check for the shared
sd_functions.cpp/touch.cpp/settings.cppchanges.Testing
Hardware tested on Freenove FNK0104AB; compile-tested on ES3C28P.
Linked Issues
N/A
User-Facing Change
Further Comments
HID/BadUSB and BLE keyboard were not tested (they require USB re-enumeration/pairing and can drop the serial console). External CC1101/NRF24 modules conflict with the broken-out pins (CC1101
io0=2= MISO, NRF24io0=3= MOSI); documented inconnections.md.