This guide explains how to upload firmware to your SledLink controllers. No technical knowledge is required - just follow the steps below.
The latest SledLink release package is available on GitHub:
Each release includes:
- Arduino source code for both controllers
- Upload scripts for Windows, Mac, and Linux
- This guide
- Your SledLink controller (either the Sled or Judge unit)
- A USB cable (micro-USB, the same type used for many Android phones)
- A Windows computer
- No internet connection needed for flashing!
Firmware is compiled fresh from source code during upload. This ensures compatibility with your system and allows for easy customization.
- Download the SledLink folder to your computer from GitHub
- Extract the ZIP file to a convenient location
- Double-click
Upload Firmware (Windows).batin the main folder - Follow the prompts on screen
- The compilation and upload happens automatically
- Download the SledLink folder to your computer
- Open Terminal (press Cmd+Space, type "Terminal", press Enter)
- Navigate to the SledLink folder:
(Replace
cd ~/Downloads/SledLink~/Downloads/SledLinkwith wherever you saved it) - Make the script executable (only needed once):
chmod +x upload_firmware.sh - Run the script:
./upload_firmware.sh - Follow the prompts on screen
- Download the SledLink folder to your computer
- Open a terminal in that folder
- Make the script executable (only needed once):
chmod +x upload_firmware.sh - Run the script:
./upload_firmware.sh - Follow the prompts on screen
- Checks for Arduino CLI - The build tool. Installs it if needed.
- Sets up ESP32 support - Downloads ESP32 tools (first time only, ~500MB)
- Asks which controller - Sled or Judge
- Finds your controller - Detects the connected USB device
- Compiles and uploads - Builds fresh firmware from source and writes to your controller
Your controller might not be connected or recognized by Windows.
Try these in order:
- Different USB cable - Some cables are "charge-only" and don't carry data
- Different USB port - Try another port on your computer
- Wait a few seconds after plugging in for Windows to recognize the device
- Check Device Manager:
- Press
Win+X, select "Device Manager" - Look for your device under "Ports (COM & LPT)"
- If it shows a warning icon, you need USB drivers (see "USB Driver Issues" below)
- Press
- Hold the BOOT button on the ESP32 board during the first 5 seconds of upload
- The upload tool will tell you when it's starting
- You can release BOOT after it begins
- Try a different USB cable (charge-only cables won't work)
- Try a different USB port
- Close other programs that might be using the serial port (Arduino IDE, PuTTY, etc.)
- Try restarting your computer
- Right-click
Upload Firmware (Windows).batand select "Run as administrator" - If Windows SmartScreen blocks it, click "More info" then "Run anyway"
- Temporary solution: Run from Command Prompt:
"Upload Firmware (Windows).bat"
If Windows doesn't recognize your device:
CP210x drivers (for some ESP32 boards):
- Download: CP210x USB to UART Bridge VCP Drivers
- Install and restart your computer
CH340 drivers (for other ESP32 boards):
- Download: CH340 drivers (search "CH340 driver Windows")
- Install and restart your computer
If you're not sure which driver you need, try one - it won't hurt to have both installed.
Run this command first:
chmod +x upload_firmware.sh
If macOS says the script can't be opened:
- Open System Preferences → Security & Privacy
- Click "Allow Anyway" next to the blocked app message
- Try running the script again
If you get permission errors accessing the serial port:
sudo usermod -a -G dialout $USER
Then log out and back in for the change to take effect.
- Goes on the sled
- Has the measuring wheel encoder connected
- Sends distance data wirelessly
- Stays at the judge's table
- Receives and displays distance
- No encoder connected
After your controller has been updated (whether using flash or compile method):
- The controller will restart automatically
- The LCD should show "SledLink" and then the startup screen
- Your system is ready to use!
- For compile-from-source method: You can use the serial monitor option in the script to see diagnostic output
If you're still having problems:
- Check the USB cable - This is the #1 cause of issues
- Try the other computer if one is available
- Contact support with a description of the error message you see