ELECFREAKS micro:bit XGO Robot Kit is a robotic dog designed for robotics education. It moves realistically and acts like a real pet dog, and can help teach various technology concepts related to mechanical engineering, electronics, programming, and artificial intelligence (AI). The kit support both the BBC Micro:bit V1 and V2 boards which can be programmed with Microsoft MakeCode, Python, the Arduino IDE, and other languages.
The XGO robot is compact and can be easily used on a desk or table. The robot is made of aluminum metal coated with a beautiful anodized finish. Each leg has 12 high-quality digital servos moving each joint, 3 on each side, totaling 12, helping the robot dog to move smoothly and flexibly. The robot can be controlled with apps, a joystick, and up to 19 ready-made postures, such as holding hands, looking for food, sitting down, squatting, etc…
Content of the XGO robot kit:
- XGO micro:bit robot
- Ring:bit V2
- 1x screwdriver
- 1x charger adapter
- 1x set of accessories
- Note: the Micro:bit board is not included by default
Connecting the Micro:bit board to the XGO robot dog
The XGO robot and the Micro:bit board will communicate through a serial connection (Tx, Rx, GND) with the blue wire plugged into pin 1 (Rx), the yellow wire into pin 2 (Tx), and the black wire into pin G (Ground).
Programming with Microsoft MakeCode
There are two ways to program the robot with MakeCode either Online (in your web browser) or Offline by downloading the offline app for Windows or macOS.
Once the program is running, click on the “Extensions” section to download the XGO package.
Select “XGO” to download the relevant extension.
We can now access the XGO blocks for programming the robot.
We’ll also need to connect the host to the BBC Micro:bit through a USB cable to upload the program to the robot.
XGO commands set
There are various control commands of all XGO robots for postures, adjusting the angle of the servos at various points, and so on. Let’s go through the XGO “commands set”.
- Set Tx and Rx pins
- Default posture
- Restore initial action
- Get the servo angle of the joints.
- Get XGO’s current power
- Get XGO’s version
- Set the servo values on any one of the 4 legs for debugging.
- Reading all servos of the XGO robot.
- Turn on dynamic balance mode.
- Stop the rotation of the XGO robot around the X, Y, or Z axis.
- Set the XGO robot to rotate around the X, Y, or Z axis for a period of time expressed in seconds.
- Set the XGO robot to rotate around X, Y, or Z axis (angle in degrees)
- Stop the periodic translation of XGO in the X, Y, or Z direction.
- Set the XGO robot to move back and forth in the X, Y, or Z direction for a period of time expressed in seconds.
- Set the XGO robot body to pan (-35 mm to 35 mm) in the specified direction
- Set the XGO robot to run in place at a fixed frequency at a specific height for a few seconds.
- Set the XGO robot to run in place at a fixed frequency at a specific height.
- Set the XGO robot to turn left or right at a speed expressed in degrees per second for a period of time expressed in seconds
- Set the XGO robot to turn left or right at a speed expressed in degrees per second
- Set the XGO robot to move forward (0 mm to 25 mm) with a step size of x mm for a period of y seconds.
- Set the XGO robot to move forward (0 mm – 25 mm) with a step size of x mm.
- Set the value of each leg at what angle along the X, Y, and Z axis.
- Set different leg positions
- Set the speed of the servo
- Move forward at a speed in percent
- Set the body height in percent
- Rotate left or rotate at a speed in percent
19 ready-made posture command blocks.
Experimenting with posture programming.
The first step to writing the program is to bring the command block “Set XGO TX (yellow wire) RX (blue wire)” and set the values matching the connections. We will use the A button to initiate the postures loop updating the posture every 5 seconds. You can see a demo of the program in the video embedded at the end of the XGO robot kit review.
The Joystick:bit V2 is a Micro:bit-based gamepad with a 4-way joystick, 4 push buttons, a buzzer for audio feedback, and built-in vibration motors. The Joystick:bit V2 can be used as a remote control with a good appearance and a comfortable feeling of control.
The joystick is 138.1 mm wide and 71.5 mm long.
The joystick has its specific Extensions button and we need to download the Joystickbit MakeCode package to add command blocks to program the joystick.
Joystickbit command set
- Turn on the vibration motor for x milliseconds
- Read the rocker value (X or Y).
- If A/B/C/D button is pressed then (perform action)
- Detect if A/B/C/D button is pressed
- Joystick:bit initialization
Programming the Joystick:bit V2 with MakeCode
For this review, we will write a program to wirelessly transmit commands from a Micro:bit board installed on the Joystick:bit V2 over Bluetooth.
Programming the XGO robot to receive commands from the Joystick
On the receiving side, we had to write a program to receive the commands on another Micro:bit board installed with the XGO robot dog itself. For each number received, the robot will take a specific action. as shown in the screenshot below. You can see the results in the video embedded at the end of the review.
XGO mobile application
The robot can also be controlled with a mobile application available for Android and iOS operating systems. Android users can search for “XGO” in Google Play, and iOS users can search for “XGO” in the Apple App Store.
After installation, open the app and you will see the interface below.
Click the Bluetooth icon on the upper left side of the app interface, and the app will ask you to shake your smartphone to pair it with the XGO robot. Make sure Bluetooth and location are enabled on your smartphone. If there are any connection issues check your smartphone settings.
There are 4 ways to control the XGO, including Performance Mode, Radio-controlled Mode, Motor Coordination Mode, and Servo Control Mode
The Performance Mode includes preset posture commands to control the XGO robot.
The Radio-controlled Mode can control speed and directions with a joystick-like interface.
There’s an “Advance” section that enables oblique walking.
The XYZ section offers a simpler interface to control the robot along the X/Y/Z axis.
The PRY section offers an interface to control all axes independently.
The Motor Coordination Mode enables the high-precision control of a single leg (left front leg, right front leg, right rear leg, left rear leg).
The Servo Control Mode is used to set the angle of each servo through the XGO mobile app.
Micro:bit XGO robot kit video assembly and testing
ELECFREAKS micro:bit XGO Robot Kit is suitable for robotics education at elementary to secondary education levels. It moves realistically and acts like a real pet dog, and it’s also cute, making the learning experience more engaging for kids. It is also very easy to write programs and can help students understand the technology used in robots from mechanical engineering to programming and artificial intelligence.
I would like to thank ELECFREAKS for sending me a micro:bit XGO Robot Kit with a Joystick:bit V2 for review. The micro:bit XGO Robot Kit can be purchased for around $350 on Amazon or the ELECFREAKS store while the Joystick:bit V2 goes for $16.90 on Amazon, and can also be purchased directly on the company’s store.
This post is a translation of the review posted on CNX Software Thailand by Kajornsak Janjam
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Is this related to the Petoi Bittle line of Mechanical animals?
Different company, so unrelated even though the target market is the same.
True yet it so has a similar look, guess Petoi and those army mechanical robots have influenced a lot of designs.
The XGO robot was launched in 2021 as well. I think Boston Dynamic could have been the inspiration. Those Chinese designs are much smaller and designed for education.
Would be amazing if the Chinese one day make a miniature jumping rotating humanoid 🤔👍