Skip to content

Phersax/diy-radio-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIY Radio Controller (Arduino)

A compact, 3D-printable RF joystick controller for ShunkoBot and compatible robots.
The controller features:

  • Analog joystick for robot movement
  • Action buttons to control the end-effector
  • 2 shoulder buttons to enable rotation in omnidirectional robots
  • 3 potentiometers to control the three joints of a robotic arm

This module provides 3D models, Arduino firmware, wiring, and command references.

Navigation using Cartographer Navigation using AMCL

section divider

Repository Structure

  • controller_3Dmodel/ — SolidWorks models (.SLDPRT, .SLDASM)
  • controller_3Dmodel/printable_files — Printable files (.stl), STL files
  • controller_code/ — Arduino code, configuration and transmitter sketches, prototype image

section divider

Features

  • MCU: Arduino Nano
  • Radio: HC-12 433MHz UART
  • Controls: Analog joystick, digital buttons, 2 shoulder buttons, 3 potentiometers
  • Power: LiPo battery
  • Protocol: UART (Serial)

section divider

3D Model

  • Main files:
    • Base.STL, front_cover_part.STL, back_cover_part.STL, button_part.STL, button_cover.STL, shunko_txt.STL, arrow.SLDPRT
    • Assembly: controller_ass.SLDASM
  • Drawings and SVGs:
    • svg/Draw1.SLDDRW, svg/Draw2.SLDDRW, freccia-2820191500.svg, shunko_txt.dxf
  • Recommended print settings:
    • Material: PLA/PETG
    • Layer height: 0.2mm
    • Infill: 20-40%
    • Supports: Only for covers and buttons
  • Assembly notes:
    • Follow the SolidWorks assembly for mounting.
    • Fix the Arduino Nano board to the base with M2 screws.
    • Insert the HC-12 module into its dedicated slot.
    • Connect joystick, buttons, and potentiometers according to the wiring diagram.

section divider

Wiring

  • Pinout summary:
    • HC-12 Radio:
      • VCC → 5V
      • GND → GND
      • TX → D11
      • RX → D10
      • SET → D5 (with jumper NO)
    • Analog joystick:
      • VRx → A1
      • VRy → A2
      • SW → A3
    • Buttons:
      • trn_L → D8
      • trn_R → D9
      • leftE → D3
      • rightE → D2
    • Potentiometers:
      • POT1 → A4
      • POT2 → A5
      • POT3 → A6
    • Power:
      • Vin → 7.4V battery
      • GND → GND

Additional assembly notes:

  • The back cover allows installing a LiPo battery, a TP4056 charging module, and a slide switch to cut power. This makes the controller portable.
  • For assembly, you must create a custom PCB on perfboard (millefori) and solder all components as per the wiring diagram, using an Arduino Nano.
  • To secure the assembly, use four M3 screws (20–30 mm) with plastic inserts mounted in the front cover.

section divider

Firmware

Configurator

Arduino IDE:

  1. Open controller_code/HC12_configurator/HC12_configurator.ino
  2. Select Board Arduino Nano, Port <COMx>, and Processor "ATmega328P (Old bootloader)"
  3. Upload
  4. Enter AT mode: keep SET pin LOW (pin 5 LOW).
  5. Configure at 9600: HC12.begin(9600); HC12.println("AT+B115200"); expect “OK+B115200”.
  6. Switch to 115200 and exit AT: HC12.end(); HC12.begin(115200); digitalWrite(5, HIGH);
  7. Normal run: Serial.begin(115200); HC12.begin(115200);

Transmitter

  • Required libraries:
    • HC12
    • CRC32

Arduino IDE:

  1. Open controller_code/HC12_transmitter/HC12_transmitter.ino
  2. Select Board Arduino Nano, Port <COMx>, and Processor "ATmega328P (Old bootloader)"
  3. Install libraries listed above
  4. Upload

section divider

License

ShunkoBot © 2025 by Francesco Stasi, Davide Tonti, Simona Vatinno is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.

About

A compact, low-cost, DIY 3D-printable RF joystick controller for ShunkoBot and compatible robots.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages