

TanfolyamRobot
Korábban az STMicroelectronics által biztosított STM32CubeIDE-t használtuk a firmware fejlesztéséhez, azonban ez egy elég nehézkes és lassú eszköz.
- Size
- 100.5 × 61.3 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 79
- Nets
- 103
- Pads
- 335
- Tracks, vias
- 917, 161
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 22 Mar 2020
- Updated
- 1 Mar 2026
Overview
TanfolyamRobot is an open-source printed circuit board by legokor, from the legokor/TanfolyamRobot repository on GitHub. It is a 4-layer board of 100.5 × 61.3 mm with 79 parts on 103 nets, routed with 917 tracks and 161 vias.
It is built around the FT232RL, DRV8833PW and LP2950CDT-3.3, with the BAS85, BSS123 and BSO201SPH among its other parts. Its parts include 23 resistors, 18 capacitors, 5 ICs, 5 diodes and 4 transistors. It belongs with the ESP8266 and STM32 boards of this library.
Main components
7FT232RL
SSOP-28-208mil-40℃~+85℃ 3.3V~5.25V、4V~5.25V USB 2.0 USB to UART SSOP-28-208mil USB Converters ROHSFTDIUSB ConvertersDRV8833PW
TSSOP-16-40℃~+85℃ 2 2.7V~10.8V 360mΩ 500mA Bipolar Driver Yes TSSOP-16 Stepper Motor Driver ROHSTexas InstrumentsStepper Motor DriverLP2950CDT-3.3
TO-252-2(DPAK)-40℃~+125℃@(Ta) 1 100mA 126uVrms 3.3V 30V 380mV@(100mA) 93uA Fixed Over Current Protection、Over Temperature Protection Positive TO-252-2(DPAK) Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSonsemiVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsBAS85
MiniMELF1 Independent 2.3uA@25V 200mA 30V 5A 800mV@100mA MiniMELF Schottky Diodes ROHSNexperiaSchottky DiodesBSS123
SOT-23-55℃~+150℃ 1 N-channel 1.4V 1.4nC@10V 100V 170mA 22pF 2pF 3.5pF 680mW 6Ω@10V、10Ω@4.5V N-Channel SOT-23 MOSFETs ROHShongjiachengMOSFETsBSO201SPH
SOIC-8-55℃~+150℃ 1 P-Channel 1.2V 12.9mΩ@2.5V 14.9A 2.55nF 2.5W 20V 3.15nF 88nC@4.5V 9.6nF P-Channel SOIC-8 MOSFETs ROHSInfineon TechnologiesMOSFETsKUSBVX-BS1N-B
插件USB ConnectorsKycon
README
README.mdLEGO Kör - TanfolyamRobot
Fejlesztő környezet
Korábban az STMicroelectronics által biztosított STM32CubeIDE-t használtuk a firmware fejlesztéséhez, azonban ez egy elég nehézkes és lassú eszköz. Ezért a tanfolyam során áttérünk egy könnyebben használható és gyorsabb parancssoros toolchain-re, az STM32CubeCLT-re. Ezt a toolchain-t a Visual Studio Code nevű (továbbiakban VSCode) kód szerkesztővel fogjuk használni, így a teljes fejlesztés (fordítás, feltöltés) nagyon könnyen indítható lesz néhány előre beállított task-kal.
Toolchain
Az előző fejezetben említett módon a firmware fejlesztéséhez az STMicroelectronics parancsoros eszközeit használjuk. Sajnos ezek letöltése regisztrációhoz kötött, ezért feltöltöttük a telepítő fájlokat a körös drive-ra, így regisztráció nélkül is telepíteni tudjátok - persze teljesen megértjük, ha nem akartok random drive-os fájlokat telepíteni, viszont ez esetben muszáj regisztrálnotok az STMicroelectronics weboldalán, és onnan letölteni.
Letöltés után a telepítő fájlt futtatva telepítsétek a STM32CubeCLT-t egy kényelmes helyre, például C:\STM32CubeCLT-be.
FONTOS: az STM32CubeCLT telepítése után újra kell indítani a VSCode-ot amennyiben az már meg volt nyitva, különben a VSCode nem fogja látni a telepített toolchain-t. Ezen felül Linux rendszerek esetében előfordulhat, hogy a gépet is újra kell indítani, hogy a megfelelő környezeti változók beálljanak.
Jelenleg Windows 10/11-en és Ubuntu-n teszteljük a szoftvert. Más (Linux alapú) platformokon is valószínűleg működni fog - de ezt nem tudjuk garantálni.
Robot illesztőszoftver
A robotra a firmware letöltése virtuális soros porton történik, a roboton az USB csatlakozó egy FT232RL chiphez kapcsolódik.
Előfordulhat Windows esetében, hogy az nem telepíti automatikusan a virtuális soros port driverét. Erre az esetre a fentebbi drive linken elérhető Windows zip-ben találtok egy plusz driver telepítőt, de amúgy ezt is le tudjátok tölteni az FTDI weboldaláról, majd pedig kibontani és telepíteni.
Kiinduló projekt letöltése, megnyitása
A kiinduló projektet a GitHub repojából tudjuk letölteni, ehhez az oldal megnyitása után jobb oldalt a Releases fül alatt kell kiválasztanunk a legújabb kiadást, majd a tanfrobot.zip fájlra kell kattintani.
A letöltött fájlt helyezzük el egy kényelmes helyre, például Documents/Lego_Tanfolyam mappába, majd bontsuk ki. A kibontás után nyissuk meg a VSCode-ot, és a File -> Open Folder... menüponttal nyissuk meg a kibontott firmware mappát (mely többek közt az Application, Drivers, Tools könyvtárakat tartalmazza).
Extra tipp: a VSCode-ban érdemes telepíteni az ms-vscode.cpptools nevű bővítményt, mely C/C++ nyelv támogatást ad a szerkesztőhöz, így például szintaxis kiemelést és automatikus kiegészítést biztosít.
Csak a tanfolyamon kell: projekt áttekintése, build és upload
Az imént megnyitott projektünk fájljait az IDE bal oldalán láthatjuk. A kód számunkra lényegi része a tanfolyamrobot/Application/src/app.c fájl lesz. Itt kell majd megoldanunk a tanfolyam során a feladatokat. Az itt található app_main() függvény gombnyomásra indul. Ha ebből a függvényből visszatér a programunk, akkor a robot leáll és a kijelzőn megjeleníti a visszatérési értéket.
A kód fordításához és a robotra való feltöltéséhez a VSCode-ban előre beállítottunk néhány task-ot, melyeket a CTRL+SHIFT+B billentyűkombinációval tudtok elindítani. E billentyűkombináció megnyomása után egy legördülő menüből választhatjátok ki, hogy mit szeretnétek csinálni - számunkra a CMake Build és az STM32 Flash Firmware (FTDI) lesz a fontos. Előbbi lefordítja a kódot, utóbbi pedig feltölti a robotra. A kiválasztás után egy újabb kérdés fog megjelenni, hogy melyik konfigurációt szeretnénk használni - válasszuk a Release-t, majd nyomjunk egy entert.
FONTOS: a CMake Build-et mindig futtassátok le a STM32 Flash Firmware (FTDI) előtt, különben a régi kód fog futni a roboton, nem pedig a legutóbb módosított verzió.
Parts
79| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 100n | tanfolyamrobot:C0603 | C1, C2, C3, C4, C5, C6, C7, C8, C9, C15, C18 |
| 7 | 10K | tanfolyamrobot:R0603 | R1, R9, R10, R20, R21, R31, R32 |
| 6 | 4K7 | tanfolyamrobot:R0603 | R2, R6, R7, R25, R29, R30 |
| 4 | 20K | tanfolyamrobot:R0603 | R22, R23, R33, R34 |
| 3 | 1751248 | tanfolyamrobot:1751248 | MOT1, MOT2, X2 |
| 3 | BAS85 | tanfolyamrobot:MICROMELF-W | D3, D4, D6 |
| 3 | BSS123 | tanfolyamrobot:SOT23 | Q2, Q3, Q4 |
| 3 | R-EU_R0603 | tanfolyamrobot:R0603 | R3, R4, R5 |
| 2 | 100n | tanfolyamrobot:C0805K | C12, C13 |
| 2 | LEDCHIP-LED0603 | tanfolyamrobot:CHIP-LED0603 | RX0, TX0 |
| 2 | MOMENTARY-SWITCH-SPST-PTH-6.0MM | tanfolyamrobot:TACTILE_SWITCH_PTH_6.0MM | BUT0, RST0 |
| 2 | PINHD-1X2 | tanfolyamrobot:1X02 | JP6, JP7 |
| 2 | PINHD-2X4/90 | tanfolyamrobot:2X04_90 | COLOR0, ENC0 |
| 1 | 10k | tanfolyamrobot:TRIMPOT-SMD-3MM-CLOSED | CONT0 |
| 1 | 10u | tanfolyamrobot:C0805K | C14 |
| 1 | 22u | tanfolyamrobot:B_3528-21R | C10 |
| 1 | 27K | tanfolyamrobot:R0603 | R24 |
| 1 | 2u2 | tanfolyamrobot:C0603 | C17 |
| 1 | 330R | tanfolyamrobot:R0603 | R8 |
| 1 | 330n | tanfolyamrobot:C0805K | C11 |
| 1 | 68u | tanfolyamrobot:B_3528-21R | C16 |
| 1 | 6K8 | tanfolyamrobot:R0603 | R35 |
| 1 | BAS85 | tanfolyamrobot:DO-214AC | D7 |
| 1 | BSO201SP | tanfolyamrobot:SO-8 | Q1 |
| 1 | Conn_01x01 | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J1 |
| 1 | DRV8833 | tanfolyamrobot:DRV8833_MODULE | M1 |
| 1 | ESP01 | tanfolyamrobot:ESP01 | U$1 |
| 1 | FT232RL | tanfolyamrobot:SSOP28 | IC4 |
| 1 | KUSBVX-BS1N | tanfolyamrobot:KUSBVX-BS1N | X6 |
| 1 | LCD-16X2NOSILK | tanfolyamrobot:LCD-16X2_NOSILK | LCD1 |
| 1 | LD117A?S | tanfolyamrobot:SOT223 | IC5 |
| 1 | LP2950?CDT | tanfolyamrobot:DPACK | IC2 |
| 1 | MURATA_CSTCE | tanfolyamrobot:CSTCE | X1 |
| 1 | MountingHole | MountingHole:MountingHole_3mm | H1 |
| 1 | PINHD-1X3/90 | tanfolyamrobot:1X03_90 | SERVO0 |
| 1 | STM32F411RCTx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U1 |
| 1 | SWD | tanfolyamrobot:1X06 | SWD0 |
| 1 | SW_DPDT_x2 | Button_Switch_THT:SW_E-Switch_EG1271_SPDT | SW1 |
| 1 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | JP1 |
| 1 | WE-TVS-HS_SOT23-6L_82400102 | tanfolyamrobot:WE-TVS_SOT23-6L | D1 |
| 1 | locked | tanfolyamrobot:1X04_90 | US0 |
| 1 | ~ | IMU:PCB_IMU | U2 |
Similar boards
- 2 layers89 × 99 mm

- 2 layers200 × 100 mm

Polykit x monosynth
polykit/polykit-x-monosynth
The Polykit X1 is a DIY semi-modular, analog, patchable synthesizer
167 parts94 - 2 layers50.3 × 25.8 mm

- 2 layers90 × 90 mm

- 2 layers23.8 × 25.1 mm

- 2 layers37 × 56 mm

Photometer3
meltissia/Dual-Channel-LSPR-Photometer
Двоканальний LSPR-фотометр: проектування PCB під змішані сигнали та низькорівнева C-прошивка на ESP-IDF з потоковим DSP.
49 parts - 2 layers50 × 160 mm

Polykit x inputboard
polykit/polykit-x-inputboard
Input board for my 8-voice polyphonic synthesizer
80 parts - 2 layers68 × 100 mm

Questions
How big is the TanfolyamRobot PCB?
It measures 100.5 × 61.3 mm and has 4 copper layers, 1.6 mm thick.
What parts does the TanfolyamRobot use?
79 parts, built around the FT232RL, DRV8833PW, LP2950CDT-3.3 and BAS85. 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 TanfolyamRobot KiCad files?
From the legokor/TanfolyamRobot repository on GitHub, at the commit this page was made from: the board is pcb/version2.0/tanfolyamrobot.kicad_pcb and its schematic pcb/version2.0.1/tanfolyamrobot/tanfolyamrobot.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the TanfolyamRobot design in my own project?
Its repository states no licence, so its author keeps all rights: ask legokor before reusing the design.