Raspbian For Robots : Buster and Raspberry Pi 4

Raspberry Pi 4 Model B

We’re releasing an update to Raspbian for Robots and this one is based on Buster !

This update makes Raspbian for Robots Raspberry Pi 4-compatible out of the box/download. We’ve taken the opportunity to make some changes to how we pre-install all the tools that make Raspbian for Robots an ideal OS for running the Dexter Industries robots.

  1. Supported robots: GoPiGo3, BrickPi3, GrovePi and PivotPi
  2. Easier to connect to your home / school network
  3. Easier to assign a fixed IP address (IPv4)
  4. Moving to the native RealVNC server
  5. MariaDB is pre-installed should you want a database for your project (default installation)

Please consider this first Raspbian for Robots as being experimental. We’ve tested it as much as possible however there are so many possible combinations of sensors and boards that it’s hard to say we covered everything. This has passed our internal tests and we’re confident but these are big all-encompassing changes!

Supported Robots

The following robots are fully supported now, with a Pi2, Pi3 or a Pi4:

  • GoPiGo3
  • BrickPi3
  • PivotPi
  • GrovePi+

With this version of Raspbian for Robots, we’ve taken the decision to drop out-of-the-box support for the GoPiGo1 and the GoPiGo2.
What does this mean in practice?

  • The libraries for the GoPiGo and GoPiGo2 are no longer pre-installed in Raspbian for Robots. None of those robots were sold with a Pi4 as the Pi4 didn’t exist at the time. We believe the number of users who will want to upgrade their GoPiGo2 to Buster is pretty low.
  • Not having the libraries pre-loaded on the SD card means that newcomers to the GoPiGo3 will be warned early on if they try to run example code meant for the previous versions of the robot. We’re hoping it will be easier to help them to relevant tutorials. It’s a nice problem to have though, we’ll admit. Many tutorials out there are meant for all versions of our little GoPiGo. We love our community of users!
  • The GoPiGo and GoPiGo2 libraries can be added manually and they still work! We’re not completely leaving our early adopters out. For those who want Buster on their GoPiGo2, it is still supported. Just run
    curl -kL dexterindustries.com/update_gopigo | bash
  • The original BrickPi and the BrickPi+ were removed a couple of years ago, when we moved to Stretch. Again, they can be manually installed if needed:
    curl -kL dexterindustries.com/update_brickpi_plus | bash

Connection to the Robot

We’ve taken the experience we learned from a couple of clients and are now offering this solution to everyone.

We moved the files that are necessary for networking into a folder that is reachable even before the first boot. Here is how you can set it up once you’ve done burning the Buster image via Etcher. While the SD card is still in your computer you should be able to reach the /boot/network folder. It contains the following files and folder as soft links. Thanks to Google Cloud Derby for this idea! 😍

  • wpa_supplicant.conf file – which holds the network information.
  • dhcpcd.conf
  • interfaces
  • interfaces.d folder

These files are what you need to set up your network under most circumstances. You will need to use a code editor, even a simple one like notepad++, or a more advanced one like Atom, or Code.



Connection to the Robot - Wifi

Connection to the wifi network

You will need to edit wpa_supplicant.conf to enter your wifi network name (ssid) and your network password (psk).  There’s already a method in Raspbian to load up this information but it’s a transient one; on boot up, the file will be transferred and will no longer reside in the /boot folder. Our approach gives you permanent access to the file.

Uncomment the appropriate lines (5 to 9 in this screenshot) by removing the # sign at the beginning of each line, then fill in your network information.

Connection to the Robot - Fixed IP

Fixed IP

This feature is for the more technical users. As such we will not get into detailed explanations about the settings.

You prefer to deal with a fixed ip address? Then you can edit the dhcpcd.conf file and modify a few lines near the bottom of the file. Uncomment the appropriate lines, set the addresses that make sense in your network, and save the file.

Note: line coloring may differ.

Connection to the Robot - what's my IP

What’s my IP?

We’re now offering a method to verify what IP has been assigned to the robot! No more guessing!
Once the robot is ready for bootup (ie the SD card has been inserted in the Raspberry Pi), take a pair of earbuds and connect them to the audio jack on the Raspberry Pi. Once an IP address has been assigned, you will hear the numbers spoken to you like magic.

Thanks to Tuft University for this idea!🤗

Should you need to disable this feature, you will find the code in /etc/rc.local and not in systemd. Somehow the text-to-speech didn’t work when called from systemd, probably due to the environment not being fully set.


Also note that a file using the IP address as its name is now created on the desktop. This allows users in certain situation to connect a monitor and retrieve the information without the need of a keyboard or mouse.

/Boot folder

Another file is created in the /boot folder.  Again in certain situations, you could power down the robot, remove the SD card, read it from a laptop, get the IP from the /boot folder. While it is not guaranteed that the next boot will get the same IP, it’s a decent bet that it will, especially if you don’t wait too long before booting up again.

All those changes aim to make getting the IP information more versatile so that there’s always a solution.


First BOOT experience

Automated resizing

The first time you boot up with this new image, the operating system will expand to take full advantage of the SD card that you have. This will require a reboot.

If you have the earbuds connected to the robot, hoping for an IP address, you will also be notified to reboot the robot. This is normal and should only happen once (also the computer voice makes it sound like ‘remove’ instead of ‘reboot’. It really means ‘reboot’)

what took so long?

What took so long?

By the end of June 2019, the Raspberry Pi Foundation released a new Pi and a new version of Raspbian called Buster. And of course, people started asking us when we would be supporting it!

At first, there were issues with the Pi 4, mostly related to overheating. This had the side effect of going through batteries pretty quickly, and we were not too keen on handing kids a robot where they could literally feel the heat. Some engineers, aka @ryantech, even attempted to cook chicken on their Pi4!

As of the end of September, this was addressed with an update to Buster. While the Pi4 is still the hungriest of all the Pis out there, the latest firmware brings its heat down quite a bit and it does provide a lot more computing power if you’re interested in any type of machine learning, like computer vision.

You can read more about the heating issue and the various firmwares as described and investigated by Gareth Halfacree in this article.

We are aware that even more fixes are coming soon and we will keep Buster for Robots up to date.

Thank you for your patience.


Leave a reply