https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/ [ ] * For home * For industry * Hardware * Software * Documentation * News * Forums * Foundation News All news Search the archive RSS feed Bookworm -- the new version of Raspberry Pi OS [256e89] * 11th Oct 2023 * Simon Long * 43 comments It's an odd-numbered year, so there is a new major Debian release, and we are now releasing the corresponding version of Raspberry Pi OS. This year's Debian release is called Bookworm. (As you probably know, Debian releases are named after characters in Disney/Pixar's Toy Story franchise, but there have now been so many releases that all the characters you might have heard of have already been used. Bookworm was a minor character in Toy Story 3 -- and no, I didn't remember him either...) [311186C6-D83E-494B-9767-91A768E4AD53] So what is new in Bookworm? Well, not a great deal... and yet pretty much everything. Allow me to explain. Debian Bookworm itself is mostly made up of incremental updates of the software that was in the previous Debian Bullseye release. There are a few small changes -- have a look here for the list -- but they mostly won't affect Raspberry Pi users. So Bookworm itself really hasn't resulted in many changes. However, for the last year or so we have been working on some major architectural changes to the Raspberry Pi Desktop, and these are launched for the first time in the Bookworm release. And this is where you might notice some differences. Wayland The most important of these is the move to using Wayland rather than X11 as the display system. For the last 35 years or so, most Unix desktop environments, including the Raspberry Pi Desktop, have been based on the X11 window system. But, as is hardly surprising for a piece of software several decades old, X11 has various limitations when used on modern computers. To address these, most Linux distributions are moving to use Wayland; those which have not already done so are planning to do so in the future. The primary advantage of Wayland is performance. Under X11, there are two separate applications involved in drawing a window. The display server is used to create windows on the screen and to give applications a place to draw their content; the window manager is used to position windows relative to each other and to decorate windows with title bars and frames. Under a Wayland system, these two functions are combined in a single application, called the compositor, so an application only needs to talk to one thing rather than two in order to get its windows drawn. This also gives a security advantage. Because under X11 all applications were communicating with the display server, and this communication was two-way, all applications could exchange information with each other. Under Wayland, applications are all isolated from each other at the compositor level, so no application can see what another application is doing. Wayland itself is just a protocol. In order to use it, you need a compositor which supports Wayland. In the previous release of Raspberry Pi OS, we were using the Mutter window manager, which could function as a Wayland compositor. But this turned out to have been a poor choice; it was relatively slow and cumbersome, and was a little out of date, which is why we only offered Wayland support on an experimental basis under Bullseye. For Bookworm, we are using a compositor called Wayfire. This uses a standard Wayland library called wlroots, which is used by several modern Wayland compositors. And because Wayfire works a lot better as a Wayland compositor on Raspberry Pi than Mutter did, Wayland is now the default mode of operation for the desktop. (With one caveat -- for now, Wayland is only the default on Raspberry Pi 4 and 5. The performance of Wayfire on earlier platforms is still being optimised, so for now they will continue to run the old X11 display server and the Openbox window manager, but at some point these platforms will also be switched to Wayfire.) If you boot Raspberry Pi OS on a Pi 4 or 5, you will now get a Wayfire desktop. It should look pretty much identical to the desktop you are used to from Bullseye, but appearances are deceptive -- it has taken a lot of work to get to the point where the two desktop environments look the same! [20230927_11h24m42s_grim] There is still a taskbar at the top of the screen that allows you to launch applications and see the status of various systems, but this is a totally new application. Under Bullseye, this was an application called lxpanel, but this has now been replaced with wf-panel-pi (short for "wayfire panel for Raspberry Pi"). This was based on wf-shell, the example panel application from the authors of Wayfire, but we have extensively modified it to look and work like lxpanel. The largest part of this work was to port all the existing lxpanel plugins -- the icons which control volume, network, Bluetooth, etc -- so that they now all work with wf-panel-pi. The desktop background itself is still drawn by the old pcmanfm file manager which was used under Bullseye, but this has been modified so that it uses Wayland as its display protocol rather than X11, so is now a native Wayland application. How individual applications work in a Wayland environment depends on how they are written. The standard graphics toolkits, like GTK and Qt, are now Wayland-compliant -- they can detect when an application using them is running in a Wayland environment, and they then route all graphics calls over the Wayland protocol, running as native Wayland applications. Most applications preinstalled as part of the Raspberry Pi Desktop use one of these toolkits, and so now run as Wayland applications. A few applications use a toolkit which is not Wayland-compliant, or bypass a toolkit completely by making direct calls to X11. While it looks as if these applications wouldn't work on Wayland, there is a fix for that. Our Wayland implementation includes a piece of software called XWayland -- this is an X11 display server which sits on top of Wayland. It handles all the non-graphical parts of X itself, and passes any graphical parts to the underlying Wayland implementation. XWayland is designed to launch automatically as soon as an application requests anything from X, so this should all work seamlessly. So that's Wayland. Basically, everything you see on the desktop is now being drawn completely differently from the way it was drawn under Bullseye -- but if I have done my job right, you shouldn't notice any significant differences! One thing you might notice is that Wayland allows us to add some nice eye candy; windows now have subtle shadows, and they open and close with animations rather than just appearing and disappearing. We've also added a couple of new plugins. The "Power" plugin is enabled by default, and monitors for power supply problems like low power supply voltage or excess USB current. If either occur, a notification will be displayed to let you know what has happened, and an icon is then shown on the taskbar -- clicking this takes you to a web page with more information on the problem and possible fixes. [oc] The other new plugin is "GPU", which shows a graph of the load on the Raspberry Pi's GPU, similar to that which the existing CPU plugin showed for the CPU. This is not enabled by default, but can be added by right-clicking the taskbar and choosing "Add/Remove Plugins". [gpu] As mentioned above, work on Wayland/Wayfire is ongoing -- we are still optimising for the hardware of earlier models of Raspberry Pi, and hope to be able to roll out the Wayland desktop experience for all models of Raspberry Pi in due course. PipeWire So, we've changed what is used to draw all the graphics. To go along with that, we've also changed what is used to control the sound. Originally, the desktop used the Linux ALSA sound interface to communicate with audio hardware. This worked, but was pretty primitive and had numerous limitations. A few years ago, we switched to using the PulseAudio interface, which sits on top of the low-level ALSA layer. This added a lot more flexibility: it made it easier to manage things like Bluetooth audio devices, allowed audio from multiple applications to be mixed together, and allowed audio to easily be switched between outputs while playing. For this release, PulseAudio has been replaced with the newer PipeWire audio system. This builds on the features offered by PulseAudio, most importantly in providing better support for audio accompanying video. It reduces latency, which is important in many applications. It manages Bluetooth audio devices better, remembering which ones were in use at power-down, and automatically reconnecting them at boot. Finally, it is designed to operate better in the more secure Wayland environment, where applications are isolated from each other. From a user point of view, PipeWire can be controlled with any application which controls PulseAudio, so the volume and microphone controls on the taskbar work exactly as they did under PulseAudio, but under Bookworm, they are talking to PipeWire rather than PulseAudio. [vol] Networking Graphics and sound are both new then -- what else? During Bullseye, we rolled out the use of the NetworkManager network controller as an option which could be selected in raspi-config. This is now the standard control mechanism for networking in most Linux distributions, and is now the default network controller for Bookworm, replacing the previous system, dhcpcd. NetworkManager does everything dhcpcd did, but adds a bunch of extra functionality, including the ability to connect to hidden wireless networks, to connect to virtual private networks (VPNs), and to use a Raspberry Pi as a wireless hotspot. It also includes a lot more customisation options for those who wish to fiddle with the nitty-gritty of their network connection. The networking plugin on the taskbar looks almost identical to that which controlled dhcpcd in Bullseye, but now has an "Advanced Options" item at the bottom -- this allows you to access the new functionality offered by NetworkManager. [nm] Firefox One other significant change is that we are now offering a second browser option, with the launch of a Raspberry Pi-optimised version of Mozilla Firefox. [20230927_14h48m43s_grim] This is the first time we've officially supported Firefox -- previously, the only version available was an old version from Debian, whereas we've now done a lot of work to ensure the best possible experience when running the latest version of Firefox on Raspberry Pi. We've worked closely with Mozilla and the Firefox community, and we're contributing our work upstream to benefit Firefox users on all platforms. One key feature has been enabling V4L2 codec support so that Firefox can utilise the hardware h.264 decoder on Raspberry Pi. On older models of Raspberry Pi, this significantly improves performance and reduces CPU load when playing back HD video. We've enabled support for Widevine DRM, which is used by a number of video streaming services, and have contributed graphical optimisations that improve performance on a range of websites on low-power devices. For video calling we've made sure that Firefox on Raspberry Pi OS works out of the box with CSI cameras (using libcamera) and desktop sharing on Wayland. Documentation As you'd expect from such sweeping changes, there were huge knock-on effects to our documentation, and the documentation team has been working away behind the scenes making sure that it reflects the new state of the world. This is true especially around things l haven't even had space to mention here, like the changes to how Python modules are installed. It's been a huge effort, with a lot of changes across the entire documentation stack, so if you do stumble across a place where the documentation hasn't been updated for Bookworm, please raise an issue on the documentation repo! What's missing? With any change as significant as this, it can be difficult to make sure that everything from the old version still works under the new one, and while we have tried very hard to keep such things to a minimum, there are a few features which we haven't been able to get into this release. * Compensation for displays which use overscan is tricky under Wayland, and we haven't quite got it working yet, so this has been removed for now. The vast majority of displays nowadays don't need it, but we will be putting it back when we have worked out how best to do it! * The system tray -- the area on the taskbar where applications can put their own icons -- has to use a completely new mechanism to work with Wayland's security model. This means that some applications may need to be updated in order for their icons to appear there. * Similarly, the Wayland security model prevents traditional remote desktop access, and so a new VNC server, called wayvnc, is being used instead of RealVNC. This is a bit more restrictive in terms of the client applications which can connect to it -- we have had good results with the TigerVNC client, available here. * There is also currently a regression with the RealVNC server itself, which is still used in Bookworm on older Raspberry Pi models which don't yet run Wayland. The 64-bit version works fine, but the 32-bit version is not currently compatible with Bookworm -- we are waiting for an update from RealVNC. In the meantime, if you do need remote desktop access on a Raspberry Pi Zero, 1, 2, or 3, we recommend sticking with Bullseye for the time being. A few programs have been removed from Recommended Software and the full image: * The SenseHAT Emulator is not at present compatible with Bookworm -- this is being worked on now, and we hope to have it back in a few weeks' time. * The Magnifier accessibility tool doesn't work with Wayfire, but Wayfire already has its own (better) magnifier built in -- just hit ctrl-alt-M to turn it on and off. * The BlueJ and Greenfoot Java IDEs are incompatible with Wayland, and Sonic Pi is incompatible with PipeWire -- these are third-party programs, so have been removed until their developers have updated them. Just in case... All these changes are designed to bring Raspberry Pi OS more into line with what other Linux distributions are doing -- many are making, or have already made, the switch to Wayland, PipeWire and NetworkManager. This, then, gives us a good platform for future development, with the reassurance that our desktop is sitting on the same underlying components as most of the rest of the desktop Linux ecosystem. While we have been using Wayland and PipeWire internally for nearly a year now, the sheer scale of the changes means that, in some specific usage scenarios, one or the other may cause problems. For this reason, the Advanced Settings menu in raspi-config includes options to re-enable the old X11/Openbox display system and PulseAudio. You shouldn't need to use these, but the option is there just in case! How to get it We have always said that for a major version upgrade, you should re-image your SD card and start again with a clean image. In the past, we have suggested procedures for updating an existing image to the new version, but always with the caveat that we do not recommend it, and you do this at your own risk. This time, because the changes to the underlying architecture are so significant, we are not suggesting any procedure for upgrading a Bullseye image to Bookworm; any attempt to do this will almost certainly end up with a non-booting desktop and data loss. The only way to get Bookworm is either to create an SD card using Raspberry Pi Imager, or to download and flash a Bookworm image from here with your tool of choice. Share this post Post to Twitter Post to Facebook Post to Linkedin Post to Pinterest * Debian Linux * Raspberry Pi 5 * raspberry pi OS Related posts [legacyscre] "New" old functionality with Raspberry Pi OS (Legacy) [Buster_Toy] Buster - the new version of Raspbian Previous Post [Screenshot] This is the world's first Raspberry Pi 5 tablet Share this post Post to Twitter Post to Facebook Post to Linkedin Post to Pinterest 43 comments Jump to the comment form Supra avatar Supra 11th October 2023, 1:14 pm I have Bullseye. But how do I updated to Bookworm? Do I have to refresh new image? Reply to Supra dom avatar dom 11th October 2023, 1:16 pm Did you read last paragraph of blog post? Reply to dom Ashley Whittaker avatar Raspberry Pi Staff Ashley Whittaker 11th October 2023, 1:25 pm Reply to Ashley Whittaker bensimmo avatar bensimmo 11th October 2023, 1:18 pm Well done in getting it working. Going to be fun unleashing it on the group at college Given we tried today and had problems downloading in PiImager, but we know why now. Which was sort of a blessing as our instructions wouldn't have worked :lol: It does cut out a lot of the patching we had to do to get it to work (newer php etc) Reply to bensimmo Peter Barlow avatar Peter Barlow 11th October 2023, 1:37 pm Which version of Python is installed by default? Reply to Peter Barlow Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 1:39 pm 3.11.2 Reply to Simon Long Jeff Geerling avatar Jeff Geerling 11th October 2023, 1:46 pm If you like to use the system Python for certain things like Ansible, and are confident in your ability to not break Python, you can get around the new nag in Python 3.11 that Bookworm ships with and still install pip3 packages with system Python instead of managing virtual environments: https://www.jeffgeerling.com/blog/2023/ how-solve-error-externally-managed-environment-when-installing-pip3 Note that some tools, like the pycoral library for using the Coral TPU, aren't yet compatible with Python 3.11 and are hard to manage in a virtual environment. I've used Docker to encapsulate the Coral Python libraries more easily under Bookworm. Reply to Jeff Geerling Peter Barlow avatar Peter Barlow 11th October 2023, 2:28 pm I'll probably install either 3.11.6 or 3.12 in a venv, I think that gets around the externally managed environment feature Reply to Peter Barlow Kaya avatar Kaya 11th October 2023, 2:36 pm This is "How to temporarily bypass" not "How to solve". Modifying files under /usr/lib/ means they'll get overwritten with the next update. Better to just adapt to the new ways, they were adopted for a reason. Reply to Kaya Jeff Geerling avatar Jeff Geerling 11th October 2023, 4:06 pm I'm happy with the old ways, I don't like treating Python like something different than every other programming language I use--I don't have to learn how to manage virtual environments for PHP, Java, Ruby, etc., I just use containers if I want to run multiple versions or have special requirements. Most of the stuff I install via pip is system-wide like ansible, so I'm happy managing the dependencies myself. It's a tradeoff trying to work in venvs vs system-wide, and I'd rather choose the simpler path. Reply to Jeff Geerling Sam avatar Sam 11th October 2023, 4:14 pm I'm not sure where you work, but I certainly need to manage multiple versions of Java (using jenv and sdkman) and Ruby (using rbenv). This is very standard practice for any software company that has enough applications running under different SDK versions that you need to switch between them seamlessly. Reply to Sam Alasdair Allan avatar Raspberry Pi Staff Alasdair Allan 11th October 2023, 3:21 pm To try and minimise confusion, we've customised the error message you get when you use pip the "normal" way, and it points you at https:// rptl.io/venv which should hopefully help folks out that are confused about what's going on. Reply to Alasdair Allan luiz avatar luiz 11th October 2023, 2:01 pm My biggest issue with the Chromium port is that it cannot keep up with upstream and its security updates, thus leaving Raspberry Pi OS users open to major security vulnerabilities. For that reason I've been using the firefox-esr package from Debian. Although older, it is still an extended support release, which means no major security holes. Will the new Firefox port follow the same strategy used in the Chromium port - a set o patches applied to upstream - or will it come from upstream directly? Reply to luiz Gordon Hollingworth avatar Raspberry Pi Staff Gordon Hollingworth 11th October 2023, 3:12 pm The advantage of Firefox is that the upstream maintainers are actually interested in our patches so we don't have to keep doing everything downstream! In general, we've been able to release packages the same day as they've been released by Firefox. Reply to Gordon Hollingworth James W Williams avatar James W Williams 11th October 2023, 2:15 pm In the 64-bit version, are the userland binaries still 32-bit or is it a full 64-bit OS now? Reply to James W Williams James Hughes avatar James Hughes 11th October 2023, 2:27 pm Full 64 bit. Reply to James Hughes MW avatar MW 11th October 2023, 2:28 pm The 64bit Bullseye release was always 64bit kernel and userland and based of Debain. The 32bit Bullseye release was always 32bit userland and a choice of either 32bit or 64bit kernel, and defaulted to 64bit kernel on models with ARMv8 SoC, and based of Raspbian. Reply to MW James W Williams avatar James W Williams 11th October 2023, 3:35 pm Thanks for clarifying. I somehow missed that Bullseye 64-bit was a full kernel+userland 64-bit system. Reply to James W Williams MW avatar MW 11th October 2023, 2:23 pm Under the impression that the Raspberry Pi 5 only supported 64bit Raspberry Pi OS ?? Reply to MW A Stevens avatar A Stevens 11th October 2023, 2:52 pm I don't recall seeing any mention of that! But I can't see why, since the chip is still an ARMv8, which will support both 64-bit and 32-bit. I'll have to wait for my Pi5 arrival to confirm, but I'm sure the experts can give you a definitive answer :) Reply to A Stevens PhilE avatar Raspberry Pi Staff PhilE 11th October 2023, 2:55 pm It's not a matter of can't, but rather won't (although the A76's can't run a 32-bit kernel) - you won't get the best out of Pi 5 on a 32-bit OS. Reply to PhilE dom avatar dom 11th October 2023, 2:53 pm Pi5 can only run a 64-bit kernel. It can run a 32-bit or 64-bit OS from that kernel. Reply to dom Alasdair Allan avatar Raspberry Pi Staff Alasdair Allan 11th October 2023, 3:24 pm Nope. Raspberry Pi 5 will happily run the OS with a 32-bit userland. But you'll miss out on 16KB pagesize'ing, so things will run slower. We'd certainly recommend folks install "full fat" 64-bit Raspberry Pi OS on when they get their hands on a Pi 5. Reply to Alasdair Allan Chivar Pilones avatar Chivar Pilones 11th October 2023, 2:41 pm i just installed latest release from rpi-imager.. having problem with vnc server via raspi-config Reply to Chivar Pilones Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 2:43 pm Did you read the bit about RealVNC server not working at present on 32-bit images? Reply to Simon Long op00 avatar op00 11th October 2023, 2:48 pm Whenever Pi 4 is mentioned, can I assume it applies to the Pi 400 too? Reply to op00 Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 2:50 pm Yes. Reply to Simon Long A Stevens avatar A Stevens 11th October 2023, 2:48 pm Exciting times - we've certainly been waiting for this! I've just done the first test installation on a Pi4 4GB, and it certainly looks great and feels snappier. I'm glad I read the note about the SenseHAT Emulator though; we use this in our Code Club (since we only have one real HAT - mine!), so I may have to hold on the upgrade for a bit. Meanwhile, I'm just waiting for my magic pre-ordered Pi5 to arrive. Thanks for the amazing work on Bookworm, which definitely moves the game forward.... Reply to A Stevens Javier Goldman avatar Javier Goldman 11th October 2023, 3:02 pm It's already out? Nice! any recommendation on a guide for how to backup any changes i have made to apply after updating? Reply to Javier Goldman Richard avatar Richard 11th October 2023, 3:15 pm Why is the 32bit version still the recommended version - is there any reason not to install the 64bit version on an Pi4? Reply to Richard Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 3:23 pm Not at all; we recommend the 64 bit version on the higher-powered platforms, and that includes Pi 4. Reply to Simon Long Alasdair Allan avatar Raspberry Pi Staff Alasdair Allan 11th October 2023, 3:27 pm In the future we're going to be a bit more fine-grained about how we recommend an OS version to you, but for now the 32-bit version of Raspberry Pi OS -- which actually has a 64-bit kernel and a 32-bit userland -- runs on all of our released hardware so it's the recommended release. Reply to Alasdair Allan Gordon Hollingworth avatar Raspberry Pi Staff Gordon Hollingworth 11th October 2023, 3:33 pm The Imager application doesn't currently have the ability to 'recommend an image by destination'. That is being worked on at the moment and will go live soon allowing us (and other image providers) to customise the list based on the device you're trying to use. Reply to Gordon Hollingworth MW avatar MW 11th October 2023, 3:38 pm Thank you for this forthcoming long overdue feature, general everyday users should be encourage to use 64bit OS on the BCM2711 / 12 models. Reply to MW Karsten Johansson avatar Karsten Johansson 11th October 2023, 3:37 pm Does the new Network Manager allow for static IP addressing? This is important for me, because I use pihole, but my ISP doesn't allow their customers to use their own DNS if they use DHCP. Reply to Karsten Johansson Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 4:36 pm Yes, it does. NetworkManager allows you to do pretty much anything in terms of network configuration! Reply to Simon Long Sreejith S avatar Sreejith S 11th October 2023, 4:01 pm Is it recommended for Pi Zero 2 W ? Will it help anyway the Pi Zero 2W in using the web-browsers ? Reply to Sreejith S Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 4:37 pm Zero 2 W doesn't really have enough power for a good experience with web browsers - Bookworm is unlikely to make this better over previous versions of the OS. Reply to Simon Long Trunks avatar Trunks 11th October 2023, 4:08 pm I've installed the 64bit version onto a 4GB raspberry Pi4B. I read the notice about VNC server which is a major pain as I mainly use this method to connect to my pis. I can get it working with TigerVNC by turning on the vnc option under raspberry pi configuration, however as soon as I disconnect HDMI this setting turns off and my vnc disconnects. With Bullseye you could run WNV headless, but with Bookworm something is buggy in terms of keeping the setting alive if you disconnect HDMI. Reply to Trunks Steven avatar Steven 11th October 2023, 4:18 pm Is there a plan / timescale to update the Raspberry Pi Desktop (i.e. the one that runs on PCs) to Bookworm? I realise the push is to support the new RPI5's but we are still rocking RPI3's at our code club (due to supply + funds) and have just been given some old laptops: I'd hold off setting them up with Bullseye if a newer update is forthcoming. Reply to Steven Simon Long avatar Raspberry Pi Staff Simon Long -- post author 11th October 2023, 4:35 pm Yes, we do plan to do it, but I don't have a timescale as yet, I'm afraid. Reply to Simon Long Anton avatar Anton 11th October 2023, 4:22 pm Please, are there any plans for omxplayer to work again or to have a replacement for it? For me, it was really useful that one could control a video player via Python, omxplayer was working just fine and it was simple and lightweight. (Sadly for me, VLC quite different kind of beast.) Reply to Anton James Hughes avatar James Hughes 11th October 2023, 4:32 pm No, the underlying code that OMXPlayer uses is no longer present so it can never work. VLC/gstreamer/V4L2 are the standard Linux applications to replace it. Reply to James Hughes Leave a Comment Cancel reply? Name (Required) [ ] Email address (also required) [ ] Website URL [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Your comment (required) [ ] [Post Comment] [ ] [ ] [ ] [ ] [ ] [ ] [ ] D[ ] Follow us * Sign up to newsletter * Twitter * Mastodon * YouTube * Instagram * LinkedIn * Facebook About Raspberry Pi * News * Contact us * Trademark * About us * Our Approved Resellers * Jobs * Accessibility * Site use terms and conditions * Acceptable use * Cookies * Licensing * Terms and conditions of sale * Privacy * Security * Verify our bank details For home * Raspberry Pi for home * Tutorials For industry * Raspberry Pi for industry * Thin clients * Raspberry Pi in space * Powered by Raspberry Pi * Design partners * Success stories Hardware * Computers and microcontrollers * Cameras and displays * Add-on boards * Power supplies and cables * Cases * Peripherals Software * Raspberry Pi OS * Raspberry Pi Imager * Raspberry Pi Desktop Documentation * All categories * Product information portal * Datasheets Community * Forums * Events Raspberry Pi Store * Cambridge Store Raspberry Pi Press * About Raspberry Pi Press * The MagPi * HackSpace