GoPiGo OS 1 entering Beta!

We are looking for a few beta testers to play with our newest iteration of the GoPiGo operating system. A mix of old and new, GoPiGo OS answers the needs that our users have shared with us.

This is a BETA version!

Before you install this new image, please make sure your SD card is at least 16G in size. It’s a pretty big download too.

Wifi Connectivity

On the main page, you will notice a Wifi icon. You can switch GoPiGo OS from being its own access point, to being connected to your local wifi.

You will need to supply your Wifi information :

Here’s how to interpret the antenna LED colours:

  1. Green: broadcasting an access point, and ready to accept connections

  2. Blue: broadcasting an access point, and at least one person is connected

  3. Yellow: not broadcasting an access point, and the robot is directly connected to the surrounding wifi. You may be able to connect to it via its hostname, or you can connect to it by using its IP address. The robot will let you know which IP address it got from the network if you plug earbuds directly in the Pi audio jack. Make sure to start listening when you switch modes.

Things to know about the wifi feature:
Every boot-up will be in Access Point mode, this allows you to take the robot with you, to school or a friend’s place, and always be able to talk to it. It also means that on every boot-up, you will have to connect to the robot access point and reconnect it to your home wifi.

If you know that the robot will always stay home, you can disable this and take full responsibility. Go to the Jupyter terminal and type in :

sudo systemctl disable start_as_access_point.service

Note that the jupyter user now has sudo access, and its password is still jupyter.

Should you ever need to take the robot elsewhere, you will have to remember to run

sudo systemctl enable start_as_access_point.service

before you leave!

Open system

GoPiGo OS is now open! Yes, we heard you! You are now free to SSH, or connect using a VNC viewer.

Things to know:

  1. The option to use the browser as a vnc viewer is only available with Raspbian for Robots. However if installing a VNC viewer on your computer is an option, then Raspbian for Robots is no longer required.

  2. The :1 that used to be necessary to connect to the VNC server is no longer needed. Just use the hostname or IP address directly.

  3. The password stays the same: robots1234

  4. The tools on the desktop are still the same.

Please note the limitation that you cannot switch from Access Point mode to Wifi mode through VNC. It has to be done via the browser.

Support for Pi4.

Yes, GoPiGo OS supports all versions of the Pi4. It is indeed running Buster and all PIs can be used from the Pi2 and up.

Fresh JupyterLab

JupyterLab is currently running version 2.1.3 and we’re waiting with bated breath for the amazing JupyterLab 3.
In the meantime this version has the much-asked-for search option:

Fresh Python Libraries

The Python libraries have been updated to newer versions. Please note that tensorflow lite is now installed, and a face recognition library is available (see

Drive Screen

If your robot has a camera, the drive screen will let you have a robot-eyes view so you can pester your sleeping dog (animal abuse strongly discouraged!)

Combine this with the Wifi option, and you can connect your robot to the internet and let long-distance friends play with your dog! (this requires changes to your home router that we cannot help with.)

Python3 as the default

Both Python3 (3.7) and Python 2.7 are on the SD card. However, if you simply type ‘python’ you will find yourself in python3, not in python2. This is different than what is found on regular Raspberry Pi OS.

Battery Gauge

The battery gauge is gone. The new Li-ion battery keeps a steady voltage for a long time and the need to keep an eye on the battery level is no longer required. There’s plenty of power to last through a class or a workshop!

Python Lessons

The Python lessons under Learn / Python are currently missing. This is already known and will be remedied before the official release.


IMHO, a bad idea. Not everyone is using, or is going to use, the Li-Ion battery. Even so, the ability to monitor the battery state is an important, (IMHO, essential), function.

Even with the Li-Ion battery, if something flaky starts to happen, the ability to check and verify the battery’s voltage is essential.

Which version of Buster is it based on?
The 2019-12-19 version? (I hope!)

We no longer sell the empty battery holder. We had a major recall on all battery packs. In other words, we no longer support using 8xAA batteries, for safety reasons.

1 Like


What the $&"!+*!! happened? Or did this have something to do with the accidental fire caused by a short circuit to an exposed metal terminal?

So do the TFlite camera_classifier and tflite/tflite_examples need testing?

That looks interesting. I have not used Jupyter labs previously.

I found the Jupyter console with sudo access very useful for shutting down the RPi when I was done.

1 Like

Not in the context of the GoPiGo OS beta. It’s a straight forward install of the official tensorflow repo.

But it’s fun to play with, for sure!


You do know that pressing the off switch on the robot will first do an actual shutdown on the Pi, before attempting to remove power, right?



I have found some interesting discrepancies that I’d like to share. However, before I do that, would you please provide a checksum for either the ZIP file, the image file, or (better) both?

Preferably SHA-1 or longer.

I want to verify that my image is valid before writing bugs since these discrepancies (apparently) didn’t happen with the other users.



However, having a way to shut it down remotely is always a benefit.

1 Like

Especially with Carl. He “lives” down where I cannot see that tiny button, so remote shutdown saves my back and keeps me from poking Carl blindly.

1 Like


After spending some time with this new release, I am becoming very excited about it!

It appears possible to use this, (or create an instance of it), that combines the best parts of both DexterOS and Raspbian for Robots.

On the one hand, it appears to be open and accessible. If the normal R4R features do not already exist, I suspect they can be added very easily. Customization appears to be no less difficult than R4R.

On the other hand, the availability of things like Bloxter and, ultimately, the ability to contribute program elements to it, provides an excellent sand-boxing environment. This way I can try out ideas in a simplified environment that provides a way to experiment in a controlled way and work with features without needing to worry about inadvertent side-effects of other parts of my code.

Even though, (as a beta), it still needs a bit of work, I am excited about this and look forward to using it as a development platform.

My hat’s off to the people at Modular Robotics who helped put this together!


However, the converse is NOT true.

Starting a commanded shutdown on the Pi does NOT shutdown the GoPiGo controller board.

IMHO, this is functionality that should exist and that a commanded shutdown from any source, be it the desktop, command-line, SSH, Aliens from Mars, Russians tampering with the elections, (:wink:), or whatever, should do the exact same thing the “button-push” does - i.e. totally shut down the entire robot, including the controller.

Also, a hardware enhancement request:
It would be damn convenient if there were solder pads or through-holes in parallel with the push-button, (or even better, a couple of pins on 0.10" (2.54mm) centers), that people can use to wire in an external button. This way if the robot is more built-up, (like Carl and other robots I’ve seen), the “commanded shutdown” push-button can be made easily available.

1 Like

Along with the ability to shutdown the 'bot remotely and wire an external switch, it would be handy to have a hardware method for rebooting the robot instead of just shutting it down.


1 Like

(Compulsive Thread Police: Suggest new thread for collecting GoPiGo hardware suggestions)

1 Like

Not a bad idea. :wink:

1 Like

Tensor Flow Lite Jupyter Notebook Example Error

(This comes from TensorFlow with the defect…)

1 Like

Does that actually throw an error?

What it looks like to ME is that they have an argument called “–confidence” (with two preceding dashes), that’s a float, and that “confidence” (note the lack of preceding dashes) is “–confidence” re-cast as an int.

Though I’m puzzled about the dashes. Are they legal?

No - but int(0.6) is 0, so later “if prob > confidence: tell us about it” will be more chatty than desired.

Python’s argument parser is quite versatile. For example:

import argparse
ap == argparse.ArgumentParser()
ap.add_argument("-c", "--confidence", type=float, default=0.6, help="Optional minimum probability to report object, default 0.6")
args = vars(ap.parse_args())
min_confidence = args['confidence']  # float value 

would allow invocations:

-                 (min_confidence will be 0.6)
- -c 0.7       (min_confidence will be 0.7)  
- --confidence 0.7 (min_confidence will be 0.7)
1 Like