Help needed with Bremote E4 error

Hi everyone, does anyone know how to resolve the Bremote E4 error?

I’ve finally completed my build using the Bremote Long Range kit designed by my brilliant virtual friend @ludwig_bre . Everything is working except for one issue: my connection is sporadic, and I keep getting the E4 error code, even when the remote is in close proximity.

I’ve tested my setup with a basic configuration, using just the remote, and have tried different ESCs like the Flipsky 75350, 75100, and Flycolor X-Cross with a 5 Volt BEC, but the results are the same.

The receiver antenna is positioned outside the metal box and nearby, yet the problem persists. I’m confident my wiring is solid—everything functions correctly, even at long distances, and there are no soldering issues that could cause a short.

I’m using the default version 1.7 settings with only one modification: my receiver hardware includes the Longrange Servo addon, which Jaime added when I bought the remote to control the servo, and it works fine. Aside from that, all my configurations are at the default settings for differential speed. Even when testing with a simple (non-differential) setup, the E4 error and sporadic connection issues continue.

My current setup in a nutshell: You need to push the throttle to power up the remote, and there are no gears starting at 9 speed. But again, none of these seem to matter because I get the same E4 error and sporadic connection, even at the very basic default configuration. I’ve completed the calibration, and all buttons on the remote are working correctly, so the magnets and switches are all good. I tested my setup with Servos and BECs only the same thing.

Any help or guidance would be greatly appreciated. Thank you all!

I’ve listed my configuration files below in case there are any issues there but please let me know if additional details are needed:

Receiver SHARED_CONFIG.h file

//These Adresses need to consist of exactly 5 letters or numbers
uint8_t rxAddr[6] = {"SATAI"}; //From Rx To Tx (Board to Remote)
uint8_t txAddr[6] = {"SATAO"}; //From Tx To Rx (BRemote to Board)

//Output Debug Information
  #define DEBUG
  
  //#define SERVO_STEERING_ENABLED                    //Servo Output on Aux1 (Modification needed, email me)
  #define DIFF_STEERING_ENABLED                     //2nd Motor Output on Aux1  (Modification needed, email me)
  //#define REVERSE_ENABLED                     //Puts remote into reverse mode: Only two "gears": Forward (F) and Reverse (P)
/*
 * Rx Specific
 */
    //#define USE_VESC_UART                 //If VESC is connected via UART
    //#define USE_UBAT_MEAS                 //If UBAT should be measured via Analog Input (will be overwritten by VESC)
    
    #define ANALOG_UBAT_FACTOR 0.853688     //Calibration factor for analog UBAT input, default: 0.025869
    
    //Foil Battery Mapping
      #define FOIL_BAT_EMPTY_AT 100         //10*V (e.g. 200 = 20V)
      #define FOIL_BAT_FULL_AT 600          //10*V (e.g. 200 = 20V)

    //Wetness Detection
      #define WETNESS_DET_ACTIVE            //If Wetness Detection should be active or not (generates E7)
      #define WETNESS_SENS 500              //Wetness sensitivity. 0: Least sensitive, 1024: Most sensitive, good range: 100 to 500
      #define WETNESS_HYST 50               //Wetness hysteresis. WETNESS_SENS - WETNESS_HYST must always be greater than 0, WETNESS_SENS + WETNESS_HYST must always be lower than 1024, good value: 50

    //#define BMS_DET_ACTIVE                //If External BMS Input should be read or not (generates E8)
/*
* Error Codes (don't change)
*/
#define ERR_PACKET_CONTENT 3
#define ERR_NO_ACK 4
#define ERR_EEPROM 5
#define ERR_NRF 6
#define ERR_WET 7
#define ERR_BMS 8

Receiver BREmote_Rx.h file the differential/servo section but I did not make any changes and Vesc to gets connected to EM1 (connection I believe):


#ifdef SERVO_STEERING_ENABLED
  #define EN_AUX1 A1
  #define EN_AUX2 A2
#endif
#ifdef DIFF_STEERING_ENABLED
  #define EN_AUX1 A2
  #define EN_AUX2 A1
#endif

Transmitter SHARED_CONFIG.h File


/*
 * This is the only file a user should make changes
 */
// #error "Please change the adresses below to someting unique for your setup!! Do so both in Tx and Rx SHARED_CONFIG.h! Then delete this line"
//These Adresses need to consist of exactly 5 letters or numbers
uint8_t rxAddr[6] = {"SATAI"}; //From Rx To Tx (Board to Remote)
uint8_t txAddr[6] = {"SATAO"}; //From Tx To Rx (BRemote to Board)

//Output Debug Information
  #define DEBUG
  
  #define STEERING_ENABLED                    //If steering feature is enable (see also fine tuning at "Tx Specific")
  //#define REVERSE_ENABLED                     //Puts remote into reverse mode: Only two "gears": Forward (F) and Reverse (P)
                                                //Important: Also update RX! Otherwise in failsafe the VESC will be sent wrong commands!
/*
 * Tx Specific
 */

    //Behaviour of the User Interface
      //#define NO_LOCK            //No locking function, as soon as remote is on, throttle is active
      //#define NO_POWERBUTTON     //The toggle button cant turn off the remote (the remote will power off automatically if the receiver is off for > NO_ACTIVITY_TIMEOUT (see below))
      #define NO_GEARS           //Gears can't be switched (set STARTGEAR to 9)
      #define THR_TO_PWRUP       //If throttle also needs to be pushed to power the remote (helps if remote turns powers up on its own)
      //#define DONT_SEND_IDLE     //If the remote should send packets in idle (no trigger applied), contiues for a short time set by TOGGLE_BLOCK_TIME
                                  //Useful, if 2 or more people have one remote each and control the same towboogie
          
      #define STARTGEAR 9         //The gear that is set after poweron or unlock (0 to 9)

      #define SHOW_TEMP           //If display should also show temp (alternate btw. temp and bat) or only show bat
      
    // Hyteresis
      #define TOG_DIFF 8                          //Hysteresis for Toggle (30 for toto)
      #define TOG_STB_DIFF 8                      //Hysteresis for Standby Toggle (30 for toto)
      #define THR_STB_DIFF 10                     //Hysteresis for Standby Throttle
      
    // Steering Feature (e.g. for tow boogies) - Enable at top of this file
      #define STEER_TOG_DIFF 15                   //Sensitivity of Steering
      #define STEER_DEADZONE 3                    //Deadzone for steering
      #define TOGGLE_BLOCK_TIME 500               //How long toogle button is in steering (*10ms)
    
    //Timings
      #define UNLOCK_TRIGGER_TIMEOUT 5000         //Time after unlock until trigger times out (ms)
      #define LOCK_PWR_WAITTIME 2000              //Time toggle needs to be pressed to power off or lock system (ms)
      
      #define GEAR_CHANGE_WAITTIME 100            //Time toggle needs to be pressed to change gear (ms)
      #define GEAR_DISPLAY_TIME 1000              //How long the new gear is shown (ms)

      #define ERR_DELETE_TIME 2000                //How long the "E-" is shown after deleting an error. In this time, the user can also change gear, even if the error is still persistent (and therefore will be shown again after this time is over)
    
      #define NO_ACTIVITY_TIMEOUT 60000           //Turn off power if no button is pressed and receiver has no connection (ms)
    
    //Internal Battery measurement
      #define INT_VBAT_CALIBRATION 0.004290224    //This converts ADC Bits to Voltage
      #define INT_VBAT_FULL_AT 410                //Voltage at which 100% internal Battery is displayed (100*V) DEFAULT 410
      #define INT_VBAT_EMPTY_AT 340               //Voltage at which 0% internal Battery is displayed (Also the protection limit), MIN: 34V (100*V) DEFAULT 340
      #define FOIL_VBAT_WARN_AT 10                //Percent at wich VESC Battery triggers a warning (%)
    
    //For Debug, Viration Motor can be disabled
      #define MOTOR_ENABLED


#ifdef REVERSE_ENABLED
  #define MAX_GEARS 2
  #define STARTGEAR 1
#else
  #define MAX_GEARS 10
#endif
/*
* Error Codes (don't change)
*/
#define ERR_PACKET_CONTENT 3
#define ERR_NO_ACK 4
#define ERR_EEPROM 5
#define ERR_NRF 6
#define ERR_WET 7
#define ERR_BMS 8

This is a 10S12P with two VESCs, and each vesc able to supply 5volt for receiver.
I have other questions, but I will ask those in separate relevant threads.

1 Like

Hey,
Sorry to hear you have problems!
Did you see the recent post about the problem with the antenna connector?
Did you cover it with hot glue or something similar to protect it from the foam?

1 Like

Hi @ludwig_bre , thank you for responding. Oh no i didn’t cover the antenna connector with hot glue to protect it. That makes sense now why it’s behaving this way, because I carefully tested everything, before filing it with foam and it was working except after everything was almost finalized. At least I now know what is the culprit causing this error and sporadic connection. hopefully i can update with some good news soon.

@ludwig_bre you are freaking genius. You were correct spot on. I removed the casing and re-seated antenna and its now working as smooth at butter.
However during process, I broke my long range antenna,

do you have a link where I could source this kind of antenna? Alternatively could I just use simple Ipex antenna like the one below instead?


or these?

Thanks again as always
Sean

For optimum range you need a t-shaped antenna.
3 Options:

  1. Ask Jasmin from openfoil for a replacement.
  2. Order here (40mm version) https://de.aliexpress.com/item/1005003183857950.html
  3. Search on shops in your country for “2.4GHz T Antenna” or “ELRS 2.4ghz antenna”. In Amazon US I found the Radio Master antenna with fast shipping. Looks a bit bigger so you may need to file away on the original housing
2 Likes

@ludwig_bre Thank you so much , for all the details and your help getting me back on track. I’m planning to build another toy and probably order another unit from Jasmin in near future

Hi Peeps,

I learned something new today that I wanted to share. When building your Bremote, especially if you have the long-range version, pay close attention to how you tuck the antenna wire. Long story short, I had to redo my Bremote because I encountered an E4 issue due to a loose connection when I inserted the foam.

A couple of tips:

  1. Make sure to cover your connector with hot glue and secure it well.
  2. Tuck your antenna wire in a way similar to the photo shown below. I noticed that doing it the other way around resulted in a weaker signal.

Not like this:
image

I am going to cover the exposed part of circuit board with paraffin and fill it with 100% silicone when I am done.

Just wanted to give you all a heads up!

2 Likes

Another small heads-up for everyone with RF problems:
Don’t print the remote with any CF (carbon fiber) materials as this material is excellent at shielding all RF signals.

2 Likes

For E4 error, I feel that on my BREmote the release of the error condition is sticky, meaning, after a wipeout where E4 error triggers (board distance is far from the remote), once the remote is back in proximity to board (where normally the remote connects and is in range) I can’t get the E4 to release. Is there a timeout or other setting to manage? Thx!

ps I have carbon board with history of RF signal strength issues

I’ve had it one time do that and wouldn’t reconnect until I cycled the power on the RX board. I use to have some anomalies with E4 until I switched to a more robust BEC. Do you have more information on your setup? VESC or normal ESC, BEC?

I am using Flipsky FSESC7350 (vesc) and tapping the 5v from the ESC. No external BEC. I also have Metr Pro and the remote signal antennas going to the nose of Lift carbon board through insulated RG142. Ive tried grounding the RF shielding to the VESC and also to the carbon layer in the board. Never get a great connection. Tried lots of different remotes besides BREmote like Eray foil and Maytech all suffer from RF issues. Stumped.

I assume the Rx board is in the “CENECN” box?
Do you have a picture of the inside?