Language: EN

wio-terminal-una-alternativa-a-arduino-con-wifi-y-bluetooth

Wio Terminal, an alternative to Arduino with WiFi and Bluetooth

The Wio Terminal is an Open Hardware development board designed by Seeed Studio, a device that incorporates an LCD screen, WiFi, and Bluetooth, and is an alternative to Arduino.

The Wio Terminal is designed to stand out for its ease of use and wireless connectivity, making it suitable for teaching applications and IoT projects.

Inside this small device, we find the powerful Atmel SAMD51P19 ARM Cortex-M4F processor at 120Mhz, which can be overclocked up to 200Mhz. The set is completed with 4MB of Flash memory and 192KB of RAM.

For wireless connectivity, the Wio Terminal relies on the well-known Realtek RTL8720DN, which provides Dual Band 2.4Ghz and 5Ghz WiFi connectivity (802.11 a/b/g/n) and Bluetooth BLE 5.0.

wio-terminal

The body of the Wio Terminal is made up of a white ABS casing, with a simple but pleasant design. The dimensions of 72mm x 57mm x 12mm, so it fits perfectly in the palm of your hand.

The aesthetics of the set are dominated by the apparent 2.4” 320x240 color LCD controlled by an ILI9341 driver. The behavior of the screen is adequate, although we notice a lack of uniformity in the backlight, something common in devices of this price range and size.

We also find three buttons at the top, a slider on the side that is used to control the boot mode, and a 4-way directional joystick + button in the form of a small blue circle.

Overall, the response of the buttons is correct, and their position is pleasant for use. Physically, the set gives the appearance of sturdiness and durability, something that is not always found when testing devices of this size.

One of the strong points of the Wio Terminal is the large number of integrated devices it incorporates. These include an IMU (LIS3DHTR), microphone, speaker, light sensor, 940 nm infrared emitter, and micro SD card reader.

As for the connection, the device has a USB-C port on the bottom. In addition, the Wio Terminal includes USB Host and Client functions, and support for OTG.

On the back, we find a 2x20 pins 2.54” connection port, which we can use to connect the device with the rest of the components of our project.

wio-terminal-pinout

In theory, this 40-pin port is compatible with the GPIO port of Rasperry Pi. In fact, it is designed to be able to work together acting as a “Hat”, at least for version 1 to 3 of Rpi.

However, we say in “theory” because, as often happens with Hats, being electrically compatible does not mean physically compatible. In the sense that we may find that the device “clashes” with some part (a heat sink, another peripheral, and I won’t tell you anything with any type of wrapping we put on the Rpi).

On the other hand, at the bottom we find two multifunctional Grove ports. We are already used to seeing this type of connection in other devices such as the M5Stack, which seem to be becoming a trend in the field of processors for teaching.

However, in the end the Grove system is nothing more than a standard connector designed to make connections easier. This means that we can also use them as connection ports with any device, following the following pinout.

wio-terminal-grove

As “buts”, in its use we miss a battery, even a small one, that the set seems to be crying out for. While there is a HAT that we can purchase for 9€, the manufacturer acknowledges that it has some problems that will be resolved in future versions, without specifying when.

As we said at the beginning, Wio Terminal is Open Source and all the documentation can be found on the project’s website at Seeed Studio, where we can also purchase the device for a price of 29.90€ + shipping costs.

Testing the WIO Terminal

For programming, we have multiple options, the usual ones in a device that moves within the Arduino ecosystem.

These include ‘Wiring’ (C++), MicroPython, and ArdyPy (a development of Seeed Studio to program in Python from the Arduino environment). All of this is well documented in the project’s Getting Started Guide.

For example, to program the Wio Terminal as a “normal Arduino” from the Arduino IDE, we simply have to add the following URL to the board manager.

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Next, we go to the board manager and add the “Seed SAMD Boards” family.

wio-terminal-arduino-ide

After installing the board definition, we can select it and start programming. For example, we are going to make a simple example program to check that everything works correctly.

#include <TFT_eSPI.h>
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI();

unsigned long drawTime = 0;

void setup(void) {
  Serial.begin(115200);
  tft.init();

  tft.begin();
  tft.setRotation(3);

  tft.fillScreen(TFT_BLACK);

  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(2);
  tft.drawString("www.luisllamas.es", 50, 120);
  tft.setTextSize(1);
  tft.drawString("Hello from WIO terminal!", 50, 80);
}

void loop() {  
}

This would be the result of this simple “hello world” program.

wio-terminal-test

The board definition we have added to the Arduino environment includes a wide range of examples that we can consult to test the Wio Terminal.

On the other hand, the documentation on the project’s website is surprisingly good, with plenty of examples of all the functions of the device. We even find a section where developers and users share developed projects, to serve as inspiration for the rest.

Conclusion

The truth is that the Wio Terminal is a real cutie that catches your eye as soon as you hold it in your hand. The feeling is very good, it gives the impression of being robust and well made.

The SAMD51P19 provides great power and speed, while we have WiFi and Bluetooth connectivity, and a large number of integrated peripherals, all in a single compact device.

Regarding usefulness, as usual… it depends on what we consider it for. Of course, I see it as a very suitable machine for teaching, or as a gift for someone who wants to learn.

For a little more than the cost of an “original” Arduino, we have a device that is infinitely more advanced and versatile. A good example that, as you may have heard me comment sometimes, the “original” Arduino (or its price) is unrealistic today.

On the other hand, of course, the Wio Terminal cannot compete in price with a cloned Arduino. Although we have already said that an Arduino Atmega328P is not remotely comparable to this machine in terms of performance.

To find something similar, probably, we will find its natural rival in the ESP32 and in the developments based on it, such as the M5Stack. In fact, we find parallels between both developments, although each one has its own personality.

The price of the Wio Terminal is slightly higher, but in return, it incorporates more devices and the overall feeling is of higher quality. But, again, we really miss an integrated battery (even if it were small).

In any case, it is an interesting and very fun device to play with, and another alternative to enrich the Arduino ecosystem.