DIY Trigger Style Remote with Telemetry - Complete Guide

I just wired up one receiver and one transmitter using the E01-ML01S. I tested the connection between them using the GettingStarted_CallResponse example in the Arduino IDE.

I got a stable connection within a few meters.GETTING%20STARTED%20NRF!

When I then tried to use the esk8 remote codes I could not establish connection. I have only downloaded the code (from here: https://github.com/ModMiniMan/nRF24-Esk8-Remote) and changed the PIPE, so they matched in both the receiver and transmitter code. Does anyone know what I am doing wrong?

i have tried the following pipe adresses: 0xCABDABABEDLL 0xA8A8FEFEE1LL 0xA8A8F0F0E1LL

I think they are on the same channel’ :slight_smile:

I reinstalled all the libraries, but it did not make any difference.

The problem for me was that the receiver data rate was set to 250KBPS and the transmitter data rate was not. (See line 117 in RX code “radio.setDataRate(RF24_250KBPS);”)

Either removing this line or adding it to the transmitter code works for me. Looks like others are getting better range by setting it to the lower 250KBPS data rate. I’ll have to test that out.

Hi! I would like to ask you something. I am at the point to build the receiver part. I followed your advices and I have a mcp120 and a power filter for the servo connection. I would have few questions:

  • May I connect the mcp130 chip to the additional 5v GND and Reset at ICSP on Arduino nano? Or I need to use the same 5V GND where the servo cable is connected? I think that I can do it but I want to be sure. IMG_20180712_231415
  • after using the power filter, do you still add the 220uF cap between 5v and GND of the servo connection on Arduino?

Thank you very much. If you have any additional info please share it.

The whole deal of Mcp is to check if the voltage is above the desired value. So in theory you should be able to connect it to any 5v source. For the 220uf cap I don’t use it, instead I went for the 1000uf to prevent brownouts. @ervinelin had the issue and solved it with 1000uf cap. This is actually a thing in RC world. There are even products like in the picture to solve the issue image

2 Likes

Thanks! I ended like that. I put a power filter along the servo and 5v and ground. 220 cap (if I need higher I can put more in parallel)and a mcp130 micro chip where I shied you before (next time I will buy it the TO-92 version :sweat_smile:) IMG_20180713_155509IMG_20180713_155324IMG_20180713_155337

Do yuu know if there is a way to test them without connect them to the VESC? I would like to avoid unmount the enclosure for nothing.

Looks good, I would just add some hot glue around some of the solder joints. If you can heat shrink the whole thing that would be the best. For testing just connect your receiver from its USB port and power up your remote see if you get a connection. That’s the easiest way. Tho you can’t test if mcp is working unless you power your receiver from vesc. Because you don’t need the mcp if you can power your arduino from its USB port. Bear in mind tho some arduinos work without a problem. In this case adding a mcp functions like a backup plan if anything goes wrong.

I am planning to add the hot glue when I see that everything works. FOr the moment if I turn them on I do not see any connection. Do I have to write the pipe line address in the reciver code?

Yea make sure pipe addresses match on both receiver and transmitter code otherwise they won’t connect

Address on the Transmitter and the address in the receiver code. Are they the same? The 0x…LL matter or not? IMG_20180713_161405IMG_20180713_161410

They should be identical, I would check the transmitter code aswell and make sure they are absolutely identical. Use copy paste command to be sure :slight_smile:

I checked now and they are the default ones and are identical. To see that they connected I guess you have to see that the symbol on the screen stops blinking, right?

This one the libraries and sketches I used: I used https://github.com/RollingGecko/VescUartControl/tree/VESC6 the VESC6 branch plus U8g2lib.h, rf24.h on both transmitter and receiver.

Yes it should be still. Before coming to conclusion try different codes like original firefly code and then @ervinelin s code. Make sure you installed libraries correctly. If you still can’t make it work then check you solder connections make sure every connection is correct with a multimeter. In the past I had a bad nrf module or I fcked it up I dunno but when I swapped it with a new one I got a connection.

Yea they seem right I think they were written somewhere in solidgeeks build guide.

1 Like

If it connects the little wifi icon should not be blinking. You can also set the transmitter or receiver to be in debug mode then use the Arduino serial monitor to see if it’s working.

@zyb @ervinelin Good news that with your Esk8 program it works and connects. Now I need to get it work with the solidgeek one.

1 Like

At leat I know that the connection are fine but now to be sure I dowloaed the file again from https://github.com/SolidGeek/nRF24-Esk8-Remote/tree/development DEVELOPMENT branch. SHould I use MASTER?

Add these libraries: I used https://github.com/RollingGecko/VescUartControl/tree/VESC6 the VESC6 branch plus U8g2lib.h, rf24.h on both transmitter and receiver.

Trasmiter went fine. With the receiver I get this error message: I know that it’s not your software but since you worked on it maybe you know it. Thanks a lot.

Arduino: 1.8.5 (Windows 7), TD: 1.41, Board: “Arduino Nano, ATmega328P”

C:\Users\Administrator\Downloads\nRF24-Esk8-Remote-development\receiver\receiver.ino: In function ‘void setup()’:

receiver:144: error: ‘SetSerialPort’ was not declared in this scope

   SetSerialPort(&Serial);

                        ^

Multiple libraries were found for “buffer.h” Used: C:\Users\Administrator\Documents\Arduino\libraries\VescUartControl-master Not used: C:\Users\Administrator\Documents\Arduino\libraries\VescUartControl-VESC6 Not used: C:\Users\Administrator\Documents\Arduino\libraries\VescUartControl-VESC6 Not used: C:\Users\Administrator\Documents\Arduino\libraries\VescUartControl-VESC6 Not used: C:\Users\Administrator\Documents\Arduino\libraries\VescUartControl-VESC6 exit status 1 ‘SetSerialPort’ was not declared in this scope

This report would have more information with “Show verbose output during compilation” option enabled in File -> Preferences.

IMG_20180713_165317

@ervinelin Did you manage to get telemetry to work with Ackmaniack 3.1 firmware? Which VESC firmware are you currently using?

I never managed to try. I am just using the latest regular vesc firmware.

Oh this problem… I managed to resolve it by adjusting some of the code, you can see the way I declare the serial port in my code is different from solid geeks if I am not mistaken.

I got the tip from someone within solidgeeks remote thread.

1 Like

Solved. I didn’t delete the VESC master library adn IDE was loading that one instead of the VESC6 one. Thanks for the help!

1 Like

I just want to report it back since I do not know if someone tried before but I used this antenna (https://www.aliexpress.com/item/CDEBYTE-2PCS-Lot-SPI-SMD-Module-E01-ML01S-2-4GHz-0dBm-110m-nRF24L01-Wireless-RF-transceiver/32803028476.html?spm=a2g0s.9042311.0.0.731b4c4dT34h7Y) on both receiver and transmitter. I can share that I rode for the past 2 days without any signal drop. I get a stable connection within 5 meters with obstacle and walls, probably outside is more but didn’t try it the max range. More than 5m it starts to becoming unstable. Not to bad for esK8. I am just wondering what for instance a nano-X is using since I can go in other rooms on the other side of the apartment and still have signal. Hope it helps!

3 Likes