
MP Tracker
elektra42/freifunk-open-mppt
Open hard- and software solar maximum power point tracker

Agon Extender adds an ESP32-P4 coprocessor to an Agon computer. Extended Display Processor (EDP) runs on P4; Extender MOS (EMOS) replaces MOS on the eZ80 and owns display routing, keyboard admission and Extender…
ESP32-P4-PC Rev B is an open-source printed circuit board by bgates747, from the bgates747/agon-extender repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 60 × 90 mm with 344 parts on 302 nets, routed with 5,090 tracks and 549 vias.
It is built around the TPS2116DRL and BC817-40. Its parts include 136 capacitors, 96 resistors, 9 ICs, 9 inductors and 3 diodes. It belongs with the ESP32 and RISC-V boards of this library.
Agon Extender adds an ESP32-P4 coprocessor to an Agon computer. Extended Display Processor (EDP) runs on P4; Extender MOS (EMOS) replaces MOS on the eZ80 and owns display routing, keyboard admission and Extender transports.
This is a working development project, not a general ready-to-install release. The tree includes retained experiments and diagnostic targets. A source checkout, a successful compile and a deployed/qualified combination are different things.
The Extender handbook is the current documentation entry point.
EMOS sdserve EMOSlet and paired --fast option.p4-console profile explicitly; the retained PlatformIO files are historical
rollback material.
The accepted r55 console was reconstructed from maintained source; select
exact approved bytes through production, not Git HEAD.Current handbook review: 27 September 2026 (documentation/source inspection). Results apply to the recorded builds and bench, not every Agon/P4 combination.
| Capability | Current status and authority |
|---|---|
| Legacy / Exclusive Compatible (ExCom) display routing | EMOS selects mainboard VDP or EDP. Retained VDP rendering and browser output work; compatibility and performance limits remain. Architecture, bug register. |
| Physical, browser and agent keyboard input | P4 USB input, explicit browser capture and paced host automation are implemented. All require EMOS to have admitted Extender input. Physical input takes priority; browser capture overrides automation. Keyboard guide. |
| Browser video and observation | P4 serves the page and final rendered pixels, with full-frame RLE2 by default. Browser output can slow gameplay; presented fps is not application-loop or native-rendering throughput. Video contract. |
| Agon mainboard SD | Foreground EMOS sdserve [--fast] / supports listing, reads and recoverable staged replacement. Normal mode verifies whole files; fast mode omits those verification passes. EMOSlet installation and latest scoped physical checks: operating guide. It does not run alongside a game. |
| Remote reset | An optional Pi-hosted bridge pulses the Agon's reset circuit; the browser button uses that bridge. This is not P4-native reset or power cycling. Reset guide. |
| P4-local SD | Development candidate provides CLI/HTTP file and directory management; bounded r57 hardware checks recorded, outside selected production v0.1.0. P4 SD guide. Current bench firmware must be checked separately. |
| Future / deferred | Audio: PORT-004. Parallel transport, MicroPython and physical video outputs remain separate work; see TODO. |
Network services use plain HTTP/WebSocket on a trusted LAN, without
authentication. The SD root passed to sdserve bounds access; / exposes the
whole mainboard card. The SD wire API does not execute programs. Agent keyboard
control can issue MOS commands only after its input path is already admitted.
The current physical reference is Agon Light 2 + Olimex ESP32-P4-DevKit Rev D1. The r03 UART harness and its USB addition are not a complete qualification of every as-built circuit. The planned ESP32-P4-PC has a separate reference library with manuals, schematics, provenance and upstream example-clone instructions. Do not treat the planned board as the installed DevKit.
| Component / subject | Entry point |
|---|---|
| Integrated P4 console | native profile authority, native builder, p4_console.cpp |
| EDP / adapted VDP | vdp/video/extender, vdp/video, retained libraries |
| EMOS and SD listener | agon-emos, including src/ and projects/sdserve/ |
| Host SD client | scripts/sdcard.py |
| Embedded browser assets | web component; no separate npm build |
| Design and responsibility | architecture, ownership, protocols |
| Qualification and known faults | qualification index, firmware bugs, publication review |
| Evidence and research | task conventions, TRS-OS community guide, hardware-free samples |
Agon Extender is distributed under GPL-3.0-only, except where individual files or third-party components carry their own compatible license notices. See LICENSE for the full text and LICENSING.md for the licensing and attribution policy.
The port builds on the official Agon VDP and FabGL/vdp-gl. Original MIT and GPL-family notices and upstream attribution remain applicable to their respective sources.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 46 | 100nF/10V/20%/X5R/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C11, C12, C101, C105, C106, C107, C108, C109, C111, C112, C115, C119, C120, C121, C128, C131 +30 |
| 18 | 2.2k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R4, R8, R9, R39, R56, R57, R61, R62, R72, R73, R74, R80, R82, R84, R88, R91 +2 |
| 17 | 10k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R3, R27, R41, R42, R43, R48, R54, R55, R64, R66, R67, R68, R70, R83, R85, R102 +1 |
| 16 | 1uF/6.3V/10%/X5R/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C8, C10, C36, C39, C48, C55, C58, C61, C84, C86, C88, C97, C98, C100, C104, C126 |
| 15 | 10uF/6.3V/20%/X5R/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C3, C6, C18, C20, C22, C29, C41, C50, C56, C67, C68, C70, C76, C82, C99 |
| 14 | TESTPAD | OLIMEX_Other-FP:TESTPAD_40-ROUND | +5V_EXT1, +5V_POE1, +5V_USB1, +5V1, 3.3V1, CORE1, DC_VIN1, GND1, GND2, VBAT1, VO1, VO2, VO3, VO4 |
| 12 | 47uF/6.3V/20%/X5R/C0805 | OLIMEX_RLC-FP:C_0805_5MIL_DWS | C14, C65, C74, C92, C93, C118, C129, C130, C132, C133, C134, C136 |
| 10 | 4.7k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R7, R10, R11, R12, R21, R22, R33, R37, R49, R69 |
| 9 | 22uF/6.3V/20%/X5R/C0603 | OLIMEX_RLC-FP:C_0603_5MIL_DWS | C35, C37, C63, C66, C75, C102, C103, C123, C124 |
| 7 | 27pF/50V/5%/C0G/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C24, C25, C79, C80, C81, C113, C114 |
| 6 | 22R/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R14, R15, R16, R25, R26, R38 |
| 6 | 600OHM/2A/UPZ2012E-601-2R0TF/0805 | OLIMEX_RLC-FP:L_0805_5MIL_DWS | L1, L2, L5, L6, L7, L8 |
| 6 | BSS138(SOT-23) | OLIMEX_Transistors-FP:SOT23 | FET3, FET4, FET5, FET6, FET7, FET8 |
| 6 | LED/GREEN/0603 | OLIMEX_LEDs-FP:LED_0603_KA | LED_HOST1, LED_HOST2, LED_HOST3, LED_HOST4, LED_LINK1, USER_LED1 |
| 6 | NA(47uF/6.3V/20%/X5R/C0805) | OLIMEX_RLC-FP:C_0805_5MIL_DWS | C89, C90, C116, C125, C127, C135 |
| 4 | 22pF/50V/5%/C0G/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C1, C2, C44, C45 |
| 4 | Fiducial | OLIMEX_Other-FP:Fiducial1x3_Paste | FID2, FID4, FID6, FID8 |
| 4 | Fiducial | OLIMEX_Other-FP:Fiducial1x3 | FID1, FID3, FID5, FID7 |
| 4 | NA/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R19, R32, R63, R81 |
| 3 | 100k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R65, R71, R75 |
| 3 | 33R/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R58, R59, R60 |
| 3 | 470k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R90, R94, R96 |
| 3 | Mounting_Hole_NPTH | OLIMEX_Other-FP:Mounting_Hole_Drill-3.3mm_Clerance-7mm | MH1, MH2, MH3 |
| 3 | NA(22uF/6.3V/20%/X5R/C0603) | OLIMEX_RLC-FP:C_0603_5MIL_DWS | C34, C64, C122 |
| 3 | NA(RCLAMP0524P(SLP2510P8)) | OLIMEX_IC-FP:SLP2510P8_TEST | U9, U10, U11 |
| 3 | Opened | OLIMEX_Jumpers-FP:SJ_1_SMALLER | BAT_SENS_E1, BAT_SENS_E2, PWR_SENS_E1 |
| 2 | 1.0uH/4.2A/DCR=35mR/20%/2.00x1.60x1.00mm/L2016(PIM201610-1R0MTS00) | OLIMEX_RLC-FP:L_2016_MM | L3, L4 |
| 2 | 1.5k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R34, R35 |
| 2 | 10.5k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R46, R47 |
| 2 | 100nF/50V/20%/Y5V/C0603 | OLIMEX_RLC-FP:C_0603_5MIL_DWS | C15, C16 |
| 2 | 150pF/50V/2%/NP0/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C27, C28 |
| 2 | 1N5819S4(SOD123) | OLIMEX_Diodes-FP:SOD-123_1C-2A_KA | D2, D3 |
| 2 | 20pF/50V/5%/NP0/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C77, C78 |
| 2 | 24.9k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R24, R105 |
| 2 | 4.02k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R1, R2 |
| 2 | 5.1k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R5, R6 |
| 2 | 6.81k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R89, R103 |
| 2 | FPA-VZA2-15-LF | OLIMEX_Connectors-FP:TE_1-1734248-5 | MIPI-CSI1, MIPI-DSI1 |
| 2 | LED/RED/0603 | OLIMEX_LEDs-FP:LED_0603_KA | ACT/SUS1, PWR1 |
| 2 | LED/Yellow/0603 | OLIMEX_LEDs-FP:LED_0603_KA | CHARGE1, LED_ACT1 |
| 2 | NA(100nF/10V/20%/X5R/C0402) | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C33, C60 |
| 2 | NA(10k/R0402) | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R18, R28 |
| 2 | NA(10uF/6.3V/20%/X5R/C0402) | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C26, C83 |
| 2 | NA(120pF/50V/5%/C0G/C0402) | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C59, C62 |
| 2 | NA(2.2k/R0402) | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R29, R30 |
| 2 | NA(27pF/50V/5%/C0G/C0402) | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C72, C73 |
| 2 | Q25MHz/18pF/30ppm/4P/3.2x2.5mm(ABM8-25.000MHZ-D2Y-T) | OLIMEX_Crystal-FP:TSX-3.2x2.5mm_GND(3) | Q2, Q6 |
| 2 | TPS2116 | OLIMEX_IC-FP:SOT-5X3 | U13, U16 |
| 2 | TPS62A02ADRLR(SOT-563-6) | OLIMEX_Regulators-FP:SOT-563-6 | U4, U5 |
| 2 | USBB1-FRWH-4A(USB-Ax2) | OLIMEX_Connectors-FP:USB_TWO_LEVEL | USB_HOST1-2, USB_HOST3-4 |
| 2 | YTS-A016-X | OLIMEX_Buttons-FP:YTS-A016-X | BOOT1, RST1 |
| 1 | 0R/R0603 | OLIMEX_RLC-FP:R_0603_5MIL_DWS | R31 |
| 1 | 1.05k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R98 |
| 1 | 1000uF/10V/20% | OLIMEX_RLC-FP:CPOL-RM3.5mm_8.0x11.5mm_PTH | C117 |
| 1 | 10M/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R13 |
| 1 | 10R/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R77 |
| 1 | 110R/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R50 |
| 1 | 1M/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R87 |
| 1 | 1N5822/SS34/SMA | OLIMEX_Diodes-FP:SMA-KA | D4 |
| 1 | 1nF/2000V/10%/X7R/C1206 | OLIMEX_RLC-FP:C_1206_5MIL_DWS_ISO | C17 |
| 1 | 2.2nF/50V/10%/X7R/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C110 |
| 1 | 2.7k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R53 |
| 1 | 200R/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R79 |
| 1 | 220k/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R36 |
| 1 | 240R/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R52 |
| 1 | 30.1k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R44 |
| 1 | 4.7uF/X5R/20%/10V/C0402 | OLIMEX_RLC-FP:C_0402_5MIL_DWS | C13 |
| 1 | 4.7uH/2.33A/DCR=70mR/20%/CD43(NRS4018T4R7MDGJ) | OLIMEX_RLC-FP:CD42(43) | L11 |
| 1 | 49.9k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R51 |
| 1 | 6.04k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R76 |
| 1 | 6.19k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R17 |
| 1 | 6.49k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R45 |
| 1 | 8.25k/1%/R0402 | OLIMEX_RLC-FP:R_0402_5MIL_DWS | R95 |
| 1 | AP1231-3.3V(SOT23-5) | OLIMEX_Regulators-FP:SOT-23-5 | VR2 |
| 1 | BC817-40 | OLIMEX_Transistors-FP:SOT23 | Q5 |
| 1 | CE_Sign | OLIMEX_Signs-FP:CE_Sign | Sign_CE |
| 1 | CH217K(SOT23-6L) | OLIMEX_IC-FP:SOT23-6 | U6 |
| 1 | Closed(1-2) | OLIMEX_Jumpers-FP:SJ_2_SMALL_12_TIED | DCDC_Vin1 |
| 1 | ES8311(QFN-20) | OLIMEX_IC-FP:QFN-20_EP(21)_3x3x0.6mm_Pitch_0.4mm | U8 |
| 1 | ESDS314DBVR(SOT-23-5) | OLIMEX_Diodes-FP:SOT-23-5 | TVS1 |
The 310 most common of 344 parts.
It measures 60 × 90 mm and has 4 copper layers, 1.58 mm thick.
344 parts, built around the TPS2116DRL and BC817-40. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the bgates747/agon-extender repository on GitHub, at the commit this page was made from: the board is docs/hardware/esp32-p4-pc/upstream/HARDWARE/ESP32-P4-PC-Rev.B/ESP32-P4-PC_Rev_B.kicad_pcb and its schematic docs/hardware/esp32-p4-pc/upstream/HARDWARE/ESP32-P4-PC-Rev.B/ESP32-P4-PC_Rev_B.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

elektra42/freifunk-open-mppt
Open hard- and software solar maximum power point tracker

esp-ebus/ebus-adapter-hardware
This repo conains KiCAD design of eBUS bus powered (without external supply) adapter to WiFi.

clytle374/Open-T12-Soldering-Station
This is a clone of the cheap T12 soldering stations, attempting to eliminate the shortfalls of the cheap designs.

KaiPereira/CM5-SODIMM-Carrier
A fully open source CM5 carrier to turn your Pi into a Jetson in compact SO-DIMM format!

m-labs/ionpak
A modern, low-cost universal controller for hot-cathode ionization vacuum gauges. (WIP)

flummer/pcb-color-samples
Small PCB color samples to be used when designing printed circuit boards

