Help with Bremote Differential Configuration

Hi everyone, I’ve finally converted my Tow Boogie to a differential configuration, but I’m encountering an issue. Regardless of the ESC or VESC I use, the differential toggle isn’t functioning correctly. The throttle works as expected for both motors (though I haven’t tested it on water yet), but when I push the throttle and flip the toggle switch up or down, only the motor connected to VESC1 (as shown in the image below) turns off. The motor connected to VESC2 only changes speed based on the throttle position.

I searched the forum to see if a similar question had been posted before but couldn’t find any, so I created this new post.

I tested my setup with servos and a BEC, but the issue persists. Before I start randomly changing settings and testing, I wanted to post here to see if anyone might know what I’m doing wrong.

My setup follows this schematic from @ludwig_bre on GitHub. No BEC is needed for this setup since the VESC supplies the 5 volts, but I’ve also tried using a FlyColor ESC with a BEC and encountered the same results.

Additional details:
I am using the Bremote 1.7 default configuration with a few modifications: Steering is enabled on TX, with No Lock, No Gears, push throttle to power up, and start gear set to 9. Please see the code snippets below:

  #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

I did not make any other modifications on TX, frankly I am not sure what to change.

The Receiver setting is as follow:

Under SHARED_CONFIG.h:
//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)
/*


and under Receiver BREmote_Rx.h file:
//Diff steering
#define STEER_AMOUNT 1

//Analog

#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

Any help or guidance is greatly appreciated. Thank you.

Sean
P.s. I searched the forum but did not find answer to my question,

Both VESCs have proper input calibration?
If you swap vesc 1 and 2 (swap the cables), what happens?

Hi @ludwig_bre yes I calibrated VESC 1 and VESC 2 input calibration using their perspective connectors that fixed the throttle speed mismatch, but when I push toggle forward or downward from center position, the VESC 1 stops which technically it would turn surfboard to one direction.

Regarding swapping the VESC1 and VESC 2, when I swap at connector or PPM points the same behavior. Which leads me to believe probably something in my configuration is off, maybe hysteresis or something.

Thanks,
Sean

Can you add the following line to line 47 in BREmote_Tx.ino

Serial.println(steer_scaled);

And then upload to TX, open serial monitor and observe the values given out when moving the steering?
What do you get for idle toggle and full toggle forward/back?

1 Like

I will update this post. I need to do some additional test and segregate my setup to make sure there is no faulty connections or minor issues. I will post all the details later on

I will certainly do that in few hours as soon as I return home. Thank you for your responding to my post @ludwig_bre . Also, I want to do some additional test and segregate my setup to make sure I didn’t misconfigure anything. For example, I want to eliminate esc’s and vesc only use servos and bec and see what happens. I will post all the details later on. Thank you

1 Like

Hi @ludwig_bre , I added the println code at line 47.
It prints 127 when the toggle is centered
It prints 255 when toggle is pushed up or down while throttle is pressed

I tested this with 5-volt BECs and servos (no ESCs). When I use full throttle and toggle the switch, the servo replacing VESC1 moves to center (I guess off position), but the servo replacing VESC2 (with the 10K resistor) keeps running and only moves with Throttle.
Any ideas on what might be causing this?

This most likely means your magnet on this side is rotated 90° (pointing towards the PCB rather than parallel to it)
Try rotating the magnet by 90° and reassemble the toggle

Also please upload the calibration and send the values before calibrating, then try to rotate the magnet and calibrate again and send those values too

Then upload the main software again

It should print 127 in center and go down to 0 gradually in one direction and go up to 255 gradually in the other direction

1 Like

@ludwig_bre Thank you, that makes sense. I’ll work on it later tonight and report back once I’m done. I made some minor modifications to the toggle area to enhance its resilience, but I may have inadvertently allowed too much space for the toggle knob. Thanks again for your help.

Thank you, @ludwig_bre , as always, for your precise guidance—you were spot on. The magnets’ positions were correct, but since I modified the heads and created more play on the toggle, the calibration was off. The Println code and the numbers you provided were exactly what I needed to fine-tune my mechanical configuration. Now, the differential speed are working as designed. I still have some fine-tuning to do to steer at full throttle, but it’s steering perfectly at half throttle, which is sufficient for my current needs.

I’m still learning how to foil, but I wanted to express my deep gratitude for your responsiveness. At some point, I plan to consolidate and document all the steps in an organized manner for future rookies like myself.

Thank you again.

Best regards,
Sean

3 Likes