#BLUEHASH

About

Why BLUEHASH exists.

The Flipper Zero problem

The Flipper Zero is a remarkable device. WiFi, IR, RF, NFC, OLED, buttons — everything a maker could want in one handheld package. But it costs $170, and more importantly, it runs theirfirmware. You can fork it, but then you're writing C for an embedded target with no visual tooling. Most people never do.

The idea

What if the same hardware capability existed, but the programming model was visual? What if you could drag a Menu node, connect it to an IR Send node, click Flash, and have a working TV remote — in five minutes, without opening a code editor?

That's BLUEHASH. The device is affordable (~$30 target BOM using an ESP32-S3 and commodity modules). The editor runs in Chrome. The compiler generates real C++ firmware from your flow — not interpreted, not sandboxed, full native speed. The result is a device that does exactly what you designed, flashed via USB, updateable over WiFi.

What “BLUE” and “#HASH” mean

Blue — connectivity. WiFi, Bluetooth, the color we use for the brand throughout. The device is fundamentally a networked tool, not just a standalone gadget.

#Hash— the hash symbol is a double meaning. In code it's a preprocessor directive, the entry point where firmware begins. In hacker culture it's the root prompt — full access, no restrictions. That's the promise: you have full access to your device.

The program node idea

The most interesting design decision was the Program node. We wanted community members to share complete applications — games, tools, utilities — not just flow templates. But how do you run someone else's program on your device without losing control?

The answer is the Hardware Abstraction Layer (HAL). Every community program uses onlybh_* functions — bh_wait_button(), bh_display_print(),bh_wifi_connect(). They never call digitalRead() directly. The base firmware owns the hardware. Programs are guests.

The exit contract is elegant: short press Back goes to the program, hold Back 1.5 seconds and the base firmware intercepts it, sends BH_BTN_EXIT to the program, and returns control to your device flow. No reboots, no delays, no confusion.

Open source, fully

Everything is MIT licensed. The editor. The compiler service. The firmware. The HAL. Hardware design files will follow (KiCad). Fork it, sell it, build a product on it. The only ask is to contribute back when you find bugs.

What's coming

The platform is early. What's working today: the full editor with 57 nodes, the compiler pipeline, Web Serial flashing, the community library API, the base firmware with HAL.

What's next:

  • Hardware design files (KiCad PCB + BOM)
  • 3D printable enclosure (STL files)
  • Cloud sync for flows (share via URL)
  • BLUEHASH device kit (buy assembled or DIY)
  • Community program submission and review
  • Mobile companion app for BLE control
Get startedGitHub ↗

Roadmap

v0.1 — Now
Node editor (57 nodes)
Compiler service
Web Serial flash
Community library API
Base firmware + HAL
8 official programs
v0.2 — Soon
Hardware design files (KiCad)
3D printable enclosure
Cloud flow sync + share URLs
More official programs
Mobile BLE companion app
v1.0 — Future
BLUEHASH device kit (buy)
Community program review
ESP32-P4 upgrade path
Color display support
LVGL visual theme editor