Bringing the Full Power of Snap!
to Embedded Programming
Devin Jean
1
NetsBlox
Background
2
NetsBlox Overview
3
Our Solution - NetsBloxVM
4
How It Works - ESP32 Version
5
1. NetsBloxVM runs on an ESP32
4. Users write whatever Snap!/NetsBlox code they want to run on the device.
2. Board hosts a normal NetsBlox extension for controlling it
3. Board loads in “Native” blocks for accessing sensors and other connected devices
5. Users can upload their code to the device and run/pause/stop it through the connected “Native Terminal”
How It Works - Debugging
6
1. Program output (say blocks) and errors are displayed in a connected browser
2. Errors shown as special red comment stack trace - includes snapshot of all variables in scope
3. If no connected browser, device continues executing and saves output/errors in buffers for next time
4. NetsBloxVM core also supports the pause block as a sort of breakpoint, and watchers.
How It Works - Setup
7
1. Device hosts a config page for managing settings
2. Can access without internet via access point
3. Networked features need connection to a wifi network (with internet)
4. Hardware peripherals added as new entries in the peripherals config. Syscalls automatically populated.
Entirely wireless experience! No flashing needed!
Let’s See It In Action!
8
Resources
9
NetsBlox