Some months ago, when Chloe from Seeed Studio got in touch and asked me if I’d like to write about their new Wio Terminal device, I didn’t waste any time in saying yes. I mean, would you say no to all of this?
- 120 / 200 MHz ARM Cortex-M4F core (MicroChip ATSAMD51P19: 512 KB Flash, 192 KB RAM) with additional 4 MB Flash program/data storage and micro-SD card slot;
- 2.4″ 320 Ã— 240 colour screen;
- Realtek RTL8720DN wifi / Bluetooth transceiver;
- buttons, joystick, accelerometer, RGB LED, light sensor and IR transmitter;
- neat case (72 Ã— 57 Ã— 10.4 mm) with magnetic and screw mounts;
- Grove connectors for wiring free sensor mounting.
It’s got a Raspberry Pi-type header that claims compatibility. The documentation for all the ports is a cut above the usual no-name ESP8266 / STM32 stuff:
The device is in a really tidy package. Its screen, although not a touchscreen, is super sharp.
There are three ways of programming the Wio Terminal:
- SeeedStudio’s own ArduPy
Each of these have pros and cons.
Arduino (get started)
- the fastest code execution: compiled ARM binary code
- the only way to access wifi and Bluetooth (currently)
- slow development cycle
(â€¦ is it just me, or has the Arduino IDE got really ðŸ¦¥ðŸ¦¥ðŸ¦¥ recently?)
ArduPy (get started)
- SeeedStudio’s own ingenious port of MicroPython to the Arduino API, as MicroPython doesn’t (yet) support the SAMD51 chip
- Works almost, but not quite, exactly like you’d expect MicroPython to work
- It’s a great and amazing effort, but it’s essentially a solo project, so documentation and examples are few.
- developed and maintained by Adafruit as a fork of an earlier version of MicroPython
- very actively developed, with a huge library of supported devices.
Here’s the major problem I have with all of these development toolkits for the Wio Terminal: none of them provide high-level access to the device’s sensors and outputs. Compare this with Adafruit, who create things like the Adafruit_CircuitPython_CircuitPlayground module. On that board, you can access the LEDs, speaker, etc without having to go back to the schematic to find out which pin each of them is connected to. Because of this, I’ve only been able to scratch the surface of what the Wio Terminal can do.
- Itâ€™s really nicely made, and the ÂµC inside is very powerful
- Itâ€™s not too expensive: US $29
- All of the software stacks arenâ€™t particularly mature
(but itâ€™s only been available since March 2020)
- Documentation is at the â€œdatasheet + trial/errorâ€ stage
- The 40-pin connector isnâ€™t completely compatible with Raspberry Pi:
- Serial RX/TX arenâ€™t crossed
- ILI9341 display isnâ€™t broken out to header
- â€¦ although you can (and I verified this in a live demo at a user group) use a Wio Terminal as a tiny HMI (Human Machine Interface) USB display for Linux machines
The Wio Terminal is a little too powerful to be thought of as a simple micro-controller platform, but not quite powerful enough to be a standalone general purpose computer. I wish I could find a great application for it, though.
This post is modified from the talk I gave to the Toronto Raspberry Pi Meetup group in December 2020: SeeedStudio Wio Terminal: Applications with the Raspberry Pi. Thanks to Chloe and all at SeeedStudio for sending it to me.
Seeed is the IoT hardware enabler providing services over 10 years that empower makers to realize their projects and products. Seeed offers a wide array of hardware platforms and sensor modules ready to be integrated with existing IoT platforms and one-stopÂ PCB fabricationÂ andÂ PCB assembly service. Seeed Studio provides a wide selection of electronic parts includingÂ ArduinoÂ Â Raspberry PiÂ and many different development board platforms Â Especially theÂ Grove SystemÂ help engineers and makers to avoid jumper wires problems. Seeed Studio has developed more than 280 Grove modules covering a wide range of applications that can fulfill a variety of needs.Âhttps://www.seeedstudio.com/
Disclosure: SeedStudio sent me this unit free of charge.
This does seem to be a great platform…
Looking for a good example of reading the gps in Circuitpython when using Wio Terminal and the Lora Chassis…
I don’t really do CircuitPython, if I can avoid it. All the support for that is on Adafruit’s forum.
I’m more interested in MicroPython, which now has the beginnings of a port to the Wio Terminal and other Atmel/MicroChip SAMD devices.