I had to use the XGO Mini command blocks to control my XGO-Lite as they weren’t working at the time of my testing. In some cases I had to forgo the blocks and just write the code myself or add a few fixes to the generated code. However, these are expected childhood diseases.
While not all features were fully implemented as blocks during my review, the XGO team has been extremely quick to respond to bug reports and have fixed every bug I reported. At the time of writing, Blockly support for the core features of the XGO-Mini2 is almost complete and the team reports that a fully functional version of the IDE is ready for release.
Although not as kid friendly as ScratchBlockly, another block-based visual programming language popular in education, benefits from being a front-end editor for Python that spits out real, editable programs. While you’ll benefit from some familiarity with basic programming concepts, it’s very accessible to interested beginners, especially when combined with the examples in the XGO docs.
Hack your Robo Pooch
XGO is designed 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 method of porting it to your local network for remote control or programming was to change your Wi-Fi network’s SSID and password to match the pre-programmed settings.
It was easier to take out the microSD card and edit /etc/wpa_supplicant/wpa_supplicant.conf to include my own WiFi network details. Still, this might come in handy if you don’t want to generate a QR code with your WiFi. Fi details on this.
And you don’t have to take out the SD card every time you want to look at XGO’s file system. By plugging in the micro-HDMI connector on the XGO-CM4 and plugging in a USB-C hub (both included with final retail models), you’ll have a full Raspberry Pi OS GUI and can connect a keyboard and a mouse to navigate. You can also enable SSH to allow yourself remote network access to the robot via your favorite terminal emulator or SFTP compatible file browser.
All of this makes life easier when you want to make sweeping changes to XGO’s features, behavior, and expression. And if you make a mistake, you can simply reflash the XGO OS SD card, so there’s little chance of a mistake.
And that’s the coolest thing about XGO: since it’s based on open-source software and can easily be reset to the default settings, you can pretty much make any changes you want. Don’t like the dog motif? Turn the audio and facial expression image files into a cat or a screen full matrix-inspired glitch text. Add more libraries, write your own functions in Python, and change XGO’s default behavior.
Everything is open and accessible, albeit somewhat patchily documented in this pre-release phase. Python is a very readable language that makes it easy to understand what the different functions do. It is also commonly taught in schools and in introductory programming courses, making it a useful toy for those looking to further develop their programming skills. If you want to buy XGO for a group or family, each person could have their own XGO microSD card.
Who is a good programmable pup?
As a virtual pet, XGO isn’t very rewarding – it’s a series of demos with less potential for a lasting relationship than a Furby. It can perceive its environment and react to it. And you can record a series of moves to reproduce, but there’s no database to store 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 really what it’s for: experimenting and developing with accessible and interesting bits of hardware that also happen to look and feel cool. And the XGO is open enough to allow this without much worry about continued support for anything other than the Blockly browser app.
Sure, this desktop dog isn’t an Aibo, but if you enjoy hacking together software for interesting hardware platforms, you’ll have loads of fun with your new programmable cyber puppy dog companion.