Meet Unihiker – A Linux Computer & Microcontroller In One

The Unihiker is a new single-board computer from DFRobot which is a bit different to the ones that I usually take a look at on my blog.

DFRobot Unihiker

The Unihiker is designed to bridge the gap between a traditional single-board computer (SBC that runs an operating system like Linux, and a microcontroller like an Arduino. It’s actually got both of these onboard.

Single Board Computer And Microcontroller

It’s got a traditional CPU, memory and storage that runs Debian 10, and it’s coupled with a microcontroller that controls all of the IO, including the onboard sensors and the expansion ports. So it has the flexibility of an SBC, allowing programming and running programs directly from the device, but it also has the timing reliability and robustness of a dedicated microcontroller.

DFRobot Unihiker Back Rockchip

It’s also got an onboard 2.8″ touch display, built-in WiFi and Bluetooth and it’s equipped with a range of onboard sensors.

Here is my video review and testing of the Unihiker, read on for the written review:

Get The Unihiker & Parts For The Test Projects

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my blog, at no additional cost to you.

Taking A Look At The Unihiker’s Hardware

The Unihiker comes in an opaque plastic case along with an included USB C programming cable and a range of white connector cables to connect sensors and modules to. The Unihiker itself if packaged in a black bubble sleeve for additional protection within the case.

DFRobot Unihiker In Box

At the front is the 2.8″ touch display and along the top of the display is the light sensor and microphone.

On the back is the processor, which is an RK3308 64-bit, 4-core processor running at 1.2GHz. So it’s not exactly a powerhouse, but it’s plenty for what the Unihiker is designed to do. It’s got 512MB of DDR3 RAM and 16GB of onboard eMMC storage.

Unihiker Back Rockchip RK3308B

It is coupled with a Gigadevice RISC-based microcontroller running at 108Mhz which 64kB of Flash memory and 32kB of SRAM.

On the back is also a microSD card slot, a range of plugs to connect sensors and actuators to, as well as a buzzer, gyroscope and accelerometer.

Back Of Unihiker - Sensors and Chips

Along the edges, we’ve got two pushbuttons on the right-hand side and then a home button on the left. These are programmable, so they can be used to add functionality to your projects.

Buttons On Sides For Menus

Along the bottom is the edge connector. This is essentially an expansion connector that allows access to additional IO pins and interfaces. This connector follows the same format as the connector that is used on a Micro:bit, so I assume it would be compatible with most of the expansion boards available for that platform.

Microbit Pinout Is The Same As Unihiker

DFRobot also make a silicon case for the Unihiker which fits snugly around it while still allowing access to all of its ports and sensors. The case also comes with a removable protector for the edge connector at the bottom. You can get it in red or green as well if you don’t like black.

First Boot & Look At The Operating System

The Unihiker comes preloaded with a Debian-based operating system, so you just need to plug it into your computer or power source to boot.

Unihiker Booted Up

Once it has booted up, the buttons on the sides along with the touch display allow you to navigate through the menus to access documentation or tutorials, run programs directly from the device, connect the Unihiker to your network or make changes to settings.

Programming the Unihiker is done through a network connection with a few different options:

  • It can be directly attached to a computer through a USB cable and can then be accessed as an RNDIS device with a fixed IP address [10.1.2.3].
  • You can connect it to your WiFi network and then use a computer, tablet or even your mobile phone on the same network to program it.
  • You can create a hotspot on the Unihiker and connect to it directly from a computer, tablet or phone.
  • And if none of those options appeal to you, you can even plug a USB Ethernet adaptor into its USB port and connect it to your network via. Ethernet.

I’m going to go with the first option, so let’s plug the Unihiker into a computer and try to load a program onto it.

As mentioned earlier, if you connect the Unihiker to your computer via USB it can be programmed using its fixed IP address. We can also enter this address [10.1.2.3] into the browser on the computer that it is connected to and we can then access its local web service.

Web Dashboard To Access Tutorials and Documentation

From this page, we can access documentation and tutorials, toggle services on or off, configure its network connection and upload files to the device.

Web Dashboard To Turn On Services

We’re going to try to create a basic program to run on the Unihiker using the DFRobot programming package called Mind+.

Mind+ Block Coding Interface

Creating Our First Project

After starting a new blank project, we can add the Unihiker as an extension and then connect to it. Mind+ will then automatically establish the connection and update all of its required libraries.

We can then either use the drag-and-drop block coding interface or the Python code area to make up a program. Let’s start by creating a program to show the level of light detected by the onboard sensor. We do this by just dragging function blocks in from the toolbar on the left and we can then make any necessary adjustments to parameters.

Light Sensor Program

Then we click on run to upload the code to the Unihiker and execute it.

Light Sensor Program Running

So that was really easy to get working and it took less than a minute to program. If we hold the Unihiker up to different levels of light, the indicated value on the display changes as we’d expect.

Creating An Environment Sensing Project

Now let’s try to build something a bit more complicated. I’m going to use a BME280 environment sensor to display the ambient temperature, pressure and humidity on the display. This sensor uses a Bosch sensor and an I2C interface to provide these three parameters to the Unihiker.

BME280 Environment Sensor Connection

We’ll start by plugging the BME280 sensor into the I2C port on the side of the Unihiker.

Plugging In BME280 Environment Sensor

We can then add the BME280 extension to the project. This tells the Unihiker to import the libraries needed to communicate with the sensor and adds the function blocks to the toolbar on the left to get information from it.

Importing The Library For The BME280 Environment Sensor

Now we can drag and drop text and fields to display these on the Unihiker. I have also included an image of a room as the background for the environment monitor.

As we did previously, we can click on run to upload the code to the device and we can then see it running.

Environment Sensor Program Running

Holding a finger on the sensor warms it up and changes the output values.

Warming Up The Sensor

We can also take it a step further in Python rather than using block coding. Let’s try turning on a fan if the temperature gets too high.

For that, I’m going to add a relay module to one of the digital ports on the side and I’ll then connect the fan to the relay module.

Relay To Turn Fan On

Now we need to write a script to turn the fan on when the temperature exceeds a certain setpoint and then try to run it again. As a starting point, I’ve just copied the generated script from the block code and I’ve then added some additional lines to define the operation of the digital pin for the relay and an if statement to turn the fan on if the temperature exceeds 25 degrees.

Python Code To Turn On Relay

Let’s upload and try it out.

The relay module is initially off as we’re below 25 degrees. If I put my finger onto the BME280 sensor, which will warm it up, then the temperature will then exceed the setpoint and the relay switches on. When it cools down again then the relay turns off.

Now if we hook the fan up to it, the fan comes on and turns off automatically when we do the same thing.

Fan Connected To Relay

Here’s a link to download the Mind+ code for all three of the above sample projects:

Final Thoughts On The Unihiker

So you can see from these examples that it was really easy to get these projects up and running on the Unihiker and there is a lot of flexibility to easily build upon your projects. You don’t need to have an advanced knowledge of programming or electronics to get some simple projects running on it.

I also really like the flexibility in programming options, even being able to program it using Jupyter your phone or tablet. This makes it a great, compact platform for education and tinkering.

Programming Using Jupyter

Once you’ve uploaded a program to the Unihiker, it is also stored for you to re-run directly from the device at a later stage if you’d like to. You can use the menu buttons to access the code which has been transfered to the Unihiker and then run it from the device. Each project is saved in it’s own folder, so you can have a number of scripts, sketches or programs ready to run on the device.

Running Existing Programs Directly From The Unihiker

At the time of writing this review, the Unihiker is $79.90 from DFRobot’s web store. I think this is pretty good value for what is essentially a compact single-board computer, a touch display and a microcontroller.

Let me know what you think of the Unihiker in the comments section below and let me know if you’ve got any project ideas that you’d like to see me try on it.

Michael Klements
Michael Klements
Hi, my name is Michael and I started this blog in 2016 to share my DIY journey with you. I love tinkering with electronics, making, fixing, and building - I'm always looking for new projects and exciting DIY ideas. If you do too, grab a cup of coffee and settle in, I'm happy to have you here.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest posts

Which NVMe Hat Is The Best For A Raspberry Pi 5

If you don’t know already, I’ve been selling these 3D printed cases for Raspberry Pi’s online for a few years now. With the launch...

Track Aircraft In Real-time With Your Raspberry Pi Using The FlightAware Pro

Have you ever seen a flight overhead and wondered where it is going? Or seen a unique-looking aircraft and wondered what type or model...

Pi 5 Desktop Case For NVMe Base or HatDrive! Bottom

Today we're going to be assembling a 3D-printed case for the Raspberry Pi 5 and Pimoroni's NVMe Base or Pineberry's HatDrive! This is an...

Related posts