Simple 3D-printed NRF remote - Arduino controlled

Check the baud rate on the VESC matches the one on the receiver, otherwise it wont be able to read the uart data.

In the receiver Arduino code it looks like it’s set to 115200, so I already set this in VESC but no go.

On a more positive note…


Everything ordered! And now we wait.

Don’t forget guys it’s singles day, so nice discounts on aliexpress

1 Like

Good to hear you got some progress :slight_smile: Well I got +20 meters of range with my remote, so you are probably doing something wrong :stuck_out_tongue:

Let’s see. You got a noisy PWM signal, and low range. I am 95% sure its a power issue. How is you receiver connected to your VESC? It’s crucial that the receiver is connected to 5V and GND, with a big ass capacitor on the 5V rail. The VESC (or any ESC) doesn’t have a very stable 5V output, and it isn’t capable of supplying huge current pikes. The 220uF or higher helps with that. And it is important to remember that the 5V from VESC should go to the 5V pin on the Arduino, not the VCC pin.

Regarding the UART, which library are you using?

I will need some pictures of your wiring / and or setup to better help you :slight_smile: And some pictures of your VESC would be great too :stuck_out_tongue:


Can this be used on DIYelectricskateboard’s vesc? If so, what are the connections I need and which ports do I connect them to?

Hi again,

Actually a few meters was through a wall, furniture and such, I never bothered to test any further than 6m out in the open.

Power for receiver is via VESC signal cable, 220uF installed and buffering across the Arduino 5v and ground not VCC.

Actually on riding it I don’t sense the noise at all, it seems nice and smooth so for now I will leave it as it is.

As for pairing, any idea why sometimes I need to reset the receiver to get a lock? Quite irritating when the receiver is hidden inside the enclosure.

I am using the rollinggecko library and this was installed and flashed to the ardunios, but was I supposed to flash this somehow to the VESC as well?

I will send a picture over but not at home these few days. Will do so when I can.

Thanks again…

EDIT: Huston, we have telemetry…

Turns out I was using the right tx and Rx pins originally then I swapped them out before changing the baud rate… Now all seems good awaiting more testing


@solidgeek I mirrored everything to make it a lefty remote. I know the text on the screen might be upside down, but that’s no problem for now.

But are there code changes needed for the hall sensor? If so can you let me know where so I can change them in the fork I made on github. Or a setting might be nice, that way the screen layout can be changed as well.

When I build the remote and receiver I want to take a closer look at the code anyways, to see if I can help. Might be able to document my build proces, at least I’ll try.

1 Like

a question, in the receiver, what is the schematics?

So I just came back from a 5km ride to test the remote. I am happy to say that it didn’t have a single dropout. Telemetry worked perfectly as well.

For those who want to wire up the receiver, the NRF module wires up exactly the same as in the schematic on the wiki for the transmitter. Then add in a 220uF cap to 5v in and ground, pwm signal to D5 and vesc uart pins to the tx and Rx.

For me I draw 5v from the VESC servo lead.

Took some photos of the second receiver I wired up for reference to anyone who’s interested.

I used some hotglue to hold the delicate 30awg cables together

Shielding with copper tape

Heat shrunk both into one compact package.

For some weird unknown reason, the last step has solved the problem of occasionally not being able to connect on a cold boot and requiring a hard reset on the receiver.

Can’t wait for the new firmware to add more bells and whistles.


Anyone else got a place to buy 20mm springs that ship to the US? The one on the google sheets cannot ship to the US. :confused:

1 Like

@Snowi Yes they should work with most VESCs, however I haven’t tested one myself :slight_smile: The receiver needs only 3 pins (5V, GND and PPM) - however can also be connected to UART (RX, TX), to retrieve data such as speed and battery voltage.

@mptrs The changes I made lately on Github is important, I recommend you change them too - you should be able to see the changes on Github yourself :slight_smile: ? However a big software update is coming soon, so stay tuned :wink:

@ervinelin I am so glad you got it working! It looks amazing, thanks for sharing your process - I am sure it will help a lot in the future :smiley: Love your compact receiver, I will probably make a 3D-model for the receiver in the near future.

Hopefully I am able to finish the new firmware by next week :slight_smile:

I am sure you can find an US supplier :slight_smile: They are called “Extension springs”, I found a local shop with some, and they have a length of 20mm, a width of 5.5mm and a wire width of 0.5mm:

These should work: I’ve ordered them for this build.

@solidgeek pulling in all changes to your repo by pull request :slight_smile:

@ervinelin thanks for detailed post. How’s throttle range working for you? I have my model printed and all parts but throttle range seems very limited and the spring action is a little too hard for me to push. I got same spring as in the spreadsheet, maybe I need to loosen it up a bit.

Hi guys i saw some one use the other nrf module but would it work like the one you have in the spreadsheet? (already have a few).

And was the hall sensors from aliexpress okay? if anyone used those? Keep up the good work @solidgeek :slight_smile:

Hey Guys, first entry inhere, sort of a silent reader before…

Okay, the Case is Printed already :stuck_out_tongue:

All Aliexpress Parts are bought and on the way, the rest is sourced locally :slight_smile:

But I have a question. Since the Arduino has so many leftover Pinouts free to use. I thought about adding a Light System and a bell somehow. On the Receiver side there is no Problem attaching a W2812B as Front/Back/Ground facing Floodlight and a SAB0600 based Bell sound with a small speaker.

But on the Remote … There is no leftover buttons or switches to use as trigger to enable the additional features :stuck_out_tongue: I think I’ll just cut some buttons on the backside but I wait until the rest is working.

Any Ideas to solve those remarks?


I had to calibrate the throttle via both the remote as well as the VESC PPM tab via BLDC tool to get an acceptable range. I do think something isn’t quite right though, it’s much too narrow by default.

My spring is temporary and its super loose now, sometimes so much so that it doesn’t jump back to neutral! I’m waiting for my springs from aliexpress… taking FOREVER…

@Migro Yes I used the aliexpress hall sensors but as per my comment above I am getting quite a narrow range of readings, not sure if it’s due to the sensor or the magnets (magnets are now 5pcs of 1mm as opposed to a single 5mm. Again waiting for aliexpress shipment…

On a side note, I kind of prefer an index finger trigger over the thumb wheel, I originally wanted to redesign the casing for this but then I realised I had an unsed mini 2.4ghz remote lying around. So I’ve started to hack it to fit all the electronics (less the hall sensor). Should work, everything fits after some dremel work. Will update once I have a result.

yeah i was missing some buttons too. But since the firmware really isnt that complicated i was like: “yeah once my parts are here ill just bool some holes for buttons in the top shell and map those to lights and stuff.” I am still boardless so im not in a rush ^^

@karatektus I’m planing to add a button for soft switch on and off , so you can hold it for programmed amount of time to power on or off the remote. I’m not a fan of rocker switch.

Since there are gpios available on the arduino in remote you could add buttons for different functions.

I’m having a trouble finding small enough caps for the button. All I found are standard large ish ones which will take a lot of space on this tiny remote. Also would be good to have them recessed so they are harder to press by mistake. This would involve redesign of enclosure a bit, perhaps @solidgeek could help? I’m not sure how to go about it.

just dont use caps at all? since they are not buttons you will use while riding, id just mount those on the shell so the button pokes through:link