Tickets now available for the Birthday CamJam (2nd March) and Pi Wars (20th-21st April)

Great news! Tickets for the Birthday CamJam, which takes place on 2nd March at the Computer Laboratory in West Cambridge, are now available.

There will be Talks, Show and Tell, Workshops and a Marketplace in the biggest event CamJam has run for some time. This time, they have the support of Raspberry Pi themselves, so it’ll be even more epic!

Get your tickets here!

Also at the Computer Lab (William Gates Building) soon is the robotics competition, Pi Wars. You’ll be able to watch the robotics teams taking on the seven fiendish challenge courses, shop in the Marketplace and, if things go well, be able to see and interact with Show and Tell exhibits! There’s lots of ways to get involved, too! Those who volunteer to help during the weekend go free, as do those 16 years of age and under. Everyone else is £6 for the whole weekend, which is a bargain, frankly!

Get your tickets here.

Star Trek Voyager sound box for a scale model using a Raspberry Pi Zero and Pimoroni magic!

A friend of mine volunteers for a non-profit organization called Models for Heroes which aims to give Armed Forces veterans a focus for their free time by helping them get into scale modelling. He also builds his own scale models and this time it’s a model of the USS Voyager from Star Trek. He asked for some help to give the project an extra “zing” by providing sound effects. I did some research and, to start with, I was going to use the Raspberry Pi Pico to do it. However, I wanted really good sound this time. My last project for Steff was to provide effects for a Lancaster Bomber model. This time, it was simpler but I wanted something that wouldn’t sound too strained when playing the Voyager main theme.

I settled for a Raspberry Pi Zero W and an attached Pirate Audio 3W board from Pimoroni. I also bought two 3W speakers from The Pi Hut, cut the connectors off, solder-tinned the ends of the wires and plugged those into the Pirate Audio’s terminals.

The next step was to install the software onto the Pi and then create a script to handle both the audio tracks and put some appropriate images on the display screen.

For this, I needed Pillow, gpiozero, pygame and the ST7789 library that comes with the Pimoroni install package. I’m not going to go into how to install them, but you want to use the apt install method rather than pip.

Here’s a link to the code. You’ll see that I’m using the B and A buttons for Next and Previous track, Y for pause and then X is a press-to-hold button for shutting down the Pi nicely (rather than just pulling the power). In terms of the tracks, hopefully no-one has a big problem with me using them – this is for fun and not-for-profit!

Here’s a demo video of the project in action!

Raspberry Pi 5 launched… for pre-orders

I was up at an ungodly hour this morning when I noticed a tweet from Unexpected Maker showing a screengrab of a mailing received from Element 14/Avnet which showed some details of the brand new Raspberry Pi 5. Despite promising that the Pi 5 would not appear in 2023 (and here), we are today seeing a new product launch.

Against my better judgement, I decided What the heck and showered and dressed at 4.45am and began typing. I decided, however, with respect for any embargo (that I’m no longer under, but hey, it’s a “nice” thing to do, isn’t it?) that I wouldn’t publish until everyone else does.

Pre-ordering a Pi 5

That’s right, you can pre-order, rather than buy for immediate despatch.

You can do this at authorised re-sellers. My favourites: Pimoroni | The Pi Hut.

What’s on the Pi 5?

Better pic from Pimoroni! 🙂

I will add more details as we go through the day. The expected flurry of high-profile YouTubers and Bloggers will do their announcements and flashy videos! For now, we can see from the screengrab that the Pi 5 has on-board:

  • A BCM2712 CPU @ 2.4GHz (compared to the Raspberry Pi 4’s BCM2711 @ 1.8GHz).
  • 2.4 GHz and 5GHz WiFi and Bluetooth 5/BLE (the same as the Pi 4).
  • PCIe 2.0 interface for peripherals (The CM4 had this, but the Pi 4 did not expose it).
  • On-board On/Off power button. (My goodness, the Angels are singing).
  • Real-Time Clock (RTC). (Those Angels are now harmonising).
  • In-house designed I/O silicon. (I’m going to assume that’s what the Pi-branded chip on the top-right is).
  • A choice of 4GB and 8GB of RAM at launch.

The launch video from Raspberry Pi is available below:

The product page at Raspberry Pi is here.

The product brief PDF is available here.

Tom’s Hardware coverage is here.

Benchmarks over at Phoronix give an inkling as to a great speed improvement on the Pi 5.

Review/launch video from Kevin McAleer:

Working out more

I haven’t been privy to the new release – I’ve long since been disposed of in terms of usefulness (read into that what you will, or buy be a pint sometime!) – but I can look at a screengrab and make some educated guesses. Let’s see what else we can see on the image, and what we can guess based on that list.

  • The new CPU is under that mahoosive heatsink and runs faster. Which leads me to suspect that the board runs at a high temperature. You’ll almost certainly need a fan and to not touch the thing under load.
  • The new CPU runs significantly faster than the Pi 4 – this beast will be faster, probably quite a bit faster.
  • There’ll be PoE (power over ethernet) pins – probably those four pins bottom right.
  • The same form-factor, or at least size, has been kept to. However, the Ethernet and USB ports have been swapped around again and we’re back to the Pi 3 configuration. I expect case manufacturers will be delighted!
  • The same microHDMI ports are on the board as the Pi 4. This will be because of space, and will no doubt frustrate a lot of people. Fortunately, we have microHDMI to full-sized HDMI cables nowadays.
  • With a lot of image sharpening, I think the PCIe is where the old DSI slot was, on the left in the middle.
  • …where it sits next to the new on-off switch. (stops, listens, yup, the Angels are still singing).
  • The board is still powered by USB-C, which is good, but I suspect you may need new power supplies to cope with increased power requirements. Unless they’ve future proofed the official ones.
  • There are two new ports next to the Gigabit ethernet port. Now, I don’t suppose they have disposed with the DSI/CSI ports on the Pi 4 – that would lose them the highly-lucrative display and security camera/photography market – these look like a new cabling standard for cameras and displays. Perhaps, they are agnostic in terms of what you can connect to them and you’ll be able to run two cameras or two extra screens off of the Pi 5? We’ll circle back to that when more detail emerges.
  • That in-house designed I/O silicon is interesting. I believe that they were expecting to move to a new power requirement for the CPU at some point (it’s to do with nodes, but don’t ask me to explain it) so perhaps they need the GPIO to run separately to the CPU. That would require an extra chip, which is indeed what we see. I’m surprised that they haven’t moved to the RP2040 for that, but perhaps the new I/O chip is a simpler affair and it brings the cost/complexity down?
  • The same 40-pin GPIO header is kept – thank goodness. We’ll see how many add-on boards are affected by the new PoE pin placement. I do remember when the Pi 4 added the PoE pins that there were some problems with the location.
  • The board is on pre-order. This is the first time since the initial launch of the Pi that pre-orders have been “a thing”. That means that Raspberry Pi Ltd is no longer afraid that they’ll wreck their own market until actual launch/availability. That tells us something, too.
  • The board will initially be available in 4GB and 8GB RAM configurations. This board will be more expensive than the Pi 4, or at least there won’t be a $35 level to begin with. That’s just a guess, but does lead me onto the next question…

Who is it aimed at?

Those who follow me on Twitter/X will know that I was none too happy with the way Raspberry Pi handled the chip shortage and cut right back on general availability in favour of industrial and commercial customers – myself and the rest of the community combined, of course – I was definitely not alone. Most of my frustration was with communication from the company. Their answer to “I need a Pi!” seemed to always be “You can’t have one. Try the Pico.” The Pico isn’t a computer, of course, so that always rankled. I could say more on their communication strategy, but I won’t as I just don’t have the energy!

Now that supply of the Pi 4 and, to some extent, the Pi Zero 2 W has been more-or-less sorted, now is a great time to release this new product. But who is it aimed at? Well, I would say it is not aimed at the community/hobbyist/education market at all. I would say that it is aimed at industry. That would fit in with their overall strategy and also the features on the board (such as PCIe and those new DSI/CSI ports which involve buying new hardware to match) are definitely for the cash-rich. The on-off button and the RTC also point to specific uses of the board that would have been requested. It’s taken (whistles) over 10 years for them to appear, and they will add to the cost of the board so someone who buys 1000s of the products has probably asked for both feautres. (Again, conjecture, but it fits).

Why a pre-launch?

As I mentioned above, this is the first time we’ve got wind of a new product before it becomes available since the very first Raspberry Pi was launched back in 2012. This is a shift from the hush-hush launch day we normally expect. There could be a few reasons for this, but I suspect they’re just trying out the strategy, and also managing the initial manufacturing numbers. When the board will actually be available is uncertain at the moment. The other reason why it’s a pre-launch could be (and this is conjecture) because the software isn’t ready yet – this has been a perenial problem of late, so it could just be that the OS isn’t ready for launch yet. I’m hoping it will be by the time the boards are available and that the recent-ish problems and delays with, say, the camera software stack on the main Pi and Bluetooth on the Pico won’t be a problem going forward, but who can tell?

The board will be available in October, and I see from the official page on Raspberry Pi that Raspberry Pi OS Bookworm (based on the new Debian version) isn’t ready yet but will be for mid-October.

A balance of boards

It’s interesting, this launch. If you assume for a moment that they’re not going to abandon all of their current product lines, it makes an awful lot of sense. You’ve got this big, beefy (but presumably more expensive) board at the top (targeted at industry, probably), the Pi 4 next (which is certainly capable) and the mass-market Pi 400 together for end consumers/hobbyists, then the Pi 3A+ which is a bit unloved as it sits awkwardly “in the middle” in terms of usefulness, then the Pi Zero 2 W (which I still maintain is a terrific board for robotics and other hobby projects where you need a full computer), then the Pi Zero W (which is starting to look a bit old-hat) and then the Pico series. The Pico series is great for if you want a few sensors in a small form factor with low power requirements in a neat package.

Aside: Speaking of robotics, Pi Wars 2024 applications are still open until Sunday, 1st October at 8pm (UK time)!

Anyway, it’s a good balanced “range” of products.

Afterthought

I still maintain they’ve lost sight of their original mission (which was about education and improving the stock of software and hardware engineers at Cambridge University before the mission broadened to take in computing-for-all) and that they’ve leaned so far into industry/commerce that it’s difficult to see them maintaining any kind of hobbyist community.

But does that really matter?

Those who would move on have moved on. Those of us still interested in the Pi (of whatever sort) are still interested, though perhaps not as passionately as we used to be. It’s still a good tool, and there’s a range of those tools available now (see above). The idea that the Pi is aimed at “Computing for everybody” is, I think, good marketing, but it doesn’t translate into a balanced market. Industry/commerce is where most of their market is, and Raspberry Pi Ltd is a profit-aimed company (now, at least), so why shouldn’t they release a product that caters more to the wishes of industry and commerce rather than the kitchen-table tinkerer?

Good luck to them, as always.

Extremely Mini Raspberry Pi Cyberdeck – #raspberrypi #cyberdeck

Complete mini cyberdeck

Introduction

Hi everyone. I recently took part in an episode of The Pi Cast from Tom’s Hardware during which I presented my latest project: a Mini (or Tiny!) Raspberry Pi Cyberdeck. You can see the full episode below. Of particular interest is, around the 56s mark, I show how small this really is – Banana for scale!

I thought it would be worth blogging about the build, showing you what I used to make the thing and some of the challenges I faced while doing so. I should say that I thought about doing this after seeing someone on Reddit do something similar, but not quite as small (I’ve lost the actual post now!). And, of course, I was inspired by Brian Corteil’s fine example of a Cyberdeck that is an altogether larger, more sophisticated project which you can see below:

Bill of materials

Tools used

  • Soldering iron.
  • Side cutters.
  • Heat gun.
  • Drill (eventually!).

The build

Getting the Pi Zero 2 W and powering on

The first thing to do was to get hold of another Raspberry Pi Zero 2 W. Not easy post-pandemic, but I did manage it eventually! Keep an eye on rpilocator.com for now – or follow them on Twitter/X for alerts. I then to hooked it up with all the various cables one needs for the Zero, put Raspberry Pi OS onto the SD card and booted it up.

You can see how small the flight case is in the picture above!

Power

The next thing I needed to do was to get the Pi powered by the LiPo battery. A 3S LiPo gives approx 11.1V, which is obviously too much for the Pi which wants 5-5.2V. I grabbed hold of an adjustable buck converter that takes a high power feed and converts it (steps it down) to whatever voltage you need, courtesy of a small adjustment pot at the top. Here it is with the pot turned to approximately what I needed. I later adjusted it to 5.1V to give the Pi some headroom.

You’ll see that the output of the converter goes into an Enviro+ board that is plugged into the Raspberry Pi Zero 2 W. This is where things get a little convenient. I knew I wanted some kind of sensor display for the project, and I happened to have an Enviro+ already. With a little experimentation, I found that I could take the voltage out of the converter and “shove” it into the GND and 5V pins of the Enviro+ and this would power the Pi. Marvellous. There is a cheaper board – the plain Enviro – so you might want to consider that. I also realised that I could add a control button to the Enviro+ by soldering a button to the other GND and #4 (GPIO 4), so I did that as well. The nice thing about the Enviro is that it breaks out “just enough” pins to make it easy to add things on. Those I2C (SDA/SCL) pins are just begging for more sensors – I don’t have any more room in the case, though!

Fuses and switches

I added a fuse (and I forget what rating, but it was fairly scientifically determined) and the toggle switch to allow me to just shut off the power if I wanted, and also protect the battery from any backflow.

Screen

I had a screen hanging around – a 5 inch touch screen from Waveshare. This one was ideal because a) the Pi didn’t directly mount onto it like some others and b) all the relevant connectors were on the right hand side – in this case, USB for the touch screen (and power) and an HDMI input. I knew somewhere I’d seen a DIY ribbon cable for the HDMI and so I had a look on The Pi Hut and found a right-angled mini HDMI plug to plug into the Zero and then a straight HDMI plug for the screen input. I bought a ribbon cable which turned out to be just right and connected that up as well.

You can see the cable assembly above on the right hand side. You’ll notice a small USB cable going from the Pi to the screen – this is for the touch screen and to power the screen – fortunately just the one port does both.

Fixing the screen to the case

Attaching the screen to the top of the case was an interesting challenge. Ideally, I decided, I didn’t want to drill the lid – that way it would be fairly weather-resistant. I tried glue, I tried double-sided tape, I thought about 3D printing some brackets… None of the ideas really warranted further exploration. The back of the screen (as you will see below) wasn’t flat, either, so I had that to contend with. Unfortunately, both the glue and the tape were not resistant to the little bit of heat generated by the screen, so the screen just fell off after about half an hour!

Eventually, I “bit the bullet” and decided to drill the lid, using M2.5 spacers to bring the lid slightly forward. It was much more secure that way!

Keyboard input

At one stage in the past, I was collecting portable keyboards like there was no tomorrow. I had…

  • a Rii mini 2.4Ghz keyboard with touchpad on the side
  • a folding Bluetooth keyboard
  • a larger Rii bluetooth keyboard with touchpad at the top
  • and a slim, foldable Bluetooth keyboard.

Here’s a picture of three of them:

And then my life got complicated. The folding one on the left was perfect size-wise to fit in the case and it would give me an almost full-sized keyboard. The one you can see all of on the right was smaller, but has a grid layout with small keys, making it less than ideal for doing a lot of typing on. The thin one at the top was just too long to really make it work, so was discarded.

I decided I’d try both of the other two. The foldable keyboard was, as I said, just the right size to fit in the case… until I added the spacers to the back of the screen and then the darn thing wouldn’t close. I persevered with it, though, as I reasoned I could fix it to the outside of the case with a bit of 3D printing. However, I found that the Bluetooth connection was very unstable. Plus, I couldn’t get it to automatically pair, so I’d have to use the not-exactly-accurate touch screen to connect each time. No good, really.

I then thought I’d try the other one, the mini keyboard – it has a 2.4Ghz dongle, so the next thing I needed was another USB port. I made do to start with – I bought a USB splitter cable which allowed me to have an extra USB port. This did work… sort of… However, the trackpad was sporadic and unsteady, moving the mouse pointer almost randomly. I thought that, as it was quite old, that I’d probably damaged the keyboard at some point.

I was left with buying a new one, but do I go for Bluetooth or 2.4GHz? I settled for another 2.4GHz one in the end, a slightly newer model of the faulty one, as I thought I’d likely not have much luck with Bluetooth again.

To my delight, when it arrived from eBay, it worked marvellously. The USB splitter cable, though, just took up too much room. So, I bought a rotatable USB hub which was as small as I could get, which plugged into the little pre-existing microUSB shim.

Finally, it all came together.

Complete mini cyberdeck

And with the last component in place, the hub (pointed at by my wounded finger), I had my mini cyberdeck project completed!

Software

First of all, I want to eventually try some pen testing with the cyberdeck, so I burned another SD card with Kali Linux on it. That’s for another blog, though. On the Raspberry Pi OS SD card, I grabbed the Pimoroni Enviro code and hacked it about to allow me to switch between modes – one mode is the standard display of all the stats from the Enviro+ from Pimoroni. The other mode shows stats on the CPU, memory and disk usage. I also added the IP address to the standard Enviro script as this comes in handy occasionally to be able to ssh into the Pi. You can find the code here on GitHub.

That’s all, folks

The project is as complete as it’s going to get, I think, and I’m very pleased with the result! Feel free to share your own cyberdeck build links in the comments below! 🙂

 

Portable temperature, humidity and pressure sensor using a Raspberry Pi Pico W

Components for this Raspberry Pi project

Hi everyone. It’s been a little while! I’ve been horribly busy with various things, including work, so it’s been difficult to keep up with blogging. I have been posting Pi stuff over on Twitter/X (how I hate that new name!) so if you follow me there, you’ll see I’m still active in the community.

The project

Today, I’d like to show you a project I put together over the weekend of 19th-20th August 2023. I decided I wanted to create a temperature sensor, but a portable, battery-powered one.

The components

I went shopping in the Pimoroni sale and bought the following components:

I chose the LiPo Amigo Pro because I wanted the functionality of it being able to charge and supply power to the Pico at the same time. It means I have the choice between plugging it in or leaving it portable.

Putting it together… Bit by bit…

With the compilation of components laid out, I mentally worked out what I wanted to do.

First of all, I knew that I would need to create a kind of “sandwich” with the Display Pack, the Pico Proto and the Pico W. It was therefore vitally important to work out what to solder, and in what order.

The first thing to do was to put it together “dry” and make sure it would all work together, and that I had the Proto on the right way up! Then, I soldered the BME sensor to the Pico Proto.

As you can see in my slightly-blurred photos (!), I bridged between the 3v3 pin and a vertical rail. This was just in case I needed to add anything else that needed power. As it turned out, I didn’t need this after all, but I’m glad I did anyway. As you can see, the wire wrap split when I soldered it, so I used a pair of tweezers to close it again. Not totally successful, but again, a good idea. You’ll see that I used pins 8 and 9 on the Pico for the I2C connections of the BME. In the event, this was a mistake because the Pico Display Pack uses one of the pins for the RGB LED. Never mind!

I dry-assembled it again and realised that if I used the standard pin headers in the project, because of the soldering of the pins through everything, I’d come up a little short. So, I dug out some extended headers from my parts box and soldered those to the Pico instead.

This gave me enough length to go through the Pico Proto and into the Pico Display Pack with solder in between. I did have to trim all the pins to length, though. I took about half a centimetre off of each pin with a pair of side cutters.

I had looked up which pins I needed to solder the JST lead wires to – VSYS and GND. This sends the battery power directly into the Pico, which can take between 1.8V and 5.5V. The battery pack has a nominal voltage of 3.7V, so that’s bang in the middle. The Pico takes care of converting that into the appropriate voltage for its components. I soldered the wires to the Proto board as well and then set about assembling the sandwich again.

As you can see, there is a fair amount of space for the wires. I think this was before I snipped the pins down to size. The finished article has less space, but not so little as to squash the wires or ground anything out.

I then realised that by doing that, it was impossible to tell if the Pico was working or not because I hadn’t programmed it to do anything! I quickly knocked up an LED blink script in MicroPython using the Pimoroni firmware for the Pico W. To my delight, as you can see above if you look closely, the LED started blinking when powered from the battery. Marvellous! I also added a sensor read-and-print. To my dismay, the sensor failed to initialise! 🙁 After an inspection using a multimeter, I worked out that everything was wired correctly. So what was the problem? It turns out there was a tiny sliver of wire between SDA and SCL on the Proto. I took a big breath and blew, and off it went into the distance. I ran the script again and it worked!

I programmed the full code at this point, but more on that later.

The final thing to do was to assemble everything into a nice, near package. Out came the trusty glue gun. First of all, I glued the LiPo Amigo Pro to the bottom of the battery with the USB-C port on the end. Then, I glued everything else together as you can see below:

And, yes, I did clear the glue strands off afterwards!

The code

First things first: Thank you to whoever at Pimoroni (and I think it was Phil “Gadgetoid” Howard) who did the code for the Pico Display Pack and the BME280 sensor library. I stood heavily on the existing code, and I don’t mind admitting that!

I programmed reading the BME280 sensor then fed the readings into the graphing function, slightly adapted to cope with the multiple sets of data. I also coded in a button handler so that I could switch between temperature, humidity and pressure. You can see the results in the demo video below.

The actual code can be found on GitHub. You’ll see it’s quite simple, but I’m new to MicroPython (I usually use CircuitPython) and it’s all I could manage. You see from the demo video that the graphing of the humidity and pressure isn’t quite right – it’s a maths problem and I haven’t got time to fix it at the moment. If you fancy giving me a hand, leave a comment or a pull request on GitHub! 🙂

Update – 22nd August 2023 – Have used this excellent tutorial from Core Electronics in Australia to use MQTT message publishing and Adafruit IO to create pretty graphs out of the data feeds as you can see below! The code on GitHub is up-to-date. You just need to populate your own secrets.py file! Give me a shout if you get stuck with that bit!

Demo video

Here’s a quick video I shot showing the different graphs so you can see the issues I had.

Conclusion

That’s all, folks! I enjoyed doing this project – it gave me something to do on a boring Saturday and Sunday morning. Further work is to hook up the Pico W to an IoT service (or even via MQTT to a local broker!) so I can remotely see the readings, but that’s a project for another day!

Pi Wars 2024 launches – apply by 1st October!

Pi Wars is an international, challenge-based robotics competition in which teams build Raspberry Pi-controlled robots and then compete in various non-destructive challenges to earn points. The competition takes place over a single weekend and at the end of each day, prizes, medals and trophies are awarded to those competing.

We have just announced the 2024 competition will be held in Cambridge, UK on the weekend of 20th-21st April. The application deadline is 1st October, so get your thinking caps on! 🙂

All the information you need is over on piwars.org. If you want to get a flavour of past competitions and see the announcement of the 2024 event, take a look at the video below! If you’d like to hear us talking about the competition, we were recently interviewed by the Tom’s Hardware Pi Cast!