Skip to the content
2 layers87.1 × 87 mmTraining Robot, the printed circuit board in 3D

A tele-operated mobile robot operating over the LoRa physical layer. For WIoT Sp ’26 final project.

Size
87.1 × 87 mm
Copper layers
2
Thickness
1.6 mm
Parts
16
Nets
20
Pads
71
Tracks, vias
190, 22
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Apr 2026
Updated
7 May 2026

Overview

Training Robot is an open-source printed circuit board by ivanpost24, from the ivanpost24/p2p-lora-robot repository on GitHub. It is a 2-layer board of 87.1 × 87 mm with 16 parts on 20 nets, routed with 190 tracks and 22 vias.

Its parts include 3 ICs, 3 connectors, 2 resistors, 1 diode and 1 switch. It belongs with the robots and motor control boards of this library.

README

README.md

WIoT final project

Authored by: Farjan Ahmed, Carlos Giron, Ivan Post

This is our final project for CS 4501: Wireless for the Internet of Things. It is a prototype system for controlling a mobile robot over long distances (from our observation, up to 0.32 km) using the LoRa physical layer protocol on Heltec ESP32 v3 LORA boards. It is designed to operate on the 915 MHz unlicensed band in the United States, which means you do not need an amateur radio license to use it. This is a video of an operator controlling the robot from about 0.3 km away; the control latency is primarily due to delays in the video feed and is under 500 ms in practice. The exact feasible range will depend on environmental factors.

We have provided instructions below to reproduce our prototype.

Building the peripheral robot

Components list:

Additional pcb relevant components such as resistors, switches, and connectors are shown in this schematic: robot schematic

The KiCad files for editing the schematic and gerbers for ordering PCBs are included in the "/KiCad" directory.

Mount the breakout boards for motor drivers and modules onto their respective locations on the pcb: robot pcb

Building the central controller

Pin assignments:

Assignments for the peripheral robot device are as follows:

  • 19 - PWMA/B
  • 20 - A/BIN1
  • 26 - A/BIN2
  • 47 - PWMA/B
  • 48 - A/BIN1
  • 33 - A/BIN2
  • Connect external 3v3 supply and gnd

These pins are used to set the direction of motors and speed of motors as they are connected to tb6612fng motor drivers. You MUST NOT power the motor drivers using the 3v3 pins of the Heltec board. Due to a hardware issue it seems that these boards are unable to power the motor drivers and remain on for operation. You must use a seperate 3v3 source to power the drivers.

In our case we used an Arduino Uno R3 to deliver 3v3, but a simple battery should suffice. It is important to remember to ground both Arduino and Heltec on the same rail otherwise reference issues for digital logic occur.

Assignments for the central controller are as follows:

  • 7 - Vrx
  • 6 - Vry
  • 5 - Sw

Although the datasheet recommends using 5V as input, our code was designed around using 3v3.

Deploying the provided code

This project uses PlatformIO, so configuring the project locally should be simple. Flash the Heltec v3 on the robot with the lora-peripheral code, and flash the Heltec v3 on the controller with the lora-central code. Everything should start automatically without any user input.

Starting the robot

After code has been flashed onto the central and peripheral devices start the device as follows:

  1. Connect the power delivery module to the power bank's 65 W output port
  2. Connect the Arduino to the power bank
  3. Connect the Heltec to the power bank
  4. Flip the enable switch

If the PD module and onboard led are on then the robot is ready for operation if the devices were flashed successfully and connections were correct.

Parts

16
QtyValueFootprintReferences
210KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2
2~Library:TB_breakout_motor_driverU1, U2
13v3Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ4
1Arduino connectorConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ1
1BackLTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalM3
1BackRTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalM4
1FrontLTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalM1
1FrontRTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalM2
1GNDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ5
1LEDLED_THT:LED_D3.0mmD1
1LOGOLibrary:Moai4G***
1LOGOLibrary:UVA_logo_newG***
1SW_SPDT_312Button_Switch_THT:SW_Slide_SPDT_Straight_CK_OS102011MS2QSW1
1~Library:PD ModuleU4

Similar boards

  • 2 layers140.5 × 30 mmType e, the printed circuit board in 3D

    Type e

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    16 parts3kApache-2.0
  • 2 layers41.4 × 14.5 mmU2f zero, the printed circuit board in 3D

    U2f zero

    conorpp/u2f-zero

    U2F USB token optimized for physical security, affordability, and style

    16 parts2.4k
  • 2 layers122 × 37 mmV0-UmbilicalBoard, the printed circuit board in 3D

    V0-UmbilicalBoard

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    16 parts1.1kGPL-3.0
  • 2 layers152 × 57.6 mmVideoslotadapter, the printed circuit board in 3D

    Videoslotadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    16 parts1kGPL-3.0
  • 2 layers36 × 63.4 mmSmart ringfinal layout, the printed circuit board in 3D

    Smart ringfinal layout

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    16 parts915
  • 2 layers60 × 40 mmHASwitchPlate, the printed circuit board in 3D

    HASwitchPlate

    aderusha/HASwitchPlate

    LCD touchscreen for Home Automation

    16 parts738MIT
  • 2 layers21.1 × 26.9 mmDemo, the printed circuit board in 3D

    Demo

    easyw/kicadStepUpMod

    kicadStepUp: ECAD to MCAD FreeCAD WorkBench

    16 parts704

Questions

How big is the Training Robot PCB?

It measures 87.1 × 87 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Training Robot use?

16 parts. 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 Training Robot KiCad files?

From the ivanpost24/p2p-lora-robot repository on GitHub, at the commit this page was made from: the board is kicad/Training_Robot.kicad_pcb and its schematic kicad/Training_Robot.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Training Robot design in my own project?

Its repository states no licence, so its author keeps all rights: ask ivanpost24 before reusing the design.