Singular Blockly

A Visual Studio Code extension that provides a visual programming interface using Blockly for Arduino development, with multi-board support and internationalization.
Core Dependencies
- Blockly: 12.3.1 - Visual programming library
- @blockly/theme-modern: 7.0.1 - Modern theme with darker borders
- Node.js: 22.16.0+ required
- VS Code: 1.105.0+ required
Features
Requirements
- 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)
Usage
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
- Note: The extension will warn you if opened in a non-Blockly project to prevent accidental file modifications
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
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
Each board is configured with specific PlatformIO settings for optimal compatibility:
AVR Based
- Arduino Uno
- Platform: atmelavr
- Board: uno
- Arduino Nano
- Platform: atmelavr
- Board: nanoatmega328
- Arduino Mega
- Platform: atmelavr
- Board: megaatmega2560
ESP32 Based
- 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.
Extension Settings
This extension contributes the following settings:
singularBlockly.safetyGuard.suppressWarning: Suppress the safety warning when opening the editor in non-Blockly projects
- Type:
boolean
- Default:
false
- Workspace-level setting (can be configured per project)
- When enabled, the extension will not show warnings when detecting non-Blockly project types
Project Safety Guard:
The extension automatically detects if your workspace is a non-Blockly project (e.g., Node.js, Python, Java projects) and shows a warning dialog to prevent accidental file modifications. You can:
- Click Continue to proceed with opening the editor
- Click Cancel to abort the operation
- Click Don't remind again to suppress warnings for this workspace
To re-enable warnings after clicking "Don't remind again", change the workspace setting:
{
"singularBlockly.safetyGuard.suppressWarning": false
}
Known Issues
Please report any issues on our GitHub repository.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Third-Party Licenses
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
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
| |