DEV Community


Posted on • Updated on

How I built my Pwnagotchi

What is Pwnagotchi?

Pwnagotchi is an A2C-based “AI” powered by bettercap that learns from its surrounding WiFi environment in order to maximize the crackable WPA key material it captures (either through passive sniffing or by performing deauthentication and association attacks). This material is collected on disk as PCAP files containing any form of crackable handshake supported by hashcat, including full and half WPA handshakes as well as PMKIDs.

Building a Pwnagotchi for Dummies - a reference guide for the rest of us :-)

When I got word of pwnagotchi from infosec twitter, I felt very excited and had to have one of my own. I had my own tamagotchis as a teen in the 90's and this seemed like an ideal cute little project to learn about raspberry pi, WiFi security, 3D printing, python, networking, and another community. I'm really fond of this little gadget!

Disclaimer: Please be aware of your local laws when using your Pwnagotchi.

Materials Used:

  • Inky Phat eInk Display

  • Raspberry Pi Zero WH

  • SD card - I just got a generic 32GB one from local Argos as the one from Amazon was a dud

  • Battery Pack - I picked up a Merkury MI-PB003 from TK Maxx

  • Some good sturdy usb data cables - from Amazon

Installation and setup steps:

  • Insert the screen onto the raspberry pi board. (It's ok if a millimeter of the pins are still showing between the two components.)
  • Download BalenaEtcher and Install
  • Download latest pwnagotchi release image and unzip
  • Insert SD Card
  • Open up BalenaEtcher and flash the .img file to your SD Card
  • While your sd card is still in your pc add a config.yml to the boot partition of the SD card.

Example minimal config yml might look like this:

  lang: en
  name: phattypatty
      enabled: true
      install: true
      interval: 1
      enabled: true
        - HomeWifi
      report: true
  advertise: true
  deauth: false
    color: fastAndFurious
    enabled: true
    type: inky
      address: ""
      enabled: true
      origin: ~
      port: 8080
  fps: 0.0

(modified from default yml at : here)

Note: You should use a site such as ymllint to validate the file formating is correct.

  • After you've added your YAML file you can safely eject SD card, insert into the Pi and plug in the power and give it a test.

Pre Case Pwnagotchi

Pre Case Pwnagotchi

Adding a Case:

3D printed, pattern available from Thingiverse
I picked the case with the carabiner loop.

Finished print job

3D Printed Case

General usage:

The USB port of the far left is used for connecting to external power
The other usb port is for tethering to your PC for connection sharing or headless mode with the Web UI if you don't have an eink. To tether the gadget to your pc you need to run a connection sharing script (details to be updated here)

Finished Product:

Add a bit of flair!
Add a bit of flair


If I've missed anything please let me know.

Discussion (7)

gunt profile image

Hi Ciara,

Your phattypatty - Pwnagotchi looks awesome.
Did you use a 3d printing service? if yes, could you share which one?

Thank you.

00xciara profile image
Ciara Author

Hi gunt, thanks for your kind words :-)

I printed the case using the 3D printing facility in my local hackerspace TOG.

joshuamorris profile image
Joshua Morris

Check out my store on Tindie for a 3D printed pwngotchi case

ak4722683822 profile image
Ak47 • Edited

Hello there
I really appreciate your effort I'm completely noob and I finally found something really help but it's seems like something missing,

to add config . Yml file to where exactly

00xciara profile image
Ciara Author

You just add it to your SD Card
E.g. if your SD card is on D:\ Drive just drop the file onto D:\

Hope that makes sense?

(I'll try and update with a screenshot later.)

ak4722683822 profile image
Ak47 • Edited

Yea but there two partion in sd card boot and other part, yes please update with screenshot it would be life saver thank you for everything ciara you are doing a good job i following you in twitter

Thread Thread
00xciara profile image
Ciara Author

Place the yml file into the sd card boot