June 2021: The latest version of pi-topOS is here!
It’s been a busy few months for us since we did our last OS release back in December 2020.
In this post, I will be discussing the various changes that have been made to pi-topOS since our last OS release (C781 2020-12-22).
All of these changes are available if you update an existing OS, but it is recommended to download the latest OS and install it fresh onto an SD card if you do not have your pi-top already configured for your needs.
Python SDK
Our Python SDK (software development kit) has received a number of improvements since December.
API Change: pi-top [4] Miniscreen
In the previous public stable version of pi-topOS (C781 2020-12-22), the pi-top [4]’s miniscreen display was accessed via an oled
class. This has been replaced with a miniscreen
class to help clarify our terminology and improve usability.
All content on Further now makes use of this class, so older versions of pi-topOS will require updating.
In addition to this, please note that it is now recommended that you access this (and all other pi-top device functionality) from the Pitop
object:
from pitop import Pitop
pitop = Pitop()
miniscreen = pitop.miniscreen
Machine Learning / Robotics Kit
We have expanded our SDK to include more machine learning-based features such as face detection, emotion tracking and colored ball detection. Robotics Kit also benefits from more advanced navigation/autonomous driving and a new pincer controller.
We are continuing to invest our efforts into expanding the functionality, stability and performance of our SDK to make the learning through play experience with pi-top hardware much more exciting!
Web Controller
As mentioned in this post, we have also introduced “web controllers” as part of ‘web labs’ section of the Python SDK - a great way to quickly create interfaces to display information and create virtual controllers, such as a web-based rover controller! Be sure to check out that post if you haven’t seen it yet - they’re really cool!
Diagnostics
You can now run pi-top support health_check
, which provides information about the overall system that can help in diagnosing some issues.
Miscellaneous
Other notable changes that we’ve made to the SDK are:
- Most objects can be imported directly with
from pitop import
- Added smooth acceleration mode to servo motor class
- Added
pi-top oled spi
command for changing SPI bus - Added pixel inversion support to miniscreen (draw black onto white)
- Added manual page for CLI (“manpage”)
- Run
man pi-top
to read the CLI’s manual directly in the terminal
- Run
- Updated luma.core dependency fixes some intermittent GPIO issues
- Dropped
pt-project-files
andRPi.GPIO
dependencies - Improved our documentation
pi-top hardware support
pi-top [4] Expansion Plate
We have just released an updated version of the firmware for the pi-top [4] expansion plate that offers:
- Improved synchronisation between DC motors on motion start
- Improved handling of low servo motor speeds
- Added a filter for gyroscopic data to improve yaw drift
- Added a status register
To update your expansion plate firmware, simply make sure that your OS is update and you have your plate connected properly. You should see a notification on the desktop telling you to update - follow the on-screen instructions.
pi-top [4] miniscreen
We have also added a new feature - the pi-top [4] miniscreen now has screensaver functionality to protect against OLED burn-in. Check out this forum post to learn more about that.
Miscellaneous
A few other improvements have also been made:
- Improved pi-top [4] miniscreen performance
- Increased legacy power-off timeout to 15s to improve shutdown stability for older systems
- Added custom startup GIF support for pi-top [4] miniscreen
- Improved battery reporting 100% reliability
- Improved peripheral auto-initialisation
- Fixed pi-top [4] miniscreen boot animation for non pi-topOS systems
- Reduced logging when pi-top [4] minscreen image is updated
- Reduced logging by default for battery messages
Nerdier Stuff
Now onto the more developer-related stuff…
OS Documentation
We have begun an ongoing effort to document pi-topOS - check it out here!
This is in the early stages, but will continue to grow as we work on different areas of the codebase and answer user questions.
Raspberry Pi Firmware Update Support
We have (finally!) added support for patching Raspberry Pi EEPROM to work with pi-top [4]s. Check out this FAQ post for more information about what is required to make this work. pi-topOS will now also correctly install the updated EEPROM firmware files, allowing you to benefit from the increased performance and functionality of running the latest firmware!
Further Integration
Our integration with pi-top’s learning platform, Further, offers a convenient way to run code on your pi-top device while following tutorial content. We have improved performance of existing functionality, and added support for using key presses on your device as inputs as well as opening GUI windows.
Package Management
We have made good progress in updating how we manage our software. We are aiming to move towards fewer source packages (and therefore fewer GitHub repositories).
pt-os-core
contains a number of small software packages that either help to organise our dependencies or provide very specific, limited behaviour. More complicated applications will have their own source package and GitHub repository.
pt-notifications
no longer provides notify-send.sh
; This is now provided by its own package: notify-send-ng
.
I2C probing is no longer handled directly in pt-firmware-updater
via the pt-i2cdetect
command. The command is now called i2cping
, and is provided by a new package: i2c-tools-extra
, which is derived from the i2c-tools
package.
And finally… all pi-top software is now built on GitHub via GitHub Actions, which brings us one step closer to being able to have full build and deploy transparency for all of pi-topOS’s software!
Summary
It’s been a busy few months for us on the pi-topOS team! We hope you like the improvements.
We are currently developing a new server application called “web portal”, which is going to allow for some pretty exciting new ways to use your pi-top [4] (or Raspberry Pi) remotely. Keep an eye out for more information about this!
Web Portal will also serve as the backend for some much-needed updates to our desktop applications, giving a unified feel across the OS for the user and simplifying development by standardising their implementations. Expect to see a better OS updater soon!
Special thanks go out to all of the active users here on the forum who are collaborating in this effort. If you aren’t already on this forum, get involved - we want to hear from you!