Skip to the content
PCBKitNew board
2 layers60 × 42 mmVoice Unit, the printed circuit board in 3D

auto probe

Size
60 × 42 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
24
Pads
182
Tracks, vias
235, 44
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Aug 2026
Updated
13 Oct 2026

Overview

Voice Unit is an open-source printed circuit board by gravitymir, from the gravitymir/auto_probe repository on GitHub, published under the MIT licence. It is a 2-layer board of 60 × 42 mm with 33 parts on 24 nets, routed with 235 tracks and 44 vias.

It is built around the ESP32-S3-WROOM-1-N16R8, M2.5 and ICS-43434, with the SS34 among its other parts. Its parts include 10 capacitors, 5 resistors, 4 connectors, 3 ICs and 3 diodes. It belongs with the ESP32 boards of this library.

Main components

4

README

README.md

auto_probe

Отладочные core-платы на STM32 — исходники KiCad, гербера и генератор, который их собирает.

Платы не рисовались мышкой: схема, размещение, разводка и шелкография описаны Python-скриптами поверх pcbnew API. Любую правку можно повторить одной командой, а результат каждый раз прогоняется через набор проверок.

Платы

STM32G474RE-CoreBoardSTM32H723ZG-CoreBoard
МКSTM32G474RET6, LQFP64STM32H723ZGT6, LQFP144
Размер70 × 70 мм84 × 84 мм
Слоёв4 (GND / +3V3 внутренние)4 (GND / +3V3 внутренние)
Выводы4 × гребёнка 1×16, шаг 2.544 × гребёнка 2×18, шаг 2.54
ПитаниеUSB-C → AP2112K-3.3USB-C → AP2112K-3.3
Кварцы8 МГц HSE + 32.768 кГц LSE25 МГц HSE + 32.768 кГц LSE
Отладка1×10, распиновка WeAct STLink V2.11×10, распиновка WeAct STLink V2.1
Формат файловKiCad 7KiCad 10
Статусготова к заказуготова к заказу

Все выводы микроконтроллера выведены на гребёнки; шаг 2.54 мм — плата садится в макетку. У H723 внутренние ряды гребёнок отстоят от центра ровно на 11 × 2.54 мм, то есть противоположные гребёнки разнесены на 22 шага и плата ложится на сетку 0.1″.

Что на плате (G474)

Гребёнки. J2 — левая, J3 — нижняя, J4 — правая, J5 — верхняя. Назначение каждого контакта подписано на шелкографии и продублировано в PINOUT.csv. На каждой гребёнке выведены GND и +3V3 — они подключены к внутренним полигонам через thermal relief, отдельных дорожек к ним нет.

J6 — разъём прошивки, 1×10, распиновка один-в-один с WeAct MiniDebugger / STLink V2.1, шлейф садится без переходников:

12345678910
5VGNDRX (PB6)TX (PB7)NRSTSWO (PB3)GNDSWCLKSWDIO3V3

Контакт 1 (5V) связан с VBUS разъёма USB-C. USB и отладчик одновременно не подключайте.

USB-C (J1) — не только питание: D+/D− заведены на PA12/PA11, то есть на встроенный USB 2.0 FS device. Через него работают USB CDC (виртуальный COM-порт) и штатный DFU-бутлоадер STM32 — прошивка без отладчика вообще. CC1/CC2 притянуты 5.1 кОм к земле (роль устройства).

Кнопки. SW1 — RST, SW2 — BOOT0 (для входа в DFU: зажать BOOT, нажать RST).

Светодиод. D1 на PA5 (LED_A), через 1 кОм.

R3 (0 Ω) связывает +3V3 и +3V3A (VDDA / VREF+) в одной точке. Если АЦП будет шуметь — на это же место ставится ферритовая бусина, переразводить ничего не нужно.

Чем отличается H723

Раскладка повторяет G474: кристалл смещён к нижнему левому углу (OFFX / OFFY в генераторе), поэтому верхнее и правое кольца шире — там и стоят светодиод, кнопки RST и BOOT, разъём прошивки, USB-C и брендинг. USB-C стоит на плате целиком: корпус упирается в контур, но за него не свисает.

Электрически устроена так же: те же гребёнки со всеми выводами, тот же USB-C с D+/D− на встроенный USB FS (PA11/PA12), те же кнопки RST и BOOT0, светодиод (здесь на PB0 через 1 кОм), тот же R3 между +3V3 и +3V3A. Разъём прошивки J6 — тот же 1×10 с распиновкой WeAct, но UART другой:

12345678910
5VGNDRX (PC10)TX (PC11)NRSTSWO (PB3)GNDSWCLKSWDIO3V3

Взят USART3 на PC10/PC11, а не USART1: у LQFP144 эта пара выходит на верхнюю гребёнку рядом со SWCLK, тогда как PA9/PA10 попадают на правую гребёнку за коридором USB-C, куда дорожку уже не проложить. Ещё из отличий: 25 МГц HSE вместо 8 МГц, две банки VCAP1/VCAP2 по 2.2 мкФ, отдельная развязка VDD33USB и 11 конденсаторов развязки под корпусом вместо 4.

HSE стоит в корпусе SMD-3225 с четырьмя падами: у JLCPCB 25 МГц в нём — Basic Part (Yangxing X322525MOB4SI, C9006), тогда как двухпадовый 5032 только Extended и с перебоями в наличии. Два лишних пада — экран корпуса, они связаны диагональю под самим кварцем и посажены на полигон одной via. Нагрузочная ёмкость этого кварца 12 пФ, поэтому обвязка обоих генераторов — 18 пФ; кварц с другой CL ставить нельзя, частота уйдёт.

Подписан каждый из 144 контактов, оба ряда. У J2, J3 и J5 ряды подписаны с разных сторон гребёнки — внутренний изнутри, внешний снаружи. Напротив USB-C правое кольцо занято самим разъёмом и его коридором, поэтому у J4 обе строки остаются слева. Подпись, которой не хватило места, генератор сам переносит за гребёнку и сообщает об этом в отчёте сборки. Полная карта — в PINOUT.csv.

Шрифт шелкографии — 0.8 мм при толщине линии 0.15 мм: это минимум, который JLCPCB печатает без расплывания. В кольце между гребёнкой и краем платы остаётся 3.7 мм, и пятизначное имя таким шрифтом туда уже не входит — у нескольких цепей на шелке короткая форма (3V3A, PC2C, USBDP). В цепях, схеме и PINOUT.csv имена полные.

Рядом с деталью печатается только обозначение: под корпусом МК банки развязки стоят сеткой 3.2 мм, и номиналы читаемым шрифтом там просто не помещаются. Вместо этого на обратной стороне, в свободных площадках у J4, напечатана таблица «обозначение — номинал» на все 35 компонентов платы.

Схема H723 нарисована на листе A1: один символ LQFP144 занимает 76 × 188 мм, и вместе с четырьмя гребёнками 2×18 и 26 конденсаторами на A2 (как у G474) он не раскладывается.

Как открыть

Футпринты у обеих плат лежат в собственной библиотеке проекта auto_probe.pretty рядом с платой и подключаются через fp-lib-table — системные библиотеки KiCad не нужны, и проект не зависит от того, какая версия KiCad стоит у вас или у сборщика.

text
boards/STM32G474RE-CoreBoard/STM32G474RE-CoreBoard.kicad_pro
boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard.kicad_pro

G474 сохранена в формате KiCad 7 (KiCad 8/9/10 открывают её и конвертируют при первом сохранении), H723 — в формате KiCad 10: её собирали уже им. Платы независимы, так что разные форматы никому не мешают, но KiCad 7 файл H723 не откроет.

Как заказать

Для JLCPCB / PCBWay достаточно одного архива:

text
boards/STM32G474RE-CoreBoard/STM32G474RE-CoreBoard_gerbers.zip
boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard_gerbers.zip

Внутри: 4 слоя меди, паяльная маска, шелкография, паста, контур платы (.gm1) и сверловка (PTH / NPTH раздельно). Параметры заказа: 4 слоя, 1.6 мм, HASL или ENIG, минимальный зазор 0.2 мм, минимальное отверстие 0.2 мм.

Для монтажа на заводе — BOM.csv и pos.csv рядом с платой. В BOM G474 проставлены номера LCSC для микроконтроллера, стабилизатора и USB-C; у H723 — для стабилизатора и USB-C, номер самого STM32H723ZGT6 подставьте сами. Пассивку подберите из JLCPCB Basic Parts по номиналу и типоразмеру.

Генератор

text
gen/
├── kigen.py        разбор библиотек символов, генерация .kicad_sch
├── pcbhelp.py      обёртка над pcbnew: размещение, дорожки, via, полигоны, текст
├── kicadenv.py     где лежат библиотеки KiCad и различия API между версиями
├── build_g474.py   сборка платы G474 целиком
├── build_h723.py   сборка платы H723
├── outputs.py      BOM.csv и PINOUT.csv из готовой платы
├── export.py       гербера, сверловка, pos.csv, PDF и архив для завода
├── drc.py          геометрический контроль зазоров + несоединённые цепи
├── conn.py         связность цепей (union-find)
├── crtyd.py        пересечения courtyard
└── silkchk.py      наложения шелкографии и печать поверх падов

Нужен Python с модулем pcbnew — от KiCad 7 или KiCad 10 (в Debian/Ubuntu — пакет kicad, в Windows — C:\Program Files\KiCad\10.0\bin\python.exe). Каталоги системных библиотек скрипты находят сами:

bash
python3 gen/build_h723.py boards/STM32H723ZG-CoreBoard
python3 gen/outputs.py    boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard.kicad_pcb
python3 gen/export.py     boards/STM32H723ZG-CoreBoard
python3 gen/drc.py        boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard.kicad_pcb
python3 gen/silkchk.py    boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard.kicad_pcb

export.py зовёт kicad-cli; им же гоняется штатный DRC:

bash
kicad-cli pcb drc --schematic-parity --severity-error boards/STM32H723ZG-CoreBoard/STM32H723ZG-CoreBoard.kicad_pcb

Позиции надписей, выставленные вручную в KiCad, хранятся в build_g474.py в таблицах REF_AT и VAL_AT — пересборка их не затирает. Остальные надписи расставляет автоподбор, который считает занятыми чужие надписи, контуры, пады (шелк поверх открытой меди не печатается) и корпуса деталей (иначе надпись уезжает под чип и её не видно).

Проверки

У KiCad 7 в CLI нет DRC, поэтому проверки написаны отдельно. Текущее состояние обеих плат:

проверкаG474H723
зазоры меди0 нарушений при штатных 0.2 мм0 нарушений при штатных 0.2 мм
DRC самого KiCad0 ошибок0 ошибок
схема против платы—0 расхождений
несоединённые цепи00
пересечения courtyard00
отверстие-отверстиеминимум 0.387 ммминимум 0.278 мм
наложения шелкографии00
шелкография поверх падов00

Обе платы проходят штатный DRC самого KiCad (проверено в KiCad 10) — 0 ошибок при netclass clearance 0.2 мм. Сигнальные дорожки 0.15 мм, силовые 0.35 мм; минимум JLCPCB для этого процесса — 0.09 мм. У H723 есть ещё и проверка схемы против платы (--schematic-parity), её умеет только CLI KiCad 10.

Веер из 144 выводов на четыре гребёнки 2×18 упирается не в ширину дорожки, а в угол: крайние дорожки идут под 42°, и поперёк соседа от шага 0.5 мм остаётся 0.5·cos42° = 0.37 мм. Отсюда и вынос гребёнок на 27.94 мм от центра — на 26 мм веер в зазор 0.2 мм не укладывался ни при какой разумной ширине.

Что осталось

  • На D+/D− нет защиты от статики (например, USBLC6-2SC6) — для прототипа терпимо.
  • D+/D− заодно выведены на J4 контакты 3 и 4. Удобно для отладки, но это отвод на дифференциальной паре: если USB начнёт капризничать при определении — снимите с них всё.
  • VBUS не заведён на вывод МК, определить подключение кабеля программно нельзя.

Лицензия

MIT — см. LICENSE.

Референсные материалы ST (схемы Nucleo MB1367 / MB1364, их гербера и BOM) в репозиторий не включены: они распространяются по ST Open Platform License Agreement. Разбор того, что из них полезно и как это открыть в KiCad, — в docs/.

Parts

33
QtyValueFootprintReferences
4100nFauto_probe:C_0402_1005MetricC2, C4, C6, C10
410uFauto_probe:C_0805_2012MetricC1, C3, C7, C8
4M2.5auto_probe:MountingHole_2.7mm_M2.5H1, H2, H3, H4
21uFauto_probe:C_0402_1005MetricC5, C9
25.1kauto_probe:R_0402_1005MetricR4, R5
2ICS-43434auto_probe:InvenSense_ICS-43434-6_3.5x2.65mmMK1, MK2
2SS34auto_probe:D_SMAD1, D2
1100kauto_probe:R_0402_1005MetricR2
110kauto_probe:R_0402_1005MetricR1
11kauto_probe:R_0402_1005MetricR3
15V INauto_probe:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ3
1BOOTauto_probe:SW_SPST_SKQG_WithoutStemSW2
1ESP32-S3-WROOM-1-N16R8auto_probe:ESP32-S3-WROOM-1U1
1LEDauto_probe:LED_0805_2012MetricD3
1LOGICauto_probe:PinHeader_1x04_P2.54mm_VerticalJ4
1MAX98357Aauto_probe:TQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mmU2
1RESETauto_probe:SW_SPST_SKQG_WithoutStemSW1
1SPEAKERauto_probe:PinHeader_1x02_P2.54mm_VerticalJ2
1TLV75733auto_probe:SOT-23-5U3
1USB-Cauto_probe:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

Questions

How big is the Voice Unit PCB?

It measures 60 × 42 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Voice Unit use?

33 parts, built around the ESP32-S3-WROOM-1-N16R8, M2.5, ICS-43434 and SS34. 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.

Where can I download the Voice Unit KiCad files?

From the gravitymir/auto_probe repository on GitHub, at the commit this page was made from: the board is boards/Voice-Unit/Voice-Unit.kicad_pcb and its schematic boards/Battery-Unit/Battery-Unit.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Voice Unit design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from gravitymir/auto_probe

7
  • 2 layers58 × 44 mmPSU Unit, the printed circuit board in 3D

    PSU Unit

    gravitymir/auto_probe

    auto probe

    37 partsMIT
  • 2 layers45 × 28 mmBattery Unit, the printed circuit board in 3D

    Battery Unit

    gravitymir/auto_probe

    auto probe

    20 partsMIT
  • 2 layers22 × 23.4 mmLIN Unit, the printed circuit board in 3D

    LIN Unit

    gravitymir/auto_probe

    auto probe

    17 partsMIT
  • 2 layers16 × 18 mmVolt Unit, the printed circuit board in 3D

    Volt Unit

    gravitymir/auto_probe

    auto probe

    15 partsMIT
  • 2 layers13 × 13.4 mmCAN Unit, the printed circuit board in 3D

    CAN Unit

    gravitymir/auto_probe

    auto probe

    8 partsMIT

Similar boards

  • 2 layers30 × 60 mmCapture clip, the printed circuit board in 3D

    Capture clip

    vaknin/PCB

    Hardware ideas to fab-ready PCBs as code: Rust pcbgen on KiCad 10, Freerouting, ESP-IDF firmware with QEMU/Wokwi simulation, CadQuery enclosures

    52 parts
  • 2 layers54 × 31 mmGamer companion, the printed circuit board in 3D

    Gamer companion

    donaldbell/productspeedrun

    Let's see how quickly we can get a product idea off the ground.

    41 parts
  • 4 layers65 × 56 mmSensor HAT, the printed circuit board in 3D

    Sensor HAT

    Eniemooo/Sensor-HAT

    Open-hardware indoor air sensor (CO2, VOC/NOx, T/RH, light, sound): HAT for Raspberry Pi or standalone with Seeed XIAO + ESPHome. KiCad 10.

    112 parts
  • 4 layers128 × 51.4 mmQuack face, the printed circuit board in 3D

    Quack face

    HeyPCB/quack-face

    Face board for the Open Duck Mini's head: eye LEDs, projector driver, I2S amp and mic, antenna servos, shaped to the head. 4-layer KiCad 10 board plus printed standoffs, fit-checked in the head CAD.

    55 partsCERN-OHL-S-2.0
  • 4 layers67 × 46 mmAgentcast dongle, the printed circuit board in 3D

    Agentcast dongle

    ThyFriendlyFox/agentcast-prototype

    An HDMI dongle with a far-field mic array. Plug it into any TV; people in the room talk, a cloud agent does the work, and the TV shows the results. The product spec is docs/office-agent-dongle.md.

    46 parts
  • 4 layers60 × 84 mmStratosCore Claude, the printed circuit board in 3D

    StratosCore Claude

    pantojinho/StratosCore

    StratosCore is an open-source portable field, aviation, meteorological, navigation and radio computer based on the ESP32-S3-WROOM-1-N16R8.

    277 parts1
  • 2 layers64 × 46 mmWeatherframe, the printed circuit board in 3D

    Weatherframe

    amselgesang/weatherframe_v01

    My weather station hardver

    50 partsMIT
  • 4 layers58 × 102 mmAi mobile reader, the printed circuit board in 3D

    Ai mobile reader

    beishan/ai-mobile

    生成脚本依赖 KiCad 自带的 Python 和 pcbnew 模块。本机命令如下:

    79 parts