A Visual Studio Code extension that provides a visual programming interface using Blockly for Arduino development, with multi-board support and internationalization.
-
🎯 Multi-Board Support
- Arduino Uno
- Arduino Nano
- Arduino Mega
- ESP32
- Super Mini (Lolin C3 Mini)
-
🌐 Internationalization Support
- Multiple language support
- Automatic language detection based on VS Code settings
- Supports the following languages:
- English (en)
- Spanish (es)
- Portuguese (pt-br)
- French (fr)
- German (de)
- Italian (it)
- Russian (ru)
- Japanese (ja)
- Korean (ko)
- Traditional Chinese (zh-hant)
- Polish (pl)
- Hungarian (hu)
- Turkish (tr)
- Bulgarian (bg)
- Czech (cs)
-
🧩 Rich Block Categories
- Arduino I/O Operations
- Functions with parameter support
- Custom threshold functions with analog input support
- Configurable sensor pins and threshold values
- Multiple output types (numeric, boolean, string)
- Variables with rename/delete capabilities
- Lists and Arrays
- Logic Operations
- Loops
- Math Operations
- Text Operations
-
💾 Workspace Management
- Automatic state saving
- Project persistence
- Board configuration management
- Code generation to Arduino (.cpp) files
- Automatic PlatformIO configuration generation
- Automatic platformio.ini preview mode management
-
🛠 Development Features
- Real-time code generation
- Integrated board configuration
- Visual block programming interface
- Drag-and-drop block management
- Zoom controls and trashcan
- Custom theme support
- PlatformIO integration for hardware upload
- Visual Studio Code 1.96.0 or higher
- Basic understanding of Arduino programming concepts
- Required Extensions:
- PlatformIO IDE Extension
- C/C++ Extension (ms-vscode.cpptools)
-
Open or create a folder in VS Code:
- This extension requires a workspace folder to store its files
- Use File > Open Folder... or File > New Folder
- Make sure you have write permissions in the folder
-
Open the extension using:
- Click the wand icon (🪄) in the status bar
- Click the Singular Blockly icon in the activity bar
-
Select your target board from the dropdown menu:
- The extension will automatically create and configure
platformio.ini
- First-time board selection requires a workspace reload
- The extension will automatically create and configure
-
Create your program using the visual blocks:
- Drag blocks from the toolbox categories
- Configure block parameters
- Connect blocks to build your logic
- Changes are auto-saved and persist between sessions
-
The extension will automatically:
- Generate Arduino code in
src/main.cpp
- Save workspace state in
blockly/main.json
- Update PlatformIO configuration
- Provide real-time code(.cpp) generation
- Generate Arduino code in
Each board is configured with specific PlatformIO settings for optimal compatibility:
- Arduino Uno
- Platform: atmelavr
- Board: uno
- Arduino Nano
- Platform: atmelavr
- Board: nanoatmega328
- Arduino Mega
- Platform: atmelavr
- Board: megaatmega2560
- ESP32 Dev Module
- Platform: espressif32
- Board: esp32dev
- Super Mini (Lolin C3 Mini)
- Platform: espressif32
- Board: lolin_c3_mini
Note: The extension will automatically generate the appropriate
platformio.ini
configuration when you select a board, ensuring the correct platform settings for hardware upload.
Please report any issues on our GitHub repository.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
This project incorporates the following third-party components:
- Blockly - Licensed under the Apache License 2.0
- PlatformIO - Licensed under the Apache License 2.0
- Arduino Core Libraries - Licensed under the LGPL
Contributions are welcome! Please feel free to submit a Pull Request.