Skip to content

A-S-T-U-C-E/S4E_Electron

Repository files navigation

STudio4Education All In One

logos

Designed for Arrowhead Tools Project (https://www.arrowhead.eu/arrowheadtools), STudio4Education is a web-based visual programming editor for ST microelectronics boards.

STudio4Education is based on Blockly framework, the blocks graphical programming editor behind Scratch3.

STudio4Education provides static type language blocks and code generators for simple C programming and Arduino like.

This AIO version provides an offline client for desktop use. Thanks to STM32Duino project: https://github.com/stm32duino, it adds verifying, compiling and uploading features.

Features

  • Programming with visually drag and drop code blocks
  • Generate fully compatible code
  • Multiple boards choice for automatic selection of pin functions
  • Load different on-site examples with url parameters
  • Keyboard navigation and accessibility helpers
  • Theme choice
  • Block render choice
  • Multi language
  • Keyboard navigation
  • Verify, compile and upload to board
  • Serial monitor for USB communication
  • Libraries & board packges management
  • etc

Accessibility

You can enter accessibility mode by hitting Shift + Ctrl + k.

Official documentation: https://developers.google.com/blockly/guides/configure/web/keyboard-nav

Key mapping is customizable by activating 'open key mappings' option.

Some basic commands for moving around are below.

Workspace Navigation

  • W: Previous block/field/input at the same level.
  • A: Up one level (Field (or input) -> Block -> Input (or field) -> Block -> Stack -> Workspace).
  • S: Next block/field/input at the same level.
  • D: Down one level (Workspace -> Stack -> Block -> Input (or field) -> Block -> Field (or input)).
  • T: Will open the toolbox. Once in there you can moving around using the WASD keys. And insert a block by hitting Enter.
  • X: While on a connection hit X to disconnect the block after the cursor.

Cursor

The cursor controls how the user navigates the blocks, inputs, fields and connections on a workspace. Two different cursors:

  • default Cursor: Allow the user to go to the previous, next, in or out location;
  • basic Cursor: Using the pre order traversal allows the user to go to the next and previous location.

Demo

STudio4Education is a web tool, you can give it a try at Web version.

Run locally on your web browser

If you want to install it locally. Get code from github and open index.html in your browser.

Integrated upload

Unlike the web version, this Electron version embeds arduino-cli, thanks to STM32Duino project.

Run locally

Windows user: you can download latest release, double click on exe file to launch it and follow usage.

If you want to test it locally and compile by yourself, you have to get code from github and follow instructions below.

How to use by yourself

Clone or download the source code, add if needed the last version of STudio4Education in folder www, and arduino-cli in compiler folder.

Requirements

You'll need Node.js installed on your computer.

Install all required tools (as Administrator or sudo):

  • tools for compiling on Windows
> npm install -g windows-build-tools
  • addon build tool
> npm install -g node-gyp

Getting Started

> cd S4E_Electron-master
> npm install
> npm start

Build

> npm run compile

Cross compile for all OS is still on the TODO list...need help.

Usage

  1. Configure S4Electron: open setup panel and select your board, your language, your favorite theme + renderer, etc.
  2. Drag and drop blocks to make a program.
  3. If needed, unzip libraries in sketchbook\libraries folder, or use CLI panel:
    1. click on 'update core and libraries' button;
    2. search for the eaxct name of the library you are looking for;
    3. type name, case sensitive, in input field and click on button 'install this library': enter image description here
  4. Click on 'Compile' to verify code and prepare binary file.
  5. If needed, install specific packages by taping FQBN name in 'board install to CLI' input field and click on button 'install this board type'.
  6. If not done before, select communication port in setup panel.
  7. Press the 'Upload' button to send the binary file into a connected board.

ChangeLog

Check changelog here

Tools used

Ace editor

Arduino-CLI

Electron

Font Awesome Font Bitter Font Luciole

Node SerialPort

Node-RED

STM32Duino

Authors and Contributors

Sébastien Canet (scanet@libreduc.cc).

The STudio4Education project is also inspired by Blockly@rduino, ardublockly and Blocklino.

License

Copyright (C) 2020 Sébastien Canet scanet@libreduc.cc

Code from Blockly is licensed under the Apache 2.0 license.

Blockly Build Status

Google's Blockly is a web-based, visual programming editor. Users can drag blocks together to build programs. All code is free and open source.

The project page is https://developers.google.com/blockly/

Blockly has an active developer forum. Please drop by and say hello. Show us your prototypes early; collectively we have a lot of experience and can offer hints which will save you time.

Help us focus our development efforts by telling us what you are doing with Blockly. The questionnaire only takes a few minutes and will help us better support the Blockly community.

Want to contribute? Great! First, read our guidelines for contributors.

Arduino core support for STM32 based boards

forums wiki STM32 Core Continuous Integration

GitHub release GitHub All Releases GitHub commits