
Sensor node v1
asinghani/rp2040_aprs_sensor_node
RP2040-based sensor node PCB that communicates on the APRS (Automatic Packet Reporting System) network

F22 Distributed Embedded Final Project: UWB Drive-by-Wireless
449pcb v1 is an open-source printed circuit board by asinghani, from the asinghani/drive-by-wireless repository on GitHub. It is a 4-layer board of 70 × 70 mm with 56 parts on 76 nets, routed with 454 tracks and 418 vias.
It is built around the RP2040, DWM3000 and ECS-120-20-3X-TR. Its parts include 17 resistors, 16 capacitors, 7 connectors, 4 ICs and 4 diodes. It belongs with the RP2040 boards of this library.
UWB drive-by-wireless
Clone pico-sdk and pico-extras and put them in your environment variables as PICO_SDK_PATH and PICO_EXTRAS_PATH. Also clone FreeRTOS-Kernel, smp branch and put its path as FREERTOS_KERNEL_PATH
cd firmware
rm -r build; mkdir build; cd build (its safest to delete and re-make the build directory every time because CMake caches things incorrectly sometimes)
cmake .. && make -j8 (this will build all 3 targets - cockpit, steering, and drivetrain)
This should yield zone_cockpit.uf2, zone_steering.uf2, and zone_drivetrain.uf2 which can be flashed to the boards.
- firmware/ (the directory for the firmware)
- main.c (main entry point, shouldn't put any more code into this file)
- utils.h (utility functions for math, safety, etc.)
- config.h (configuration of GPIO pins, etc.)
- FreeRTOSConfig.h
- z_cockpit/
- main_cockpit.c (entry point for cockpit zone)
- z_drivetrain/
- main_drivetrain.c (entry point for drivetrain zone)
- z_steering/
- main_steering.c (entry point for steering zone)
- common/ (common stuff)
- freertos_callbacks.c
- peripherals/ (drivers for hardware peripherals)
- testpoints.h (driver for test points)
- experimental/ (for test programs)
- scripts/ (scripts to run on a host machine)
- proxy_gui.py (the steering wheel proxy, to run on Windows)
- hardware/ (hardware / CAD files)
- 449pcb_v1/ (PCB CAD)
- schematic.pdf (board schematic, for easy reference)| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 100n | Capacitor_SMD:C_0603_1608Metric | C5, C10, C13, C14, C15, C17 |
| 6 | 220R | Resistor_SMD:R_0603_1608Metric | R1, R2, R6, R8, R13, R14 |
| 5 | 47R | Resistor_SMD:R_0603_1608Metric | R5, R9, R10, R11, R12 |
| 4 | 1u | Capacitor_SMD:C_0603_1608Metric | C2, C4, C12, C16 |
| 4 | hole | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 2 | 10u | Capacitor_SMD:C_0603_1608Metric | C1, C6 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R7, R15 |
| 2 | 27R | Resistor_SMD:R_0603_1608Metric | R16, R17 |
| 2 | 27p | Capacitor_SMD:C_0603_1608Metric | C7, C8 |
| 2 | 5K1 | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 1 | 0.1u | Capacitor_SMD:C_0603_1608Metric | C9 |
| 1 | 22u | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | AZ1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U1 |
| 1 | BlinkL | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J4 |
| 1 | BlinkR | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J5 |
| 1 | DWM3000 | DWM3000:DWM3000 | U2 |
| 1 | DW_PWR | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP2 |
| 1 | DW_RST | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | Debug | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J7 |
| 1 | ECS-120-20-3X-TR | ECS-120-20-3X-TR:XTAL_ECS-120-20-3X-TR | Y1 |
| 1 | GD25Q128 | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U3 |
| 1 | IO | Connector_PinHeader_2.54mm:PinHeader_1x14_P2.54mm_Vertical | J6 |
| 1 | PWR | LED_SMD:LED_0805_2012Metric | D4 |
| 1 | PwrScrew | TerminalBlock_4Ucon:TerminalBlock_4Ucon_1x02_P3.50mm_Horizontal | J2 |
| 1 | RP2040 | RP2040:RP2040-QFN-56 | U4 |
| 1 | RXLED | LED_SMD:LED_0805_2012Metric | D2 |
| 1 | Reset | Button_Switch_SMD:SW_SPST_PTS810 | SW1 |
| 1 | STATUS | LED_SMD:LED_0805_2012Metric | D3 |
| 1 | TXLED | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | TestPts | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J1 |
| 1 | USB_USER | USB_C_Receptacle_HRO_TYPE-C-31-M-12:USB_C_HRO-31-M-12_nofront | J3 |
It measures 70 × 70 mm and has 4 copper layers, 1.6 mm thick.
56 parts, built around the RP2040, DWM3000 and ECS-120-20-3X-TR. 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 asinghani/drive-by-wireless repository on GitHub, at the commit this page was made from: the board is hardware/449pcb_v1/449pcb_v1.kicad_pcb and its schematic hardware/449pcb_v1/449pcb_v1.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 asinghani before reusing the design.

asinghani/rp2040_aprs_sensor_node
RP2040-based sensor node PCB that communicates on the APRS (Automatic Packet Reporting System) network

asinghani/ibm-5151-controller
Building a VT100 emulator out of an IBM 5151 monitor and an FPGA


GrimGT/Meridian
Tagged ranging and coordinate position system for FRC events. Using UWB ranging with anchors and tags to provide realtime positioning of robots

manyetox/Autonomous-Photonics-Carrier
Source-available modular mobile carrier for autonomous photonics experiments using ESP32 control, optical flow, IMU sensing and magnetic wheel encoding.

victorstoica114/UWB_Module_ESP_IDF
ESP-IDF 6.0.2 firmware for the custom UWB Module V1.0 Rev.B, based on an ESP32-S3-WROOM-1-N16R8. The same application image runs on every module; persistent identity and runtime configuration select the role and active…

aniranaway/Drone_Swarm
A fully custom, low-level embedded hardware and firmware platform designed for autonomous multi drone swarms. The system integrates custom STM32-based flight controller PCBs, coreless DC motor drive arrays for a micro…

CaramelFur/UWB-RTLS-Node-PCB
CustomLibs has all custom libraries and 3D models used in this project. This is merged with GeneratedLibs, which contains all the libraries and 3D models from easyeda.