start here🡆

GBG joystick car programming and configuring website.

For any questions about how to use this website, or other feedback,
please post here or email gobabygocarswithjoysticks@gmail.com.









Upload Program



Advanced settings
  1. These options are only useful to people developing code for these cars.
  2. hex file:
  3. Get car code from main branch instead of from most recent release:


Connect to Car (to change settings)


Calibrate and Configure Your Car

Connect to your car to see settings here.


Joystick Input 🛈
Error displaying canvas! Try a different browser?



Scaled Speed Target 🛈
Error displaying canvas! Try a different browser?

Smoothed Speed to Drive 🛈
Error displaying canvas! Try a different browser?

Motor Signals 🛈 : status loading

Error displaying canvas! Try a different browser?



Library of settings









Advanced settings
no extra info loaded yet




The source code for this website is on Github here.

This website uses arduino-web-uploader by David Buezas for uploading code to cars that use Arduino Nano and Arduino Uno boards.

The remote website uses JoyStick by Roberto D'Amico.

This website uses qrcodejs by davidshimjs.

This website uses esptool-js by Espressif Systems for uploading code to cars that use ESP32 boards.










Programming the Car




Settings


  1. What settings do you want to change? If you are programming a new car, then make sure to calibrate the joystick.










Info about settings:

control right: The value (between 0 and 1023) returned from the joystick when it is all the way to the right. Check the setting for pin "joy x pin" if you don't see a clear signal when you move the joystick.
control center x: The value (between 0 and 1023) returned from the joystick's x axis when it is centered.
control left: The value (between 0 and 1023) returned from the joystick when it is all the way to the left. Check the setting for pin "joy x pin" if you don't see a clear signal when you move the joystick.
x deadzone: How big of a zone near the center of the x axis should joystick movement be ignored in? Try around 15 to start with. The car won't start if the joystick isn't in the deadzone.
control up: The value (between 0 and 1023) returned from the joystick when it is all the way forwards. Check the setting for pin "joy y pin" if you don't see a clear signal when you move the joystick.
control center y: The value (between 0 and 1023) returned from the joystick's y axis when it is centered.
control down: The value (between 0 and 1023) returned from the joystick when it is all the way backwards. Check the setting for pin "joy y pin" if you don't see a clear signal when you move the joystick.
y deadzone: How big of a zone near the center of the y axis should joystick movement be ignored in? Try around 15 to start with. The car won't start if the joystick isn't in the deadzone.
acceleration forward: Rate of increase of speed when the car is moving forward. (fastest forward) / (acceleration forward) = seconds to reach max speed. (Larger number means higher acceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
deceleration forward: Rate of decrease of speed when the car is moving forward. (fastest forward) / (deceleration forward) = seconds to slow to a stop from max speed. (Larger number means higher deceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
acceleration backward: Rate of increase of speed when the car is moving backward. (fastest backwards) / (acceleration backward) = seconds to reach max speed. (Larger number means higher acceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
deceleration backward: Rate of decrease of speed when the car is moving backward. (fastest backwards) / (deceleration backward) = seconds to slow to a stop from max speed. (Larger number means higher deceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
acceleration turning: Rate of increase of rotation speed. (turn speed) / (acceleration turning) = seconds to reach max speed. (Larger number means higher acceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
deceleration turning: Rate of decrease of rotation speed. (turn speed) / (deceleration turning) = seconds to slow to a stop from max speed. (Larger number means higher deceleration). You can use the slow/medium/fast buttons to the left to give you a value to start with then adjust from there.
fastest forward: Maximum forward speed (between 0.0 and 1.0). While associated with speed, this setting is actually a limit on the power/torque of the motors so if you want to drive on a lawn a higher value might be needed.
fastest backward: Maximum backward speed (between 0.0 and 1.0). While associated with speed, this setting is actually a limit on the power/torque of the motors so if you want to drive on a lawn a higher value might be needed.
fastest backward: Maximum backward speed (between 0.0 and 1.0). While associated with speed, this setting is actually a limit on the power/torque of the motors so if you want to drive on a lawn a higher value might be needed.
turn speed: Maximum turning (spinning) speed (between 0.0 and 1.0). While associated with speed, this setting is actually a limit on the power/torque of the motors so if you want to drive on a lawn a higher value might be needed.
scale turning when moving: This setting changes how tightly the car turns when the joystick is pushed to a corner, try 0.5 to start. (Higher values mean tighter turns. It's recommended to stay within 0.0 and 1.0).
reverse turn in reverse: Changes how the car drives in reverse (flips rotation direction if the car is moving backwards). If checked: car drives towards direction joystick pointed. If unchecked: car spins in direction joystick pointed.
left motor center: What ESC signal makes the left motor stop? usually 1500
left motor slow: Center ± what makes the left motor start to turn? Can be negative if the motor is wired backwards. Try 25.
left motor fast: Center ± what makes the left motor run at full speed? Can be negative if the motor is wired backwards. Usually 500.
right motor center: What ESC signal makes the right motor stop? usually 1500
right motor slow: Center ± what makes the right motor start to turn? Can be negative if the motor is wired backwards. Try 25.
right motor fast: Center ± what makes the right motor run at full speed? Can be negative if the motor is wired backwards. Usually 500.
use speed knob: Check the box if an optional knob for easily adjusting the max speed been added to your car.
speed knob slow val: (Hidden unless "use speed knob" is enabled.) This setting should be the analogRead value when the knob is turned towards the slowest setting. (check SPEED_KNOB_PIN if not a clear signal)
speed knob fast val: (Hidden unless "use speed knob" is enabled.) This setting should be the analogRead value when the knob is turned towards the fastest setting. (check SPEED_KNOB_PIN if not a clear signal)
scale accel with speed: (Hidden unless "use speed knob" is enabled.) Check box if using a speed knob and you want to keep time to max speed constant instead of acceleration being constant. If checked: (1/accel)=time to reach max speed setting. If unchecked: (1/accel)=time to reach speed of 1.0 even if the car is limited from reaching a speed of 1.
speed knob pin: (Hidden unless "use speed knob" is enabled.) Pin connected to optional potentiometer for adjusting max speed.
joy x pin: What analog pin is the X (left-right) axis of the joystick connected to?
joy y pin: What analog pin is the Y (forwards-backwards) axis of the joystick connected to?
left motor controller pin: What Arduino pin is the left motor controller connected to?
right motor controller pin: What Arduino pin is the right motor controller connected to?
enable startup pulse: If the small movement that the car uses to indicate it is ready to drive is bothering the driver, then you can turn it off by unchecking this setting.
left motor pulse: What signal (inverted if LEFT_MOTOR_SLOW is negative) and added to LEFT_MOTOR_CENTER makes the left motor move enough to cause a gentle movement that can be used to indicate the car is ready to drive.
right motor pulse: What signal (inverted if RIGHT_MOTOR_SLOW is negative) and added to RIGHT_MOTOR_CENTER makes the right motor move enough to cause a gentle movement that can be used to indicate the car is ready to drive.
start motor pulse time: How many thousandths of a second are the motors pulsed to indicate that the car is ready to drive.
joy calib count: How many centered joystick readings need to be taken in a row before the joystick is considered centered and ok? One reading takes a bit under 2 thousandths of a second.
Set to -1 to turn off joystick center check.
enable button ctrl: The car can be controlled with buttons instead of a joystick.
When in button mode, some text indicating the state of each button appears. It looks like "buttons: 0001xx" where 0 means button off (open circuit), 1 means button pressed (connected to ground), and x means the button is not used because of the value of "num drive buttons"
use button mode pin: Use a switch to change between button mode and joystick mode at any time. Turn on "enable button ctrl" to use.
button mode pin: What pin is the optional button mode switch wired to? Turn on "use button mode switch" to use.
num drive buttons: How many optional buttons are wired to the car? Up to six buttons are supported. Turn on "enable button ctrl" to use.
Drive Buttons: What amount of speed and turning should the car accelerate to when pin is pulled low by a button? If more than one button is pressed, the speeds and turning amounts add together. "pin" can be any digital pin on the Arduino, speed is between -1.0(backwards) and 1.0(forwards), and turn is between -1.0(turning left) and 1.0(turning right).
steering off switch: If this option is checked, turning on a switch wired between USE_BUTTON_MODE_PIN and the gnd pin of the Arduino makes the car only drive forwards and back, with steering and turning unavailable. If you want the car to always be unable to turn, set TURN_SPEED to 0.
steering off switch pin: Pin of the Arduino connected to the switch that turns on and off the steering of the car. See STEERING_OFF_SWITCH above.
car wifi name: If you are using a microcontroller with wifi, it will create a wifi network named gbgcar[number]. The network name will update on the next reboot of the car. The number will be limited to values between 0 and 99. This number should be unique among cars that will be used near each other to avoid conflicts.
car wifi password: Use this to make a unique password for the wifi network created by the car. The password is gobabygo[number]. The password will update on the next reboot of the car. The number will be limited to positive integers with 9 or fewer digits.
Joystick Input: This box displays the position that the car thinks the joystick is in. Make sure that it matches the joystick on the car and if it doesn't, calibrate the joystick.
If "enable button ctrl" is on, then this box will be displaying the input caused by the buttons instead, and the title will change to say "Button Input."
Scaled Speed Target: This box displays the driving (vertical axis) and turning (horizontal axis) speeds that the car will accelerate up to. You can change the forward, backward, and turning speed settings to change the limits of these speeds. The edges of the box represent speeds of 1, which is the maximum speed.
Smoothed Speed to Drive: This box displays the driving (vertical axis) and turning (horizontal axis) speeds that the car would drive at, after the acceleration limit is applied. This display can be used to see how long the car will take to accelerate and decelerate.
Motor Signals: The motors are automatically turned off when the website connects, and will turn back on when the car is rebooted, but you can turn the motors on and off whenever you want while your computer is still connected using the button. This display shows the signals (microseconds of pulse of servo signal) sent to the left and right motors.