MakeBlock Ultimate 2.0 system

The MakeBlock Ultimate 2.0 kit usually sells for $418CAD to 489CAD but I found it for $257US which is currently about $360CAD, so I decided that while we're stuck at home, it was a good time to do a hands-on evaluation of this product.

We assembled the first robot and made a time-lapse video of the activity which you can see below.

First Impressions

Build Qualityrobot 1

The build quality seems to be very good. The main construction pieces are aluminum and nicely finished. The bolts and nuts appear to be stainless steel and are all high quality. The motors appear to be good quality although I don't have a lot of experience with them yet. The plastic parts seem robust and the tank treads are a good quality rubber.

The instructions were clear although not overly detailed. The kit is recommended for ages 14+ and I think that is appropriate. Building the robot with my 17-year-old daughter took us a couple of hours with her doing most of the work. We made a couple of mistakes but that didn't cost us much time. The nuts and bolts are fairly small so it takes a fair bit of manual dexterity to assemble everything.

There is one part that we haven't used yet which doesn't appear to operate smoothly but we will see whether that's an issue when we get to it.


We only spent a few minutes with programming the robot. We added the ultrasonic sensor on the top so that we had more to work with and were able to get the robot to stop when it reached a specific distance from a wall. It only took a few minutes for us to figure that out. If you have experience with Scratch or similar visual/block based programming, you'll find this very familiar.

Basic Remote Control

Once you've got the robot built, it's very easy to control it using a smart phone and the Makeblock app. The default app gives you the ability to go forward, back and turn as well as raising and lowering the arm and opening and closing the gripper. It also appears to allow you to build a custom interface but I haven't investigated that yet.

Compared to Lego Mindstorms or Vex

I think assembly is a little easier with those systems than Makeblock, particularly for younger students but I like that the assembly of Makeblock is more real-life than Lego and Vex. Working with nuts and bolts and metal beams seems like a better training ground for more building complex robots in the future but also for just general understanding of how things are assembled.

First thoughts on Educational Use of this Robot

If students are grade 9 and up, I think they'll be able to assemble and use this robot effectively. It can be programmed using the block language as well as Arduino script so it offers terrific flexibilty and opportunity for growth in learning programming. The block language provides a very low floor for students just beginning with programming and the Arduino language is great for those that are ready to go further. It's also possible to connect a Raspberry Pi to the Arduino controller which opens up the oppportunity for programming the robot in Python.

As far as I'm aware, there isn't a comprehensive curriculum for Makeblock as there is for Lego and Vex but I will be doing a little more digging on this.

Raspberry Pi, Ultrasonic Distance Sensor HY-SRF05 - Full Lesson


This lesson uses a Raspberry Pi 4, an HYSRF05 distance sensor and Python to measure distance. The video has all the details.

The accompanying video does he following:

  • shows how to wire the sensor to the Raspberry Pi,
  • explains how the sensor works (at a high level)
  • explains edges and rising and falling edges on pins
  • explains using a list as a stack to store data
  • explains line by line all the code necessary to get measurements from the sensor and reported through a python program

Lesson Objectives

There are 5 things you’ll learn in this lesson:

  1. Understand the difference between using polling and interrupts to monitor a sensor
  2. Learn how to program a motion sensor using interrupts
  3. Define rising and falling edges
  4. Understand how to use a stack for temporary data storage
  5. Understand the concept of threads using a callback function


By the time I worked through learning about edge detection and ironing the bugs out of my code, the final program seems fairly robust. It still occasionally generates some results that are very inaccurate but under normal conditions, when the distance isn't changing too quickly, the measurements are quite reliable.

Raspberry Pi Ultrasonic Distance Sensor HY-SRF05 - Background


Test the usefulness of an HR SRF05 ultrasonic sensor to measure distance and write the python code for a raspberry pi to operate the sensor.

If you're new to working with Raspberry Pi and this type of sensor, I recommend reading Chris's post at to get some background on the sensor and how it works. There is also some conversation around implementation here: but it gets a bit off topic and into other devices as well so it's not essential reading.

Morse Code - Translation to and From

This project is to create a program that does a couple of things. First, it has to take input from the code key and translate the dots and dashes that are entered by the key and turn them into letters of the alphabet. Second, it has to prompt the user for a sentence and then translate each of the words in the sentence into the dots and dashes that represent the words in the sentence. Then it has to output the dots and dashes through the LED and the buzzer. Finally, it uses a pushbutton to exit from the program.

Back to Debian

It's funny how things come full circle. I was a product manager for a Linux distribution that was based on Debian for about 7 years. I left that role 13 years ago. Now that I'm teaching and have a job (assuming summer programs run) I'll be teaching python on Raspberry Pi computers which happen to run a flavour of Debian.

It's fun to be back at the command line running apt-get.

Raspberry Pi with Temperature and Moisture Sensor

The Challenge

Create a system that will turn a fan on when the temperature in a greenhouse reaches a specific threshold temperature and off when it falls back below that threshold.

This project uses a Raspberry Pi 4, a BHT22 (AM2302) temperature and humidity sensor, and and SSR-40 DA solid state Relay to turn a 120V fan.

CAUTION: This project requires knowledge of working with 120V electricity. Do not attempt this without the proper training and experience.