1 / 5
Raspberry Pi Pico W Home Assistant Keypad — image 1
1 / 5

Raspberry Pi Pico W Home Assistant Keypad

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

A Raspberry Pi Pico W Keypad case

Rating
5 / 5
Likes
59
Downloads
109
Makes
2
Views
2,155
Reviews
2

Updated at source:

Model information

Category
Electronics
License
Creative Commons — Attribution — Noncommercial

I wanted a keypad that could be used to set various scenes in home assistant, without requiring software on my laptop. The Pi Pico is secured by 2 M2 screws (and optionally some hot glue), and the lid snaps onto the body. I am using ESPHome to program the Pico

The case design is inspired by: https://www.partsnotincluded.com/diy-stream-deck-mini-macro-keyboard/#2023-05-31T21:20:53+00:00

 

Parts used:

1x Raspberry Pi Pico W: https://www.adafruit.com/product/5526

8x Relegendable Keycaps:  https://www.adafruit.com/product/5662

8x Keyswitches: https://www.adafruit.com/product/4954

4x Rubber feet: https://www.adafruit.com/product/550

2x M2x6mm screws to hold the Pico in

Wire, Solder, Etc

 

Example ESPHome YAML:

esphome:
  name: office-macropad
  friendly_name: office-macropad

rp2040: board: rpipicow framework: # Required until https://github.com/platformio/platform-raspberrypi/pull/36 is merged platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git

Enable logging

logger:

Enable Home Assistant API

api: encryption: key: "***"

ota: password: "***"

wifi: ssid: !secret wifi_ssid password: !secret wifi_password

Enable fallback hotspot in case wifi connection fails

ap: ssid: "Office-Macropad Fallback Hotspot" password: "6PEXOvXEvw65"

binary_sensor:

  • platform: gpio pin: number: 16 mode: INPUT_PULLUP inverted: True name: "button1" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 17 mode: INPUT_PULLUP inverted: True name: "button2" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 18 mode: INPUT_PULLUP inverted: True name: "button3" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 19 mode: INPUT_PULLUP inverted: True name: "button4" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 20 mode: INPUT_PULLUP inverted: True name: "button5" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 21 mode: INPUT_PULLUP inverted: True name: "button6" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 22 mode: INPUT_PULLUP inverted: True name: "button7" filters:

    • delayed_on: 10ms
  • platform: gpio pin: number: 26 mode: INPUT_PULLUP inverted: True name: "button8" filters:

    • delayed_on: 10ms

 

 

Tags