Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chatbox

A small desk terminal for talking to an LLM agent. Press the knob, ask a question out loud, and the answer streams onto a 128×64 LCD. Left alone it shows a clock and a couple of Home Assistant readings.

It is a Raspberry Pi Zero W, a BigTreeTech Mini12864 display board (which usefully carries an LCD, a rotary encoder with a push switch, three addressable LEDs and a piezo on one PCB), and an I2S microphone, in a 3D-printed 45° wedge about the size of a paperback — 143 × 82 × 65 mm.

The printed case, face plate in blue

The Pi does no speech recognition or inference itself — it records to RAM, posts the audio to a host running Hermes Agent for transcription, then streams the reply back token by token. Any OpenAI-compatible chat endpoint plus any Whisper-style transcription endpoint will do; see SOFTWARE.md.

Documentation

HARDWARE.md Wiring, printing the case, assembly
SOFTWARE.md Install, configuration, architecture, driver notes

Bill of materials

Electronics

Qty Item Notes
1 Raspberry Pi Zero W or Zero 2 W Zero 2 W has more headroom; the Zero W is sufficient
1 BigTreeTech Mini12864 V2.0 128×64 ST7567 LCD, EC11 encoder, 3 × WS2812, piezo
1 INMP441 I2S microphone breakout 14 mm round module
1 microSD card, 8 GB or larger
1 5 V / 2 A micro-USB power supply
~19 Female–female dupont jumper leads 100 mm; 14 to the display, 5 to the mic
1 Knob for a 6 mm D-shaft the knob BTT ships with the display fits

You also need a host on the LAN running Hermes Agent (or equivalent). Home Assistant is optional — without it the home screen just shows the clock.

Printed parts and fasteners

Qty Item Notes
~150 g PLA or PETG filament four parts, ~140 cm³ total
4 M3 × 8 socket head display board → face plate
4 M3 × 12 socket head face plate → body
4 M3 × 10 socket head base plate → body
2 M2.5 × 6 Pi Zero → base posts

All M3s are self-tapping into printed Ø2.6 pilots — no inserts or nuts. The Pi is the exception: its mounting holes are Ø2.75 and will not pass an M3.

Tools

2.5 mm and 2.0 mm hex keys, a soldering iron for the microphone's pads, and a 3D printer with a bed of at least 145 × 85 mm.

Quick start

  1. Print the case. STLs are in Hardware/case/stl/, already oriented. See HARDWARE.md for orientation and settings.
  2. Wire it up. 14 leads to the display, 5 to the microphone. Full table in HARDWARE.md.
  3. Install the software. Flash Raspberry Pi OS Lite, enable SPI and I2S, copy pi/ to the Pi, fill in config.toml, enable the service. See SOFTWARE.md.

Repository layout

chatbox/
├── README.md            this file
├── HARDWARE.md          wiring, printing, assembly
├── SOFTWARE.md          install, configuration, architecture
├── Hardware/
│   ├── case/
│   │   ├── chatbox_case.py     parametric source for the printed parts
│   │   ├── chatbox_case.3mf    all four parts, arranged as printed
│   │   └── stl/                individual parts, pre-oriented
│   ├── wiring-reference.html   pinouts with the leads drawn on photos
│   └── *.step, *.png, *.jpg    manufacturer models and datasheet images
└── pi/
    ├── hermes_display.py       the application
    ├── mini12864.py            display driver
    ├── config.example.toml     copy to config.toml and fill in
    ├── hermes-display.service  systemd unit
    ├── asound.conf             ALSA gain for the microphone
    ├── backlight.py, beep.py   LED and buzzer utilities
    ├── diagnostics/            bring-up and bench scripts
    └── fonts/                  Terminus bitmap font used for answer text

pi/config.toml holds an API key, a password and a Home Assistant token. It is gitignored — keep it that way.

License

MIT. The BigTreeTech STEP model and datasheet images under Hardware/ are the manufacturer's, included for reference.

About

A desk voice terminal: press the knob, ask out loud, and the answer streams onto a 128x64 LCD. Pi Zero W + BigTreeTech Mini12864 + I2S mic in a printed wedge.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages