Want to build your own DeskHog but found the official project page lacking in instructions? I did too. Here’s the step-by-step guide I wish I had when I started—complete with photos, links, and tips.
Hardware & Files You’ll Need
From the project README:
- ESP32‑S3 Reverse TFT Feather (Adafruit 5691)
- (Optional) PKCell 552035 LiPo battery (350 mAh) Adafruit
- 3D-printed enclosure, print: 3mf file


Printing the Case
I downloaded the .3mf file and imported it into my 3D printer software. The slicer recommended adding supports, which I did.
I used PLA+ at 0.2mm layer height
Here is what the print looked like:

The print includes 3 pieces:
- Bottom case
- Top case
- Keypad
After printing, I removed the supports and cleaned things up with a knife and sandpaper. The hardest part was getting the keypad to fit cleanly into the top case.
Here’s the final result after cleanup.

Assembling the Hardware
Attach the LiPo battery to the board.

Place both inside the bottom case.

Snap the top case on.

Connect the DeskHog to your computer via USB-C.
Setting Up the Firmware
1. Clone the repo:
git clone https://github.com/PostHog/DeskHog.git
cd DeskHog
2. Install the UV Package Manager (if you don’t have it)
I’m using UV package manager to make this process easier. If you don’t have uv install, here is how:
Install uv
curl -Ls https://astral.sh/uv/install.sh | sh
Or use Homebrew (macOS):
brew install astral-sh/uv/uv
Make sure it’s working:
uv --version
3. Create a Virtual Environment
uv venv
source .venv/bin/activate # macOS/Linux
python -m ensurepip
This creates and activates a fast Python virtual environment.
4. Install PlatformIO, which the project uses to build and flash the firmware:
uv pip install platformio
5. Flash the Firmware
Make sure you’re in the root project folder (where platformio.ini lives), then:
platformio run --target upload
This builds and uploads the firmware using USB (with Auto-DFU support).
6. Power and charge:
To power off: Hold the ● + ▼ buttons.
To power on: Press the reset pad.
Charging is automatic when plugged into USB-C.
What It Does Out of the Box
Once booted, you’ll see:
- ProvisioningCard: Shows a QR code for Wi‑Fi setup
- InsightCard: Displays PostHog data
- FriendCard: A sweet ‘encouragement’ screen featuring Max the hedgehog
Connecting to Wi-Fi
Once powered on, the DeskHog shows a QR code for Wi-Fi setup. Scan it to connect to your network—just pick your SSID and enter the password.

From here you can select your network and enter your password. Once connected you’ll see 2 screens. A screen with: WiFi, IP, Signal, Version and API. And a FriendCard

Add PostHog Insights
Go to the IP address displayed on your DeskHog.

You’ll see the configuration page.

Enter your PostHog Team ID (or Project ID) and a read-only API key.
Add the Insights you want to display.
And you’re done! You now have your own fully functional DeskHog.
Final Thoughts
This was a fun weekend project. If you’re already using PostHog, it’s a nice little dashboard for your desk—and a conversation starter too.