Wiki

Clone wiki

SmallVM / Mesh Network

Since different boards offer different comm interfaces -and some offer none- it is near impossible to offer an inter-board communication layer that will just work out of the box and can be abstracted into two simple send/receive blocks.

That is why we decided on implementing a mesh network abstraction on top of a cheap radio module that can be added to any board.

Examples of such modules are:

And some tutorials on the topic:

Another consideration that makes this approach attractive is the simplicity of the packet-based protocols used by these modules. In contrast, BLE and WiFi are very complex. Another downside to BLE and WiFi is the need to pair (for BLE) or specify the network name (WiFi). One might consider using WiFi in workshops or classrooms if one had a portable hotspot with a well-known network name. That network name could built into the uBlocks virtual machine, and uBlocks could use UDP on the well-known network to discover other uBlocks devices and form a mesh. That said, most of the boards we are considering do not have WiFi. If we need to add additional hardware, the radio modules above are probably cheaper and simpler to use than WiFi shields or modules.

We should look into how the BBC micro:bit block language uses BLE. It might be useful for micro:bits running uBlocks to communicate with micro:bits running programs created with other languages.

Updated