Version of Snap! for the MicroBit ?

Is there a version of Snap! for the BBC MicroBit (similar to Snap4Arduino for the Arduino)?

I believe you can use S4A itself.

Not SNAP!, but you can try microBlocks.
Via http or WebThing server the integration with SNAP! is very nice.

We met John Maloney at this summer's Snap! conference and have been using MicroBlocks since that time. It seems to work well, with Ver 1.0 update scheduled for the near future.

I am glad that you have disccovered both J.Maloney and microBLocks. :star_struck:
There are possible integration plans of microBlocks and Snap!. However, I was not able to find out any details of it yet or if at all it is true. If true, it will be a killer combination putting many other options tto shame. Awaiting breathlessly !

@bromagosa was working on that at one point, maybe he's up on the latest?

Integrating the two is not a technically hard* problem, but a conceptually hard one.

Snap! is a language and an environment at the same time. Adding another language to the Snap! environment presents all sorts of issues that we hadn't anticipated when we started working on the pilot version of MicroBlocks for Snap!.

The fact that the two languages are similar enough to be mistaken for one another makes it even more of a conceptual nightmare. Both languages are live, blocks-based and parallel. Both languages support heterogeneous lists of lists and custom blocks. However, Snap! has things like first class objects that MicroBlocks wouldn't know how to handle, so for example storing a Sprite into a MicroBlocks variable would not work, or broadcasting a message that's not a simple text string, or running something like:

[scratchblocks]
tell[MicroBlocks object v]to({Snap! method::looks}::grey ring)::control
[/scratchblocks]

What we're aiming at, though, is making interacting between Snap! and MicroBlocks easier and more transparent. We'll start working on this after releasing 1.0, which should happen this very week :slight_smile:

* Well, it is hard, just not nearly impossible like it was a bunch of years ago.

1 Like

Yes!

MicroBlocks is the most powerful tool to work, teach and learn with micro:bit devices. It is really great!

But some comments about using micro:bit with Snap! / Snap4Arduino...

-I know it would be a popular success to fully integrate the use of micro:bit with Snap! And it wouldn’t be that hard either. But that’s what micro: bit people could do. I don't sell boards ... and I try (I'm talking about Snap4Arduino now) to support microcontrollers in general, freely and cheaply.

  • Actually, Snap4Arduino is not "4Arduino". It works with any device running Firmata firmware. Then, any Firmata implementation on micro:bit will run ok. But standard firmata would not implement all micro:bit features... so, and extra work should be done to get them.
  • The discussion could be long ... but I think the general idea is that people who could do this job find it more interesting to work with other devices; maybe cheaper, or more "free", or more adapted to their needs ...
  • And trying to provide some practical solutions:
    • I tested MakerBit firmata solution (https://docs.google.com/document/d/1J88ZSNeoZcsnpgJyQMA8leCIz0F3E_wUo1qTCFpGxYo/edit) It worked fine with Snap4Arduino primitive blocks. The problem here was primitives is not what people wants (for micro:bit embedded features). It is a good solution for working with a micro:bit shield (a motor shield for example) because you can use board pins in the same way people work with Arduinos. Note I tested it more than a year ago... (I don't know about news on this).
    • Other Firmata, from micro:bit foundation. Also pointed by @tguneysu in this post. I tested, but also, more than a year ago. It has extra features (to use micro:bit display and more) but the problem I saw (in that moment) was that it hadn't all the StandardFirmata protocol implemented... and the "normal connection action" of Snap4Arduino wasn't working. It needs some javascript coding (to do the connection) or that firmata must be modified. I think is the problem @tguneysu had.
    • And finally, but maybe the best solution (is the solution I've seen working in shools) is using a middleware made by Picaxe people (made for Scratch2, and also for Snap!). Look here. It is simple, and maybe not well maintained, but allow you to connect Snap! (Snap4Arduino not needed) to micro:bit by Bluetooth (and also to WeDo1, WeDo2...). It is verypractical!!

Note: To play with Picaxe solution, you must run Snap! by http (not https). You can use
(http://extensions.snap.berkeley.edu/snap/snap.html#).
I tested this solution, but I'm not a micro:bit user. Anyway, any problems, you can use this forum and I try to see what happens...

That's all!

Joan