I had to use the XGO-Mini command blocks to control my XGO-Lite, as the latter weren’t yet working when I tested it. In some cases I had to dispense with the blocks and just write the code myself, or add a few corrections to the generated code. However, these are expected teething problems.
While not all functions were fully implemented as blocks during my review, the XGO team have been extremely responsive to bug reports, fixing every bug I reported. At time of writing, Blockly support for core functions for the XGO-Mini2 is near-complete, and the team reports that a fully functional version of the IDE is ready for release.
While not as kid-friendly as Scratch, another block-based visual programming language that’s popular in the education sector, Blockly benefits from being a frontend editor for Python, spitting out real, editable programs. While you’ll benefit from some familiarity with basic programming concepts, it’s very approachable for interested beginners, particularly in combination with the examples provided in the XGO docs.
Hacking Your Robo Pooch
XGO is built to appeal to software hackers, and this is sometimes the easiest way to add basic functionality to the robot. When I received the prototype, the recommended way of getting it onto your local network for remote control or programming was to change the SSID and password of your Wi-Fi network to match its preprogrammed settings.
It was easier to pop out the microSD card and edit /etc/wpa_supplicant/wpa_supplicant.conf to include my own Wi-Fi network details, and this could still be handy if you don’t want to generate a QR code with your Wi-Fi details on it.
And you don’t have to pop out the SD card every time you want to look at XGO’s file system. If you connect the Micro HDMI port on the XGO-CM4 and plug in a USB-C hub (both are provided with the final retail models), you’ll get a full Raspberry Pi OS GUI, and you’ll be able to connect a keyboard and mouse to navigate it. You can also enable SSH to give yourself remote network access to the robot from your favorite terminal emulator or SFTP-compliant file browser.
All of this makes life easier if you want to start making wholesale changes to XGO’s features, behavior, and expression. And if you make any mistakes, you can just reflash the XGO’s operating system SD card, so failure is low-stakes.
And that’s the coolest thing about XGO: As it’s built on open source software, and it is easy to revert to its defaults, you can make more or less any changes you please. Don’t like the dog motif? Change the audio and facial expression image files into a cat or a screen full of Matrix-inspired glitch text. Add more libraries, write your own functions in Python, and change XGO’s default behaviors.
Everything’s open and accessible, albeit a little patchily documented at this prerelease stage. Python’s a very readable language, which makes it easy to pick up what the different different functions do. It’s also widely taught in schools and introductory coding classes, making this a useful toy for those keen to develop their programming abilities. If you wanted to buy XGO for a group or family, every person could have their own XGO microSD card.
Who’s a Good Programmable Pup!
As a virtual pet, XGO isn’t very rewarding—it’s a string of demos with less potential for an ongoing relationship than a Furby. It can be made aware of, and is able to react to, its surroundings. And you can have it record a series of motions to reproduce, but there’s no database to remember your past interactions with XGO. If you want it to know who you are, you’ll have to write your own software for that.
But that’s what it’s actually designed for: experimenting and developing with accessible and interesting pieces of hardware that also happen to look and feel cool. And the XGO is open enough to make it possible without having to worry too much about ongoing support for anything apart from the Blockly browser app.
Sure, this desktop dog is no Aibo, but if you’re into hacking together software for interesting hardware platforms, you’ll have great fun with your new programmable cyber-pooch companion.