It's Been Over A Year Since My Last Post

You may have been wondering where I've been ( but probably not ;-) ). It does not feel like so much time has gone by, but it has.

In that time, I've published , pymata-express, my latest attempt at an Arduino Firmata client, and have been working on some additional features for python-banyan.

The pymata-express project is a pure Python asyncio implementation that uses the latest asyncio features released with Python 3.7. Here are its main features:
  •  An improved and simplified API.
  • A full set of working examples has been supplied with the project.
  • A new Arduino sketch, called FirmataExpress, was developed to be used in conjunction with pymata-express.
  • When using FirmataExpress:
    • The Arduino serial link runs at 115200 
    • Arduino auto-discovery has been greatly improved by adding a handshake to the Arduino when the auto-discovery process takes place.
For python-banyan, I have improved the documentation, added a simplified set of examples to the tutorials and developed a concept I call OneGPIO. OneGPIO is a generalized GPIO specification in the form of a set of Banyan protocol messages. Essentially, you create a GPIO application by creating a Banyan component that publishes OneGPIO messages, and specialized Banyan components, called OneGPIO Gateways, subscribe to these messages and then translate the messages into specific target hardware native GPIO  API calls. You code your application once, and then you will be able to run your application on any of the supported platforms (Arduino, ESP-8266, and Raspberry Pi) without any additional code changes.

 The distribution includes a set of demonstrations:
  • A common simple LED blink example to control all 3 hardware platforms.
  • A  common tkinter remote control GUI for all 3 hardware platforms.
  • A Web Page for each hardware platform that provides Web based remote control for all 3 platforms.

All the demos take advantage of the Banyan Launcher, where from a single terminal window, all the Banyan components for a Banyan application are launched from a single command line.
Lastly, python-banyan is being used Palace Games in San Francisco, as its communictions back-bone. You can read about that here

Please take a look at python-banyan and pymata-express and let me know what you think.

Building An Inexpensive

Robot With


 I just released the source code and a tutorial on building a remote controlled robot using the micro:bit.

There are 4 different remote controllers included with this project, all using the micro:bit radio interface:

  1. A micro:bit gesture based controller.
  2. A remi Web Page Controller. 
  3. A tkinter controller.
  4. A SparkFun gamer:bit controller.

A Python Library For The

SparkFun gamer:bit Board

I just released a library to control  the Spark Fun gamer:bit for the micro:bit. The library supports all the buttons and "poke home" connectors on the back of the board. You can configure the library to report single or simultaneous button presses.

A Python Library For The

Kitronik Motor Driver Board

I just released a library to control  the Kitronik Motor Driver Board. I selected this board over all others, mainly because it uses screw terminals that securely hold the motor and power wires in place. No more wires popping out due to motor vibration. It also has a breakout pad for the micro:bit pins, making it easy to add additional devices, like an ultrasonic distance sensor to the project.

The board is extremely well made and works extremely well and is priced very appropriately. I had some questions about its use and received prompt and courteous service from the Kitronik's folks.

I ordered the board from Pimoroni and when it was first received I thought I had some issues with it. It turned out there were no issues with the board, but with the  author. Because I thought I might have to return the board, I contacted Pimoroni and with patience and grace, they helped solve my issues. No return needed and I was able to quickly get to my latest project. Another great company to do business with!



To Program The


 I just released a package on GitHub that will allow you to use PyCharm to program the micro:bit.

s2m Is Featured On Champierre's Blog

Champierre,  who not only provided the Japanese translation for the s2m blocks, has featured s2m on his blog. Check it out!

Thanks Champierre


s2m Translated Into Korean and Traditional (tw) Chinese

Much thanks to 전형기 for providing the Korean translation and to HSIEH, Li-Yi for providing the Traditional (tw) Chinese translation.