Skip to the content
PCBKitNew board
2 layers63.5 × 53.5 mmEbeep, the printed circuit board in 3D

a custom 'beeper' with an eInk display and 3 mechanical switches

Size
63.5 × 53.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
24
Pads
58
Tracks, vias
79, 1
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
1 Jun 2026
Updated
1 Nov 2026

Overview

Ebeep is an open-source printed circuit board by Av1zi, from the Av1zi/Ebeep repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 63.5 × 53.5 mm with 14 parts on 24 nets, routed with 79 tracks and 1 via.

Its parts include 2 capacitors and 2 resistors. It belongs with the lEDs and displays and keyboards and input boards and the ESP32 and RISC-V boards of this library.

README

README.md

Ebeep

Platform Framework License

Two handheld wireless devices that can message each other and play games, built as a personal gift.

E for eInk. Beep for beeper


Project Showcase

3D render

https://github.com/user-attachments/assets/bd9d271b-df7e-4e4d-8fb2-d193bfb4d486

Walkthrough

https://github.com/user-attachments/assets/030f00d7-5b2a-4592-a6ae-74eca7de7010


Features

  • Messaging - 3-button scrollable alphabet, double-space to send
  • Games - TicTacToe, Connect 4, and Blackjack
  • E-Ink display - 2.9" screen
  • Battery powered - USB-C charging
  • Deep sleep - sleeps when you're not using it to save battery
  • Works anywhere with WiFi - the two devices talk over MQTT, so they don't need to be near each other

Hardware

ComponentPart
MicrocontrollerSeeed XIAO ESP32-C6
DisplayWeAct 2.9" eInk
Battery3.7V LiPo, 3000mAh
Buttons3× low profile mechanical keyboard switches
Case~76g PLA, 4× M4 heated inserts, 4× M4×25 screws
Other2× 200kΩ resistors, 5×7cm perfboard

How It Works

Communication

Both devices connect to WiFi and talk through an MQTT broker (I used the free HiveMQ Cloud tier). Each device listens on its own topic and publishes to the other one's.

WiFi Setup

When the device wakes up and none of its known networks are in range, it opens a hotspot (Ebeep_1_config or Ebeep_2_config). Connect to it from any phone/pc and a setup page pops up automatically, there you will have to enter the wifi details and press done. (to save battery the hotspot will close by itself after 5 minutes) The device remembers up to 5 networks and picks whichever one is in range.

Walkthrough:

https://github.com/user-attachments/assets/75ae72dc-5833-4c83-8c6c-1c9a049145ae

Typing Interface

  • Left / Right - scroll through characters (SPC A B C ... Z . ! ? <3)
  • Select - confirm the current character
  • Two spaces in a row - send the message
  • DEL on empty - exit compose

Games

  • TicTacToe - classic 3×3. Whoever starts the match first goes first.
  • Connect 4 - 7×6 grid, pieces drop with gravity.
  • Blackjack - single player (the only one that doesn't need the other device). Dealer stands on soft 17.

Power Management

The beeper goes to sleep if you don't use it for 10 minutes (you can change this in config.h). While asleep it disconnects from WiFi and the MQTT server and basically shuts off to save battery.

Wake it by pressing the left or middle button. On wake-up it looks for a network it remembers, and if it can't find one it starts its own hotspot so you can set up WiFi again (see WiFi Setup).


PCB

A custom PCB has been fully designed and routed in KiCad to replace the hand-wired perfboard build. It's not ordered or fabricated yet, so the build instructions below are still perfboard based. The PCB is a planned upgrade for a future revision.

[!WARNING] The PCB has not been fitted or tested against the case files in this repo. If you order it, expect to redesign the case (or at least the mounting points) to fit. It is not a drop-in replacement yet.

PCB layout

Building Your Own

Print Settings

I used the printer default settings, with tree supports. I have a multi-nozzle printer so I used a support interface layer for a cleaner surface, but it's not necessary.

Electrical Diagram

Ebeep wiring diagram

Building Instructions

  1. 3D print the files from the CAD/STL folder
  2. Solder everything onto the perfboard following the electrical diagram above
  3. Flash the code (see Setting Up the Code below) and test before closing the case
  4. Fit the components into the case and put double-sided tape under the battery to hold it
  5. Press in the 4× M4 heated inserts, then screw the case shut with the M4 screws

Setting Up the Code

  1. In include/config.h change DEVICE_NUM to 1 on one device and 2 on the other
  2. Copy include/secret.example.h to include/secret.h and fill in your MQTT broker credentials (secret.h is gitignored so it stays private)
  3. Upload via PlatformIO. The huge_app.csv partition scheme is required
  4. On first boot, connect to the config hotspot (Ebeep_1_config or Ebeep_2_config) and enter your WiFi credentials

License

GPL 3.0 - Do whatever you want with it, just keep it open source as well.

Parts

14
QtyValueFootprintReferences
3SW_PushPCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V2_1.00uBTN_LEFT, BTN_RIGHT, BTN_SELECT
2100nFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1, C2
2200KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2
1Conn_01x02Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJST-PH-2pin1
1WeAct 2.9" ePaperConnector_Molex:Molex_PicoBlade_53048-0810_1x08_P1.25mm_HorizontalEpaper
1XIAO-ESP32-C6-SMDSeeed_Studio_XIAO_Series:XIAO-ESP32-C6-SMDESP32

The 10 most common of 14 parts.

Questions

How big is the Ebeep PCB?

It measures 63.5 × 53.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ebeep use?

14 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ebeep KiCad files?

From the Av1zi/Ebeep repository on GitHub, at the commit this page was made from: the board is PCB/Ebeep.kicad_pcb and its schematic PCB/Ebeep.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ebeep design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers116.8 × 30 mmType d, the printed circuit board in 3D

    Type d

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    14 parts3kApache-2.0
  • 2 layers32 × 22 mmDiff driver, the printed circuit board in 3D

    Diff driver

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    14 parts990GPL-3.0
  • 2 layers34 × 45 mm2032Charger, the printed circuit board in 3D

    2032Charger

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    14 parts915
  • 2 layers34 × 109.9 mmTdisplay s3, the printed circuit board in 3D

    Tdisplay s3

    landonr/homeThing

    Wifi Smart Home Remotes that run on ESPHome

    14 parts551GPL-3.0
  • 2 layers45.3 × 42.7 mmMainPcb, the printed circuit board in 3D

    MainPcb

    adamb314/ServoProject

    Getting the most out of your hobby servo

    14 parts545
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY, the printed circuit board in 3D

    C5VRX JACK DIY

    Twotoz/C5VRX

    Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

    14 parts515GPL-3.0
  • 2 layers62 × 24 mmMai button, the printed circuit board in 3D

    Mai button

    whowechina/mai_pico

    Pico controller for Maimai

    14 parts475