Arduino Based Serial Transmitter

Introduction: Arduino Based Serial Transmitter

About: Hobbyist, Content based on Robotics, electronics, PCB designing, animation and much more

Commercially available transmitter and receiver pairs are usually PPM or PWM based. Using them with any microcontroller is problematic as you require a lot of pins and hence isn't that efficient. Using Serial modules like Xbee or HC-05 can solve this issue but will have less range as compared to the commercial PWM/PPM RF pairs, hence cant be used for applications like drones or UAV. To solve this, we can use NRF24l01+ (PA+LNA) module which theoretically provides a huge range of 1100m (700m+ in ideal conditions) along with Arduino to make a versatile commercial Like Transmitter which can be configured to send almost everything! This design was made considering these problems.

This project was also featured in Altium Stories. Gerber Files for my PCBs will be available on my Patreon page, subscribe to support my work.

Features of the design:

  1. Arduino Pro mini based
  2. NRF24l01 + PA +LNA as RF
  3. 2 Joysticks (4 analog inputs)
  4. 12 Digital buttons
  5. 2 buttons for Menu settings
  6. OLED for user interface
  7. 2 74LS151 Multiplexers
  8. HC-05 Compatible
  9. 2 Toggle Switches
  10. Powered by any 2S lipo/li-ion battery pack

Step 1: Designing the PCBs Using Altium Designer

I design all my PCBs using Altium Designer.

The idea was to design a transmitter similar to the commercial ones, hence to avoid more number of pins being used for buttons, Multiplexers are used to get input of 14 buttons in total. Two different AMS1117-3.3V are used to power the Arduino and NRF24 module separately as NRF24 modules are fussy regarding power. Design also includes headers to attach HC-05 module and communicate using UART.

Gerber files can be generated once the design is done and can be used to order your own PCB.

Design screenshots can be seen here.

Step 2: Ordering the PCBs From PCBWay

PCBs for this project were downloaded from PCBWay, You can order your own PCBs from PCBWay or (click this)

link to buy my PCB design directly from the PCBWay website.

Instructions to order:

  1. Head on to www.pcbway.com and register to get your first PCB prototype for free! (Just pay for the shipping)
  2. Click on PCB instant quote and upload Gerber files.
  3. Select desired color and other settings, then add it to cart and order the PCBs

You'll receive PCBs fairly quickly depending on where you live. Time to solder!

Step 3: Soldering All the Components

Design has a lot of SMD components, whcih should be soldered first. Video here demonstrates soldering a few components.

Step 4: Testing the Multiplexers and NRF24l01+ Module

Multiplexers need to be tested individually before directly uploading the transmitter code. Snippet attached here is the test code for these multiplexers.

void updateMux(){
  for(int i=0;i<8;i++){
    digitalWrite(SEL0,HIGH && (i& B00000001));
    digitalWrite(SEL1,HIGH && (i& B00000010));
    digitalWrite(SEL2,HIGH && (i& B00000100));
    Mux1_State[i]= !(digitalRead(MUX1_OUT));
}

NRF24 module however needs to be tested individually with basic RX-TX setup, files can be downloaded from my Github.

After setup works fine, Flashing the Arduino Pro Mini With Final Transmitter Code can be done. (Download the code here)

Step 5: Make Anything You Could Think of Wireless!

Now we have a Serial transmitter that can replace any commercial transmitter, ideal for RC drones and RC cars or any other Arduino NRF24 based system!

Anything Goes Contest

Participated in the
Anything Goes Contest

Be the First to Share

    Recommendations

    • Explore Science Challenge

      Explore Science Challenge
    • Home Decor Challenge

      Home Decor Challenge
    • Toys & Games Contest

      Toys & Games Contest

    Comments