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:
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.