All projects
Role
Sole designer
Course
ECE-UY 4423, NYU Tandon
Tools
Altium Designer
Board
2-sided assembly · Rev R1
Status
Design complete · Gerbers generated

Highlights

  • Sole designer of a custom STM32 (ARM Cortex-M4) development board in the Arduino Uno R3 form factor.
  • Wide-range 6–36 V input through an XT30 connector, regulated by an LMR51450 synchronous buck (5 V) and LM3940 LDO (3.3 V), with TPS2113 USB/external power multiplexing.
  • USB-C with 5.1 kΩ CC pull-downs, ESD protection on data and VBUS, a ferrite-filtered supply, an LM3526 USB power switch, and 90 Ω differential-pair routing; supports USB DFU programming.
  • SWD debug, external crystal oscillator, reset/BOOT circuitry, status LED, and full supply decoupling.
  • Uno-compatible headers exposing USART, SPI, two I²C buses, ADC inputs, and GPIO.
  • Power circuitry placed on the bottom side to keep the top side clear for the MCU and I/O.

Overview

NYUno R1 is an educational STM32 development board I designed independently for ECE-UY 4423: PCB Design for Embedded Systems at NYU Tandon School of Engineering. It places an STM32 ARM Cortex-M4 microcontroller on the Arduino Uno R3 footprint and header layout, so it can accept Uno-format shields while providing a more capable processor, wide-range power input, and on-board debug.

The project covered the complete design flow in Altium Designer: a four-sheet schematic (MCU, USB-C, power, and connectors), component placement on both sides of the board, routing, and Gerber generation. The board was not fabricated. This design established the STM32 support circuitry and power architecture later reused in the NYUDroneFC flight controller.

Fig 1 — 3D render of NYUno R1 (top side): STM32, Uno-format headers, USB-C, SWD, XT30 input, reset and BOOT buttons.
Fig 1 — 3D render of NYUno R1 (top side): STM32, Uno-format headers, USB-C, SWD, XT30 input, reset and BOOT buttons.

Specifications

MicrocontrollerSTM32 ARM Cortex-M4 (LQFP64)
Form factorArduino Uno R3 footprint and header layout
Input power6–36 V via XT30 connector, or 5 V USB-C
5 V railLMR51450 synchronous buck (5.6 µH, 100 kΩ / 19.1 kΩ feedback)
3.3 V railLM3940 3.3 V LDO
Power pathTPS2113 automatic USB / external-supply multiplexer
Input protectionTVS diode and bulk capacitance on the external input
USBUSB-C (sink, 5.1 kΩ CC pull-downs) · 90 Ω differential pair · DFU mode
USB protectionLXES15AAA1 ESD diodes on D+/D− · ESD351 on VBUS · 120 Ω ferrite filter · LM3526 power switch
DebugSWD via 4-pin Molex 53261 connector, 100 Ω series resistors
ClockExternal crystal oscillator with 30 pF load capacitors
User I/OReset and BOOT pushbuttons · status LED
HeadersDigital (J3, J4), power (J1), analog A0–A5 (J2)
Peripherals routedUSART2, SPI1, I²C1, I²C3 (2.2 kΩ pull-ups), ADC inputs, GPIO

Power architecture

The board accepts a wide 6–36 V external input through an XT30 connector, protected by a TVS diode and bulk capacitance. An LMR51450 synchronous buck converter steps the input down to 5 V, and a TPS2113 multiplexer selects automatically between the buck output and USB power to form the 5 V system rail. An LM3940 LDO then produces a low-noise 3.3 V rail for the microcontroller.

Fig 2 — Power schematic: XT30 input and TVS protection, LMR51450 buck, TPS2113 power multiplexer, LM3940 LDO.
Fig 2 — Power schematic: XT30 input and TVS protection, LMR51450 buck, TPS2113 power multiplexer, LM3940 LDO.

USB-C interface

The USB-C port is configured as a sink with 5.1 kΩ pull-downs on CC1 and CC2. The data lines are protected by LXES15AAA1 ESD diodes and routed as a 90 Ω differential pair to the MCU. VBUS passes through an ESD351 protection device and a 120 Ω ferrite bead with filtering capacitors before reaching an LM3526 power distribution switch. The port supports programming through the STM32's USB DFU bootloader.

Fig 3 — USB-C schematic: CC configuration, data-line and VBUS ESD protection, ferrite filtering, LM3526 power switch.
Fig 3 — USB-C schematic: CC configuration, data-line and VBUS ESD protection, ferrite filtering, LM3526 power switch.

Microcontroller and support circuitry

  • SWD debug: 4-pin Molex connector with 100 Ω series resistors on SWDIO and SWCLK.
  • Clock: external crystal oscillator with 30 pF load capacitors, placed adjacent to the MCU.
  • Reset and BOOT: pushbuttons with 10 kΩ resistors; BOOT selects the system bootloader for DFU recovery.
  • Decoupling: 0.1 µF capacitors on each VDD pin plus 2.2 µF bulk, and 2.2 µF on both VCAP pins for the internal core regulator.
  • Peripheral mapping: USART2, SPI1, I²C1, I²C3, ADC channels, and GPIO assigned to the Uno-format headers.
Fig 4 — MCU schematic: STM32, SWD, crystal, reset/BOOT, status LED, I²C pull-ups, decoupling, and header mapping.
Fig 4 — MCU schematic: STM32, SWD, crystal, reset/BOOT, status LED, I²C pull-ups, decoupling, and header mapping.

PCB layout

The layout follows the Arduino Uno outline and mounting holes. I placed the power stage (buck converter, inductor, multiplexer, and LDO) on the bottom side, keeping the top side for the MCU, USB-C, SWD, buttons, and headers. The MCU sits at the center of the board with signals fanned out to the headers, and the ground pour is via-stitched across both sides.

Skills applied

  • Independent ownership of a complete board design, from schematic capture to Gerber generation.
  • Wide-input power design: buck regulation, LDO post-regulation, and power-path multiplexing.
  • USB-C sink configuration, ESD protection, and 90 Ω differential-pair routing.
  • Microcontroller support circuitry: clocking, reset/boot, SWD, and decoupling.
  • Double-sided component placement within a standard board outline.

Available for full-time engineering roles

Electrical, hardware, embedded, and test & validation engineering positions beginning after May 2027 graduation. Open to relocation.