The Mycroft Mark II was a voice assistant device designed and produced by Mycroft AI — an open source voice assistant company founded in 2015 in Kansas City, Missouri. The Mark II was funded through a Kickstarter campaign in 2018, raising over $1 million from backers who believed in the promise of a privacy-respecting, open source alternative to Amazon Echo and Google Home.
The Mark II hardware is a custom-designed Raspberry Pi carrier board. The final production version uses a Raspberry Pi 4 Compute Module, though the public-facing retail version shipped with a Raspberry Pi 4 Model B. The board includes:
- SJ201 — a custom audio board with an XMOS XVF-3510 far-field microphone array (6 mics arranged in a circular pattern), a TAS5806 Class-D amplifier for the speaker, and an APA102 LED ring for visual feedback
- Waveshare 4.3" DSI touchscreen — 800×480 resolution, connected via the DSI ribbon cable port on the Raspberry Pi
- Hardware buttons — volume up/down and action button, connected via SJ201
The Mark II shipped to Kickstarter backers in 2022, years behind schedule and after considerable turmoil. The hardware was well-regarded — the microphone array has excellent far-field pickup and the build quality is solid. The software, however, was perpetually unfinished.
Mycroft AI never achieved financial sustainability. Despite multiple funding rounds and a dedicated community, the company struggled to compete with well-funded alternatives from Amazon, Google and Apple. In early 2023 Mycroft AI announced it was ceasing operations and open-sourcing all remaining code.
This left Mark II owners with working hardware but an orphaned software stack. The Mycroft "MIMIC" TTS, Neon skills framework and the Mycroft AI backend all went offline.
Before Mycroft's closure, a community fork called OpenVoiceOS (OVOS) had already emerged. OVOS maintained compatibility with Mycroft skills but moved to a more modular architecture. When Mycroft shut down OVOS became the primary continuation of the open source voice assistant project for Mark II hardware.
OVOS provides a full voice assistant stack: wake word detection, speech-to-text, natural language understanding, skill execution, text-to-speech. It can run entirely locally or connect to cloud services for STT/TTS. The OVOS community maintains drivers and overlays for the SJ201 hardware, including the VocalFusionDriver kernel module and the SJ201 initialisation scripts that mark2-assist also uses.
Meanwhile Home Assistant — the leading open source home automation platform — had been building its own local voice assistant capabilities.
In 2022 Home Assistant introduced Assist — a pipeline for local voice control of smart home devices. Assist uses:
- Wyoming Protocol — a simple TCP-based protocol for streaming audio and events between voice components, developed specifically for HA
- Piper — fast, high-quality local text-to-speech
- Whisper — OpenAI's speech-to-text model, running locally via faster-whisper
- openWakeWord — wake word detection running on-device
The key insight of the Wyoming approach is separation of concerns: each component (wake word detection, speech-to-text, the satellite device itself) is a separate process communicating over TCP sockets. This makes it easy to run wake word detection on the satellite device (the Mark II) while running the heavier STT/TTS workloads on the HA server — which typically has more CPU and RAM.
wyoming-satellite is a lightweight Python program that turns any microphone-equipped device into a voice satellite for Home Assistant. It:
- Connects to a Wyoming wake word service (openWakeWord) running locally
- Listens for the wake word
- On detection, streams microphone audio over TCP to the HA server
- Receives synthesized speech audio back and plays it through the speaker
- Reports events (detecting, detected, streaming, etc.) that can drive LED/face animations
The satellite is designed to be resource-efficient — it runs comfortably on a Raspberry Pi Zero 2 W. The Mark II is considerably more powerful, which means it can also run wake word detection locally without impacting performance.
In January 2026 the wyoming-satellite project was deprecated by Nabu Casa in favour of a new approach: linux-voice-assistant (LVA), developed by the Open Home Foundation.
Where Wyoming used a custom TCP protocol, LVA uses the ESPHome protocol — the same protocol used by HA Voice Preview Edition hardware. This brings the Mark II onto exactly the same integration path as purpose-built HA voice hardware.
LVA provides significant improvements over Wyoming Satellite:
- Single service — wake word detection (OpenWakeWord or MicroWakeWord) is built in, no separate wyoming-openwakeword process needed
- Timer support — set and cancel timers by voice ("set a timer for 10 minutes")
- Announcement support — HA can push announcements through the satellite speaker
- Continue conversation — after responding, LVA automatically listens again without needing to say the wake word
- Media player entity — exposed to HA for media control
- Auto-discovery — HA finds it via Zeroconf as an ESPHome device, no manual integration configuration needed
mark2-assist migrated from Wyoming Satellite to LVA in April 2026 (commit 8ff3823).
mark2-assist was created in 2025 to combine the best of both worlds:
- The excellent Mark II hardware (microphone array, speaker, touchscreen, LED ring)
- The mature and actively developed Home Assistant Assist ecosystem
Rather than maintaining a full voice assistant stack (as OVOS does), mark2-assist takes a minimal approach: install only what is needed to make the Mark II hardware work as an HA satellite. The result is a system that:
- Boots in under 30 seconds to a full HA dashboard
- Responds to voice commands via HA Assist with sub-second wake word detection
- Shows rich visual feedback on the LED ring and animated face
- Stays up to date alongside HA without any separate software stack to maintain
- Is entirely local — no cloud services required
The driver code (SJ201 initialization, VocalFusion kernel module) is adapted from the OVOS ovos-installer Ansible roles, with gratitude to the OVOS community for their hardware work.
During development, labwc (a Wayland compositor popular on Raspberry Pi OS) was initially used for the kiosk display. However, Chromium 146 (as shipped in Debian Trixie) does not correctly composite its render surface to the Wayland display when using labwc on a Pi 4 with the vc4-kms-v3d driver. The root cause appears to be in how labwc handles the wlr-layer-shell protocol combined with Chromium's use of the EGL ANGLE renderer.
Weston, the reference Wayland compositor, works correctly with Chromium on this
hardware. Weston's --shell=kiosk provides a simple fullscreen kiosk experience
without any window decorations or taskbars.
vc4-fkms-v3d (Fake/Firmware KMS) is deprecated on kernel 6.x. The "firmware"
in the name refers to the VideoCore GPU firmware handling the display pipeline —
on newer kernels this causes No displays found errors. vc4-kms-v3d (full KMS)
uses the kernel's DRM subsystem directly and is the correct overlay for Debian Trixie.
Wyoming Satellite was deprecated by Nabu Casa in January 2026 and replaced by LVA. Beyond following upstream, LVA offers several advantages for the Mark II specifically:
- The ESPHome protocol is the same used by HA Voice Preview Edition — tight HA integration
- Timers, announcements and continue-conversation work out of the box
- One service instead of two (no separate openWakeWord daemon)
- No port conflicts or mDNS quirks — ESPHome discovery is robust and well-tested in HA
The migration also required solving two Mark II-specific hardware challenges:
Microphone signal level: LVA uses soundcard (PipeWire/PulseAudio) for mic input.
PipeWire exposed only the raw plughw:sj201,DEV=1 at 48kHz stereo (RMS17), which is
too low for OWW. A PipeWire virtual source reading from ALSA's 500+ — the same fix that was applied for Wyoming's VF_ASR_(L) device
gives RMSarecord command.
Half-duplex I2S bus: Pi's I2S bus cannot support simultaneous capture and playback at the ALSA driver level. When LVA holds the mic open and MPV attempts direct ALSA playback, the kernel panics (system reboot). The fix is a PipeWire virtual sink that owns the ALSA playback device — PipeWire's internal graph multiplexes both streams without ALSA-level conflicts.
Additionally, python-mpv's end-file callback never fires on aarch64/Python 3.13
with the generic pipewire device (MPV freezes at position 0.021s). Using the named
pipewire/sj201-output sink gives reliable callbacks.
Wyoming is the native voice protocol of Home Assistant. Using it means:
- Tight integration with HA Assist pipelines, automations and the HA companion app
- Voice commands can trigger HA actions directly without an intermediate skill layer
- STT and TTS processing can be offloaded to the (typically more powerful) HA server
- Updates to HA's voice capabilities automatically benefit the Mark II
OVOS remains an excellent choice if you want a standalone voice assistant with skills, but for a Mark II that is primarily a smart home controller the Wyoming approach is simpler and more integrated.
mark2-assist is not affiliated with Mycroft AI, OpenVoiceOS or Nabu Casa. Home Assistant is a project of the Open Home Foundation.