GPIO Highjacker.
Don't Panic!
This guide is 99% images.
Index.
- GPIO Highjacker Assembly.
- GPIO Highjacker Install.
- Connecting Devices.
- Raspberry Pi 5 Setup.
- Notes on the Raspberry Pi 4.
- Pin Table.
GPIO Highjacker Assembly.
The GPIO Highjacker requires soldering to a 40-Pin header extender. In my application, I use the extender that is packaged with the official Raspberry Pi M.2 HAT.
I start off by installing the 20-Pin Header, but you don't have to if you don't want to. You can have it with the pins going up, down, or to the side.
Flux is your friend.
The label text should be facing upwards with the Hexaxes logo and version number facing downwards.
The PCB in the image below is obviously for the Australian market.
Isopropyl alcohol is great for cleaning off the left over flux.
GPIO Highjacker Install.
Pin 1 is indicated by the square solder pad. Ensure the extender is pressed all the way down.
Connecting Devices.
There is no polarity or over-voltage protection.
In case you missed the above notice : There is no polarity or over-voltage protection.
There will (probably) be magic smoke if you get it wrong.
It should be fairly obvious what goes where, but just on the off-chance that it isn't;
UART0-4
- Tx - Connect to Rx on your device.
- Rx - Connect to Tx on your device.
It should be noted that UART1 is generally not enabled as the related GPIO are allocated to the EEPROMs on HATs. However, it is possible to disable the pins for the EEPROM and enable UART1 by editing config.txt.
i2c
- Da - Data.
- Cl - Clock.
GND
- Pin 1 - Ground.
- Pin 2 - Ground.
3.3v
- Pin 1 - 3.3v.
- Pin 2 - 3.3v.
5v
- Pin 1 - 5v.
- Pin 2 - 5v.
IN
- + Positive 5v Input, from a DC/DC Converter or similar.
- - Negative GND Input, from a DC/DC Converter or similar.
Raspberry Pi 5 Setup.
This is the easy bit. From the command line;
Update your Pi.
sudo apt update && sudo apt upgrade
Load the Raspberry Pi Software Configuration Tool
sudo raspi-config
Enable i2c, disable serial console and enable the hardware serial port. Then reboot.
After logging back in following the reboot:
sudo nano /boot/firmware/config.txt
Scroll to the bottom of the file and below the [all] section paste in:
# Disable HAT EEPROM on GPIO0/1 so they can be repurposed
#dtoverlay=i2c0
# free primary UART from BT/console
dtoverlay=disable-bt
enable_uart=1
# map the UARTs to your chosen header GPIOs
dtoverlay=uart0
#dtoverlay=uart1
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
Ctrl-x and then y to save. Then reboot.
You will now have UART0, UART2, UART3, UART4 & i2c available on the GPIO Highjacker.
Verify everything with:
pinctrl get 1-40
Notes On The Raspberry Pi 4.
The Raspberry Pi 4 does some funky stuff with the pin controls. The above 'works', but not in the way you might expect. In short, you'll only get three UARTs and i2c, plus the power pins of course. I'll let you figure it out by yourselves, it will be fun. It was for me.
Pin Table.
I/O | Function | GPIO | PIN |
---|---|---|---|
UART0 | Tx | 14 | 8 |
Rx | 15 | 10 | |
UART1 | Tx | 0 | 27 |
Rx | 1 | 28 | |
UART2 | Tx | 4 | 7 |
Rx | 5 | 29 | |
UART3 | Tx | 8 | 24 |
Rx | 9 | 21 | |
UART4 | Tx | 12 | 32 |
Rx | 13 | 33 | |
I2C | Da | 2 | 3 |
Cl | 3 | 5 | |
5V | 2 | ||
3.3V | 1 | ||
GND | 6 |