Skip to content

Implement support for Freenove's ESP32-S3 display board#122

Merged
ThomasFarstrike merged 10 commits into
MicroPythonOS:mainfrom
Rohansi:copilot/add-support-for-freenove-esp32-s3
May 22, 2026
Merged

Implement support for Freenove's ESP32-S3 display board#122
ThomasFarstrike merged 10 commits into
MicroPythonOS:mainfrom
Rohansi:copilot/add-support-for-freenove-esp32-s3

Conversation

@Rohansi
Copy link
Copy Markdown
Contributor

@Rohansi Rohansi commented Apr 19, 2026

(note: code was written by Copilot but it is working on my device and I can fix whatever you'd like personally)

This PR adds support for Freenove's ESP32-S3 2.8" display with touch board (FNK0104). Documentation and sample code can be found here: https://github.com/Freenove/Freenove_ESP32_S3_Display/

It seems to actually just be a generic board that Freenove slapped their branding on. You can find what appears to be the same board listed as ES3C28P on Aliexpress. Freenove's github repo has docs for a board named ES3C28P too.

The board was incorrectly identified as fri3d_2026 before making any changes, which is why the check for this board is before fri3d. I don't know why the board was misidentified though.

The speakers were making a high pitched (but quiet) sound constantly so there are changes in here which disables the DAC when no audio is playing. This should reduce power consumption too. It is not implemented for other boards.

I've personally tested:

  • Display
  • Backlight brightness
  • The boot button (maps to back)
  • Touchscreen (single touch - is there anything that needs multitouch?)
  • Audio playback
  • Audio recording
  • LED
  • Battery level (it's not super accurate but that may be because we need to use read_uv() so the result is calibrated)
  • SD card

Should fix #119

Copilot AI and others added 8 commits April 18, 2026 14:56
@Rohansi Rohansi marked this pull request as draft April 19, 2026 03:29
@Rohansi
Copy link
Copy Markdown
Contributor Author

Rohansi commented Apr 19, 2026

Battery level is wrong. Working on a fix

@Rohansi
Copy link
Copy Markdown
Contributor Author

Rohansi commented Apr 19, 2026

Tested everything and it seems good now. Battery level is not very accurate but I don't think there's much that can be done about that without refactoring so that read_uv() is used. That would give factory calibrated results that are more accurate.

@Rohansi Rohansi marked this pull request as ready for review April 19, 2026 04:16
@jedie
Copy link
Copy Markdown
Contributor

jedie commented Apr 19, 2026

Is this a CYD clone?

@Rohansi
Copy link
Copy Markdown
Contributor Author

Rohansi commented Apr 19, 2026

Yes, it's a CYD clone

@Rohansi
Copy link
Copy Markdown
Contributor Author

Rohansi commented May 18, 2026

Any idea when you'll be able to review this @ThomasFarstrike?

@lmoiseichuk
Copy link
Copy Markdown

Probably, this info will be useful: board specs https://www.lcdwiki.com/2.8inch_ESP32-S3_Display
As per https://hosyond.com

@ThomasFarstrike ThomasFarstrike merged commit 2998345 into MicroPythonOS:main May 22, 2026
5 checks passed
@ThomasFarstrike
Copy link
Copy Markdown
Contributor

Sorry for taking so long. This is actually a very nice work! Awesome on the audio driver!

I will take the liberty of adding you to the MAINTAINERS.md file - unless you complain - to keep kind of a record of who added which device, giving credit, and also suggesting that you try out new releases to make sure nothing accidentally broke your board support :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Please add support for ESP32-S3 2.8" LCD Display

5 participants