#BLUEHASH

Hardware

BLUEHASH Device

Open hardware platform built on ESP32-S3. WiFi, BLE, IR, RF, OLED display, 6 buttons, camera-ready. Target BOM ~$30. Fully open source.

Full specifications

Microcontroller
ESP32-S3 dual-core 240MHz
Xtensa LX7 + vector/AI instructions
RAM
512KB SRAM + PSRAM opt.
Flash
8MB with dual OTA partitions
Display
1.3″ SH1106 OLED 128×64
I2C, 160° viewing, monochrome
Buttons
OK · Back · Up · Down · B1 · B2
USB
USB-C native (no CH340 needed)
Web Serial flash + CDC serial monitor
WiFi
802.11 b/g/n 2.4GHz
Station + AP modes
Bluetooth
BLE 5.0
Central + peripheral
IR RX
38kHz TSOP receiver
NEC, SONY, RC5, RC6, Samsung, LG, RAW
IR TX
940nm IR LED
All protocols, any remote
RF
433MHz CC1101
Garage doors, doorbells, power sockets
MicroSD
SPI FAT32
Logs, configs, saved IR/RF codes
Camera (opt.)
OV5640 5MP
JPEG/RGB565/Grayscale, up to UXGA
Buzzer
Passive piezo
Click feedback, tones, alerts
Power
LiPo 3.7V + USB-C (TP4056)
Target BOM
~$25–35 USD
License
MIT — hardware + software

GPIO pin mapping

GPIONameFunction
0BTN_OKOK / Select button
35BTN_BACKBack — hold 1.5s exits programs
36BTN_UPNavigate up
37BTN_DOWNNavigate down
38BTN_1Extra button 1
39BTN_2Extra button 2
8OLED_SDAOLED I2C data
9OLED_SCLOLED I2C clock
14IR_RXIR receiver (TSOP38238)
4IR_TXIR transmitter LED
21RF_RX433MHz RF receiver
22RF_TX433MHz RF transmitter
10SD_CSMicroSD chip select
11SD_MOSIMicroSD MOSI
12SD_CLKMicroSD clock
13SD_MISOMicroSD MISO
2LEDStatus LED
18BUZZERPassive piezo buzzer

Recommended dev boards

ESP32-S3-DevKitC-1prototyping
Best for prototyping — 44 GPIO pins, official Espressif support
Seeed XIAO ESP32-S3production
Best for final product — tiny 21×17mm, LiPo charging built in

The long-press Back exit

When a community program is running, the device flow hands full control to the program. To return to your menu without the program needing a dedicated exit button:

Short press Back
The running program receives the Back button event and handles it however it wants — navigate a submenu, cancel an action, etc.
Hold Back 1.5 seconds
The base firmware intercepts it. The program receives BH_BTN_EXIT and must clean up and return. Control returns to your device flow.