Pi OS Bookworm is officially released!

And PI Imager 1.7.5 automatically shows the new Bookworm Pi OS so if you are already on 1.7.5 don’t need to upgrade the Pi Imager to write any of the Bookworm Pi OS. There are both 32-bit and 64-bit versions of each Bookworm Pi OS.

So many choices I don’t know which to try first!

3 Likes

Notice that Buster is no longer available via the Raspberry Pi Imager! Just discovered that myself today.

3 Likes

By clicking Archive and going back to the release date before 2023-10-10 there are buster images:

example:

https://downloads.raspberrypi.com/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2023-05-03/

3 Likes

No success for headless access for headless setup of two flavors so far. firstrun.sh is not succeeding.

Had to connect monitor and keyboard to setup user and WiFi to have remote access.

Starting with the “Recommended” 32-bit PiOS Desktop (Bookworm) to see what it takes to get my GoPiGo3 on it - should be pretty straight forward (without software I2C).

2 Likes

Thanks for posting the link! :grinning:

2 Likes

It Works … But I Cheated

DISCLAIMER: This is my personal test - no connection to ModRobotics

GoPiGo3 “Dave” (Pi4) works on 32-bit PiOS Desktop (Bookworm)

  • Power Switch works
  • Hardware I2C only (This is a major cheat!)
  • Motors, Encoders work
  • DI Distance Sensor works, only one allowed (I only need one.)
  • Servos work
  • Ultrasonic Ranger works
  • DI IMU not supported (needs software I2C)
  • Did not test GoPiGo3 desktop tools (did not configure remote desktop)

All my changes:

3 Likes

Really weird - imager setting of user, wifi, hostname but not ssh worked on 64-bit PiOS Desktop, and could not get ssh working.

imager didn’t set anything for 32-bit PiOS Desktop (for me), but I was able to get it all setup up including ssh from the desktop.

Going to try re-imaging the 64-bit PiOS Desktop again - supposedly it is just me seeing this weirdness.

2 Likes

PiOS Bookworm 64-bit Lite:

  • imager settings (firstrun.sh) were not applied
  • configured pi user on first boot
  • could not update due to wireless defaulted to ipv6
  • nothing worked to disable ipv6
  • don’t know how to configure wifi from commandline
    Gave Up

This is getting old, trying every PiOS Bookworm in hopes one of them will be usable. Raspberrypi forums say what I am seeing is not happening for others. Maybe I need to try a different sdCard.

3 Likes

Sounds reminiscent of my trying various Ubuntu and Ubuntu-MATE images that should work on a Raspi 3 B+ but don’t on any of mine. Which Raspi are you trying this with again?

3 Likes

Finally success with 64-bit PiOS Bookworm Desktop - with a different sdCard/formatted MS-DOS(FAT) and erased before imaging.

Need to test on my GoPiGo3 later - (Setup script succeeded. )

2 Likes

GoPiGo3 passed tests - I’m done.

It Works … But I Cheated

DISCLAIMER: This is my personal test - no connection to ModRobotics

GoPiGo3 “Dave” (Pi4) works on 64-bit PiOS Desktop (Bookworm)

  • Power Switch works
  • Hardware I2C only (This is a major cheat!)
  • Motors, Encoders work
  • DI Distance Sensor works, only one allowed (I only need one.)
  • Servos work
  • Ultrasonic Ranger works
  • DI IMU not supported (needs software I2C)
  • Did not test GoPiGo3 desktop tools (did not configure remote desktop)
2 Likes

Some observations of this relative to GoPiGo3 on Bookworm with a desktop on a 2GB Pi4:

  • base OS processor load (with pigpio daemon and gpg_power service alive) is very low
  • base OS physical memory usage (with pigpio/gpg_power) is about 1GB
  • base OS effective memory usage (with…) is about 340M leaving 1.5GB “available”
  • pigpiod at idle uses roughly 7% of one core or 2% of the Pi4 processor
  • GoPiGo3 LEDs Python example uses 2% of one core or 0.5% of the Pi4 processor
  • GoPiGo3 Servo Python example uses 10% of one core or 2.5% of the Pi4 processor
  • Grove Ultrasonic Ranger Python example uses 1% of one core or 0.2% of Pi4 processor
  • GoPiGo3 Distance Sensor Python example uses 28% of one core or 7% of the Pi4 !!!
    (Single reading is not the best mode, but is the easiest to use with the sensor.)
  • Drive 1 meter test briefly used 30% of one core/8% of Pi4 to command GoPiGo3, then practically nothing waiting for the GoPiGo3 to announce drive complete.
  • Python3 wheelBaseRotateTest briefly uses 1% of one core of Pi4 to command a 360 deg rotation then nothing waiting for the GoPiGo3 to announce rotation complete
  • Reading the MPU9250 IMU at 10Hz in Python3 takes 1% of one core of Pi4
pi@PIOSB64D:~ $ uptime
 10:23:02 up 12:16,  1 user,  load average: 0.02, 0.05, 0.01
pi@PIOSB64D:~ $ free
               total        used        free      shared  buff/cache   available
Mem:         1892432      351548      996716       14872      628528     1540884
Swap:         102396           0      102396

2 Likes

Some further testing of GoPiGo3 on Bookworm in C++:

Working:

  • read_info.cpp
  • leds.cpp
  • motors.cpp
  • drive.cpp
  • ultrasonic.cpp (mod of sensors.cpp for my Grove Ultrasonic Ranger in AD2) UPDATE: was my error

Not working:

  • i2c.cpp - Error 4 - I2C bus error
2 Likes

Working:

  • servos.cpp
  • ultrasonic.cpp !! programmer error - works just fine

Created a servos test program to match the Python Servo.py. The Python3 Servo.py takes 10% of one core, while the C++ servos.cpp takes 7% of one core making it 30% faster in this case.

3 Likes

Oh yes - ROS 2 Humble on PiOS Bookworm

Oh wow - the world of ROS is containerized. I’ve seen references to Docker and running ROS/ROS 2 in Docker but I never needed to grok what a beautiful thing this is!

  1. Installed Docker on PiOS Bookworm
  2. (Tried the pre-built ROS 2 Humble Desktop dockerfile - they didn’t build it for Pi4)
    So built a ROS 2 Humble Desktop / Jammy Jellyfish 22.04 dockerfile
  3. Run the dockerfile
pi@PIOSB64D:~/bookworm_test/ROS2_Humble $ sudo docker run -it r2hd

root@f28044c95af4:/# ros2 run demo_nodes_cpp listener &
ros2 run demo_nodes_cpp talker
[1] 47
[INFO] [1697771577.848362187] [talker]: Publishing: 'Hello World: 1'
[INFO] [1697771577.849841132] [listener]: I heard: [Hello World: 1]
[INFO] [1697771578.848235875] [talker]: Publishing: 'Hello World: 2'
[INFO] [1697771578.849053124] [listener]: I heard: [Hello World: 2]
*ctrl-c
root@e11358278468:/# *ctrl-d
exit
pi@PIOSB64D:~/bookworm_test/ROS2_Humble $

The scripts are in my bookworm_test/ROS2_Humble github repo

-rw-r--r--  1 pi pi  709 Oct 19 21:25 1_setup_docker_apt_repo.sh
-rw-r--r--  1 pi pi  146 Oct 19 21:26 2_install_docker_pkgs.sh
-rw-r--r--  1 pi pi   65 Oct 19 21:35 3_clone_ros_docker_images.sh
-rw-r--r--  1 pi pi  267 Oct 19 22:58 4_build_humble_desktop_container.sh
-rw-r--r--  1 pi pi  131 Oct 19 23:11 5_run_ROS2_Humble_Docker_image.sh

Because ROS / ROS 2 allow distributed nodes - I can run the GoPiGo3 node on the bot, and all the processing of the sensor data on the Pi5 (when the hardware arrives). The first dual processor GoPiGo3 may be possible with ROS/ROS2 - (the battery may not be up to powering them).

Who needs Ubuntu anymore? Not me!

Well maybe - we haven’t run the performance tests …

3 Likes

@cleoqc

One of the things I would like to do and/or see is a Bookworm based GPGOS.

Eventually I want to build a GoPiGo3 enabled image and try to run some of my stuff on it.

Will Bookworm run on earlier Pi’s?  (Like the 3 or 4?)

2 Likes

That’s a great idea (if the battery can handle it).
Were you going to network them with WiFi? I wonder if the two boards will interfere in some way, reducing bandwidth?

/K

2 Likes

Exactly my thoughts

  • first I get it working with Pi5 on my desk
  • Then someone else figures out the power to mount the Pi5 on top of their bot
  • Lastly someone figures out how to do network over a wire. The TurtleBot4 uses network over a wire with the Create3 base.
2 Likes

Yes in both 32-bit and 64-bit versions (on Pi5 the kernel is 64-bit but the OS can be either):


2 Likes

I was thinking that the Pi-5 might have the chops to run the whole show itself?

WiFi interference won’t be a problem if:

  • The channels are exactly the same.
  • The channels are far enough apart so that there is no overlap at all.

Using the 2.5ghz band as an example, the only three channels that don’t interfere are 1, 6, and 11, and if you want to be absolutely sure you pick 1 and 11.

If the channels are the same, the protocol handles collisions. If they don’t overlap at all, it’s all good too.

The big problem is when a channel partially overlaps another, because WiFi channels aren’t cleanly separated groups of frequencies, and all the channels overlap except channels 01, 06, and 11.  In that case, speed drops dramatically.

2 Likes