Nice board, but limited by its own GPIO connections. The form factor is interesting, and we can imagine it being integrated into many projects.
Great form factor
Good software support
GPIO access is weak
Mind+ IDE has an issue with file paths
Unihiker is a $79 single-board computer (SBC) from DFRobot. If the name sounds familiar, it's not surprising. DFRobot is the manufacturer of LattePanda 3 Delta and LattePanda Sigma. Based on this lineage, we expected something great, but the $79 price point is challenging, and some compromises had to be made.
Unihiker features a 2.8-inch resistive touchscreen that takes center stage on the board, but under the hood, we have a capable quad-core Arm A35 processor and 512MB of RAM. It's not a desktop computer, but it's also not "just" a microcontroller (in fact, the MCU is based on RISC-V).
What can it do? Who is it intended for? And is it worth buying? To answer these questions and learn more about this board, we need to conduct testing on it.
Unihiker Look and Feel
Programming Unihiker is primarily done using Python, but there are several different ways to do it. At a beginner level, we have Mind+ - a colorful and user-friendly development environment that offers both block-based and text-based Python programming. Mind+ can also connect to Unihiker remotely via USB. This allows us to run our code directly on the board, although, of course, you could do that as well.
We encountered several issues when writing Python projects directly in the development environment. Block-based projects worked flawlessly, but writing Python code directly in the environment resulted in syntax errors and anomalous file paths, leading to Python crashes. We were stuck on this for a while, so we resorted to using SSH to connect and run the same code without errors. It appears that the environment was adding invalid characters to the file path. With SSH, we wrote all the test code for the review, and everything worked smoothly without any issues.
Unihiker has a range of "services" that we can activate, and we explored Jupyter and SIOT. Jupyter notebooks combine code and documentation on a single page. We can explain a software concept or problem and then use the built-in Python code section to illustrate it.
Using a Jupyter notebook, we wrote a quick script to display text on the screen and blink an LED connected to GPIO23. The code worked, and the notebook was accessible to all users on our home network. We also tested SIOT - a local MQTT server that is useful for classroom environments and for keeping your data offline. We were able to send messages to Unihiker and receive them using a combination of topics.
Using Microsoft VSCode with Unihiker is easy. We simply connect to the board using the SSH extension in VSCode, and then we can directly write code on the built-in eMMC storage. Running the code from the terminal allows us to see the output on the screen. It's very straightforward, and the Unihiker documentation is easy to understand.
The built-in sensors (sound, light, acceleration, and orientation) are easily utilized thanks to the pinpong and Unihiker Python modules (both in block mode and text mode). With these modules, we were able to easily request values from the sensors, and with a few additional lines of Python code, we updated the data on the display.
Unfortunately, access to GPIO is a weak point of Unihiker. We are forced to either buy one set of specialized components or another. It would be great to have a proper GPIO expansion board, but unfortunately, it never materialized. Perhaps in the second version? Is it worth creating one?
Who is Unihiker for?
That's an excellent question. A small single-board computer with a built-in screen has numerous applications. It can serve as an excellent user interface for a machine learning project, control networked devices, and gather data from sensors. However, if we view it as a board focused on GPIO, we may be somewhat disappointed.
Certainly, we have several ways to write code (Mind+, SSH, Jupyter, SIOT, etc.), and we are satisfied with them. However, the only way to access GPIO is by using Gravity ports or a micro:bit expansion board. While we can purchase components in the Gravity format, which can be a viable option for educational purposes, hobbyists may find it challenging to access GPIO using the accessories we already have without spending a little more money.
Unihiker offers an exciting experience once you become familiar with its form factor and programming methods. Particularly interesting is the face tracking demonstration. What holds this board back is its GPIO capabilities. Given the price of $79, we understand that it cannot be a "one-size-fits-all" board, considering it is a Linux computer with a built-in display.
If you're starting from scratch, the Unihiker board offers an interesting introduction to the Internet of Things (IoT). It is easy to use, and its compact form factor is suitable for portable projects. The built-in sensors (sound, light, acceleration) are readily accessible using the Python module, which means quick results for those eager to learn. We have enjoyed working with Unihiker, but the GPIO limitations leave us wanting more from the next model.
Should you buy it? If you need GPIO, then Raspberry Pi Pico W or Raspberry Pi Zero 2 W would be cheaper options and provide much more capabilities. That being said, the touchscreen works well, the hardware is reliable, and the software support allows us to quickly create projects.