-
-
Notifications
You must be signed in to change notification settings - Fork 0
Porting to another panel
Wells Riley edited this page Sep 27, 2026
·
6 revisions
Each frame reports its screen's size, color format, and supported rotations when it checks in. The server renders for whatever the frame reports, so porting to a new screen needs firmware changes only.
- The screen must support 16 shades of gray, or Spectra 6 colors with
-DFF_GENERIC_INKS. - A screen that isn't 3:4 shows the same picture, centered, with extra paper around it.
- In
firmware/platformio.ini, copy thegeneric_benchenvironment. - In your copy, set these build flags for your screen. They're described under Panel in
firmware/include/ff_config.h.-
PANEL_WandPANEL_H: the size in the orientation it hangs. -
FF_PANEL_IDandFF_BOARD_ID -
FF_PANEL_ROTATIONSandFF_BAKED_ROTATION
-
- Set
custom_baketo--size WxH --format gray16 --rotation N --name <name> --out src/<name>.h(--format spectra6for a color screen), andFF_SCREENS_HEADERto<name>.h. The build then renders the startup, setup, and error screens at your screen's size. It uses the server's Python: runmake venvfirst, or setFF_BAKE_PYTHON. - In
firmware/lib/driver/driver.h, choose your screen's Seeed_GFX setup. If you use a different driver library, replacefullPaint()infirmware/src/main.cpp.
Note
On a ported screen, every change refreshes the whole screen, as on the EE02 kit.
To preview what the server will send, before you have the hardware:
cd server
./.venv/bin/python -m featherframe.preview --panel custom:800x480:gray16:90,270Your Featherframe
Use
- Settings
- Add a frame
- Detection sources
- Other screens
- Species and illustrations
- AI illustrations
- How AI illustrations are made
Build your own
- Quickstart
- Kits and screens
- BirdNET hardware
- Build the frame
- Status LED
- Battery
- Flash the frame
- Install the server
About
Develop