nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
nagham.kheir25 edited this page May 30, 2026 · 5 revisions

Recent doc version

Krake™

Based upon the Public Invention General Purpose Alarm Device (GPAD), the Krake is a wireless annunciator and alarm device designed to alert humans to conditions requiring attention. The Krake combines visual, audible, serial, and network alarm communication into an open-source hardware and firmware platform.

The Krake extends the original GPAD architecture with:

  • ESP32-based networking
  • MQTT communication
  • Rotary encoder navigation
  • 20x4 LCD interface
  • DFPlayer audio playback
  • OTA firmware updates
  • Configurable COM port
  • Alarm queue handling
  • GPAP alarm messaging

HardwareX Article


Open Source Hardware Certification

Krake hardware has been certified by the Open Source Hardware Association (OSHWA).

Certification UID:

US002818

OSHWA certification listing: OSHWA Certification Directory

image

Krake™ rev2

image

Krake™ rev1

image

Mentorship and Development

The Krake has been developed primarily by volunteer engineer Nagham Kheir, with mentorship and oversight from volunteer Inventional Coach Lee Erickson.

Mentorship and Teamwork: The Story of the Krake


Use Cases

The Krake is intended to inform human operators of alarm conditions requiring attention.

Healthcare and Assisted Living

One intended use case is monitoring elderly individuals or patients living independently. A Krake device mounted within a residence may announce:

  • Falls
  • Blood pressure abnormalities
  • Sensor-triggered emergencies
  • Medical equipment alarms

The Krake is intended to support interoperability with the HL7 medical standard and the open-source ADaM (Alarm Dialog Management) project.

Medical Devices

The Krake may function as a dedicated annunciator for sophisticated medical equipment such as ventilators or patient monitoring systems.

Examples include:

  • Ventilator hose disconnects
  • Power failures
  • Pressure abnormalities
  • Mechanical faults

The Krake focuses on annunciation and communication, while upstream systems determine alarm conditions.

Industrial and General Annunciation

Potential applications include:

  • Schools
  • Factories
  • Industrial process monitoring
  • Smart buildings
  • Emergency notification systems
  • Accessibility alerting systems

Current Firmware Features

The current Krake firmware includes:

  • Wi-Fi station + captive portal support
  • MQTT alarm communication
  • GPAP message parsing
  • Rotary encoder navigation
  • LCD menu system
  • Alarm acknowledgement workflow
  • Alarm queue handling
  • DFPlayer audio annunciation
  • Persistent COM configuration
  • Mute timeout handling
  • OTA firmware updates
  • LittleFS configuration storage
  • Alarm state persistence
  • RS-232 controller interface
  • Hardware flow control support
  • LED annunciation patterns
  • SPI alarm input support

Smart LCD User Interface

The Krake includes a 20x4 I²C LCD interface integrated with a rotary encoder and custom menu system.

LCD Features

  • Real-time alarm display
  • Alarm queue indication
  • Wi-Fi status indication
  • MQTT broker status indication
  • Volume and mute display
  • Alarm acknowledgement actions
  • Rotary encoder navigation
  • Settings configuration menu

Planned LCD Layout

Q:+ NEXT W B M ⚙
CRIT Pump Failure
ID:123 Temp High
Ack Dismiss Shelve

LCD Navigation

Rotary Encoder

  • Rotate:

    • Navigate alarms or menu entries
  • Short Press:

    • Select item
  • Long Press:

    • Open Settings Menu

Alarm Actions

When an alarm is active:

  • Rotate encoder to enter action selection

  • Available actions:

    • Acknowledge
    • Dismiss
    • Shelve

Settings Menu

The local settings menu includes:

  • Volume Level
  • Mute Duration
  • COM Setup
  • Device Reset
  • Exit Menu

Wi-Fi Connectivity

The Krake normally operates as a Wi-Fi station connected to a local network.

For setup and provisioning, the Krake can create a temporary Wi-Fi access point using WiFiManager and LittleFS credential storage.

Features

  • Captive portal setup
  • Multiple stored Wi-Fi credentials
  • Automatic reconnection
  • OTA firmware updates
  • MQTT connectivity monitoring
  • LCD network status display

Credentials are stored locally using LittleFS.


MQTT Protocol

The Krake communicates using MQTT for alarm distribution and acknowledgement.

Features

  • MQTT alarm subscriptions
  • GPAP response publishing
  • Alarm acknowledgements
  • Alarm dismissal and shelving
  • Device monitoring
  • Configurable topic subscriptions
  • MQTT status display on LCD

Each Krake subscribes to alarm topics and publishes alarm responses on dedicated ACK topics.

Example GPAP Responses

oa{1234} -> Acknowledge
od{1234} -> Dismiss
os{1234} -> Shelve

MQTT Testing Page

MQTT Publishing Test Page


GPAP Alarm Message Support

The Krake firmware supports GPAP alarm messaging and response handling.

Incoming alarm messages may contain:

  • Alarm level
  • Alarm ID
  • Alarm type
  • Alarm message text

Supported alarm actions:

ActionMQTT Response
Acknowledgeoa{alarmId}
Dismissod{alarmId}
Shelveos{alarmId}

COM Port

The Krake interfaces to external controllers through a DB9 Female RS-232 DCE connection.

COM Features

  • Configurable baud rate
  • RTS/CTS hardware flow control
  • Persistent configuration storage
  • LCD-based configuration menu

Supported Baud Rates

  • 1200
  • 2400
  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Current Serial Configuration

  • 8-N-1
  • Optional RTS/CTS flow control

Arbitrary Sonic Alarms

The Krake uses a DFPlayer Mini MP3 module connected through UART2 on the ESP32.

Audio Features

  • WAV and MP3 playback
  • Alarm-level-specific audio
  • Adjustable volume
  • SD-card-based multilingual audio
  • Busy-line monitoring
  • Runtime diagnostics

The SD card is removable so that alarm audio may be customized or localized for language and application.


Mute Button

Pressing the local mute button toggles silencing of audio alarms.

The firmware supports:

  • Configurable mute timeout
  • Automatic unmute
  • Manual mute override
  • LCD mute indication

Rotary Encoder Knob

The rotary encoder allows users to:

  • Navigate menus
  • Configure settings
  • Control volume
  • Respond to alarms
  • Navigate queued alarms

Configurable Power Options

The Krake may be powered using:

  • 2.1 mm center-positive barrel connector
  • USB-C
  • RJ12 SPI interface power jumpers

Firmware Architecture

ModulePurpose
alarm_api.*Abstract alarm state machine
GPAD_HAL.*Hardware abstraction layer
GPAD_menu.*Rotary encoder and LCD menu system
mqtt_handler.*MQTT publishing and GPAP responses
gpad_serial.*Serial protocol parser
DFPlayer.*Audio playback subsystem
WiFiManagerOTA.*Wi-Fi management and OTA
InterruptRotator.*Rotary encoder interrupt handling

Krake Test and Assembly Procedure

Instructions for testing and assembly of Krake hardware:

Krake Test and Assembly Procedure Document


Inventory

Krake Factory Inventory

Database for Krake units and test registries.


GDT Records

Asset History Records Public Invention Krake Rev. 2

Global Open Source Quality Assuring System.


Future Features

  • Advanced alarm queue management
  • Enhanced LCD UI animations and icons
  • Bluetooth and BLE alarm forwarding
  • Mesh networking support
  • Remote firmware fleet management
  • Local event history logging
  • Expanded GPAP/HL7 interoperability
  • Power optimization modes
  • Alarm escalation workflows

MockingKrake (Prototype Platform)

During development, a breadboard prototype called the MockingKrake was used to validate:

  • Alarm functionality
  • DFPlayer interoperability
  • Wi-Fi communication
  • LCD functionality
  • Rotary encoder navigation
  • MQTT messaging

Components

  • ESP32 DevKit V1
  • DFPlayer Mini
  • SD card
  • Speaker
  • Alarm LEDs
  • Rotary encoder
  • LCD display
  • Breadboard prototype system

Typical Current Consumption

TEST NUMBERCurrentLCD ConditionDFPlayer Condition
10.12–0.16 ALCD ONDFPlayer OFF
20.08–0.11 ALCD OFFDFPlayer OFF
30.23 A maxLCD OFFDFPlayer ON
40.24 A maxLCD ONDFPlayer ON

ESP32-WROOM-32D

ESP32-WROOM-32D Datasheet

esp32-pinout-chip-ESP-WROOM-32


Enhancements

  1. HTTP server support
  2. Web monitoring interface
  3. Five-level LED annunciation
  4. WAV/MP3 alarm playback
  5. 20x4 LCD alarm display
  6. Configurable mute handling
  7. Wi-Fi captive portal setup
  8. MQTT alarm workflow support
  9. Rotary encoder menu navigation

Workflow Contribution Procedure

Krake Workflow Contribution Procedure


References

Hollifield, Bill R., and Eddie Habibi. Alarm Management: A Comprehensive Guide. ISA, 2010.


Firmware Development Resources

Multi-tasking the Arduino

https://learn.adafruit.com/multi-tasking-the-arduino-part-1

Random Nerd Tutorials

  1. ESP32 Wi-Fi Manager https://randomnerdtutorials.com/esp32-wi-fi-manager-asyncwebserver/

  2. ESP32 OTA Updates https://randomnerdtutorials.com/esp32-ota-elegantota-arduino/

  3. ESP32 LittleFS Uploader https://randomnerdtutorials.com/esp32-littlefs-arduino-ide/


License

  • Firmware: GNU Affero GPL 3.0
  • Hardware: CERN Open Hardware Licence Version 2 - Strongly Reciprocal
  • Krake™ is a trademark of Public Invention.