Author Topic: Schematic Review — STM32H743 Robot Controller + PDB  (Read 287 times)

0 Members and 1 Guest are viewing this topic.

Offline KAMAL DEENTopic starter

  • Newbie
  • Posts: 3
  • Country: gh
Schematic Review — STM32H743 Robot Controller + PDB
« on: June 22, 2026, 02:41:25 pm »
Hello EEVblog community,

I am designing a Personal Assistance Robot and would
appreciate a schematic review before I proceed to PCB layout.

Both schematics are attached as PDFs below.
Please zoom in for full detail."

═══════════════════════════════════
1. PROJECT OVERVIEW
═══════════════════════════════════
- AI Brain: Horizon Robotics RDK X5 8GB (10 TOPS NPU)

- Main MCU: STM32H743ZIT6 LQFP-144 @ 480MHz

- Communication: CAN-FD between RDK X5 and STM32

- Display: 15.6" 1080p IPS LCD (HDMI from RDK X5)

- Navigation: RPLIDAR A1M8 + Nav2/SLAM Toolbox

- AI: Ollama/Llama 3.2 local + Claude/OpenAI cloud fallback

- Motors: 775 planetary (base) + GA25-370 (arms/ears) + NEMA17 steppers (neck/head)

- Shape: Penguin-style personal assistant robot

═══════════════════════════════════
2. BOARD 1 — CONTROLLER BOARD
═══════════════════════════════════
MCU: STM32H743ZIT6 LQFP-144 @ 480MHz

Power:

- 3V3_STBY — ST1L05CPU33R from 5V_STBY — always on

- 3V3_MAIN — ST1L05CPU33R from 5V_MAIN — switched

Peripherals:

- CAN-FD: TJA1051T/3 transceiver ×2 (FDCAN1 + FDCAN2)

- UART1: LD2410 mmWave radar 256000 baud

- UART3: RPLIDAR A1M8 115200 baud + DMA

I2C1 (PB6/PB7) 400kHz:

- BNO085 IMU 0x4A

- INA219 current ×2 (0x40/0x41)

- TCA9548A #2 0x71 → VL53L1X ×5 0x29

I2C2 (PF0/PF1) 400kHz:

- MPR121 touch ×2 (0x5A/0x5B)

- TCA9548A #1 0x70 → AS5600 ×2 0x36

SPI1 (PA5/PA6/PA7) 6MHz:

- TMC5160 NECK → CS=PC4 EN=PB0 DIAG=PG12

- TMC5160 HEAD → CS=PC5 EN=PB1 DIAG=PG13

SPI2 (PB10/PB14/PB15) 3MHz:

- LS7366R ×4 quadrature counters

- CS: PF2/PF3/PF4/PF5

SPI3 (PB2 MOSI only):
- WS2812B LED strip DMA

PWM (TIM1 + TIM3 @ 10kHz):

- PE9/PE11 → MDD20A base wheels

- PC6/PC7/PC8/PC9 → MD13S ×4 arms/ears

Encoders:

- TIM2 PA0/PA1 → base wheel LEFT 600PPR

- TIM4 PD12/PD13 → base wheel RIGHT 600PPR

GPIO Outputs:

- PG0/PG1 → wheel direction

- PG2 → soft E-stop signal

- PG3-PG6 → arm/ear direction

- PE12 → IR LED enable

- PE13 → PWR_EN → PDB 5V_MAIN switch

- PE15 → RPLIDAR motor enable

GPIO Inputs (internal pull-up):

- PF6 → power button

- PG8 → wake button

- PD10/PD11 → neck limits

- PD14/PD15/PE2/PE3 → arm limits

- PE4/PE5 → ear limits

- PE6/PE7/PE8 → bumpers ×3

- PC0-PC3 → cliff sensors ×4

- PG14/PG15 → head limits

EXTI Interrupts:

- PG9/PD3/PD4/PD5/PD6 → VL53L1X ×5 IRQ

- PG10 → BNO085 IRQ

- PG11 → MPR121 touch IRQ

Open Drain:

- PB4/PB5 → DS18B20 ×2 (motor + ambient temp)

- PB8 → DHT22 humidity

Clock:

- HSE 25MHz crystal → SYSCLK 480MHz

- LSE 32.768kHz crystal → RTC

Debug: ST-Link V3 SWD 6-pin header

USB-C Power outputs:

- J_RDK → 5V_MAIN → RDK X5 (CC resistors 5.1kΩ)

- J_LCD → 5V_MAIN → 15.6" LCD (CC resistors 5.1kΩ)

FreeRTOS tasks:

- SafetyMonitorTask — Realtime priority

- MotorControlTask — High priority

- CANCommsTask — AboveNormal priority

- SensorReadTask — Normal priority

- TouchSenseTask — Normal priority

- ThermalMonitorTask — BelowNormal priority

- IdleMonitorTask — Low priority

═══════════════════════════════════
3. BOARD 2 — PDB (Power Distribution Board)
═══════════════════════════════════
Battery: 4S LiPo 14.8V 3000mAh + JBD BMS 4S 40A

Power Rails:

- 24V 10A — LTC3780EG buck-boost (4S→24V)

- 12V 9A — XL4016E1 buck

- 5V_STBY 12A — XL4016E1 buck (always on)

- 5V_MAIN 12A — XL4016E1 buck (switched)

Protection:

- F1 — 30A blade fuse on VBAT

- Hard E-stop — SLA-12VDC-SL-A relay → cuts everything

- Soft E-stop — 2× SLA-12VDC-SL-A → cuts 24V+12V only

- 5V_MAIN switch — IRF4905PBF P-channel MOSFET

Motor power:

- 24V_MOTORS → Cytron MDD20A + TMC5160 ×2

- 12V_MOTORS → Cytron MD13S ×4

TMC5160 on PDB:

- BIGTREETECH TMC5160 Pro V1.1 ×2

- 8-pin female headers on PDB

- Signal protection: 33Ω + 100pF + PRTR5V0U2X ESD

Indicator LEDs:

- VBAT_SWITCHED — green

- 24V_MOTORS — red

- 12V_MOTORS — yellow

- 5V_STBY — blue

- 5V_MAIN — white

═══════════════════════════════════
4. WHAT I WANT REVIEWED
═══════════════════════════════════
CONTROLLER BOARD:

1. STM32H743 decoupling — 10×100nF + 4.7µF VDD correct?

2. VDDA filter — 600Ω ferrite + 1µF + 10nF adequate?

3. CAN-FD — TJA1051T/3 circuit + 120Ω termination correct?

4. I2C1 bus loading — 8 devices including 5× VL53L1X via TCA9548A

5. I2C pull-ups — 4.7kΩ to 3V3_STBY on both buses correct?

6. USB-C — CC resistors 5.1kΩ correct for 5V/3A?

7. HSE crystal — 25MHz NX2016SA + 5.6pF load caps correct?

8. EXTI sharing — PG9+PD5+PD6 share EXTI[9:5] — firmware handles in same ISR

9. SWD debug header — 6-pin ST-Link V3 pinout correct?

10. MPR121 shared IRQ on PG11 — open drain OK for two modules?

PDB:
1. LTC3780 — 4.7µH 15A inductor correct for 4S→24V 10A?

2. LTC3780 — feedback resistors R1=1.21MΩ R2=41.2kΩ for 24V correct?

3. LTC3780 — MOSFETs AOD4184A 40V 50A — correct selection?

4. XL4016E1 — MBR1545 diode correct for 12V 9A?

5. Hard E-stop — NC button → SLA-12VDC-SL-A relay → VBAT_SWITCHED correct?

6. Soft E-stop — MMBT2222A driving 2× relays in parallel — OK?

7. IRF4905PBF — P-channel high side — gate drive via MMBT2222A correct?

8. TMC5160 signal protection — 33Ω + 100pF + PRTR5V0U2X on 600mm cables

9. 5V_STBY and 5V_MAIN both XL4016E1 — any concerns?

10. Star point GND strategy — GND_POWER separate from signal GND

═══════════════════════════════════
5. SPECIFIC CONCERNS
═══════════════════════════════════
1. LTC3780 input is 12V-16.8V (4S LiPo) — output 24V —
   is buck-boost topology correct here?

2. Two SLA-12VDC-SL-A relays driven by one MMBT2222A —
   total coil current 60mA — within Ic=600mA rating?

3. VL53L1X ×5 all at 0x29 via TCA9548A —
   any I2C timing concerns at 400kHz?

4. TMC5160 VCC_IO (3.3V) coming from controller board
   via 600mm cable — any issues?

5. WS2812B on SPI3 PB2 MOSI only —
   SCK pin PC10 left NC — correct approach?

═══════════════════════════════════
6. PDF PAGE GUIDE

═══════════════════════════════════
CONTROLLER BOARD PDF:

- 1 — STM32H743ZIT6 MCU core + decoupling

- 2 — Power rails 3V3_STBY + 3V3_MAIN + VDDA

- 3 — CAN-FD transceivers + UART sensors

- 4 — I2C1 bus — BNO085 + INA219 + TCA9548A + VL53L1X ×5

- 5 — I2C2 bus — MPR121 + TCA9548A + AS5600

- 6 — SPI1 TMC5160 + SPI2 LS7366R ×4 + SPI3 WS2812B

-7 — Motor connectors MDD20A + MD13S ×4

- 8 — GPIO — cliff + bumper + limit switches

- 9 — USB-C RDK X5 + LCD power

- 10 — Power button + E-stop + PWR_EN connectors

PDB PDF:

- 1 — Battery + BMS + Fuse + Hard E-stop relay

- 2 — LTC3780 24V 10A buck-boost

- 3 — XL4016E1 12V 9A buck

- 4 — XL4016E1 5V_STBY + 5V_MAIN bucks

- 5 — Hard E-stop + Soft E-stop relays

- 6 — IRF4905PBF 5V_MAIN power enables

- 7 — TMC5160 headers + signal protection

- 8 — Output connectors + indicator LEDs



Thank you very much for your time and expertise.
Any feedback is greatly appreciated!

— KAMAL DEEN
Personal Assistance Robot

Attachments
Controller_Board_v1.0.pdf
PDB_v1.0.pdf

« Last Edit: Yesterday at 06:57:04 pm by KAMAL DEEN »
 

Offline PGPG

  • Super Contributor
  • ***
  • Posts: 1219
  • Country: pl
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #1 on: June 22, 2026, 04:07:59 pm »
Do you imagine how long typical human needs to find all matching each other labels?
May be some Asperger's can take it all in at a glance but I don't know if such are here.
 

Offline KAMAL DEENTopic starter

  • Newbie
  • Posts: 3
  • Country: gh
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #2 on: Yesterday at 06:10:10 am »
"Thank you for the feedback PGPG.

You are absolutely right — the schematic is very large
with many net labels.

I will reorganize it into clearly separated functional
blocks with:
- Hierarchical sheets (one sheet per circuit)
- Clear net grouping
- Better label naming conventions

Would you recommend any specific improvements
to make it easier to follow?"
 

Offline PGPG

  • Super Contributor
  • ***
  • Posts: 1219
  • Country: pl
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #3 on: Yesterday at 10:03:49 am »
Would you recommend any specific improvements
to make it easier to follow?"

I have never been doing such big schematics (one exception, but it was in 90s) so don't follow my way directly.
My typical schematic looks like this (you can't see details):
https://forum.kicad.info/t/build-schematics-using-kicad/48848/3

My idea is that only wires going from one block to another are labeled and each labeled wire goes into bus. Following bus you are able to find other occurrences of the same label. You have much less space to search for label so it is much easier for someone else than schematic author. If you have more signals you can divide them into many buses.
If quartz/rezonator is connected to two uC pins than drawing it just connected to these pins (at my schematic there is one on the left) makes someone don't need to search for these labels at all.
Understanding each block is easier if you have all its elements together and directly connected. Having block divided into 5 rectangles scattered through all schematic makes the whole schematic easy to understand only for author (only for some time) and for AI.
 

Offline KAMAL DEENTopic starter

  • Newbie
  • Posts: 3
  • Country: gh
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #4 on: Yesterday at 02:03:11 pm »
"Thank you PGPG for the detailed explanation.

I understand now — I should:
1. Use buses to group related signals
2. Draw components that belong together directly connected
3. Only label wires that cross between blocks
4. Keep each functional block self-contained

I will reorganize my schematic following your advice.
The crystal connections especially make sense to draw directly.

I really appreciate your guidance!"
 

Offline PGPG

  • Super Contributor
  • ***
  • Posts: 1219
  • Country: pl
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #5 on: Yesterday at 05:57:50 pm »
I understand now — I should:
Only if you want other people to be able to read your schematic. If the only one with whom you want to discuss your schematic is AI you can left it as is. The main difference between human and AI is that if you hear 10 not logically connected words then it will not be easy to repeat them all in sequence, while for any computer repeating millions of words is not a problem at all.
 
The following users thanked this post: KAMAL DEEN

Offline pcprogrammer

  • Super Contributor
  • ***
  • Posts: 5961
  • Country: nl
Re: Schematic Review — STM32H743 Robot Controller + PDB
« Reply #6 on: Yesterday at 06:46:54 pm »
Here is an example of one of my schematics. Not as many parts as in yours, but it shows a lot of what PGPG suggests.


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf