BIPES: Block based Integrated Platform for Embedded Systems.
v0.2.3-betaFeatures
-
Block-based visual programming interface for intuitive logic design without manual coding.
-
Fully web-based IDE requiring no local software installation or driver configuration.
-
Support for offline operation via a single concatenated HTML file for local execution.
-
Automatic generation of Python and MicroPython code from visual block arrangements.
-
Integrated serial terminal using xterm.js for direct device interaction and debugging.
-
Built-in code editor using CodeMirror for manual script adjustments and fine-tuning.
-
Native MQTT integration for seamless IoT cloud connectivity and messaging.
-
Automated OpenCV block generation for implementing computer vision tasks on supported hardware.
-
Support for multiple communication protocols including Bluetooth, Serial, and WiFi.
-
Integrated file manager for manipulating on-device file systems directly from the browser.
-
Data visualization capabilities through integrated freeboard and Databoard submodules.
-
Support for the Snek language to enable programming on resource-constrained devices like Arduino Uno.
-
Real-time code execution and soft reset capabilities for rapid iterative prototyping.
-
Bridge functionality to stream sensor data directly to the EasyMQTT platform.
-
Extensive library of pre-built templates for common peripherals like SSD1306 displays.
BIPES is architected as a modular, browser-based environment that bridges the gap between high-level visual logic and low-level embedded execution. At its core, it utilizes a block-based engine (based on Blockly) to generate source code—typically MicroPython or Snek—which is then transmitted to the target hardware via WebSerial, WebBluetooth, or WebREPL. This architecture eliminates the need for toolchain installation on the host machine, as the compilation (if necessary) and execution logic reside either in the browser or on the target device’s interpreter.
The system is structured into several functional layers: the UI layer (HTML/JS), the logic translation layer (Blockly generators), and the communication layer (xterm.js and browser-native APIs). By leveraging submodules like freeboard and Databoard, BIPES extends its architecture from simple device control to full-stack IoT data orchestration and visualization.
Use Cases
This library is ideal for:
- STEM Education: Providing a low-friction entry point for students to learn embedded systems and IoT concepts without managing complex toolchains.
- Rapid IoT Prototyping: Quickly building and testing sensor-to-cloud workflows using integrated MQTT and data visualization tools.
- Computer Vision: Implementing edge AI and vision tasks using automatically generated OpenCV blocks on capable hardware like Raspberry Pi.
- Cross-Platform Development: Deploying the same logic across diverse hardware architectures including ESP32, Arduino, and Linux-based SBCs.
Getting Started
To get started with BIPES, developers can access the live IDE at bipes.net.br/ide or host a local version. For local development, clone the repository and initialize the necessary submodules using make submodules. An offline version can be generated by running make offline, which creates a standalone index_offline.html file containing all core dependencies. Documentation can be built locally using Sphinx by running make doc, provided that sphinx, sphinx-js, and the furo theme are installed via pip. The platform supports various connection methods, including Serial (WebSerial) and Network (WebREPL), allowing users to connect to their devices directly from the browser interface.