Product Specifications

General

Type: Raspberry Pi pHAT (partially Hardware Attached on Top)
Architecture: For Raspberry Pi
Software specifications: Depends on OS (operating system) being used

Hardware Features

1. Fully compatible with the standard Raspberry Pi 1 Model A+, Raspberry Pi 3B/3B+, and Raspberry Pi Zero V1.3/W/WH.
2. Standard Raspberry Pi GPIO (General Pinout Input Output) pinout.
3. Features: LED (Light Emitting Diode) array for GPIO pins 17/18/27/22/25/12/13/19, 3 on-board programmable buttons (GPIO pins 21/19/20 need to be configured as an input pull up) and an on-board active buzzer (GPIO pin 26).
4. Utilises a micro-USB socket for power and USB (Universal Serial Bus) to UART (Universal Asynchronous Receiver/Transmitter) communication.
5. Involves USB serial, facilitated by a CH340 driver.
6. External modules and sensors can still be used with this pHAT on top of a Raspberry Pi.
7. Consists of additional power and data pins.

Power

Input/Operating Voltage (from USB connector): +4.8 - +5.2 volts
DC Current for the 5v pin (maximum continuous): depends on the USB input

Weight and Size Dimensions

Product Weight: 11g
Product Size (L x W x H): 65.15 x 30.61 mm

Product Review

To me, when using this pHAT, I think that it is a really good addition to a Raspberry Pi, especially for the newer makers, since it includes features such as:
1. Compatibility on most Raspberry Pi boards, as it can be placed on the board even with additional accessories on a Pi (heatsinks, fans etc) added on.
2. Its small and compact size, with many different functions on-board and a ready-to-use driver for Windows, Mac or Linux.
3. The additional power and data pins, accompanied by clear, contrasting labels. The white labels makes the writing easier to see, from the purple PCB.
4. The 4 main mounting holes, which can be mounted onto some Raspberry Pi cases for your convenience.
5. The indicating LEDs for RX (Receive) and TX (Transmit) of your Pi, and the 8 programmable LEDs for your own preference of what you want to do with them.
6. The active buzzer and the 3 programmable push buttons, as it saves you wiring of separate components to the Pi externally, when it is all mounted onto a single pHAT.

Python Maker pHAT Sample Code

from gpiozero import LED, Button, Buzzer
from time import sleep
import os

LED1 = LED(17)
LED2 = LED(18)
LED3 = LED(27)
LED4 = LED(22)
LED5 = LED(25)
LED6 = LED(12)
LED7 = LED(13)
LED8 = LED(19)

SW1 = Button(21)
SW2 = Button(16)
SW3 = Button(20)

BUZZER = Buzzer(26)

NONE = 0
DECREASE = 1
INCREASE = 2
ALL_OFF = 9
ALL_ON = 10

def beep(times, sec):
  for x in range(times):
    BUZZER.on()
    sleep(sec)
    BUZZER.off()
    sleep(sec)

def led(ledNumber):
  if ledNumber == 1:
    LED1.on()
  else:
    LED1.off()

  if ledNumber == 2:
    LED2.on()
  else:
    LED2.off()

  if ledNumber == 3:
    LED3.on()
  else:
    LED3.off()

  if ledNumber == 4:
    LED4.on()
  else:
    LED4.off()

  if ledNumber == 5:
    LED5.on()
  else:
    LED5.off()

  if ledNumber == 6:
    LED6.on()
  else:
    LED6.off()

  if ledNumber == 7:
    LED7.on()
  else:
    LED7.off()

  if ledNumber == 8:
    LED8.on()
  else:
    LED8.off()

  if ledNumber == ALL_OFF:
    LED1.off()
    LED2.off()
    LED3.off()
    LED4.off()
    LED5.off()
    LED6.off()
    LED7.off()
    LED8.off()
  elif ledNumber == ALL_ON:
    LED1.on()
    LED2.on()
    LED3.on()
    LED4.on()
    LED5.on()
    LED6.on()
    LED7.on()
    LED8.on()

mode = NONE
ledPosition = 0

led(ALL_ON)
beep(1, 0.1)
led(ALL_OFF)

try:
  while True:
    if SW1.is_pressed and mode != DECREASE:
      beep(2, 0.07)
      mode = DECREASE

    elif SW2.is_pressed and SW3.is_pressed:
      sleep(0.5)
      for loop in range(3):
        led(ALL_ON)
        BUZZER.on()
        sleep(0.2)
        led(ALL_OFF)
        BUZZER.off()
        sleep(0.2)
      sleep(1)
      os.system("sudo shutdown -h now")
      
    elif SW2.is_pressed and mode != INCREASE:
      beep(2, 0.07)
      mode = INCREASE

    elif SW3.is_pressed and mode != NONE:
      beep(1, 0.07)
      mode = NONE

    if mode == INCREASE:
      if ledPosition < 8:
        ledPosition = ledPosition + 1
      else:
        ledPosition = 0

    elif mode == DECREASE:
      if ledPosition > 0:
 ledPosition...
Read more »