Skip to content

Shen-Ming-Hong/singular-blockly

Repository files navigation

Singular Blockly

Built on Blockly PlatformIO VS Code Marketplace Downloads Rating License

A Visual Studio Code extension that provides a visual programming interface using Blockly for Arduino development, with multi-board support and internationalization.

Features

  • 🎯 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

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

  1. 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
  2. Open the extension using:

    • Click the wand icon (🪄) in the status bar
    • Click the Singular Blockly icon in the activity bar
  3. 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
  4. 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
  5. 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

Supported Boards and Platforms

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.

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published