NRF24L01 RC Transmitter
Hello Instructables!
After your great comments on the last one I am back again with another great project!
What is it this time? It is nrf24L01+ transmitter. I made it with a purpose to control my new RC FPV race car which is coming in the next instructable.
This transmitter is capable of ~1km range in quite clear area (you would be lucky if you could get about 500 meters in a dense city). It also contains a backlit monochrome LCD which has a well written system with settings and control menus. Long battery life is also a feature (about 4 hours while on highest PA setting and actively transmitting).
Materials and Tools:
1. nrf24L01+ module - this is the most important component for this project and there are many variants of this module to find. If you are building a tiny remote - get a SMD version (1$ on Ebay), if you are in need of a beast to transmit your bytes over 1.1km max range - get a PA module (3$ on Ebay) with an antenna like I did :). +3$
2. microcontroller - this is where you have to decide how much input/output pins you will need. I chose a Sparkfun 3.3V 8 MHzPro Micro (a clone, because I am not made out of money and 4$ + FREE shipping from Ebay vs 19.95$ + shipping from Sparkfun is quite a difference). In the end I almost run out of digital pins for button inputs, but since I had only 2 left and 2 buttons to connect I was saved. NOTE: I could have used a shift-in register (like 74HC165N) to connect more switches and buttons. +4$
3. A battery and a battery charging IC. Depending on which battery type you choose (LiPo, Li-Ion or NiMh), you will need a charger (unless you want your project to be one time use, then you don't need one). I used 750mAh LiPo (3$ on Ebay) and this great TP4056 module with battery overdischarge protection circuit, which goes on Ebay for 1$ (those are really cheap if you buy a bunch for about 0.5$ each). NOTE: if you use TP4056 and a LiPo with capacity lower than 1Ah, you will need to change the current limiting resistor on the module otherwise your LiPo might explode. +4$
4. Input - analog sticks, buttons and switches. Every RC transmitter has to have a pair of analog sticks and some buttons or switches. I used two PS2 analog sticks with a base PCB which made everything easy to connect, also PS2 sticks contain a button each and are clickable, which was perfect for my project. +2$
5. Output - LCDs and LEDs. I used nokia 5110 LCD (2$ on Ebay) to display various information and a common anode RGB LED to show LiPo charging state (red for "charging", green for "full") and MCU status. +3$
6. Enclosure. This is a tricky one, especially if you don't have a CNC mill or 3D printer. Since I don't own any of these machines, I had to find my old box of "stuff" and dig out my old RC car (which was totally broken). Luckily it's controller was almost intact! I threw all the old electronics away (also it didn't even have analog sticks, only buttons). +FREE
7. Hot glue gun. Because why not? +FREE (since everyone has it)
8. Soldering iron (decent quality, because you will need to do some minimal SMD desoldering). +FREE
9. Dremel (makes your life a lot easier), but you can can do it the old way also. +FREE
10. Pliers, screwdrivers and scissors. +FREE
11. A digital multimeter. Check if yours have these helpful functions: continuity (diode symbol, best if it has a buzzer), voltage (at least 3 digit precision), relative measurements (helps to test difference in resistance or voltage, but it is not needed) and if you want to go deep - current (if you are mad enough, you could check your current draw and divide your battery by it to get transmitters operating time, but trust me, if you have at least 1Ah of battery and nrf24L01+ PA module, you don't need to worry about that, because your receiver battery will be flat way before transmitter battery is). +FREE
12. Other materials. Solder, wires, ribbon cable, additional components like: resistors, voltage regulators, capacitors. These components you probably have but just in case: +2$
Project total: ~18$, but since everyone makes mistakes, make it ~20$
Lets Start!
Step 1: Prepare and test your electronics. This step is really important because if something doesn't work and you already put everything together... there is no guarantee that you will finish the project any time soon. So test it and if something doesn't work, order it again and then work on something else while it arrives.
Step 2: Check if everything fits in your enclosure and if it doesn't think of the modifications you will need to make and then make them.
Step 3: Make a wiring diagram and check if all modules are labeled as they should (because they aren't 50% of the time). In my case I had to remove an SMD LED (connect wire from resistor side to BLUE RGB LED cathode) and a SMD diode (connect wire from pad linked with USB 5V to TP4056 5V input terminal) from the Pro Micro MCU board, which is quite hard to do without the right tools. I would recommend testing everything on a breadboard first, but since I didn't do so myself, I won't.
Step 4: Soldering time! Take your wiring diagram and go to town with your soldering iron. This is the best part for me ;).
Step 5: After you are done soldering, upload code to the MCU and give it a go. To test if everything is being sent correctly you will need to make a receiver (you could could everything on a breadboard) which would send everything it receives to a serial port for example (or add a LCD). Step 6: If everything works like it should, it is time to mount everything inside your enclosure and make it finished. Step 7: Post it on Facebook or Instagram to let everyone know that you have achieved at least something in your life. (Feels... :( ) Step 8: Try to push your new creation into every conversation you are having even if others like it or not. Step 9: Since this instructable gone a bit of track (like my life), here are some extra photos and Arduino code of my transmitter:
Pictures and Code!
Downloads
Donate? Please?
I have a Gofundme campaign and if you like what you are seeing and would like to see more - a donation would be a great way to show me your support.
I am thinking about creating a YouTube channel, so if you would like it to happen post your thoughts in the comments section. I also take requests! If someone has a great idea and would like to see it come true, I will gladly look into it and I might make it!