Building blocks¶
Generated from the code
This page is written from wholeboard/blocks.py each time the site is built. To change it, change the code.
Proven circuits the designer starts from. Each has real LCSC parts and named ports; a design connects the ports to its own nets and the block's parts are renumbered and merged in. See Add your own building block for the format.
At a glance¶
| Block | Category | What it is |
|---|---|---|
usb_c_power |
power input | USB-C power input (5 V, up to 3 A from a USB-C charger) |
usb_c_data |
power input | USB-C with USB 2.0 data (power + D+/D-, ESD protected) |
ldo_ams1117_3v3 |
regulator | 3.3 V LDO, 800 mA (AMS1117-3.3, SOT-223) |
ldo_ap2112k_3v3 |
regulator | 3.3 V LDO, 600 mA, low dropout (AP2112K-3.3, SOT-23-5) |
ldo_xc6206_3v3 |
regulator | 3.3 V LDO, 200 mA, 1 µA quiescent (XC6206P332MR, SOT-23) |
esp32s3_wroom1 |
microcontroller | ESP32-S3 Wi-Fi/Bluetooth module with reset and boot buttons (ESP32-S3-WROOM-1-N16R8) |
esp32c3_wroom02 |
microcontroller | ESP32-C3 Wi-Fi/Bluetooth module with reset and boot buttons (ESP32-C3-WROOM-02-N4) |
rp2040_min |
microcontroller | RP2040 minimum system: 16 MB flash, 12 MHz crystal, USB, BOOTSEL and RESET |
lipo_charger_tp4056 |
battery | Single-cell LiPo/Li-ion charger, 580 mA (TP4056) with charge/done LEDs |
can_sn65hvd230 |
interface | CAN bus transceiver, 3.3 V (SN65HVD230) with 120 Ω termination |
rs485_sp3485 |
interface | RS-485 transceiver, 3.3 V half duplex (SP3485) with 120 Ω termination |
qwiic_i2c |
connector | Qwiic / STEMMA QT I²C connector (JST SH 4-pin) with pull-ups |
led_indicator |
indicator | Indicator LED with series resistor (red 0603, 1 kΩ) |
button |
input | Push button to GND (TS-1187A) with optional pull-up and debounce cap |
usb_uart_ch340c |
interface | USB to UART bridge at 3.3 V (CH340C, no crystal needed) |
buck_tps563201_3v3 |
regulator | 3.3 V buck converter, 3 A, 4.5-17 V in (TPS563201, SOT-23-6) |
buck_tps563201_5v |
regulator | 5 V buck converter, 3 A, 4.5-17 V in (TPS563201, SOT-23-6) |
usb_pd_ch224k_9v |
power input | USB-C Power Delivery input, fixed 9 V (CH224K PD sink) |
usb_pd_ch224k_12v |
power input | USB-C Power Delivery input, fixed 12 V (CH224K PD sink) |
reverse_polarity_pmos |
protection | Reverse-polarity protection with a P-MOSFET (AO3401A), inputs up to 12 V |
stm32g030_min |
microcontroller | STM32G030 minimum system (STM32G030F6P6, TSSOP-20) with SWD pads |
stm32c011_min |
microcontroller | STM32C011 minimum system (STM32C011F6P6, TSSOP-20) with SWD pads |
esp32c6_mini1 |
microcontroller | ESP32-C6 Wi-Fi 6 / Bluetooth / Thread module with reset and boot buttons (ESP32-C6-MINI-1) |
nrf52840_mdbt50q |
microcontroller | nRF52840 Bluetooth 5 / Thread module with native USB (Raytac MDBT50Q-1MV2) |
ethernet_lan8720a |
interface | 10/100 Ethernet: LAN8720A RMII PHY with an RJ45 MagJack (HR911105A) |
motor_drv8833 |
driver | Dual H-bridge for two DC motors or one stepper, 1.5 A, 2.7-10.8 V (DRV8833) |
sensor_bme280 |
sensor | Temperature, humidity and pressure sensor on I²C (Bosch BME280, address 0x76) |
sensor_sht40 |
sensor | Temperature and humidity sensor on I²C (Sensirion SHT40, address 0x44) |
Power input¶
usb_c_power¶
USB-C power input (5 V, up to 3 A from a USB-C charger)
USB-C receptacle wired as a power sink: 5.1 kΩ pull-downs on CC1/CC2 so USB-C chargers turn on 5 V. Data pins unused. Put J1 at a board edge, opening outwards.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VBUS |
5 V from USB | power | – | VBUS |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| J1 | USB-C | C165948 | USB-C 16-pin receptacle (USB 2.0) | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 |
| R1 | 5.1k | C23186 | CC1 pull-down | Resistor_SMD:R_0603_1608Metric |
| R2 | 5.1k | C23186 | CC2 pull-down | Resistor_SMD:R_0603_1608Metric |
usb_c_data¶
USB-C with USB 2.0 data (power + D+/D-, ESD protected)
USB-C receptacle as a USB 2.0 device: CC pull-downs, both D+/D- rows joined, and a USBLC6-2SC6 ESD protector on the data lines (option esd). Connect USB_DP/USB_DN to the MCU (through its series resistors if the MCU block has none). Put J1 at a board edge.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VBUS |
5 V from USB | power | – | VBUS |
GND |
Ground | power | – | GND |
USB_DP |
USB D+ | – | – | USB_DP |
USB_DN |
USB D- | – | – | USB_DN |
Options:
| Option | Default | What it does |
|---|---|---|
esd |
true | USBLC6-2SC6 ESD protection on D+/D- |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| J1 | USB-C | C165948 | USB-C 16-pin receptacle (USB 2.0) | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 |
| R1 | 5.1k | C23186 | CC1 pull-down | Resistor_SMD:R_0603_1608Metric |
| R2 | 5.1k | C23186 | CC2 pull-down | Resistor_SMD:R_0603_1608Metric |
| U1 | USBLC6-2SC6 | C7519 | USB ESD protection | Package_TO_SOT_SMD:SOT-23-6 |
Interface limits: USB_DP, USB_DN as diff (usb2_hs).
usb_pd_ch224k_9v¶
USB-C Power Delivery input, fixed 9 V (CH224K PD sink)
USB-C receptacle with a WCH CH224K that asks a USB-PD charger for 9 V (falls back to 5 V on chargers without PD; PG goes low once the voltage is up). Wired as WCH's reference design: VDD from VBUS through 1 kΩ with 1 µF, VBUS sense through 10 kΩ, CFG1 low, CFG2 low and CFG3 low. The CC lines go to the CH224K, so there are no 5.1 kΩ pull-downs. Check stock: the CH224K is often out at JLCPCB (the CH224A is pin-compatible). Everything after VBUS must be rated for the higher voltage.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VBUS |
9 V from the charger (5 V without PD) | power | – | +9V |
GND |
Ground | power | – | GND |
PG |
Power good, open drain, low when the PD voltage is on | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| J1 | USB-C | C165948 | USB-C 16-pin receptacle (USB 2.0) | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 |
| U1 | CH224K | C970725 | USB-PD sink controller, 9 V request | Package_SO:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mm |
| R1 | 1k | C21190 | CH224K VDD supply | Resistor_SMD:R_0603_1608Metric |
| C1 | 1uF | C15849 | CH224K VDD | Capacitor_SMD:C_0603_1608Metric |
| R2 | 10k | C25804 | CH224K VBUS sense | Resistor_SMD:R_0603_1608Metric |
| C2 | 10uF | C15850 | VBUS bulk (25 V) | Capacitor_SMD:C_0805_2012Metric |
usb_pd_ch224k_12v¶
USB-C Power Delivery input, fixed 12 V (CH224K PD sink)
USB-C receptacle with a WCH CH224K that asks a USB-PD charger for 12 V (falls back to 5 V on chargers without PD; PG goes low once the voltage is up). Wired as WCH's reference design: VDD from VBUS through 1 kΩ with 1 µF, VBUS sense through 10 kΩ, CFG1 low, CFG2 low and CFG3 high (to VDD). The CC lines go to the CH224K, so there are no 5.1 kΩ pull-downs. Check stock: the CH224K is often out at JLCPCB (the CH224A is pin-compatible). Everything after VBUS must be rated for the higher voltage.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VBUS |
12 V from the charger (5 V without PD) | power | – | +12V |
GND |
Ground | power | – | GND |
PG |
Power good, open drain, low when the PD voltage is on | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| J1 | USB-C | C165948 | USB-C 16-pin receptacle (USB 2.0) | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 |
| U1 | CH224K | C970725 | USB-PD sink controller, 12 V request | Package_SO:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mm |
| R1 | 1k | C21190 | CH224K VDD supply | Resistor_SMD:R_0603_1608Metric |
| C1 | 1uF | C15849 | CH224K VDD | Capacitor_SMD:C_0603_1608Metric |
| R2 | 10k | C25804 | CH224K VBUS sense | Resistor_SMD:R_0603_1608Metric |
| C2 | 10uF | C15850 | VBUS bulk (25 V) | Capacitor_SMD:C_0805_2012Metric |
Regulator¶
ldo_ams1117_3v3¶
3.3 V LDO, 800 mA (AMS1117-3.3, SOT-223)
Classic 1 A-class LDO with 10 µF in and 22 µF out. Needs at least 4.5 V in (1.1 V dropout) and gets hot: from 5 V it dissipates 1.7 V × load current; keep the load under ~400 mA without extra copper. Quiescent 5 mA, so not for batteries.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Input, 4.5 to 15 V | power | yes | – |
VOUT |
3.3 V output | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | AMS1117-3.3 | C6186 | 3.3 V 1 A LDO | Package_TO_SOT_SMD:SOT-223-3_TabPin2 |
| C1 | 10uF | C15850 | LDO input | Capacitor_SMD:C_0805_2012Metric |
| C2 | 22uF | C45783 | LDO output | Capacitor_SMD:C_0805_2012Metric |
ldo_ap2112k_3v3¶
3.3 V LDO, 600 mA, low dropout (AP2112K-3.3, SOT-23-5)
Small LDO with 250 mV dropout and 55 µA quiescent current: good from USB 5 V or a LiPo cell for ESP32/RP2040 boards. Enable tied to the input.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Input, 3.55 to 6 V | power | yes | – |
VOUT |
3.3 V output | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | AP2112K-3.3 | C51118 | 3.3 V 600 mA LDO | Package_TO_SOT_SMD:SOT-23-5 |
| C1 | 1uF | C15849 | LDO input | Capacitor_SMD:C_0603_1608Metric |
| C2 | 1uF | C15849 | LDO output | Capacitor_SMD:C_0603_1608Metric |
ldo_xc6206_3v3¶
3.3 V LDO, 200 mA, 1 µA quiescent (XC6206P332MR, SOT-23)
Tiny low-power LDO for sensors and low-power MCUs on batteries. Not enough for Wi-Fi modules (they peak at 350 mA). Input up to 6 V.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Input, 3.6 to 6 V | power | yes | – |
VOUT |
3.3 V output | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | XC6206P332MR | C5446 | 3.3 V 200 mA LDO | Package_TO_SOT_SMD:SOT-23-3 |
| C1 | 1uF | C15849 | LDO input | Capacitor_SMD:C_0603_1608Metric |
| C2 | 1uF | C15849 | LDO output | Capacitor_SMD:C_0603_1608Metric |
buck_tps563201_3v3¶
3.3 V buck converter, 3 A, 4.5-17 V in (TPS563201, SOT-23-6)
TI TPS563201 synchronous buck at 580 kHz with TI's recommended parts for 3.3 V: 33.2 kΩ / 10 kΩ feedback, 2.2 µH inductor, 2 × 22 µF out, 2 × 10 µF + 100 nF in, 100 nF bootstrap and EN pulled up to VIN. Efficient from 12 V (an LDO would burn the difference). Keep the input capacitors, the IC and the inductor tight together; SW is a noisy node.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Input, 4.5 to 17 V | power | yes | – |
VOUT |
3.3 V output, up to 3 A | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | TPS563201 | C116592 | 3.3 V 3 A synchronous buck | Package_TO_SOT_SMD:SOT-23-6 |
| L1 | 2.2uH | C167869 | 2.2 µH buck inductor | Inductor_SMD:L_Changjiang_FNR4030S |
| C1 | 10uF | C15850 | buck input | Capacitor_SMD:C_0805_2012Metric |
| C2 | 10uF | C15850 | buck input | Capacitor_SMD:C_0805_2012Metric |
| C3 | 100nF | C14663 | buck input, high frequency | Capacitor_SMD:C_0603_1608Metric |
| C4 | 100nF | C14663 | bootstrap | Capacitor_SMD:C_0603_1608Metric |
| C5 | 22uF | C45783 | buck output | Capacitor_SMD:C_0805_2012Metric |
| C6 | 22uF | C45783 | buck output | Capacitor_SMD:C_0805_2012Metric |
| R1 | 33.2k | C23003 | feedback, top | Resistor_SMD:R_0603_1608Metric |
| R2 | 10k | C25804 | feedback, bottom | Resistor_SMD:R_0603_1608Metric |
| R3 | 10k | C25804 | EN pull-up | Resistor_SMD:R_0603_1608Metric |
buck_tps563201_5v¶
5 V buck converter, 3 A, 4.5-17 V in (TPS563201, SOT-23-6)
TI TPS563201 synchronous buck at 580 kHz with TI's recommended parts for 5 V: 54.9 kΩ / 10 kΩ feedback, 3.3 µH inductor, 2 × 22 µF out, 2 × 10 µF + 100 nF in, 100 nF bootstrap and EN pulled up to VIN. Efficient from 12 V (an LDO would burn the difference). Keep the input capacitors, the IC and the inductor tight together; SW is a noisy node.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Input, 4.5 to 17 V | power | yes | – |
VOUT |
5 V output, up to 3 A | power | – | +5V |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | TPS563201 | C116592 | 5 V 3 A synchronous buck | Package_TO_SOT_SMD:SOT-23-6 |
| L1 | 3.3uH | C167870 | 3.3 µH buck inductor | Inductor_SMD:L_Changjiang_FNR4030S |
| C1 | 10uF | C15850 | buck input | Capacitor_SMD:C_0805_2012Metric |
| C2 | 10uF | C15850 | buck input | Capacitor_SMD:C_0805_2012Metric |
| C3 | 100nF | C14663 | buck input, high frequency | Capacitor_SMD:C_0603_1608Metric |
| C4 | 100nF | C14663 | bootstrap | Capacitor_SMD:C_0603_1608Metric |
| C5 | 22uF | C45783 | buck output | Capacitor_SMD:C_0805_2012Metric |
| C6 | 22uF | C45783 | buck output | Capacitor_SMD:C_0805_2012Metric |
| R1 | 54.9k | C23077 | feedback, top | Resistor_SMD:R_0603_1608Metric |
| R2 | 10k | C25804 | feedback, bottom | Resistor_SMD:R_0603_1608Metric |
| R3 | 10k | C25804 | EN pull-up | Resistor_SMD:R_0603_1608Metric |
Microcontroller¶
esp32s3_wroom1¶
ESP32-S3 Wi-Fi/Bluetooth module with reset and boot buttons (ESP32-S3-WROOM-1-N16R8)
ESP32-S3-WROOM-1 (16 MB flash and 8 MB octal PSRAM inside the module, so there is no memory bus to route) with 10 µF + 100 nF on 3V3, the EN RC delay (10 kΩ, 1 µF), a RESET button on EN and a BOOT button on IO0. Native USB on USB_DP/USB_DN (connect to a usb_c_data block). IO35-IO37 are used by the PSRAM. Needs 3.3 V at 500 mA peak. Place it at a board edge with the antenna end (the module's top, away from the pins) overhanging or over a copper-free area.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply, 500 mA peak | power | – | +3V3 |
GND |
Ground | power | – | GND |
USB_DP |
Native USB D+ (IO20) | – | – | – |
USB_DN |
Native USB D- (IO19) | – | – | – |
TXD0 |
UART0 TX (IO43) | – | – | – |
RXD0 |
UART0 RX (IO44) | – | – | – |
IO1 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO2 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO3 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO4 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO5 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO6 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO7 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO8 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO9 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO10 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO11 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO12 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO13 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO14 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO15 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO16 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO17 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO18 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO21 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO38 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO39 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO40 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO41 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO42 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO45 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO46 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO47 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
IO48 |
GPIO (IO1-IO10 also ADC1; IO3, IO45, IO46 are strapping pins) | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | ESP32-S3-WROOM-1-N16R8 | C2913202 | ESP32-S3 Wi-Fi/BLE module, 16 MB flash, 8 MB PSRAM | RF_Module:ESP32-S3-WROOM-1 |
| C1 | 10uF | C15850 | 3V3 bulk | Capacitor_SMD:C_0805_2012Metric |
| C2 | 100nF | C14663 | 3V3 decoupling | Capacitor_SMD:C_0603_1608Metric |
| R1 | 10k | C25804 | EN pull-up | Resistor_SMD:R_0603_1608Metric |
| C3 | 1uF | C15849 | EN delay | Capacitor_SMD:C_0603_1608Metric |
| SW1 | TS-1187A | C318884 | RESET button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| SW2 | TS-1187A | C318884 | BOOT button (hold while resetting to flash) | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
esp32c3_wroom02¶
ESP32-C3 Wi-Fi/Bluetooth module with reset and boot buttons (ESP32-C3-WROOM-02-N4)
ESP32-C3-WROOM-02 (RISC-V, 4 MB flash) with 10 µF + 100 nF on 3V3, the EN RC delay, a RESET button, a BOOT button on IO9 and 10 kΩ pull-ups on the strapping pins IO2 and IO8 (both still usable as outputs). Native USB on USB_DP (IO19) / USB_DN (IO18). Needs 3.3 V at 350 mA peak. Put the antenna end at a board edge, clear of copper.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply, 350 mA peak | power | – | +3V3 |
GND |
Ground | power | – | GND |
USB_DP |
Native USB D+ (IO19) | – | – | – |
USB_DN |
Native USB D- (IO18) | – | – | – |
IO2 |
GPIO, ADC (10 kΩ pull-up fitted) | – | – | – |
IO8 |
GPIO (10 kΩ pull-up fitted; drive LEDs active-low) | – | – | – |
IO0 |
GPIO, ADC | – | – | – |
IO1 |
GPIO, ADC | – | – | – |
IO3 |
GPIO, ADC | – | – | – |
IO4 |
GPIO, ADC | – | – | – |
IO5 |
GPIO | – | – | – |
IO6 |
GPIO | – | – | – |
IO7 |
GPIO | – | – | – |
IO10 |
GPIO | – | – | – |
IO20 |
GPIO / UART0 RX | – | – | – |
IO21 |
GPIO / UART0 TX | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | ESP32-C3-WROOM-02-N4 | C2934560 | ESP32-C3 Wi-Fi/BLE module, 4 MB flash | RF_Module:ESP32-C3-WROOM-02 |
| C1 | 10uF | C15850 | 3V3 bulk | Capacitor_SMD:C_0805_2012Metric |
| C2 | 100nF | C14663 | 3V3 decoupling | Capacitor_SMD:C_0603_1608Metric |
| R1 | 10k | C25804 | EN pull-up | Resistor_SMD:R_0603_1608Metric |
| C3 | 1uF | C15849 | EN delay | Capacitor_SMD:C_0603_1608Metric |
| R2 | 10k | C25804 | IO2 strapping pull-up | Resistor_SMD:R_0603_1608Metric |
| R3 | 10k | C25804 | IO8 strapping pull-up | Resistor_SMD:R_0603_1608Metric |
| SW1 | TS-1187A | C318884 | RESET button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| SW2 | TS-1187A | C318884 | BOOT button (hold while resetting to flash) | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
rp2040_min¶
RP2040 minimum system: 16 MB flash, 12 MHz crystal, USB, BOOTSEL and RESET
Raspberry Pi RP2040 with W25Q128 QSPI flash, a 12 MHz crystal (1 kΩ series resistor, 22 pF load caps), 100 nF on every supply pin, the internal 1.1 V core regulator with its 1 µF caps, 27 Ω series resistors on USB D+/D-, a BOOTSEL button (pulls flash CS low through 1 kΩ) and a RESET button on RUN. Needs 3.3 V at ~50 mA. Keep the crystal and flash next to the RP2040.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply, ~50 mA | power | – | +3V3 |
GND |
Ground | power | – | GND |
USB_DP |
USB D+ (after the 27 Ω resistor) | – | – | – |
USB_DN |
USB D- (after the 27 Ω resistor) | – | – | – |
SWCLK |
SWD debug clock | – | – | – |
SWDIO |
SWD debug data | – | – | – |
GPIO0 |
GPIO | – | – | – |
GPIO1 |
GPIO | – | – | – |
GPIO2 |
GPIO | – | – | – |
GPIO3 |
GPIO | – | – | – |
GPIO4 |
GPIO | – | – | – |
GPIO5 |
GPIO | – | – | – |
GPIO6 |
GPIO | – | – | – |
GPIO7 |
GPIO | – | – | – |
GPIO8 |
GPIO | – | – | – |
GPIO9 |
GPIO | – | – | – |
GPIO10 |
GPIO | – | – | – |
GPIO11 |
GPIO | – | – | – |
GPIO12 |
GPIO | – | – | – |
GPIO13 |
GPIO | – | – | – |
GPIO14 |
GPIO | – | – | – |
GPIO15 |
GPIO | – | – | – |
GPIO16 |
GPIO | – | – | – |
GPIO17 |
GPIO | – | – | – |
GPIO18 |
GPIO | – | – | – |
GPIO19 |
GPIO | – | – | – |
GPIO20 |
GPIO | – | – | – |
GPIO21 |
GPIO | – | – | – |
GPIO22 |
GPIO | – | – | – |
GPIO23 |
GPIO | – | – | – |
GPIO24 |
GPIO | – | – | – |
GPIO25 |
GPIO | – | – | – |
GPIO26 |
GPIO / ADC | – | – | – |
GPIO27 |
GPIO / ADC | – | – | – |
GPIO28 |
GPIO / ADC | – | – | – |
GPIO29 |
GPIO / ADC | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | RP2040 | C2040 | RP2040 dual-core MCU | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm |
| U2 | W25Q128JVSIQ | C97521 | 16 MB QSPI flash | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm |
| Y1 | 12MHz | C9002 | 12 MHz crystal | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm |
| C1 | 22pF | C1653 | crystal load | Capacitor_SMD:C_0603_1608Metric |
| C2 | 22pF | C1653 | crystal load | Capacitor_SMD:C_0603_1608Metric |
| R1 | 1k | C21190 | crystal series resistor | Resistor_SMD:R_0603_1608Metric |
| C3 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C4 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C5 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C6 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C7 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C8 | 100nF | C14663 | IOVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C9 | 100nF | C14663 | DVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C10 | 100nF | C14663 | DVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C11 | 100nF | C14663 | USB_VDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C12 | 100nF | C14663 | ADC_AVDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C13 | 1uF | C15849 | VREG_VIN | Capacitor_SMD:C_0603_1608Metric |
| C14 | 1uF | C15849 | VREG_VOUT (1.1 V core) | Capacitor_SMD:C_0603_1608Metric |
| C15 | 10uF | C15850 | 3V3 bulk | Capacitor_SMD:C_0805_2012Metric |
| C16 | 100nF | C14663 | flash decoupling | Capacitor_SMD:C_0603_1608Metric |
| R2 | 27 | C25190 | USB D+ series | Resistor_SMD:R_0603_1608Metric |
| R3 | 27 | C25190 | USB D- series | Resistor_SMD:R_0603_1608Metric |
| R4 | 1k | C21190 | BOOTSEL | Resistor_SMD:R_0603_1608Metric |
| R5 | 10k | C25804 | RUN pull-up | Resistor_SMD:R_0603_1608Metric |
| R6 | 10k | C25804 | flash CS pull-up | Resistor_SMD:R_0603_1608Metric |
| SW1 | TS-1187A | C318884 | BOOTSEL button (hold while plugging in USB) | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| SW2 | TS-1187A | C318884 | RESET button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
Interface limits: QSPI_SCLK, QSPI_SS, QSPI_SD0, QSPI_SD1, QSPI_SD2, QSPI_SD3 as bus (qspi_flash).
stm32g030_min¶
STM32G030 minimum system (STM32G030F6P6, TSSOP-20) with SWD pads
ST STM32G030F6P6 (Cortex-M0+, 64 MHz, 32 KB flash) on its internal oscillator: 100 nF + 10 µF on VDD, 100 nF on NRST, and SWD pads for a Tag-Connect TC2030-NL cable (or solder wires). Program it with an ST-Link or any SWD probe. 3.3 V at a few mA. BOOT0 is an option bit on PA14 (SWCLK), so no boot pin is needed.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
PA0 |
GPIO, ADC | – | – | – |
PA1 |
GPIO, ADC | – | – | – |
PA2 |
GPIO, ADC | – | – | – |
PA3 |
GPIO, ADC | – | – | – |
PA4 |
GPIO, ADC | – | – | – |
PA5 |
GPIO, ADC | – | – | – |
PA6 |
GPIO, ADC | – | – | – |
PA7 |
GPIO, ADC | – | – | – |
PA8 |
GPIO | – | – | – |
PA11 |
GPIO (PA9 on the same pin) | – | – | – |
PA12 |
GPIO (PA10 on the same pin) | – | – | – |
PB7 |
GPIO, I2C1 SDA | – | – | – |
PB6 |
GPIO, I2C1 SCL | – | – | – |
PC14 |
GPIO | – | – | – |
PC15 |
GPIO | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | STM32G030F6P6 | C724040 | STM32G030 MCU | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm |
| C1 | 100nF | C14663 | VDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C2 | 10uF | C19702 | VDD bulk | Capacitor_SMD:C_0603_1608Metric |
| C3 | 100nF | C14663 | NRST filter | Capacitor_SMD:C_0603_1608Metric |
| J1 | SWD | – | SWD programming pads for a Tag-Connect TC2030-NL cable (nothing to fit) | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical |
stm32c011_min¶
STM32C011 minimum system (STM32C011F6P6, TSSOP-20) with SWD pads
ST STM32C011F6P6 (Cortex-M0+, 48 MHz, 32 KB flash) on its internal oscillator: 100 nF + 10 µF on VDD, 100 nF on NRST, and SWD pads for a Tag-Connect TC2030-NL cable (or solder wires). Program it with an ST-Link or any SWD probe. 3.3 V at a few mA. The cheapest STM32; NRST is on PF2.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
PA0 |
GPIO, ADC | – | – | – |
PA1 |
GPIO, ADC | – | – | – |
PA2 |
GPIO, ADC | – | – | – |
PA3 |
GPIO, ADC | – | – | – |
PA4 |
GPIO, ADC | – | – | – |
PA5 |
GPIO, ADC | – | – | – |
PA6 |
GPIO, ADC | – | – | – |
PA7 |
GPIO, ADC | – | – | – |
PA8 |
GPIO | – | – | – |
PA11 |
GPIO (PA9 on the same pin) | – | – | – |
PA12 |
GPIO (PA10 on the same pin) | – | – | – |
PB7 |
GPIO, I2C1 SDA | – | – | – |
PB6 |
GPIO, I2C1 SCL | – | – | – |
PC14 |
GPIO | – | – | – |
PC15 |
GPIO | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | STM32C011F6P6 | C5456198 | STM32C011 MCU | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm |
| C1 | 100nF | C14663 | VDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C2 | 10uF | C19702 | VDD bulk | Capacitor_SMD:C_0603_1608Metric |
| C3 | 100nF | C14663 | NRST filter | Capacitor_SMD:C_0603_1608Metric |
| J1 | SWD | – | SWD programming pads for a Tag-Connect TC2030-NL cable (nothing to fit) | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical |
esp32c6_mini1¶
ESP32-C6 Wi-Fi 6 / Bluetooth / Thread module with reset and boot buttons (ESP32-C6-MINI-1)
ESP32-C6-MINI-1 (RISC-V, 4 MB flash, Wi-Fi 6, BLE 5, 802.15.4 for Thread/Zigbee) with 10 µF + 100 nF on 3V3, the EN RC delay, a RESET button, a BOOT button on IO9 and a 10 kΩ pull-up on the strapping pin IO8. Native USB on USB_DP (IO13) / USB_DN (IO12). 3.3 V at 350 mA peak. Put the antenna end at a board edge: the footprint keeps copper out from under it. Check stock before ordering.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply, 350 mA peak | power | – | +3V3 |
GND |
Ground | power | – | GND |
USB_DP |
Native USB D+ (IO13) | – | – | – |
USB_DN |
Native USB D- (IO12) | – | – | – |
IO8 |
GPIO (10 kΩ pull-up fitted) | – | – | – |
IO0 |
GPIO, ADC | – | – | – |
IO1 |
GPIO, ADC | – | – | – |
IO2 |
GPIO, ADC | – | – | – |
IO3 |
GPIO, ADC | – | – | – |
IO4 |
GPIO, ADC | – | – | – |
IO5 |
GPIO, ADC | – | – | – |
IO6 |
GPIO, ADC | – | – | – |
IO7 |
GPIO | – | – | – |
IO14 |
GPIO | – | – | – |
IO15 |
GPIO | – | – | – |
IO18 |
GPIO | – | – | – |
IO19 |
GPIO | – | – | – |
IO20 |
GPIO | – | – | – |
IO21 |
GPIO | – | – | – |
IO22 |
GPIO | – | – | – |
IO23 |
GPIO | – | – | – |
RXD0 |
UART0 RX | – | – | – |
TXD0 |
UART0 TX | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | ESP32-C6-MINI-1-N4 | C5736265 | ESP32-C6 Wi-Fi 6/BLE/802.15.4 module, 4 MB flash | RF_Module:ESP32-C6-MINI-1 |
| C1 | 10uF | C15850 | 3V3 bulk | Capacitor_SMD:C_0805_2012Metric |
| C2 | 100nF | C14663 | 3V3 decoupling | Capacitor_SMD:C_0603_1608Metric |
| R1 | 10k | C25804 | EN pull-up | Resistor_SMD:R_0603_1608Metric |
| C3 | 1uF | C15849 | EN delay | Capacitor_SMD:C_0603_1608Metric |
| R2 | 10k | C25804 | IO8 strapping pull-up | Resistor_SMD:R_0603_1608Metric |
| SW1 | TS-1187A | C318884 | RESET button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| SW2 | TS-1187A | C318884 | BOOT button (hold while resetting to flash) | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
nrf52840_mdbt50q¶
nRF52840 Bluetooth 5 / Thread module with native USB (Raytac MDBT50Q-1MV2)
Raytac MDBT50Q-1MV2 (nRF52840, 1 MB flash, chip antenna) in normal-voltage mode: VDD and VDDH both on 3.3 V, 10 µF + 100 nF decoupling, a RESET button on P0.18 and SWD pads for a Tag-Connect cable. Native USB on USB_DP/USB_DN; connect VBUS to the USB 5 V to use it. Put the antenna end at a board edge: the footprint keeps copper out from under it. Check stock: JLCPCB often has none, so it may need to be supplied.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
VBUS |
USB 5 V, for native USB (leave open without USB) | power | – | – |
USB_DP |
Native USB D+ | – | – | – |
USB_DN |
Native USB D- | – | – | – |
P0.02 |
GPIO, analog in | – | – | – |
P0.03 |
GPIO, analog in | – | – | – |
P0.04 |
GPIO, analog in | – | – | – |
P0.05 |
GPIO, analog in | – | – | – |
P0.28 |
GPIO, analog in | – | – | – |
P0.29 |
GPIO, analog in | – | – | – |
P0.30 |
GPIO, analog in | – | – | – |
P0.31 |
GPIO, analog in | – | – | – |
P0.06 |
GPIO | – | – | – |
P0.07 |
GPIO | – | – | – |
P0.08 |
GPIO | – | – | – |
P0.11 |
GPIO | – | – | – |
P0.12 |
GPIO | – | – | – |
P0.13 |
GPIO | – | – | – |
P0.14 |
GPIO | – | – | – |
P0.15 |
GPIO | – | – | – |
P0.16 |
GPIO | – | – | – |
P0.17 |
GPIO | – | – | – |
P0.19 |
GPIO | – | – | – |
P0.20 |
GPIO | – | – | – |
P0.21 |
GPIO | – | – | – |
P0.22 |
GPIO | – | – | – |
P0.23 |
GPIO | – | – | – |
P0.24 |
GPIO | – | – | – |
P0.25 |
GPIO | – | – | – |
P0.26 |
GPIO | – | – | – |
P0.27 |
GPIO | – | – | – |
P1.00 |
GPIO | – | – | – |
P1.01 |
GPIO | – | – | – |
P1.02 |
GPIO | – | – | – |
P1.03 |
GPIO | – | – | – |
P1.04 |
GPIO | – | – | – |
P1.05 |
GPIO | – | – | – |
P1.06 |
GPIO | – | – | – |
P1.07 |
GPIO | – | – | – |
P1.08 |
GPIO | – | – | – |
P1.09 |
GPIO | – | – | – |
P1.10 |
GPIO | – | – | – |
P1.11 |
GPIO | – | – | – |
P1.12 |
GPIO | – | – | – |
P1.13 |
GPIO | – | – | – |
P1.14 |
GPIO | – | – | – |
P1.15 |
GPIO | – | – | – |
P0.00 |
GPIO, or a 32.768 kHz crystal | – | – | – |
P0.01 |
GPIO, or a 32.768 kHz crystal | – | – | – |
P0.09 |
GPIO, or NFC antenna | – | – | – |
P0.10 |
GPIO, or NFC antenna | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | MDBT50Q-1MV2 | C5118826 | nRF52840 Bluetooth 5 module | RF_Module:Raytac_MDBT50Q |
| C1 | 10uF | C15850 | 3V3 bulk | Capacitor_SMD:C_0805_2012Metric |
| C2 | 100nF | C14663 | 3V3 decoupling | Capacitor_SMD:C_0603_1608Metric |
| C3 | 4.7uF | C19666 | VBUS decoupling | Capacitor_SMD:C_0603_1608Metric |
| SW1 | TS-1187A | C318884 | RESET button (P0.18) | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| J1 | SWD | – | SWD programming pads for a Tag-Connect TC2030-NL cable (nothing to fit) | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical |
Battery¶
lipo_charger_tp4056¶
Single-cell LiPo/Li-ion charger, 580 mA (TP4056) with charge/done LEDs
TP4056 linear charger: 4.2 V charge voltage, 2 kΩ PROG for ~580 mA (use 1.2 kΩ for 1 A on a big cell; it gets warm), red CHARGING and green DONE LEDs, battery temperature sensing off. VIN 4.5-5.5 V (USB). Charge current must be under the cell's 1C rating.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Charger input, 4.5 to 5.5 V | power | yes | – |
BAT |
Battery + (cell 3.0-4.2 V) | power | – | VBAT |
GND |
Ground / battery - | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | TP4056 | C16581 | 1 A Li-ion charger | Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalVias |
| R1 | 2k | C22975 | PROG: ~580 mA charge current | Resistor_SMD:R_0603_1608Metric |
| C1 | 10uF | C15850 | charger input | Capacitor_SMD:C_0805_2012Metric |
| C2 | 10uF | C15850 | battery | Capacitor_SMD:C_0805_2012Metric |
| R2 | 1k | C21190 | CHRG LED | Resistor_SMD:R_0603_1608Metric |
| R3 | 1k | C21190 | STDBY LED | Resistor_SMD:R_0603_1608Metric |
| D1 | Red | C2286 | Charging LED | LED_SMD:LED_0603_1608Metric |
| D2 | Green | C2297 | Charged LED | LED_SMD:LED_0805_2012Metric |
Interface¶
can_sn65hvd230¶
CAN bus transceiver, 3.3 V (SN65HVD230) with 120 Ω termination
SN65HVD230 at 3.3 V, slope control off (Rs to GND, up to 1 Mbit/s), 100 nF decoupling and an optional 120 Ω terminator between CANH and CANL (fit it only at the two ends of the bus). TXD goes to the MCU's CAN TX pin, RXD to its CAN RX pin.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
TXD |
From the MCU's CAN TX | – | yes | – |
RXD |
To the MCU's CAN RX | – | yes | – |
CANH |
CAN high (to the bus connector) | – | – | CANH |
CANL |
CAN low (to the bus connector) | – | – | CANL |
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
Options:
| Option | Default | What it does |
|---|---|---|
termination |
true | 120 Ω between CANH and CANL |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | SN65HVD230 | C12084 | 3.3 V CAN transceiver | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm |
| C1 | 100nF | C14663 | transceiver decoupling | Capacitor_SMD:C_0603_1608Metric |
| R1 | 120 | C22787 | CAN bus termination | Resistor_SMD:R_0603_1608Metric |
rs485_sp3485¶
RS-485 transceiver, 3.3 V half duplex (SP3485) with 120 Ω termination
SP3485 at 3.3 V up to 10 Mbit/s. DE and /RE are joined: drive DE_RE high to transmit, low to receive. DI is the MCU's UART TX, RO its UART RX. Optional 120 Ω terminator between A and B (fit it at the two ends of the bus).
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
DI |
From the MCU's UART TX | – | yes | – |
RO |
To the MCU's UART RX | – | yes | – |
DE_RE |
Direction: high transmits, low receives | – | yes | – |
A |
RS-485 A (non-inverting) | – | – | RS485_A |
B |
RS-485 B (inverting) | – | – | RS485_B |
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
Options:
| Option | Default | What it does |
|---|---|---|
termination |
true | 120 Ω between A and B |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | SP3485EN | C8963 | 3.3 V RS-485 transceiver | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm |
| C1 | 100nF | C14663 | transceiver decoupling | Capacitor_SMD:C_0603_1608Metric |
| R1 | 120 | C22787 | RS-485 termination | Resistor_SMD:R_0603_1608Metric |
usb_uart_ch340c¶
USB to UART bridge at 3.3 V (CH340C, no crystal needed)
CH340C with its internal oscillator, run from 3.3 V (V3 tied to VCC). TXD goes to the MCU's RX and RXD to its TX. DTR/RTS can drive an auto-reset circuit. Use with MCUs without native USB (classic ESP32, ATmega, STM32 without USB).
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
USB_DP |
USB D+ | – | – | USB_DP |
USB_DN |
USB D- | – | – | USB_DN |
TXD |
UART out: to the MCU's RX | – | yes | – |
RXD |
UART in: from the MCU's TX | – | yes | – |
DTR |
DTR (active low), for auto-reset | – | – | – |
RTS |
RTS (active low), for auto-reset | – | – | – |
3V3 |
3.3 V supply | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | CH340C | C84681 | USB to UART bridge | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm |
| C1 | 100nF | C14663 | CH340C decoupling | Capacitor_SMD:C_0603_1608Metric |
ethernet_lan8720a¶
10/100 Ethernet: LAN8720A RMII PHY with an RJ45 MagJack (HR911105A)
Microchip LAN8720A with a 25 MHz crystal, putting out the 50 MHz RMII reference clock on REFCLK (nINTSEL strapped low) for the MAC. 12.1 kΩ 1 % bias resistor, 1 µF + 470 pF on the 1.2 V core regulator, 100 nF on each supply pin, 49.9 Ω terminations on TX and RX to 3.3 V with the jack's centre taps (Microchip's single-supply circuit) and a 1.5 kΩ pull-up on MDIO. PHY address 0. The HR911105A has the magnetics inside; its LEDs are left unwired. For an ESP32 (classic) MAC: REFCLK to GPIO0, TXD0 GPIO19, TXD1 GPIO22, TXEN GPIO21, RXD0 GPIO25, RXD1 GPIO26, CRS_DV GPIO27. Keep the TX and RX pairs short and matched.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
TXD0 |
RMII transmit data 0 | – | yes | – |
TXD1 |
RMII transmit data 1 | – | yes | – |
TXEN |
RMII transmit enable | – | yes | – |
RXD0 |
RMII receive data 0 | – | yes | – |
RXD1 |
RMII receive data 1 | – | yes | – |
CRS_DV |
RMII carrier sense / data valid | – | yes | – |
REFCLK |
50 MHz RMII reference clock out, to the MAC | – | yes | – |
MDIO |
Management data | – | yes | – |
MDC |
Management clock | – | yes | – |
NRST |
PHY reset, active low (10 kΩ pull-up fitted) | – | – | – |
3V3 |
3.3 V, about 50 mA | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | LAN8720A | C45223 | 10/100 Ethernet RMII PHY | Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.5x2.5mm_ThermalVias |
| J1 | HR911105A | C12074 | RJ45 jack with magnetics | Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal |
| Y1 | 25MHz | C9006 | 25 MHz crystal, 12 pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm |
| C1 | 18pF | C1647 | crystal load | Capacitor_SMD:C_0603_1608Metric |
| C2 | 18pF | C1647 | crystal load | Capacitor_SMD:C_0603_1608Metric |
| R1 | 12.1k | C22864 | RBIAS, 1 % | Resistor_SMD:R_0603_1608Metric |
| R2 | 49.9 | C23185 | TXP termination | Resistor_SMD:R_0603_1608Metric |
| R3 | 49.9 | C23185 | TXN termination | Resistor_SMD:R_0603_1608Metric |
| R4 | 49.9 | C23185 | RXP termination | Resistor_SMD:R_0603_1608Metric |
| R5 | 49.9 | C23185 | RXN termination | Resistor_SMD:R_0603_1608Metric |
| R6 | 10k | C25804 | nINTSEL strap low: REFCLK out | Resistor_SMD:R_0603_1608Metric |
| R7 | 10k | C25804 | nRST pull-up | Resistor_SMD:R_0603_1608Metric |
| R8 | 1.5k | C22843 | MDIO pull-up | Resistor_SMD:R_0603_1608Metric |
| C3 | 1uF | C15849 | VDDCR core regulator | Capacitor_SMD:C_0603_1608Metric |
| C4 | 470pF | C1620 | VDDCR | Capacitor_SMD:C_0603_1608Metric |
| C5 | 100nF | C14663 | VDD1A | Capacitor_SMD:C_0603_1608Metric |
| C6 | 100nF | C14663 | VDD2A | Capacitor_SMD:C_0603_1608Metric |
| C7 | 100nF | C14663 | VDDIO | Capacitor_SMD:C_0603_1608Metric |
| C8 | 10uF | C15850 | PHY bulk | Capacitor_SMD:C_0805_2012Metric |
| C9 | 100nF | C14663 | termination and centre taps | Capacitor_SMD:C_0603_1608Metric |
Interface limits: TXP, TXN as diff (ethernet_100); RXP, RXN as diff (ethernet_100); TXD0, TXD1, TXEN, RXD0, RXD1, CRS_DV, REFCLK as bus (rmii).
Connector¶
qwiic_i2c¶
Qwiic / STEMMA QT I²C connector (JST SH 4-pin) with pull-ups
JST SH 1 mm 4-pin socket with the SparkFun Qwiic pinout (GND, 3V3, SDA, SCL) and 4.7 kΩ pull-ups on SDA/SCL (option pullups; fit them once per bus). Put J1 at a board edge.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
SDA |
I²C data | – | – | SDA |
SCL |
I²C clock | – | – | SCL |
3V3 |
3.3 V to the I²C devices | power | – | +3V3 |
GND |
Ground | power | – | GND |
Options:
| Option | Default | What it does |
|---|---|---|
pullups |
true | 4.7 kΩ pull-ups on SDA and SCL |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| J1 | Qwiic | C160404 | Qwiic I2C connector | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal |
| R1 | 4.7k | C23162 | SDA pull-up | Resistor_SMD:R_0603_1608Metric |
| R2 | 4.7k | C23162 | SCL pull-up | Resistor_SMD:R_0603_1608Metric |
Indicator¶
led_indicator¶
Indicator LED with series resistor (red 0603, 1 kΩ)
LED from IN to GND through 1 kΩ: about 1.3 mA from a 3.3 V pin, 3 mA from 5 V. For other colours override D1, e.g. parts {"D1": {"lcsc": "C2297", "value": "Green", "footprint": "LED_SMD:LED_0805_2012Metric"}} and lower R1 to 220 Ω (C22962) for green/blue/white at 3.3 V.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
IN |
Drive high to light (an MCU pin or a supply rail) | – | yes | – |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| R1 | 1k | C21190 | LED series resistor | Resistor_SMD:R_0603_1608Metric |
| D1 | Red | C2286 | Indicator LED | LED_SMD:LED_0603_1608Metric |
Input¶
button¶
Push button to GND (TS-1187A) with optional pull-up and debounce cap
Tactile switch from SIG to GND. Use the MCU's internal pull-up, or turn on the pullup option (10 kΩ to 3V3). Option debounce adds 100 nF across the switch.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
SIG |
To the MCU input (low when pressed) | – | yes | – |
3V3 |
Pull-up supply (only with the pullup option) | power | – | +3V3 |
GND |
Ground | power | – | GND |
Options:
| Option | Default | What it does |
|---|---|---|
pullup |
false | 10 kΩ pull-up to 3V3 |
debounce |
false | 100 nF across the switch |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| SW1 | TS-1187A | C318884 | Push button | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A |
| R1 | 10k | C25804 | pull-up | Resistor_SMD:R_0603_1608Metric |
| C1 | 100nF | C14663 | debounce | Capacitor_SMD:C_0603_1608Metric |
Protection¶
reverse_polarity_pmos¶
Reverse-polarity protection with a P-MOSFET (AO3401A), inputs up to 12 V
A P-channel MOSFET in the supply line: with the right polarity its body diode lifts the source and the gate (10 kΩ to GND) turns it fully on (about 50 mΩ, so almost no drop); reversed, it stays off and nothing flows. Up to 4 A. The gate sees the whole input, so keep VIN at or under 12 V (the AO3401A's gate rating).
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VIN |
Raw input from the connector, up to 12 V | power | yes | – |
VOUT |
Protected supply | power | yes | – |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| Q1 | AO3401A | C15127 | P-MOSFET, reverse protection | Package_TO_SOT_SMD:SOT-23 |
| R1 | 10k | C25804 | gate to ground | Resistor_SMD:R_0603_1608Metric |
Driver¶
motor_drv8833¶
Dual H-bridge for two DC motors or one stepper, 1.5 A, 2.7-10.8 V (DRV8833)
TI DRV8833 (HTSSOP-16 PowerPAD) with 10 µF + 100 nF on VM, 10 nF from VCP to VM and 2.2 µF on VINT. Current sensing off (AISEN/BISEN to GND). Drive xIN1/xIN2 with PWM from the MCU; SLEEP must be high to run (it has an internal pull-down). FAULT is open drain: use the MCU's pull-up. The thermal pad needs the vias in the footprint and a ground pour underneath.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
VM |
Motor supply, 2.7 to 10.8 V | power | yes | – |
GND |
Ground | power | – | GND |
SLEEP |
High to run, low to sleep | – | yes | – |
FAULT |
Fault, open drain, low on over-current or over-heat | – | – | – |
AIN1 |
Bridge A input 1 | – | yes | – |
AIN2 |
Bridge A input 2 | – | yes | – |
BIN1 |
Bridge B input 1 | – | – | – |
BIN2 |
Bridge B input 2 | – | – | – |
AOUT1 |
Motor A + | – | – | MOTA_1 |
AOUT2 |
Motor A - | – | – | MOTA_2 |
BOUT1 |
Motor B + | – | – | – |
BOUT2 |
Motor B - | – | – | – |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | DRV8833PWPR | C50506 | dual H-bridge motor driver | Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias |
| C1 | 10uF | C15850 | VM bulk | Capacitor_SMD:C_0805_2012Metric |
| C2 | 100nF | C14663 | VM decoupling | Capacitor_SMD:C_0603_1608Metric |
| C3 | 10nF | C57112 | charge pump, VCP to VM | Capacitor_SMD:C_0603_1608Metric |
| C4 | 2.2uF | C23630 | VINT regulator | Capacitor_SMD:C_0603_1608Metric |
Sensor¶
sensor_bme280¶
Temperature, humidity and pressure sensor on I²C (Bosch BME280, address 0x76)
BME280 in I²C mode: CSB tied to VDDIO, SDO to GND (address 0x76; tie SDO high for 0x77 if two share a bus), 100 nF on VDD and VDDIO. Needs pull-ups on the bus (a qwiic_i2c block has them). Keep it away from warm parts (regulators, the MCU) and ideally on a slot-isolated corner, or it reads the board's own heat.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
SDA |
I²C data | – | – | SDA |
SCL |
I²C clock | – | – | SCL |
3V3 |
1.71 to 3.6 V | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | BME280 | C92489 | T/RH/pressure sensor | Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumbering |
| C1 | 100nF | C14663 | VDD decoupling | Capacitor_SMD:C_0603_1608Metric |
| C2 | 100nF | C14663 | VDDIO decoupling | Capacitor_SMD:C_0603_1608Metric |
sensor_sht40¶
Temperature and humidity sensor on I²C (Sensirion SHT40, address 0x44)
SHT40-AD1B (±1.8 %RH, ±0.2 °C) with 100 nF on VDD. Needs pull-ups on the bus. Keep it away from warm parts and do not cover its opening with conformal coat.
| Port | What it is | Kind | Required | Default net |
|---|---|---|---|---|
SDA |
I²C data | – | – | SDA |
SCL |
I²C clock | – | – | SCL |
3V3 |
1.08 to 3.6 V | power | – | +3V3 |
GND |
Ground | power | – | GND |
Parts
| Ref | Value | LCSC | Description | Footprint |
|---|---|---|---|---|
| U1 | SHT40-AD1B | C2909890 | T/RH sensor | Sensor_Humidity:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPad |
| C1 | 100nF | C14663 | VDD decoupling | Capacitor_SMD:C_0603_1608Metric |