Announcing DexterOS 2.5.0!


We’re happy to announce the first DexterOS update since merging with Modular Robotics. We’re excited because we feel it’s a good one! We’ve addressed a few issues, and expanded some functionalities within Bloxter.

Please note that most new features are specific to GoPiGo3.

You can download the update file or the full image to get this new version.

Direct Access to Advanced Bloxter

You asked for it, and it’s now available right from the main screen. Direct access to Advanced Bloxter means you won’t get started in regular Bloxter only to find that you need some advanced blocks.

Switching Between Bloxters

It is now possible to switch from Bloxter to Advanced, or from a lesson to Bloxter, without the pain of saving your work and reloading it. You can now switch your work environment to fit your needs.  Please do remember to save your work often though!

Multiple Distance Sensors!!!

The biggest new feature for this release (it even deserves 3 exclamation points!!!): it is possible to use multiple distance sensors!!!

You can connect up to 3 distance sensors: front-facing, back-facing for obstacle detection, and downward-facing to detect pits (or any other way you want). For this, you need to use the following ports:

  • one of the I2C port (but not both)
  • the AD1 port
  • the AD2 port

The second I2C port can be used for another sensor, but not for a 4th distance sensor.

The control panel will display all three distance sensors readings simultaneously, giving you live readings, like with all other sensors.

Bloxter programs now have a dropdown port selector allowing you to address each sensor individually. The default selected port is “I2C” and programs already written will work just fine when loaded up in DexterOS 2.5.

First Bug Fix

The distance sensor in port I2C wasn’t always entirely reliable.  If you find that you often have to disconnect and reconnect your distance sensor then you might want to change how I2C is handled internally.  From the Bloxter Help section, or Advanced Bloxter Help section (click on the ? icon,  top right), you can now switch the I2C settings from HW (hardware) to SW (software). Select the one that works best for you.

IMU Galore

The IMU implementation is now complete. You can access all the internal sensors that are on it.  Heading/Roll/Pitch were already in, and so was compass. Now you have access to the accelerometer, the gyroscope and magnetometer too. It will be exciting to see what your students come up with!

Some New Blocks

You will find a few new blocks that simplify certain aspects of programming.

Pressed/Not Pressed

The first two are ready-made boolean blocks for the motion sensor and the button. Before, those blocks were only reporting whether they were pressed, and if you wanted to know if they were *not* pressed, then you had to build a logic block. Beginner coders found that challenging. They can use the new dropdown to change what they’re looking for.




And the same for the motion sensor:



Wait Until

Another new  block simplifies how to wait until a sensor detects something. Having an empty “repeat until…” block was a hard concept to grasp. The new “wait until/while” block is more intuitive.

You will find it under the “Loops” section even if it doesn’t look like a loop.  The reason for this is that internally, it does loop! To convince yourself or your students, you can take a look at the generated python code.



Release Servo Power

And the last block allows you to remove power from a servo so that it doesn’t keep its tension once it’s reached its position. There are cases where you might want to keep power, and cases where you don’t need to. Releasing it when appropriate will prolong their service life.

And Last One for Bloxter…

Some of you might appreciate the disappearance of a few irritations.

It is now possible to abandon a project. If your code is not saved and you want to open an existing project, you will be prompted with a choice instead of being forced to save something that you don’t want to keep.

You will see the following window. Pressing the OK button means your current, unsaved work will be dropped, and the file you want will be loaded in its place. Pressing Cancel cancels the Open File operation so you can access the Save File menu item instead.


The Low Power warning will only come up once. Before, it was coming up on each page. If you were moving around from one lesson to the next, it would keep on popping up. Now it will only come up once.  Attention! You still need to change your batteries! Some users are coding strictly with USB power and only putting the batteries when they need to have the GoPiGo move. These users will appreciate this feature.

High Functions, literally functions that are defined higher up on the screen than the main yellow block, were generating invalid Python. You only needed to move them lower, and they worked. Puzzling bug, indeed, which is now fixed. It no longer matters where that function definition ends up on your Bloxter canvas.


On the Python Side

Only small changes are made to the main easygopigo3 library. There are  no new functionalities but two new methods to initialize sensors were missing and they’re now being brought in. This means all sensors can be instantiated with the same approach now.

init_light_color_sensor() and init_imu_sensor() are wrappers which allow all supported sensors to be instantiated the same way.

The Light or Color sensor has seen some improvements to its library too.

On the Drive Screen

You can turn the blinkers and eyes on and off from the Drive screen, although you cannot, at this moment, change the eye color.

Looking Forward

This is the first DexterOS update since May 3, 2019.  We’ve been busy since then with the Modular Robotics merger and getting everyone trained up on the GoPiGo hardware and software ecosystem.  There’s some very exciting advanced GoPiGo functionality in the works! With this release, Modular Robotics is excited to demonstrate our commitment to the GoPiGo platform and to helping you go further in your explorations with robotics.