Change GPIO of Blinkt! /PIM184 or Unicorn pHAT /PIM168 for use with WaveshareLCD


Unicorn FAT uses BCM18
waveshare LCD also (

BlinkIT uses BCM23 + BCM24

can i simply change the BCM of the pHATs with a little soldiering? Or are these some special BCM, like for PWM.

Dont know if PWM is possible on every PIN

These Pins are NC at the Waveshare: 3, 5, 7, 8, 10, 12, 13, 15, 16

Can i use both, LCD and BlinkIT or Unicorn on a Zero W?

My Idea is: It is possible with BlinkIT but not with Unicorn, am I right?
So is still hope the GPIO is configurable in python…


Blinkt! is bit-banged SPI effectively, it will run on any two pins you care to assign it. Although you will have to modify the Blinkt! library accordingly.

Unicorn pHAT is far more complicated- it requires either a (hardware) PWM pin, a (hardware) PCM pin or an SPI pin- supported pins are documented here: - again you would have to modify the library to switch to these pins.


Thank you for your answer,
you say

But if PWM1 is free Pin 33 / BCM 13 it is easy? Just change LED_PIN to 13
also it seems that Pin 12 BCM 18 (PWM0) is free at waveshare Display

i am little confused with different PIN/GbIO numbering on diffent sites


I should probably have said simply “more complicated.” Since Unicorn HAT restricts your pin choices, whereas you can run Blinkt! with a couple of arcade buttons standing in as IO pins and a really good memory of the protocol :D

Generally IO pins have two naming schemes; GPIO and BCM. GPIO are related to the physical position of pins, with two rows of 20 pins- one having all the odd numbers, and the other all the even. BCM refers to the internal Broadcom pin numbering, and doesn’t make much sense without that context.

You can use to translate between the two.

Then there’s also WiringPi pin numbering, to confuse things ;)