This guide covers everything you need to know to successfully check out and build the SmartFuseBox repository on Windows.
- Git for Windows (with symbolic link support enabled)
- Arduino IDE (1.8.19+ or Arduino IDE 2.x)
- Windows 10/11 (with Developer Mode enabled OR administrator privileges)
- Arduino Mega 2560 (Control Panel)
- Arduino Uno R4 (Fuse Box)
- Nextion Display (3.5" or 5" NX4832T035 recommended)
- See BOM.md for complete hardware list
IMPORTANT: This repository uses symbolic links to share code between BoatControlPanel and SmartFuseBox projects. You must configure Windows to handle them properly.
- Open Settings → Update & Security → For developers
- Enable Developer Mode
- Restart your computer
- Git will now automatically create symbolic links during clone
If you cannot enable Developer Mode:
- Clone the repository normally (symlinks will appear as text files)
- Run the
SymLinks.batscripts manually (see below)
Git will automatically create symbolic links during the clone process.
After cloning, you must manually create symbolic links:
(Right-click → "Run as administrator")
(Right-click → "Run as administrator")
- Delete the text files:
- Run
SymLinks.batas administrator:
Install these libraries via Arduino IDE Library Manager:
- SerialCommandManager (by Si Carter)
- NextionControl (custom library - see
NextionControlfolder) - DHT sensor library (by Adafruit)
- QMC5883LCompass (for magnetic compass sensor)
- Open Arduino IDE
- Go to Sketch → Include Library → Manage Libraries
- Search and install each library
If NextionControl is not in the Library Manager:
- Copy
NextionControlfolder to your Arduinolibrariesdirectory - Restart Arduino IDE
- Open
BoatControlPanel/BoatControlPanel.inoin Arduino IDE - Select Board: Arduino Mega 2560
- Select Port: (your COM port)
- Click Upload
- Open
SmartFuseBox/SmartFuseBox.inoin Arduino IDE - Select Board: Arduino Uno R4 WiFi (or R4 Minima)
- Select Port: (your COM port)
- Click Upload
Run this in BoatControlPanel or SmartFuseBox:
You should see entries like:
If you see regular text files, symlinks weren't created correctly.
Both projects should compile without errors. Common issues:
- Missing library errors: Install required libraries
- File not found errors: Symlinks weren't created properly
- Multiple definition errors: Ensure you're not including
.cppfiles
Cause: Git is not configured to create symlinks, or you lack permissions.
Fix:
- Enable Developer Mode (see above)
- Re-clone the repository OR run
SymLinks.batmanually
Cause: Not running with administrator privileges.
Fix: Right-click SymLinks.bat → Run as administrator
Cause: core.symlinks is set to false.
Fix:
Cause: Git thinks symlinks are regular files.
Fix:
- README.md - Project overview and features
- Commands.md - Serial command protocol reference
- BOM.md - Complete bill of materials
- ExternalUpdatePattern.md - Display page update architecture
When making changes to shared files:
- Edit files in the
Shared/directory only - Do NOT commit or modify symlinked files directly
- Test changes in both
BoatControlPanelandSmartFuseBox
GNU General Public License v3.0 (GPLv3) — see LICENSE for details.
If you encounter issues:
- Check this setup guide thoroughly
- Review the README.md for project context
- Open an issue on GitHub with:
- Your Git configuration (
git config --list | grep symlinks) - Windows version and Developer Mode status
- Error messages from
SymLinks.bator Arduino IDE
- Your Git configuration (
Happy building! ⚡🚤