DIY Arduino 7ch Transmitter in a 3d Printed Case

by thehungineer in Circuits > Arduino

1470 Views, 16 Favorites, 0 Comments

DIY Arduino 7ch Transmitter in a 3d Printed Case

IMG_20200717_222252_499.jpg
FZG2VG5L6TC9PIM.jpg
IMG_20200709_160213.jpg

Hello, I am pleased to present to you my first major project, a custom designed 7 channel transceiver unit. The transmitter is based on an arduino nano, to which two joysticks are connected, a potmeter and two toggle switches. Communication is handled by the nRF24L01. I chose this module because it is relatively cheap, has a very long range when used properly and a very low latency. My main principles in building it were cheapness and to create a compact, good looking and reliable device. I didn't want any disturbing long cables that could come loose during testing and cause malfunction, so I also designed my own PCB.

Supplies

Transmitter:

Circuit:

  • Arduino nano
  • nRF24L01+PA modul
  • AMS1117 voltage regulator
  • 50 uf capacitor
  • Female pin connectors
  • 2 pieces 5 pin connectors
  • 2 pin connector
  • 2 pieces joystick
  • 2 pieces 2 way toggle switch
  • Potentiometer
  • Push button
  • Power switch
  • DC power supply female connetor

Case:

  • 3d printer :)
  • Some M3 screw
  • 4 pieces M3 ruthex
  • Some glue

Designing the Electronics

Untitled Sketch_bb.png
Képernyőfelvétel (7).png

My first task was to develop the electrical part of the project. I wanted to use my own PCB, because the nRF24L01 modules are very sensitive to noise, so I chose this solution to avoid long cables. I chose the Eagle PCB design program which I hadn't used before, it took me a while but I finally managed to create a custom pcb design.

PCB Making

IMG_20200321_151920.jpg
IMG_20200629_155838.jpg
IMG_20200629_164218.jpg
IMG_20200630_150529.jpg
IMG_20200701_161025_936.jpg
IMG_20200701_161025_937.jpg

As this is my first pcb and it's not complicated I decided to do it at home anyway. I ironed the laser printed pcb outline onto a piece of single sided copper clad sheet. I removed the paper layer with water and then etched it. The etching was done with a mixture of hydrogen peroxide and hydrochloric acid, I left the pcb in a bit too long, so it etched a bit more than I had planned, but the pcb is still functional. The washed PCB was then drilled out with a 2mm drill in the appropriate places. Next was the soldering, I soldered a female jumper to the arduino so that the arduino can be replaced if it breaks. After soldering, the main electronic assembly is basically complete, all that remains is to connect the various interferers to the motherboard.

Designing the Case

Haz_kep_v1.5.jpg
Haz_kep_v2.7.jpg
Haz_kep_v2.6.jpg

Once the electronics were assembled, I could determine the main dimensions and start designing the case. I aimed for a simple design with as little room for error as possible. Once the design was complete, I printed the pieces and then assembled them.

Assembling

IMG_20220813_120608.jpg
IMG_20220813_120605.jpg
IMG_20220813_120528.jpg

The first thing I did was to assemble the front panel, snap the switches and joysticks into place and screw the potmeter in place. Then I screwed the two switches into place. After that I placed the electronics in the correct place inside the box and connected the wires from the switches and joysticks already installed to the motherboard. I attached an Arduino Nano module with a cable to the motherboard, which I led outside the case to allow programming without disassembling the box. The box can then be screwed together. The various connectors should be tested after assembly to ensure that they are all properly sensed by the Arduino module. To do this, I used a simple program that reads the value on the legs of the switches and prints it to the serial monitor (You can find this litle program below).

Receiver Modules

receiver_sketch.png
IMG_20210207_201710.jpg
IMG_9947.JPG

I have made several different receivers for different tasks, some with an L293d motor controller soldered on and some with 7 servo outputs. I also drew a circuit diagram of the servo output circuitry, you can modify this as you want.

Arduino Code

After assembling the transmitter and receiver unit, I continued with the programming. During the programming, I used pre-made libraries for the nRF24L01 modules, which I struggled to use in the beginning, but finally managed to write a reliable program. The program works by packing the value read from the joysticks and switches into an array which is sent to the receiver. The receiver unit receives this array and sends the intervention signal to the respective legs according to the different values. If the receiver loses the signal, it sends a preset safety value to the legs after 1 sec.

Testing

DIY Arduino 7ch Transmitter in a 3d Printed Case - Testing

After assembly and programming, testing was next. This showed that the nRF24L01 modules do indeed have low latency and are surprisingly reliable, but unfortunately I could not achieve a range of more than 25 m with moving objects, but I think that more can be achieved with these modules.

Future

KS®4321225236.8.jpg

Therfore, I have started developing the next version, where I plan to replace the homemade PCB with a professional one. I'm replacing the cheap joystick that has a high deadband with a larger one that is more accurate. I have already started planning this.


Thanks for checking out my project, I hope you liked it!