The PGA in PGA2040 stands for Pin Grid Array and was a pretty common integrated circuit package standard with lots of the big chip companies a few decades ago. It’s a robust standard in that it uses common 2.54 mm spacing (therefore suitable for common header pins) and can pack a lot of pins into a small area. It’s distinctly retro-looking and, with its PGA layout, the PGA2040 should catch the attention of those wanting to make vintage-looking boards and projects. We’d love to see a vintage operating system emulated with this board. It’s not just nostalgia, however: the PGA layout makes a lot of sense as it’s a small and mechanically strong board for your project ideas. Of course, you can also find all kinds of PGA standard prototyping boards, and all manner of PGA sockets out there to incorporate into your ideas. Whilst we are on aesthetics, although this board is tiny, close inspection reveals some beautiful silkscreen design and a very pretty approach to pin labelling.
Just like the Raspberry Pi Pico, the PGA2040 is firmware agnostic and can be happily programmed in MicroPython, C, or CircuitPython and, as such, there is a wealth of support and documentation out in the wild. Anything you’ve already created on a breadboard with a Pico is likely to work perfectly, as are established projects written by others with the PGA2040, albeit with its different hardware footprint. The observant will notice there’s no on-board USB port! To connect a USB, you only need to connect to four pins, plus one more momentarily. Brilliantly, all the pins for the USB are all along one side of the PGA2040, so you have the choice of adding just one row of headers rather than fully populating the entire board with header pins should you not want to. You may also want to create a project that doesn’t require a USB socket permanently connected, so we wanted to explore a non-header-pin approach to working with the board. For a hardware USB socket, we picked up a Pololu Micro-B Breakout Board, also stocked by Pimoroni, and soldered the pin headers to it to make it breadboard-compatible. We were then able to use our breadboard DuPont cables, together with some miniature claw-type test hooks, to connect up to the PGA2040.
Wiring it up is pretty straightforward, connecting the V-Bus, GND, and Data lines + and – on the PGA2040 to the same pins on the USB connector. As our PGA2040 had never been used before, we needed to connect it to a computer in BOOTSEL mode. On a standard Pico this is achieved by holding down the BOOTSEL button whilst connecting the Pico via USB. The BOOTSEL button on a Pico just connects the BOOTSEL pin to ground and, as such, you can emulate this by simply wiring the BOOTSEL pin on the PGA2040 to connect to ground on the USB connector whilst you plug in the device. Once it appears on your computer as a drive, you can disconnect that pin. When connected, opening the Thonny editor on our machine saw the PGA2040 recognised as already attached. The usual prompt to install the MicroPython firmware flashed up on screen and the ensuing installation process all ran perfectly. Within seconds we were up and running, with the REPL awaiting our commands.
If you are new to Pico, you might want to look through the many tutorials and examples we have had in previous issues of the magazine or, alternatively, you could work through the examples in the Raspberry Pi book Get Started with MicroPython on Raspberry Pi Pico, written by Gareth Halfacree and our very own Ben Everard.
Once you are up and running with some Pico knowledge, the PGA2040 is a great way for you to make your projects smaller and potentially with a vintage aesthetic.
Verdict
9/10
An excellent Pico-compatible product that is easy to use and makes tiny projects possible.