Skip to content

A cool looking retro accessory with an 8x8 monochrome screen!

License

Notifications You must be signed in to change notification settings

glutesha/bitlace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1441de0 · · Aug 26, 2025

History

135 Commits
Jul 21, 2025
Apr 19, 2025
Aug 4, 2025
Aug 3, 2025
Aug 9, 2025
Apr 19, 2025
Apr 19, 2025
Aug 8, 2025
Aug 9, 2025
Apr 19, 2025
Jun 16, 2025
Aug 8, 2025
Aug 26, 2025
Jul 3, 2025
Jul 5, 2025

Repository files navigation

Bit::lace hackatime

Bitlace is a DIY retro decoration featuring a monochrome MAX7219 8x8 dot display and an ESP32. You can draw on the display using the website, which is running inside a wifi hotspot made by the board. Tested on ESP32-C3 boards like SEEED XIAO and ESP32-C3 super mini.

Usage

Interfacing with the device relies on a tactile button (Connected to ground, defined in settings). Press it once to wake the device up for web interface access and programming. Press it again to put it to sleep, and show the last state with set brightness. Pressing the button for 2 seconds causes the device to completely turn off. Press it again and device will wake up back to the active state.e.

Device's battery info relies on the Battery.h library. Pins for the battery and the resistance ratio is defined in the settings menu.

When active, you can draw on it, save and load your drawing, set it up using the settings page and many more by going to the device's Wi-Fi hotspot and using the web interface. Web interface automatically opens as a captive portal, but i would recommend you to go to bitlace.local or 192.168.4.1 to use features like exports and imports for the gallery.

Interface

Building

I built my device's hardware on a breadboard, but feel free to make a circuit board and PR me. I used the SEEED XIAO ESP32-C3 specifically because it has a built in battery controller and charger. I've also used a tactile button to switch between modes and turn off the device. I could make a schematic, but everything is very simple and customizable, so feel free to build this device to your taste and preferences. I've also uploaded my case 3D model in the /parts folder.

To build the application, run build_page.sh and then use Build Filesystem Image and Upload Filesystem Image project tasks on PlatformIO. Then use Upload. If your display starts showing the logo, it means that everything went smoothly.

Settings

Default settings are located in src/settings.h. You can set up pins, AP credentials, display color, battery preferences, etc. You can also set up your device via the settings page in the web interface. Default AP credentials are bitlace-gluten and supersecretpassword.

Technologies

The main firmware, located in /src, is written in C++ using the Arduino framework and libraries like U8G2, ArduinoJson, ESPAsyncWebServer, and more. The frontend, located in front was written in HTML and TypeScript using Svelte and TailwindCSS. Pretty heavy for an embedded board with only 4 megabytes of storage, but it works!

About

A cool looking retro accessory with an 8x8 monochrome screen!

Resources

License

Stars

Watchers

Forks

Packages

No packages published