MilikMilik

Turn an ESP32 Into a Living Companion: From WiFi Pets to AI Buddies

Turn an ESP32 Into a Living Companion: From WiFi Pets to AI Buddies
Interest|Open-Source Hardware

What These ESP32 Companions Are and Why They’re Fun

An ESP32 digital pet or DIY AI companion is an open-source microcontroller project that turns a low-cost ESP32-based board into an interactive character that reacts to WiFi signals, conversations, and physical input, giving you a playful, programmable companion instead of a static gadget. If that sounds like something a curious friend would enjoy, you are the target audience here. You do not need to be an embedded engineer, but you should be comfortable installing tools on your computer and following build instructions. The real caveat: both builds involve real wireless networking and batteries, so treat them as small computers, not toys you can ignore. In return, you get two very different WiFi-powered projects—Grimwalker, a pocket ESP32 pet that “feeds” on nearby network traffic, and AI Buddy, a kid-friendly chatbot built on the DFRobot UNIHIKER K10 board with an expressive screen and voice interaction.

Turn an ESP32 Into a Living Companion: From WiFi Pets to AI Buddies

Project 1: Turn a $5 ESP32 Into the Grimwalker WiFi Pet

Grimwalker is a firmware project that transforms a $5 ESP32 dev board into a digital pet that survives by eating WiFi probe requests, WPA handshakes, BLE advertisements, and traffic to its captive portal. The more network activity around it, the stronger it grows; if you ignore it, it devolves and its occult-themed sprite corrodes. Under the hood, the MIT-licensed firmware boots into an access point called “GRIMWALKER”, mounts SPIFFS, restores pet state from RTC memory so it survives deep sleep, and starts FreeRTOS tasks for packet sniffing, pet maintenance, and a DNS server. All control happens through a browser at http://192.168.4.1, so there is no mobile app to maintain. This makes Grimwalker a good first open-source microcontroller project if you want to learn about WiFi sniffer modes and web UIs while keeping things playful instead of purely technical.

  1. Install PlatformIO, then create a new ESP32 project using the espressif32@6.9.0 platform and the esp32dev board definition as documented in the Grimwalker repository.
  2. Add the required dependencies in platformio.ini: AsyncTCP from github.com/me-no-dev/AsyncTCP, ESPAsyncWebServer from github.com/me-no-dev/ESPAsyncWebServer, and ArduinoJson version 6.21.6 or newer.
  3. Clone or download the Grimwalker firmware source code into your PlatformIO project folder, keeping the SPIFFS data directory structure from the repository.
  4. Connect your ESP32 dev board to your computer over USB and confirm PlatformIO can detect and upload sketches to it.
  5. Upload the SPIFFS filesystem using the command pio run --target uploadfs so the web UI and pet assets are stored on the board.
  6. Upload the firmware itself with pio run --target upload to flash the application that runs the Grimwalker pet.
  7. Power-cycle the ESP32, find the GRIMWALKER WiFi access point on your phone or laptop, connect to it, and open http://192.168.4.1 to meet your pet and start interacting with nearby networks.

The sequence above matters: if you forget to upload SPIFFS before the firmware, the web UI will be missing and Grimwalker will feel broken even though the core code is running. Once everything is in place, you will see the pet’s stats—hunger, level, corrosion, entropy, corruption, and experience—evolve based on what it “eats”. According to the project author, “Starve it and it devolves. Feed it deauth frames and it corrodes. The more you interact with nearby networks, the stronger your daedroth grows.” Because the code is fully open and MIT-licensed, you can customize how fast hunger decays, how the pixel-art sprite glitches, or even swap the occult theme for something more family friendly.

Project 2: Build a Kid-Friendly AI Buddy on UNIHIKER K10

Where Grimwalker turns WiFi into food, AI Buddy turns WiFi into conversation. It is an open-source AI chatbot built around the DFRobot UNIHIKER K10 and the Xiaozhi Framework, designed as a pocket-sized animal companion kids can talk to, learn with, and customize. At the heart of AI Buddy is the UNIHIKER K10, an ESP32-S3-powered development board that already includes a 2.8" color LCD, 2 MP camera, dual microphones, 2 W speaker, sensors, RGB LEDs, microSD slot, USB Type-C, and a Li-Po battery connector. This means you do not need to wire separate displays or audio modules; you can focus on enclosure design and conversational behavior. The project combines 3D printing, electronics, embedded programming, PCB design, and AI into a single build, making it ideal for parents and educators who want a DIY AI companion that stays fully open-source rather than locked behind proprietary apps.

Before you start, gather the basics: the UNIHIKER K10 board, a 3D printer for the animal enclosure, and simple tools like a precision screwdriver kit. The improved AI Buddy design uses brand-new interchangeable animal shells modeled in Fusion 360, along with a custom Battery Management System (BMS) PCB for safe charging and longer battery life. A key limitation of the UNIHIKER K10 is that its 2-pin Li-Po battery connector does not include onboard charging or battery protection circuits. To address that, the project adds a compact BMS based on the IP5306 power management IC, with USB Type-C charging, battery protection, an on-board power button, and dual JST-PH connectors for battery input and power output to the UNIHIKER. The result is a portable DIY AI companion that can hold natural voice conversations, show animated facial expressions on the built-in screen, and be reshaped from bunny to cat to giraffe just by swapping the enclosure.

How the Build Flows and Where People Trip Up

Both projects reward you for following a clear build flow instead of jumping around. For AI Buddy, you start physically: 3D print the enclosure parts using standard PLA settings on a printer such as the Bambu Lab P1S, with a 0.4 mm nozzle and 0.2 mm layer height. Once printed, assemble the front housing. You place two button extensions into their side slots, then carefully drop the UNIHIKER K10 board in from the rear, aligning the USB Type-C port with the top opening and making sure the onboard buttons line up with those extensions. Gently pressing each extension should actuate the matching button on the board. Only after the mechanical fit is right do you wire in the custom BMS PCB: connect the battery to the Battery IN JST-PH connector and the UNIHIKER to the Battery OUT connector so you get safe charging and protection without extra soldering during final assembly. Neglecting the battery management side is the main gotcha—without it, you lose safe charging and risk damaging your Li-Po pack over time.

Why These WiFi-Powered Companions Are Worth Building

When you are done, Grimwalker feels like a tiny creature living inside a budget ESP32 board, feeding on WiFi probe requests and growing or corroding with your network habits. AI Buddy, meanwhile, becomes a pocket AI friend that kids can chat with, customize, and learn from, backed by the UNIHIKER K10’s built-in display, audio, and sensors. Both are WiFi-powered projects that show how inexpensive microcontrollers can drive surprisingly engaging interactive experiences using open-source principles instead of proprietary ecosystems. Because Grimwalker’s firmware is MIT-licensed and AI Buddy’s hardware and software are fully open-source and completely DIY and customizable, you are free to scale and hack them—change behaviors, redraw sprites, add sensors, or even connect them to other services. The takeaway: they are absolutely worth building if you want companions that you control end to end. Watch your battery safety, follow the upload order, and treat their WiFi presence with the same care you would any other connected device.

Milik earns a commission when you shop through our links, at no extra cost to you. Editorial content is independently selected by our team.

You May Also Like

Comments
Say something...
No comments yet. Be the first to share your thoughts!