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.
controller_3Dmodel/
— SolidWorks models (.SLDPRT
,.SLDASM
)controller_3Dmodel/printable_files
— Printable files (.stl
), STL filescontroller_code/
— Arduino code, configuration and transmitter sketches, prototype image
- MCU: Arduino Nano
- Radio: HC-12 433MHz UART
- Controls: Analog joystick, digital buttons, 2 shoulder buttons, 3 potentiometers
- Power: LiPo battery
- Protocol: UART (Serial)
- 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.
- 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
- HC-12 Radio:
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.
Arduino IDE:
- Open
controller_code/HC12_configurator/HC12_configurator.ino
- Select Board
Arduino Nano
, Port<COMx>
, and Processor "ATmega328P (Old bootloader)" - Upload
- Enter AT mode: keep SET pin LOW (pin 5 LOW).
- Configure at 9600:
HC12.begin(9600); HC12.println("AT+B115200");
expect “OK+B115200”. - Switch to 115200 and exit AT:
HC12.end(); HC12.begin(115200); digitalWrite(5, HIGH);
- Normal run:
Serial.begin(115200); HC12.begin(115200);
- Required libraries:
- HC12
- CRC32
Arduino IDE:
- Open
controller_code/HC12_transmitter/HC12_transmitter.ino
- Select Board
Arduino Nano
, Port<COMx>
, and Processor "ATmega328P (Old bootloader)" - Install libraries listed above
- Upload
ShunkoBot © 2025 by Francesco Stasi, Davide Tonti, Simona Vatinno is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.