Resource Downloads

Here you can download content for both books. But please note that the old original Raspbian 2017 content has been deprecated and removed. We now use a cross-platform template which runs on Pi3 in OpenGLES2.0 and on Pi4 and Pi5 in OpenGLES3.1. Both versions require that you have a minimum of Raspberry OS Bookworm on board to function.

1st edition readers should note that because the old Raspbian era (Jessie/Stretch/Buster) code is no longer active, I no longer support that code and the updated template does have a number of differences in setting up OpenGLES and in the way it handles its key and mouse content. Don't be too alarmed, where possible, explanations of the changes are in the code.

Important Note!

At this point the website is being updated, so a lot of content is placeholder

If you are downloading these files to try out without having the book(s), please be aware the book(s) make the point that several of these files have specific errors in them, and the reader is encouraged to locate and fix them. In particular, the early files have deliberately poor management of memory and architecture, which the reader is led through to demonstrate the issues such bad design can cause.

Also, NONE of the projects are optimized for performance, and all use a simple but inefficient flyweight design pattern. The aim of the projects is clarity of purpose and comprehension. Readers are encouraged to pinpoint the bottlenecks and update the code to greatly improve effectiveness.

Development Environment

It's important to note that the book does not ask you to write code on the target system itself. You need to use a Windows PC and an IDE. I use Visual Studio 2022 Community Edition (it's free). Information on how to set up your PC and connect to your target is provided here. Conversion to a different IDE should be simple enough, but try VS2022.

There are of course a couple of important support files/libs you will need. The project content files when downloaded provide a setup.sh file which automatically goes to your Pi when you build. Your first build will fail due to the lack of content, but setup.sh will now be on your Pi. When run in your home/pi directory, it will install all the systems needed.

I know that some people are concerned about blindly downloading content, but the sh file is editable and you can check it's not installing anything naughty. (It's not!)

It will install Bullet Physics, GLM maths, Freetype text rendering, Sound systems, updates to openGLES2, some error handling, and a few other things. I may update the setup.sh file from time to time (for example, for later versions of Freetype).

You only need to run setup.sh once while connected to the internet on your Pi. PC builds already come with all libs and features in place, though you might want to use updated versions if you are writing more complex content.

Pi3 Resources
Download Pi3 Resources

Pi3 Resources

Sample test projects for Raspberry Pi 3 with cross-platform compatibility for PC. Includes PhotoFrame example and Hello Triangle.

Pi4 Resources
Download Pi4 Resources

Pi4/Pi5 Resources

Enhanced resources for Raspberry Pi 4 and Pi 5 development with OpenGLES3.1 support and improved graphics options.

Video Tutorial

Test video

This is just a test video and something silly went wrong I didn't have my KVM switched to the Pi3, so I was seeing the Pi5 content and didn't notice, a problem only someone with too many raspberries attached would ever have :D. I'm going to leave this in for now, but promise a more polished professional version.....one day :D