A couple of months ago, I saw Wio Terminal, and it gets my attention. It has an LCD screen, buzzer, WiFi (2.4 & 5 GHz), BLE, USB HID support, etc. I am sure most of us already had seen one of these, but just in case you are not one of them here a link to the full specification of this gadget - https://www.seeedstudio.com/Wio-Terminal-p-4509.html
Anyway, recently I bought one without any idea of a project in which I can use it, but I wanted to try it. So to be able to test most of the functionality that Wio provides, I decided to make a universal remote control for my home automation system. To utilize a max of the available inputs, I make a simple interface with three tabs. Each tab is activated by one of the three buttons at the top of the terminal. The content of the active tab is controlled by the five directional button (aka joystick).
For the LCD GUI I use LvGl, which in my opinion it is very powerful, but a little bit complicated. Moving on I added an audio signal when some of the buttons are pressed. To achieve simultaneously the execution of the control and the audio feedback, I added FreeRTOS tasks.
The whole process was very simple and fast until the WiFi integration. First, you need to upgrade the firmware of the RTL8720, which is not something impossible, but it will be better if the manufacturer ships these devices with the latest firmware. After that, you must install a whole bunch of libraries to be able to make HTTP requests. Here I encounter the first issue and I am not sure that I do something wrong, the unit is faulty or there is a bug in the library, but I can connect only to 5GHz networks. Neither official example nor my code is able to connect to 2.4GHz.
The next feature was to detect the orientation of the device. This can be done with the built-in LIS3DHTR sensor, and while the Accelerometer works perfectly, I was unable to make LvGl rotate the screen runtime without crashing.
With this, I already invest 4 or 5 hours, and honestly, it was a lot of fun. I have some more ideas that I want to try such as, RTC, USB HOST Keyboard, and Edge Impulse(TinyML).
In final thoughts, I am really impressed with Wio Terminal and how fast it can be used to test some ideas, so hopefully, we will see more projects in the near future.
Some useful links: