Overview Version History Q & A Rating & Review
CircuitPython Uploader
VS Code extension for uploading code and managing libraries on CircuitPython devices.
This extension was created as a tool for MakerClass courses 🎓
Follow me on X (Twitter) for the latest tips and tricks in programming and electronics!
Note: The resources are primarily in Czech language
Features
🚀 Quick Upload - Upload current Python file as code.py
(Ctrl+Alt+U)
📁 Upload as Filename - Upload file keeping its original name
🔍 Auto-detection - Automatically find connected CircuitPython devices
📊 Device Info - Shows CircuitPython version and board type with copyable output
📚 Library Management - Auto-install libraries from official bundle
💾 Backups - Automatic backup of existing code.py before overwriting
Requirements
VS Code 1.74.0 or higher
CircuitPython 9.x or 10.x device
Internet connection for library bundle download (first use)
Installation
VSIX (Recommended)
Go to Releases
Download the latest .vsix
file
Open VS Code → Extensions (Ctrl+Shift+X)
Click "..." → "Install from VSIX..." → Select the file
Manual (Alternative)
Download this repository as ZIP
Extract and rename folder to: makerclass.circuitpython-uploader-{version}
(version e.g. 1.0.2)
Copy to VS Code extensions directory:
Windows: %USERPROFILE%\.vscode\extensions\
macOS/Linux: ~/.vscode/extensions/
Restart VS Code
Usage
Upload Code
Upload as code.py (default behavior):
Open a Python file
Press Ctrl+Alt+U
(Windows/Linux) or Cmd+Alt+U
(Mac)
File uploads as code.py
to the device
Upload with original filename :
Open a Python file
Use command: CircuitPython: Upload as filename
File keeps its original name (e.g., main.py
, sensor_test.py
)
Manage Libraries
Fix Libraries - Automatically install all libraries imported in code.py:
Command: CircuitPython: Fix Libraries
Upload Library - Install a specific library:
Command: CircuitPython: Upload Library
Enter library name when prompted
Libraries are downloaded from the official Adafruit bundle and cached for 1 week.
Other Commands
CircuitPython: Upload as code.py
- Upload file as code.py (default)
CircuitPython: Upload as filename
- Upload file keeping original name
CircuitPython: Auto-detect Device
- Find and set device path
CircuitPython: Set Device Path
- Manually set device path
CircuitPython: Show Device Info
- Display device information (version, board, path)
Configuration
VS Code settings:
circuitpython-uploader.devicePath
- Path to CircuitPython device
circuitpython-uploader.createBackup
- Create backup before upload (default: true)
Version History
v1.0.1
✨ Added "Upload as filename" command to preserve original file names
🔧 Improved backup logic - backups only created when overwriting existing files
🧹 Refactored code to eliminate duplication between upload functions
v1.0.0
Initial release with basic upload and library management features
Troubleshooting
Bundle not found : Update to CircuitPython 9.x or newer
Library not in bundle : Check if it's a built-in module or needs manual installation
Clear cache : Delete /tmp/circuitpy-bundle-cache
(contains all bundle versions)
License
MIT