Simple 3D-printed NRF remote - Arduino controlled

I didn’t implemented it yet. I don have headlights. And I guess I ll never have headlights. But maybe I ll switch on something other shit with it.

Should be easy possible with some cheap transistor -> relay combination. Maybe I ll make an PCB for this too…

Nice, I’m adding light controls to mine

Could you share the light logo? Did you draw pixel by pixel or did the conversion to hex?

And the button just turn on or off? My plan is to have just one button handle all functions, but the control scheme is already a bit complicated

yes of course… just simple like this:

  u8g2.drawDisc(x , y , 5, U8G2_DRAW_UPPER_RIGHT);
  u8g2.drawDisc(x , y , 5, U8G2_DRAW_LOWER_RIGHT);
  u8g2.drawLine(x -1 , y -3, x -1, y +3);

and this for the ‘shine’

  u8g2.drawLine(x -3 , y, x -5, y);
  u8g2.drawLine(x -3 , y + 3, x -5, y + 4);
  u8g2.drawLine(x -3 , y - 3, x -5, y - 4);
1 Like

Might have a few noob questions here for you coming up in the next couple of weeks while Im figuring this out :slight_smile: Is the status LED on the receiver supposed to change in brightness when you trottle up/brake? Just wanna make sure everythings allright, don’t wanna have anything go nuts while riding!

EDIT: Im stupid, could just have checked the code… Seems like it’s supposed to :slight_smile: Sorry for the code format, not sure how to do it properly on this forum

if(statusCode == CONNECTED){ analogWrite(statusLedPin, map(remPackage.throttle, 0, 1023, 0, 255)); }else{ digitalWrite(statusLedPin, statusLedState); }
}

EDIT 2: While Im at it, searched a bit but cant find any recent info on how the binding process works (my experience with coding is not enough to understand from the actual code)? So I found adress generator in the remote, but can’t seem to change it? Does that mean all remotes with firefly OS have the same adress and will interfere?

Thanks, will see if I can fit in the small display

I built a second remote and no matter what I try, I cannot get the transmitter to connect to the receiver. The transmitter always shows the blinking connection icon. I’m running the latest development version. In debug mode the receiver shows a timeout error:

** Esk8-remote receiver **
Settings loaded
Printing receiver details
STATUS		 = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1	 = 0xe7e7e7e7e7 0xe8e8f0f0e1
RX_ADDR_P2-5	 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR		 = 0xe7e7e7e7e7
RX_PW_P0-6	 = 0x00 0x20 0x00 0x00 0x00 0x00
EN_AA		 = 0x3f
EN_RXADDR	 = 0x02
RF_CH		 = 0x6c
RF_SETUP	 = 0x07
CONFIG		 = 0x0f
DYNPD/FEATURE	 = 0x3f 0x06
Data Rate	 = 1MBPS
Model		 = nRF24L01+
CRC Length	 = 16 bits
PA Power	 = PA_MAX
Setup complete - begin listening
e8e8f0f0e1 - Timeout
e8e8f0f0e1 - Timeout
e8e8f0f0e1 - Timeout
e8e8f0f0e1 - Timeout

But the transmitter shows a ‘failed transmission’ error:

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe8e8f0f0e1 0xc2c2c2c2c2 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe8e8f0f0e1 RX_PW_P0-6 = 0x20 0x00 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x03 RF_CH = 0x6c RF_SETUP = 0x07 CONFIG = 0x0e DYNPD/FEATURE = 0x3f 0x06 Data Rate = 1MBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX e8e8f0f0e1: Failed transmission e8e8f0f0e1: Failed transmission e8e8f0f0e1: Failed transmission e8e8f0f0e1: Failed transmission

Am I missing something really obvious? What are the most obvious culprits? I haven’t had this issue before. I appreciate the advice.

Is the receiver working when you use your first remote? If so the receiver is ok and I would check all your solder joints on the transmitter (nothing shorted?). Double check the connection is right. Also you might want to take it out of the printed shell and keep it away from the 5v booster to avoid interference.

I checked all the solder points on both NRF’s and nothing was shorted. But that’s a good idea to swap out a different receiver and try that. How does the dev code know which receiver to pair with, since the pipe address is dynamically generated (unlike the master version where it’s hard coded)?

Transmitter.ino Line 168 and 169. If you haven’t changed the defaultAddress and defaultChannel it’s the same for both of your remotes

1 Like

I kept playing with the defaultAddress and noticed that it would never actually update on the transmitter. I then reset the EEPROM (at least I think that’s what I did, on accident) on the transmitter and it basically flushed out whatever was causing the conflict and BOOM I have a connection :grinning:

Is there an easy way to clear out the EEPROM on our tx or rx? I see it mentioned in the arduino code, but I’m not sure what’s the best way to initiate the clear out

What size screen is that? I really like it.

0.9inch something

Would it be possible to keep the motor and MOSFET temp in there as well?

@clistpdx You have to modify the code. Or wire a reset switch to your arduino. and If you dont get connetion between your tx and rx reason being that is your address is not declared or somehow is not registered.

@solidgeek I was wondering if you can add a setting for lights, to turn them on or off and maybe a dimming option?

Hi I’m trying to upload the code for the receiver but get this errormesssge:

Adruini.h is not included in the vesc uart library

1538591411468695110392623898205

you need to use solidgeek’s updated VESCUart library, instead of the older rolling gecko ones. https://github.com/SolidGeek/VescUart?files=1 And you need your Vesc/s on 3.40 firmware

2 Likes

I took the updated one. Does it need to be connected to the vesc while programming?

No it doesn’t need to be connected while programming