
Metalclaw pico rp2
renzbagaporo/metalclaw-pico-rp2
An RP2354B board for testing firmware on a Raspberry Pi Pico or Pico 2. Metalclaw firmware provides Python-controlled peripheral emulation and a USB debug probe.

Cassette-futurism communicator/scanner prop for the CrowPanel Advance ESP32-P4 (hardware V1.0). Custom ESP-IDF firmware structured as a generic prop engine: stable firmware whose behavior is driven live over WiFi, so…
ESP32-P4 Display 7.0 inch V1.0 is an open-source printed circuit board by hellosamblack, from the hellosamblack/CrowPanelProp repository on GitHub. It is a 2-layer board of 176.9 × 104 mm with 544 parts on 306 nets, routed with 4,700 tracks and 1,219 vias.
It is built around the NS4168, ME6211C33M5G-N and LMBR140ET1G, with the 1N5817WS, DSS34 and NCE20P45Q among its other parts. Its parts include 172 resistors, 150 capacitors, 102 connectors, 12 diodes and 9 transistors. It belongs with the lEDs and displays boards and the ESP32 and RISC-V boards of this library.
Cassette-futurism communicator/scanner prop for the CrowPanel Advance ESP32-P4 (hardware V1.0). Custom ESP-IDF firmware structured as a generic prop engine: stable firmware whose behavior is driven live over WiFi, so scenes/LEDs/screen text can be cued and iterated without reflashing.
Forked from example/V1.0/idf-code/Lesson09-LVGL_Lighting_Control.
| Module | Role |
|---|---|
components/bsp_display, bsp_illuminate, bsp_i2c | Display + touch + backlight bring-up (reused from Lesson09) |
components/bsp_io | Discrete on/off LEDs + debounced buttons (espressif/button) |
main/prop_engine | The brain. Scene state machine + 10 Hz animation task; single source of truth, fans state out to observers |
main/prop_net | WiFi AP+STA via the onboard ESP32-C6 (esp_hosted); STA credentials in NVS |
main/prop_api | HTTP server: operator web console, REST /cmd, WebSocket /ws, OTA /ota |
main/prop_ui | LVGL amber-on-black retro readout — a pure view of engine state |
Inputs (physical buttons, remote commands) all funnel through prop_engine, which drives both the LEDs
and the screen, so they never drift out of sync.
IDLE, SCANNING, SIGNAL_ACQUIRED, COMMS, ALERT — each defines status text + an animated LED pattern.
Requires ESP-IDF ≥ 5.4.2 (v6.0.1 recommended).
Windows:
Use the VS Code ESP-IDF extension terminal, or export.ps1 from your IDF install:
idf.py set-target esp32p4
idf.py build
idf.py -p <PORT> flash monitor # first flash over USB (UART0)Or run the helper: pwsh tools/dev.ps1 bf -Port COM7
Linux / Debian:
Source your export.sh script to activate the environment:
. ~/.local/esp/esp-idf/export.sh
idf.py set-target esp32p4
idf.py build
idf.py -p /dev/ttyUSB0 flash monitorOr run the helper: ./tools/dev.sh bf -Port /dev/ttyUSB0
The espressif/button, display, and WiFi components download automatically on first build
(declared in the idf_component.yml files).
Find the device IP from the serial log (or use the AP PROP-COMMS / pass scanner99, then 192.168.4.1).
# REST
curl -X POST http://<ip>/cmd -d '{"cmd":"scene","value":"SCANNING"}'
curl -X POST http://<ip>/cmd -d '{"cmd":"led","name":"alert","on":true}'
curl -X POST http://<ip>/cmd -d '{"cmd":"channel","value":"CH 04 / 147.55 MHz"}'
curl http://<ip>/state
# Operator cue board (scene buttons, live state): open http://<ip>/ in a browser
# WebSocket: ws://<ip>/ws — send the same JSON commands, receive state broadcastsCommand schema: see the top of main/include/prop_api.h.
CLI (recommended) — build + push in one command:
Windows (PowerShell):
pwsh tools/dev.ps1 ota # defaults to comm-unit-7.local
pwsh tools/dev.ps1 ota -DeviceHost 172.17.2.167 # explicit IP fallbackLinux / Debian (Bash):
./tools/dev.sh ota # defaults to comm-unit-7.local
./tools/dev.sh ota -DeviceHost 172.17.2.167 # explicit IP fallbackBrowser — open http://comm-unit-7.local/, scroll to FIRMWARE UPDATE, pick the
.bin (usually build/communicator.bin), click UPLOAD. A progress percentage appears
and the page reports "done — rebooting…" when the device is switching over.
Raw curl (if you prefer):
idf.py build
curl -X POST "http://<ip>/ota?token=prop-ota-2024" --data-binary @build/communicator.binRollback safety: the bootloader is configured with CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE.
A freshly-OTA'd image boots as PENDING_VERIFY; app_main calls
esp_ota_mark_app_valid_cancel_rollback() after the full stack is up. If the new image
crashes before reaching that point the bootloader automatically reverts to the previous
partition on the next reset — no USB reflash required.
Confirm the update landed: GET /state includes a "version" field (from git describe), and the web console state line shows v<version>.
Change PROP_OTA_TOKEN in main/include/prop_api.h and the AP password in
main/include/prop_net.h before any real deployment.
GPIO assignments are placeholders in components/bsp_io/bsp_io.c. Only GPIO48
(the UART1-RX header pin) is confirmed broken-out and free. Verify every other pin against the V1.0
schematic in Eagle_SCH&PCB/1.0/ and the connector silkscreen before wiring. Defaults used:
power=GPIO48, signal=GPIO47 (UART1-TX), alert=GPIO20mode=GPIO33 (UART3-IN), action=GPIO11Buttons: mode cycles scenes, action jumps to SCANNING (edit on_button() in main/main.c).
Builds clean on ESP-IDF v6.0.1 (target esp32p4). The Lesson09/17 examples were written for 5.4.2; this project was migrated to 6.0. Changes required for 6.0 (all already applied):
espressif/cjson dependency; REQUIRES cjson (not json).esp_wifi_remote bumped to 1.x (0.x referenced the removed esp_interface.h); paired with esp_hosted 2.12.9.driver component split → BSP components now require esp_driver_i2c / esp_driver_gpio / esp_driver_ledc.lcd_color_rgb_pixel_format_t→lcd_color_format_t, LCD_COLOR_PIXEL_FORMAT_*→LCD_COLOR_FMT_*, .pixel_format→.in_color_format/.out_color_format, .flags.use_dma2d removed, RGB666 enum gone.bsp_i2c.h.sdkconfig.defaults: 16 MB flash + CONFIG_LV_FONT_MONTSERRAT_24.Compiles successfully (communicator.bin builds). Not yet flashed/run on hardware — pending the
CH341 USB-serial driver + the board appearing on a COM port. Then work through the verification checklist
in the project plan.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 88 | TEST_PADPAD-1.5MM | TEST_PAD-1.5MM | P1, P2, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22, P23 +72 |
| 30 | 0R | R0402 | R12, R19, R20, R36, R37, R38, R100, R102, R105, R109, R127, R162, R190, R216, R217, R332 +14 |
| 24 | 0R | R0603 | R10, R13, R24, R48, R103, R112, R113, R114, R115, R118, R119, R129, R149, R184, R188, R189 +8 |
| 24 | 100nF | 0603 | C11, C15, C19, C20, C21, C35, C37, C52, C53, C144, C150, C151, C152, C155, C156, C159 +8 |
| 23 | 10K | R0603 | R1, R5, R15, R18, R27, R28, R29, R30, R53, R54, R61, R106, R116, R160, R180, R181 +7 |
| 22 | 1uF_NC | C0402 | C117, C118, C119, C120, C121, C122, C123, C124, C125, C126, C127, C128, C129, C131, C133, C137 +6 |
| 18 | 100nF | C0402 | C5, C7, C36, C40, C41, C43, C45, C46, C50, C60, C61, C63, C72, C108, C113, C115 +2 |
| 16 | 4.7K | R0603 | R22, R45, R46, R51, R52, R56, R57, R58, R59, R62, R74, R78, R93, R94, R97, R98 |
| 13 | 0R_NC | R0402 | R107, R110, R111, R124, R125, R126, R128, R130, R146, R148, R161, R170, R177 |
| 13 | 10uF | C0402 | C6, C8, C42, C44, C47, C48, C49, C56, C71, C107, C112, C114, C116 |
| 12 | TPTP08R | TP08R_385 | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12 |
| 11 | 10uF | 0603 | C14, C16, C38, C74, C78, C79, C83, C136, C149, C153, C157 |
| 9 | 1uF | 0603 | C1, C2, C3, C10, C17, C22, C69, C86, C102 |
| 8 | 1uF | C0402 | C51, C55, C57, C58, C59, C64, C65, C66 |
| 8 | 5.1K | R0603 | R3, R4, R17, R26, R47, R50, R96, R101 |
| 8 | 51K | R0603 | R81, R82, R83, R84, R85, R86, R173, R175 |
| 7 | BSS138W_SOT323 | MOS_SOT323 | Q1, Q2, Q4, Q6, Q7, Q8, Q9 |
| 6 | 100K | R0402 | R63, R64, R68, R108, R122, R123 |
| 6 | 100R | R0402 | R152, R153, R154, R155, R156, R157 |
| 6 | 1nF | 0603 | C67, C68, C85, C105, C106, C158 |
| 6 | LMBR140ET1G | LMBR140ET1G | D005, D012, D013, D015, D017, D018 |
| 4 | 0R/800mA | L0603 | FB17, FB18, FB19, FB20 |
| 4 | 100K | R0603 | R2, R117, R139, R165 |
| 4 | 100nF_NC | C0402 | C39, C130, C132, C145 |
| 4 | 10uF/10V+ | 0603 | C12, C27, C28, C32 |
| 4 | 1K/磁珠 | L0603 | FB2, FB3, FB10, FB11 |
| 4 | 1K/磁珠_NC | L0603 | FB7, FB8, FB9, FB12 |
| 4 | 47uF | 0603 | C23, C24, C103, C104 |
| 4 | OR_NC | R0402 | R141, R142, R144, R145 |
| 4 | THO-M3.25MM-HOLE | THO-M3.2_5MM-HOLE | J12, J14, J15, J18 |
| 3 | 0R/800mA_NC | L0402 | FB4, FB5, FB13 |
| 3 | 100nF/50V | 0603 | C91, C100, C111 |
| 3 | 100nF_NC | 0603 | C135, C147, C154 |
| 3 | 10K | R0402 | R65_NC0, R131, R171 |
| 3 | 10uF/25V | 0603 | C90, C99, C110 |
| 3 | 1N5817WS | D_SOD323 | D4, D008, D11 |
| 3 | 2K | R0603-SP | R16, R31, R32 |
| 3 | DSS34 | D_SOD123FL | D2, D007, D10 |
| 3 | OR_NC | R0603-SP | R79, R147, R185 |
| 3 | PH2.0WT-2PIN | PH2.0WT-2PIN | J3, J4, J6 |
| 2 | H7-2.54-18.28X2.5X5MM | J9, J11 | |
| 2 | 0R/800mA_NC | L0603 | FB15, FB16 |
| 2 | 10K_NC | R0402 | R72, R73 |
| 2 | 12pF | C0402 | C29, C30 |
| 2 | 15pF | C0402 | C33, C34 |
| 2 | 1uF/25V | 0603 | C96, C97 |
| 2 | 1uF/50V | 0603 | C98, C109 |
| 2 | 2.2μH_C5179446 | 1008(2520) | L1, L6 |
| 2 | 20K_NC | R0603 | R178, R179 |
| 2 | 220R | R0603 | R172, R174 |
| 2 | 22pF | 0603 | C26, C31 |
| 2 | 22pF_NC | C0402 | C89, C101 |
| 2 | 22uF | C0805 | C13, C18 |
| 2 | 4.02K | R0402 | R104, R158 |
| 2 | 4.7uH_C45385206_2.4A | 1008(2520) | L2, L5 |
| 2 | 47uF_NC | 0603 | C134, C148 |
| 2 | 5.1K_NC | R0603 | R120, R121 |
| 2 | HY2.0-4P-SMT | CONNECTOR_4P-SMD-2.0 | J2, J13 |
| 2 | KEY-4.5X4.5 | KEY-4.5X4.5-SMD | K3, K4 |
| 2 | ME6211C33M5G-N | SOT95P282X145-5N | IC7, IC8 |
| 2 | MT3406_C22462728 | SOT95P280X145-5N | U9, U10 |
| 2 | NC/499K | R0603 | R14, R21 |
| 2 | NCE20P45Q | PDFN3333 | Q3, Q5 |
| 2 | NS4168 | NS4168-ESOP-8 | U3, U13 |
| 2 | OR | R0402 | R132, R134 |
| 2 | TYPEC-3.0-16P-SMD | USB-3.0TYPEC-SMD | J1, J16 |
| 1 | P4-LCD-7.0-BK3 | U$113 | |
| 1 | 9P-SMD-W_-RING | J5 | |
| 1 | 0R | L0805 | R182 |
| 1 | 0R | R0603-SP | R25 |
| 1 | 0R | C0402 | R23 |
| 1 | 0R/800mA | L0805 | FB21 |
| 1 | 0R/800mA | L0402 | FB6 |
| 1 | 0R/800mA_NC | R0402 | FB14 |
| 1 | 1.1R | R0603-SP | R159 |
| 1 | 1.91K | R0402 | R168 |
| 1 | 100k | R0603 | R186 |
| 1 | 100nF/50V | C0402 | C95 |
| 1 | 10K_NC | R0603 | R33 |
| 1 | 10UF | 0603 | C70 |
The 490 most common of 544 parts.
It measures 176.9 × 104 mm and has 2 copper layers, 1.6 mm thick.
544 parts, built around the NS4168, ME6211C33M5G-N, LMBR140ET1G and 1N5817WS. 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 hellosamblack/CrowPanelProp repository on GitHub, at the commit this page was made from: the board is docs/hardware/schematic/ESP32-P4 Display 7.0 inch V1.0.kicad_pcb and its schematic docs/hardware/schematic/ESP32-P4 Display 7.0 inch V1.0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask hellosamblack before reusing the design.

renzbagaporo/metalclaw-pico-rp2
An RP2354B board for testing firmware on a Raspberry Pi Pico or Pico 2. Metalclaw firmware provides Python-controlled peripheral emulation and a USB debug probe.

cherry-embedded/HSCanT-hardware
HSCanT is a USB to 4-channel CAN FD tool designed based on the HPM5321 chip.


hardenedlinux/cheap-pcb
Cheap PCB: Better understanding the current status of hardware supply chain

akionu/mameTDT
$\theta=−5.3 × 10^{−2} + 2.92 × 10^{−2} \epsilon−5.5 × 10^{−4} \epsilon^2+ 4.3 × 10^{−6}\epsilon^3$ ただし、土の水分量$\theta [m^3/m^3]$、比誘電率$\epsilon$です。

mbayrao/YMC-Mathpad
這款鍵盤靈感來自Summa-Congni/Mathpad,當我在2025年的某日給女朋友看到能夠方便輸入數學符號的Mathpad 她知道我喜歡也能製做出電路板,便鼓勵我著手製作此project而誕生。 此板為第一版設計,製作時有許多問題導致設計不斷變更直到最後。 主要思路為無線藍芽連接內置5V USB Type C充電電路並提供電量指示燈、有OLED螢幕可供視覺回饋挑選符號

mzuelch/CATs-Eurosynth
Analog Synth Eurorack Modules

repmanga/steering_wheel
This is PCB file of multisteering wheel for ECUmaster EMU black ECU