Uploading Code
How to upload your code
Code Kit automatically generates C++ code that can be compiled and uploaded to your board. Here's how you can upload your code.
- Upload from the web app (Code Kit Pro) — Click the 'Upload' button in the toolbar to compile and upload code directly to a connected board. No software install required.
- Upload from the desktop app (Code Kit Pro) — Similar to the web app, click the 'Upload' button in the toolbar to compile and upload code to a connected board. The desktop app works on Windows and macOS, and allows you to upload code offline.
- Export code and upload with Arduino IDE — Click the 'Export' button in the toolbar and select 'Arduino Project' from the export window. Unzip the file once downloaded and open in the Arduino IDE, where you can compile and upload the code.
On the web (Pro)
Direct upload is no longer limited to our desktop app! With Code Kit Pro, you can compile and upload code directly from our web app—no software install required.
Sign in to Code Kit with your EduKits account to unlock Pro features. You'll need a Code Kit Pro subscription for direct code upload to work.
Next, make sure that your board is connected to your device. Click the Link button to open the board selector.
The board selector allows you to link Code Kit to a board. Select your board from the list and then click Connect to continue.
Finally, click the Upload button in the top toolbar to compile and upload your code to the linked board. Once the code is uploaded, you'll receive a confirmation message at the bottom of your screen.
Connection and upload errors
If something goes wrong, we'll let you know by showing an error message.
- Failed to connect to board — Make sure that the board is still connected to your computer and linked to Code Kit. This error may occur if you link the board then disconnect it later, or are currently connected to the board in another application (e.g. Arduino IDE).
- Error compiling code — Double-check your blocks to make sure everything's working correctly. If you can't figure out what went wrong, please reach out to our team and we'll be happy to help.
- Error uploading code — This means that the code was compiled (i.e. was valid), but there was a problem transferring it to the board. Double-check that you selected the correct board from the drop-down list in the toolbar, then contact our team if the upload still isn't working.
Supported browsers
Direct code upload is available in Chromium-based browsers. Browser support includes:
- Google Chrome
- Microsoft Edge
- Brave
- Opera
- Vivaldi
- Arc
Note that direct code upload is not supported in Safari or Firefox.
For Linux Users
If you're using Linux, you may encounter issues connecting to your board even if you're using a supported browser. This is because the browser may not have the necessary permissions to access the USB port.
Troubleshooting tips
- Port permissions - On Linux, you might need to add your user to the appropriate group (usually 'dialout' or 'uucp') to access the serial port. You can do this with:
After running this command, you'll need to log out and log back in for the changes to take effect.
sudo usermod -a -G dialout $USER
- udev rules - You might need to set up udev rules to allow non-root access to the board's USB port. Create a file named
/etc/udev/rules.d/99-arduino.rules
with the following content:Replace [PRODUCT_ID] with your Arduino board's product ID. After adding this rule, reload udev rules with:SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[PRODUCT_ID]", MODE="0666"
sudo udevadm control --reload-rules && sudo udevadm trigger
- Try another browser or version - If you're using a custom Chromium build or a browser with additional security features, try using the official Chrome or another Chromium-based browser (like Edge) to see if the issue persists.
Desktop app (Pro)
To upload, simply click the Upload button to the top-right of the app. Select your desired board from the list. If you have only one board connected, Code Kit will automatically link to this board for your convenience.
If no board is connected or the current board is connected improperly, an error message will appear to alert you to the problem.