
Front rear dual can-2026-11-02 before testpoint swap
johnb302/cmu-embedded
Repo for distributed embedded systems at CMU, 18-449

Firmware for the STM32 Nucleo-F401RE (Zephyr) and the Raspberry Pi cockpit.
Lab4 is an open-source printed circuit board by samregardie, from the samregardie/449Project repository on GitHub. It is a 2-layer board of 121.5 × 269.9 mm with 504 parts on 373 nets, routed with 3,427 tracks and 458 vias.
It is built around the SN65HVD230D, WS2812B and CX3225SB16000H0FLJCC, with the ABS25-32.768KHZ-6-T and 6396BG among its other parts. Its parts include 112 capacitors, 112 resistors, 51 diodes, 23 ICs and 10 crystals. It belongs with the STM32 boards of this library.
Firmware for the STM32 Nucleo-F401RE (Zephyr) and the Raspberry Pi cockpit.
lab3/: Lab 3 apps (stm32-front, stm32-rear, pi/proxy_receiver); pins in lab3/pins.mdlab2/stm32/: Lab 2 Zephyr appsetup449: shell setup scriptIn every new shell, from 449Project/:
source ./setup449Then, from any folder:
west build-front # N2, steering
west flash-front
west build-rear # N3, drivetrain
west flash-rearAdd -p for a clean rebuild (west build-front -p). With both boards plugged in, add the board's serial number: west flash-front --dev-id <serial> (find it with STM32_Programmer_CLI -l st-link), or plug in one board at a time.
cd lab3/pi/proxy_receiver
sudo ./run.shIt sets up both buses, builds and starts. Enter sends one out-of-range CTRL (bad-input test). Ctrl+C stops it. Watch the buses with candump -c -t d any.
From 449Project/:
west build -p always -b nucleo_f401re lab2/stm32 # full rebuild
west flash
west debugserver # terminal 1
west debug # terminal 2For debugging, build with optimizations off:
west build -p always -b nucleo_f401re lab2/stm32 -- -DCONFIG_DEBUG_OPTIMIZATIONS=y -DCONFIG_DEBUG_THREAD_INFO=yThis repo sits inside a west workspace:
zephyrproject/ ← west workspace (not tracked): .venv/ .west/ zephyr/ modules/
└── 449Project/ ← this repowest flash) and OpenOCD (for west debug; on macOS run brew install openocd).mkdir zephyrproject && cd zephyrproject
python3 -m venv .venv
source .venv/bin/activate
pip install west
west init -m https://github.com/zephyrproject-rtos/zephyr .
west update
west packages pip --install
git clone <this-repo-url> 449Projectsource ./setup449
west build -p always -b nucleo_f401re ../zephyr/samples/basic/blinky
west flashsetup449 must be sourced, not executed. It activates the west venv and the Zephyr environment, and adds the Lab 3 shortcuts.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 35 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C28, C32, C35, C40, C42, C47, C49, C54, C56, C61, C62, C100, C105, C106, C107, C108 +19 |
| 28 | 470 | Resistor_SMD:R_0603_1608Metric | R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R39, R83, R84, R85 +12 |
| 25 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R3, R5, R10, R11, R12, R14, R16, R37, R41, R43, R44, R47, R49, R111, R112 +9 |
| 18 | 22uF | Capacitor_SMD:C_0805_2012Metric | C27, C30, C31, C34, C38, C39, C41, C45, C46, C48, C52, C53, C55, C59, C60, C79 +2 |
| 13 | GND | Library:TestPoint_Keystone_5015_Micro_Mini | TP56, TP57, TP57, TP57, TP58, TP76, TP77, TP78, TP79, TP80, TP81, TP82, TP83 |
| 13 | WS2812B | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D2, D3, D4, D5, D6, D7, D8, D21, D22, D24, D25, D26, D27 |
| 12 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C4, C7, C8, C11, C12, C15, C16, C19, C20, C23, C24 |
| 12 | 22pF | Capacitor_SMD:C_0603_1608Metric | C2, C3, C5, C6, C9, C10, C13, C14, C17, C18, C21, C22 |
| 10 | 120 | Resistor_SMD:R_0603_1608Metric | R18, R19, R20, R21, R63, R70, R77, R79, R109, R110 |
| 8 | 47K | Resistor_SMD:R_0603_1608Metric | R2, R4, R6, R13, R15, R17, R67, R76 |
| 8 | 4K7 | Resistor_SMD:R_0603_1608Metric | R64, R68, R69, R78, R99, R100, R101, R102 |
| 8 | CX3225SB16000H0FLJCC | Library:OSCCC320X250X60N | Y1, Y2, Y3, Y4, Y5, Y6, Y9, Y10 |
| 8 | D_Schottky | Diode_SMD:D_SMB | D28, D29, D30, D31, D32, D33, D34, D35 |
| 8 | PinHeader_1x01_P2.54mm_Vertical | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | 37, 39, 40, 43, 44, 44, 45, 45 |
| 7 | 510K | Resistor_SMD:R_0603_1608Metric | R23, R38, R45, R51, R57, R72, R75 |
| 7 | POWER | LED_SMD:LED_0603_1608Metric | D36, D37, D38, D39, D40, D41, D42 |
| 6 | 10nF | Capacitor_SMD:C_0603_1608Metric | C33, C36, C43, C50, C57, C81 |
| 6 | 30pF | Capacitor_SMD:C_0603_1608Metric | C29, C37, C44, C51, C58, C82 |
| 6 | 4.7uH | Inductor_SMD:L_Eaton_SDCHA1V80 | L4, L5, L6, L7, L8, L9 |
| 6 | 68k | Resistor_SMD:R_0603_1608Metric | R24, R40, R46, R52, R58, R73 |
| 6 | CANA_Z1 | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | J10, J11, J12, J13, J14, J15 |
| 6 | MCP2515-xST | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U1, U9, U11, U13, U15, U17 |
| 6 | PG | Library:TestPoint_Keystone_5015_Micro_Mini | TP50, TP51, TP52, TP53, TP54, TP55 |
| 6 | REG_IN | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP20, JP22, JP24, JP26, JP28, JP32 |
| 6 | RXCAN | LED_SMD:LED_0603_1608Metric | D43, D45, D47, D49, D51, D53 |
| 6 | SN65HVD230 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U8, U10, U12, U14, U16, U18 |
| 6 | TPS564252DRLR | Regulator:SOT50P160X60-6N | IC1, IC2, IC3, IC4, IC5, IC6 |
| 6 | TXCAN | LED_SMD:LED_0603_1608Metric | D44, D46, D48, D50, D52, D54 |
| 4 | 1000pF | Capacitor_SMD:C_0603_1608Metric | C75, C76, C103, C104 |
| 4 | 1K | Resistor_SMD:R_0603_1608Metric | R80, R81, R82, R86 |
| 4 | 1uF | Capacitor_SMD:C_0603_1608Metric | C72, C74, C97, C99 |
| 4 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q1, Q3, Q4, Q5 |
| 4 | 4.3pF | Capacitor_SMD:C_0603_1608Metric | C65, C66, C68, C69 |
| 4 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C67, C71, C101, C102 |
| 4 | 7pF | Capacitor_SMD:C_0603_1608Metric | C109, C110, C111, C112 |
| 4 | ? | Resistor_SMD:R_0603_1608Metric | R103, R104, R105, R106 |
| 4 | TERM | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1, JP9, JP11, JP19 |
| 3 | 45k | Resistor_SMD:R_0603_1608Metric | R22, R42, R48 |
| 3 | 470 uF | Library:CP_Elec_8x11.9_A768 | C25, C26, C86 |
| 3 | DEGRADED_A | LED_SMD:LED_0603_1608Metric | D9, D14, D19 |
| 3 | DEGRADED_B | LED_SMD:LED_0603_1608Metric | D10, D15, D20 |
| 3 | DEG_A | Library:TestPoint_Keystone_5015_Micro_Mini | TP66, TP67, TP72 |
| 3 | DEG_B | Library:TestPoint_Keystone_5015_Micro_Mini | TP65, TP68, TP73 |
| 3 | ERR | Library:TestPoint_Keystone_5015_Micro_Mini | TP61, TP71, TP74 |
| 3 | ERROR | LED_SMD:LED_0603_1608Metric | D13, D18, D23 |
| 3 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm | JP4, JP5, JP6 |
| 3 | TEST | SWT0210_045026GSA:SW_SWT0210-045026GSA_REVA | S1, S4, S5 |
| 2 | 1MΩ | Resistor_SMD:R_0603_1608Metric | R9, R108 |
| 2 | 220k | Resistor_SMD:R_0603_1608Metric | R54, R60 |
| 2 | 30k | Resistor_SMD:R_0603_1608Metric | R55, R61 |
| 2 | 3MΩ | Resistor_SMD:R_0603_1608Metric | R8, R107 |
| 2 | ABS25-32.768KHZ-6-T | ABS25_32_768KHZ_6_T:XTAL_ABS25-32.768KHZ-6-T | Y7, Y8 |
| 2 | ACS712xLCTR-05B | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2, U4 |
| 2 | BEAD | Inductor_SMD:L_0603_1608Metric | FB1, FB2 |
| 2 | BUZZER | PS1240P02BT:XDCR_PS1240P02BT | LS1, LS2 |
| 2 | CAN_TX_A | Library:TestPoint_Keystone_5015_Micro_Mini | TP3, TP16 |
| 2 | CAN_TX_B | Library:TestPoint_Keystone_5015_Micro_Mini | TP4, TP17 |
| 2 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J16, J17 |
| 2 | RESET | SWT0210_045026GSA:SW_SWT0210-045026GSA_REVA | S2, S3 |
| 2 | STM32F401RETx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U3, U7 |
| 2 | STM_POWER | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP31, JP34 |
| 2 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP7, JP8 |
| 2 | SolderJumper_3_Bridged12 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabels | JP10, JP12 |
| 2 | V_BATT_SENSE | Library:TestPoint_Keystone_5015_Micro_Mini | TP31, TP32 |
| 1 | 12V_IN | Library:TestPoint_Keystone_5015_Micro_Mini | TP10 |
| 1 | 15V | Diode_SMD:D_SOD-123 | D1 |
| 1 | 20m | Resistor_SMD:R_1206_3216Metric | R71 |
| 1 | 3.3 Souce | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabels | JP2 |
| 1 | 3557-2 | 3557_2:FUSE_3557-2 | F2 |
| 1 | 6396BG | Library:HSINK_6396BG | HS1 |
| 1 | AP7361EA-SPR-13 | Library:AP7361EA_SO-8EP_Diodes | U6 |
| 1 | Barrel_Jack | Connector_BarrelJack:BarrelJack_Horizontal | J18 |
| 1 | CAN_RX_A | Library:TestPoint_Keystone_5015_Micro_Mini | TP19 |
| 1 | CAN_RX_B | Library:TestPoint_Keystone_5015_Micro_Mini | TP18 |
| 1 | CMD_TX | Library:TestPoint_Keystone_5015_Micro_Mini | TP2 |
| 1 | CURR_PRE | Library:TestPoint_Keystone_5015_Micro_Mini | TP47 |
| 1 | CUR_POST | Library:TestPoint_Keystone_5015_Micro_Mini | TP75 |
| 1 | DIR_A | Library:TestPoint_Keystone_5015_Micro_Mini | TP59 |
| 1 | FL | Library:TestPoint_Keystone_5015_Micro_Mini | TP70 |
| 1 | FL_BLINKER | LED_THT:LED_D3.0mm | D12 |
The 408 most common of 504 parts.
It measures 121.5 × 269.9 mm and has 2 copper layers, 1.6 mm thick.
504 parts, built around the SN65HVD230D, WS2812B, CX3225SB16000H0FLJCC and ABS25-32.768KHZ-6-T. 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 samregardie/449Project repository on GitHub, at the commit this page was made from: the board is lab4/Schematic/Schematic.kicad_pcb and its schematic lab2/Schematic/Schematic.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 samregardie before reusing the design.

johnb302/cmu-embedded
Repo for distributed embedded systems at CMU, 18-449


electrodyssey/lboard2
experimental Spartan-6 sound processing board with XC6SLX9-TQG144 and TLV320AIC3204

devtank-ltd/kicad_hiltop_board_template
HILTOP Reference design template for new plug-in test modules/cards


caleboblepias/precision-gantry-control-system
This project implements the embedded control backbone of an automated pick and place operations. The system centers on a custom STM32F103RB-based PCB running bare-metal firmware for precise motion control of stepper and…

