Using Micropython on the Wio Link

I got the WioLink and its grove modules as part of the original kickstarter.

I was trying to hook up some grove sensors to a Wemos D1 and realized that the WioLink used the ESP8266 processor so it probably could use uPython right out of the box. The good news is that you program it in the usual way with esptool.py and all of that is successful. You can define the power enable pin and turn it on. You can initialize an i2c device on GPIOS 5 and 4 and talk to grove modules with I2C, yay! You can use a tool like ampy to put modules on the WioLink so that it will run them on boot, and you can connect to wireless networks or run an access point. This is all super great! But there are a few problems.

  1. When you turn on the power bus (using GPIO15) the whole system reboots. Fortunately once it reboots the power bus is still on so you can continue without having to turn it on again. It makes for some weird coding however.

  2. Periodically, (like every two or three minutes?) the board just reboots. This doesn’t happen on the Wemos D1 I have, but happens on both WioLinks (I got the two pack in the Kickstarter). This smells like the hardware watchdog timer is some how being activated. I tried disabling with the WDT class in uPython but it didn’t have an effect.

Its pretty straight forward to write drivers for the modules in uPython here, and if the above two problems were addressed this would be my system of choice for teaching an embedded programming / IoT class to the local high school kids (a complete kit of parts is cost effective enough that I could provide them with the class).

Any thoughts on how I might address this or do I dig into the uPython code and build a custom Wio Version?

If the uPython support NodeMCU, It already supports the Wio link. It’s just a different PCB shape.