Setting up an Arduino with SimHub, step by step
Last updated · SimHub 9.11.22
SimHub generates the Arduino firmware for you — there is no code to write. Open the Arduino setup tool, accept the toolchain download, give the device a unique name, tick the features you want and set their quantities, assign pins so that none collide, pick the COM port and board type, and upload. Two warnings matter before you start: confirm the serial port belongs to the device you mean to flash, because wiping the wrong one cannot be undone, and expect uploads to be locked for the first 15 seconds after plugging a board in.
The whole process takes about ten minutes once you know it. The step that costs people an evening is pin assignment, which is why it gets its own section rather than one line.
Before you start
- A supported board. Uno R3, Nano v3, Mega, Pro Micro 5V/16MHz or Leonardo. Not an Uno R4 — see the board list.
- A USB cable that carries data. Charge-only cables are the single most common reason a board is never detected.
- The right driver. CH340G for most clones, FTDI for genuine boards and better clones.
- Everything else unplugged. Specifically, every other Arduino. This is a safety measure, explained below.
Triple-check the port. Flashing the wrong device cannot be undone. The official guidance says to "always triple check that the serial port used to flash is the one of your target device", and that wiping the wrong device "can't be reverted!" The simplest protection is to have only one board connected while you flash.
The wizard
Open the Arduino setup tool
From SimHub's Arduino section in the left menu. On first use it offers to download the Arduino toolchain — accept, it is a one-off.
Give the device a unique name
Not optional if you will ever run more than one Arduino. Two boards sharing a name is a configuration that cannot work, and the symptom is that one of them simply never appears. Name it for what it does —
revbar,gearmatrix— rather thanarduino1.Tick the features and set quantities
RGB LEDs, matrices, 7-segment displays, buttons, encoders, motors, servos. Quantities matter — how many LEDs, how many digits, how many buttons — because they determine the pin and memory budget.
Assign the pins
The step that decides whether this works. See below.
Pick the COM port and board type
The port from Device Manager, and the board matching what you actually have. An Uno clone is an Uno; a Nano clone with an ATmega328 is a Nano v3.
Upload
SimHub compiles and flashes. If it is refused, see the 15-second lock below.
Save the profile
Optional and worth doing. The saved profile lets you come back and edit the configuration later instead of rebuilding it from memory.
Pin assignment, properly
Every pin must be unique, and the defaults can collide. Tick two features and each arrives with its own default pins — which are not guaranteed to differ. A duplicate assignment stops the firmware building, and the error message does not always name the two features that clashed.
How to avoid it entirely:
- Plan on paper first. List every feature and how many pins it needs before you open the wizard. On an Uno you have around 20 usable pins and they go quickly.
- Assign explicitly rather than accepting defaults. Go through each feature and set its pins yourself, in order, so you can see the whole allocation.
- Keep a record. The saved profile does this for you, and a year later it is the only thing that will tell you why a wire goes where it does.
- If you run out, use a Mega. That is the main reason to choose one over an Uno, and it is cheaper than redesigning.
Some pins have fixed roles — the serial pins are used for USB communication, and some features require pins with specific hardware capability. The wizard will not offer you a pin that cannot do the job, so if an option is missing, that is why.
The 15-second upload lock
Uploading is locked 15 seconds after the board is plugged in. This is deliberate — it protects against unwanted firmware wipes. Either send the upload-unlock command, or simply replug the board and upload promptly.
It is worth knowing because the symptom looks like a failure. A board that refuses an upload is usually not broken and usually does not need a different driver; it has been connected for more than fifteen seconds.
Build and flash, or build and export
- Build and flash
- Compiles the firmware, saves the configuration and uploads it straight to the device. What almost everyone wants.
- Build and export
- Compiles and exports the source as a ZIP containing all dependencies, for manual customisation. The route if you want to modify behaviour beyond what the wizard exposes.
If you take the export route, be aware of what it requires:
- A legacy Arduino IDE 1.8.x — not the current 2.x.
- Edits to
boards.txtinhardware\arduino\avr, using content supplied inside the export. - Your own maintenance from then on. SimHub will not update a firmware you have customised.
For most people the wizard covers everything, and exporting is a decision to take on a maintenance burden in exchange for control.
After the upload
SimHub should show the device under its name. If it does not:
- Check the COM port has not changed. Windows can reassign it, and SimHub needs a restart when it does.
- Check the device name is unique against every other Arduino you have configured.
- Check scan settings — SimHub can be told to exclude ports, and an excluded port is invisible.
- Work through Arduino not detected, which is ordered by how often each cause is actually it.
Once it appears, the configuration side begins — LEDs, the LED editor, matrices — and that is where most of the interesting work is.
Common questions
Do I need to know Arduino programming to use SimHub?
No. SimHub's setup tool generates and uploads the firmware from the features you tick — there is no code to write. Writing code is only necessary if you take the build-and-export route to customise behaviour beyond what the wizard offers.
Why does SimHub refuse to upload to my Arduino?
Most likely the 15-second upload lock, which engages that long after a board is plugged in to protect against accidental firmware wipes. Replug the board and upload promptly, or send the upload-unlock command. The board is probably not faulty.
Why won't the firmware build?
Usually a duplicate pin assignment. Every pin must be unique across all enabled features, and SimHub's defaults can collide when you tick two. Go through each feature's pins explicitly rather than accepting defaults.
Do I need to name each Arduino?
Yes if you will ever run more than one, and it is good practice regardless. Two boards sharing a name cannot work, and the symptom is that one of them never appears. Name them for what they do rather than by number.
What is build and export for?
It compiles the firmware and exports the source as a ZIP with all dependencies, for manual customisation. It requires a legacy Arduino IDE 1.8.x and edits to boards.txt, and it means SimHub will no longer maintain that firmware for you.
Can I change the configuration later without starting over?
Yes, if you saved the profile at the end of setup. That is the whole point of the optional final step, and it is also the only record of why each wire goes where it does.
Sources
Related guides
SimHub is developed independently by Wotever and is not affiliated with oesimracing. This page was checked against SimHub 9.11.22 on 4 August 2026; where the interface has moved on since, the version stamp tells you how far. More on what SimHub is and what it costs.