Ngoma Platform
User Manual

Version 0.0.3 Updated 2026-03-18 Home users

1. What is Ngoma?

Ngoma is the intelligent control and analytics interface for the Ngoma home intelligence robot platform. It runs on Android tablets, iPhones, iPads, web browsers, Windows and macOS desktops, and as the embedded touch interface on the robot's own display (RPi CM4 + DSI screen).

From a single application, you can:

2. Getting Started

First Launch

On first launch Ngoma checks for Home Assistant credentials. If none are present you will see the Configuration Required screen.

Option A โ€” Enter credentials now:

  1. Open Settings

    Tap the Open Settings button on the configuration screen.

  2. Enter your HA connection details

    Under Home Assistant Connection, enter your HA base URL (e.g., http://192.168.1.100:8123) and your long-lived access token.

  3. Save and connect

    Tap Save. The app reconnects and loads the main dashboard.

Option B โ€” Continue in limited mode:

Tap Continue without configuration. Smart environment features are unavailable, but entertainment and wellness features work if their credentials were supplied at deployment.

Signing in to SoundCentral

  1. Open Settings

    Tap the โš™ icon in the top-right corner of the app bar.

  2. Sign in

    Tap SoundCentral Account โ†’ Sign In.

  3. Authorise your device

    Ngoma displays a device code and QR code. On any authorised device, open your SoundCentral app and enter the code โ€” or scan the QR code.

  4. Complete sign-in

    Complete sign-in in your SoundCentral app. Ngoma detects success automatically. Your account name and subscription status appear in Settings. The session persists across restarts.

Ngoma has four main sections accessed from the bottom navigation bar, plus a Settings screen in the top-right corner:

IconSectionPurpose
โ™ชEntertainment & CommsMedia streaming, announcements, voice control, display management
๐Ÿ Smart EnvironmentDevice control, scenes, thermostat, blinds, alert feed
๐Ÿ›กSecuritySentry mode, facial recognition, autonomous navigation
โ™กWellnessLive health data from KnightGuard wearables

The Settings screen is accessed via the โš™ icon in the top-right of the app bar โ€” it is not a bottom-nav tab.

4. Entertainment & Communications

The Entertainment screen is Ngoma's media and communications hub. Live perception status cards (people count, detected activity, ambient sound) appear at the top. Each media type follows as a scrollable section below.

4.1 Audio Playback

The Now Playing card appears when a track is loaded, showing cover art, track title and artist, a seek bar, transport controls (Previous โฎ / PlayโธPauseโ–ถ / Next โญ), and a volume slider.

To play music:

  1. Browse the music library

    Scroll to the Music Library section.

  2. Select a track

    Tap any track row โ€” it loads into the player and begins playing immediately.

  3. Control playback

    Use the Now Playing card to pause, skip, seek, or adjust volume.

๐Ÿ’ก
Auto-ducking: If the perception system detects a conversation in the room, volume automatically drops to 20% to avoid interruption. It returns to normal when the conversation ends โ€” ideal for open-plan offices.

4.2 Video

The Featured Video section shows the first video from SoundCentral's content feed. Tap the thumbnail to start playback. The player provides full transport controls (play/pause, seek, volume, full-screen). The video widget is lazy-mounted โ€” it does not consume resources until you tap play.

4.3 Live TV

Live channels are displayed in a three-column grid, each tile showing the channel name and a LIVE badge.

  1. Select a channel

    Tap any channel tile โ€” the inline HLS player loads below the grid.

  2. Dismiss

    Tap the tile again to dismiss the player.

If a stream fails to load, the player retries automatically up to three times. After three failures, an error banner appears โ€” try a different channel and retry the original later.

4.4 Live Radio

All available stations are listed with station name and a pulsing LIVE indicator.

  1. Select a station

    Tap any station row โ€” it loads into the embedded radio player.

  2. Monitor playback

    The station name and a LIVE badge appear in the player. There is no seek bar for live streams.

  3. Stop or switch

    Tap Stop to end playback, or tap a different station to switch instantly.

4.5 Mood Soundscapes

Three AI-driven audio presets automatically select the appropriate live radio station based on detected workspace activity.

PresetBest for
๐ŸŽต RelaxingQuiet environments, low-occupancy periods, end-of-day wind-down
๐Ÿ’ผ WorkingFocus sessions, individual work, high-productivity periods
๐Ÿ•บ ActiveTeam gatherings, training sessions, high-energy environments

Tap a preset chip to activate it. The matching station loads automatically into the player. The active chip is highlighted.

4.6 Audio Output Routing

The Cast To section controls where audio plays. Tap a chip to select the output.

OptionBehaviour
SpeakerDefault โ€” plays through the device's own speakers.
BluetoothRoutes to a connected Bluetooth speaker via A2DP. Connect the speaker in system Bluetooth settings first.
AirPlayEnables AirPlay 2. Select the output device from iOS/macOS Control Centre.
ChromecastRequires Google Cast SDK โ€” shows an informational message if not bundled.
DLNARequires DLNA discovery library โ€” shows an informational message if not bundled.

4.7 Display & Projector Control

ControlDescription
Auto-FocusToggle โ€” enables automatic focus adjustment.
Auto-KeystoneToggle โ€” enables automatic keystone correction.
H. KeystoneSlider โ€” horizontal keystone adjustment (ยฑ40).
V. KeystoneSlider โ€” vertical keystone adjustment (ยฑ40).
Projection AngleSlider โ€” projection angle (0ยฐโ€“45ยฐ).

Tap Apply & Project to send the current settings to the backend. Changes take effect immediately.

4.8 Voice Control

The Voice Control card supports two modes:

Tap-to-talk:

  1. Activate listening

    Tap the microphone button โ€” it turns red and a pulsing animation confirms the app is listening.

  2. Speak your command

    Speak clearly at a normal pace. No need to slow down.

  3. Command executes

    The recognised phrase appears in the card and the command executes automatically. Tap the microphone again to stop listening early.

Ambient always-on (Jetson Whisper):

  1. Start ambient mode

    Tap the ear icon to start ambient listening mode. The card shows "Ambient active โ€” Jetson Whisper" and a waveform indicator.

  2. Hands-free operation

    Ngoma continuously processes audio using the Jetson on-device Whisper model. Recognised phrases appear in real time as commands execute.

  3. Stop ambient mode

    Tap the ear icon again to stop. Tap-to-talk continues to work independently regardless of ambient mode status.

โ„น
Ambient mode requires the Jetson wyoming-whisper service to be running and reachable on your network. If it is unavailable, the card shows a status message and ambient mode stays off. All voice processing is on-device โ€” no audio is sent to external servers.

5. Smart Environment

The Smart Environment screen provides a real-time dashboard of all connected Home Assistant devices, environmental controls, and workspace scenes.

5.1 Device Dashboard

The Connected Devices card shows the total count of Zigbee and Z-Wave devices. Tap View All to open the full Devices screen.

5.2 Thermostat & Blinds

Thermostat: Shows the current temperature from the configured thermostat entity. Updates automatically when Home Assistant reports a change.

Blinds: Shows the current position (0% = fully closed, 100% = fully open). Drag the slider to set a new position โ€” the command sends to HA immediately.

5.3 Workspace Scenes

SceneDescription
๐ŸŒ™ Evening ModeDim, warm lighting โ€” end of business day or wind-down periods
โ˜€๏ธ Morning RoutineBright, neutral lighting โ€” opening hours and morning productivity
๐ŸŽฌ Presentation ModeLow ambient lighting optimised for screen-based presentations
๐Ÿ’ผ Focus ModeBright, focused lighting โ€” intensive work sessions

Tap any scene chip to activate it. A confirmation message appears. To use custom scenes, update the entity IDs in Settings โ†’ Entity IDs.

5.4 Alert Feed

The bottom of the Smart Environment screen shows recent notifications from the HA logbook, colour-coded by severity:

ColourSeverity
โ–  RedCritical โ€” requires immediate attention
โ–  AmberWarning โ€” review when convenient
โ–  BlueInfo โ€” informational only

The feed refreshes at the interval configured in Settings โ†’ Alert Poll Interval (default: 30 seconds).

6. Security

The Security screen provides full visibility and control over patrol, facial recognition, and autonomous navigation operations.

6.1 Sensor Status

The Sensor Status card shows Depth Camera, LiDAR, and Microphone in green (active) or grey (inactive). A Processing Load bar shows the current AI pipeline load percentage.

โ„น
Sensor state is driven by the Jetson perception pipeline via MQTT. If the MQTT broker is not reachable, all sensors show as inactive and the perception system falls back to simulation mode. Platform features remain fully operational in simulation.

6.2 Facial Recognition

The Facial Recognition card shows known personnel visible in the camera frame (name, role, confidence score) and an unknown-faces banner when unrecognised individuals are detected.

Enrolling a new person or visitor (admin only):

  1. Open Manage Personnel

    Go to Settings โ†’ Manage Personnel โ†’ Add Person.

  2. Enter details

    Enter the person's name and relation (e.g., Employee, Contractor, Guest).

  3. Enrol

    Tap Enrol. The Jetson runs a liveness check and captures the face using ArcFace deep learning.

  4. Confirm

    On success the person appears in the list immediately, stored in both the local database and on the Jetson edge device.

Removing a person:

  1. Open Manage Personnel

    Go to Settings โ†’ Manage Personnel.

  2. Delete

    Tap the person's row and select Delete. They are removed from both the local database and the Jetson profile store.

โš 
Facial recognition requires the Jetson ArcFace pipeline and Mosquitto MQTT broker to be running. The enrolment flow in the app is complete; the Jetson backend must be deployed and connected to activate live recognition. See your deployment guide or contact support.

6.3 Autonomous Navigation

ControlDescription
Obstacle Avoidance toggleEnable/disable the Nav2 obstacle avoidance layer. Default: on. Recommended to leave enabled at all times.
Waypoint chipsUp to five named destinations configured at deployment: e.g., Entrance, Floor 1, Floor 2, Server Room, Reception.
  1. Enable obstacle avoidance

    Confirm Obstacle Avoidance is toggled on (recommended).

  2. Select a waypoint

    Tap a waypoint chip โ€” it highlights and an en-route indicator appears.

  3. Arrival confirmation

    Arrival is confirmed by a Jetson status update (within 120 seconds). If navigation fails, an error message describes the reason (path blocked, motor fault, timeout).

6.4 Sentry Mode

Sentry Mode activates the patrol behaviour in Home Assistant, putting the robot into autonomous patrol mode along your configured route.

  1. Enable Sentry Mode

    Toggle the Sentry Mode switch to ON. The patrol scene is sent to Home Assistant.

  2. Review patrol schedule

    The patrol schedule row shows the configured patrol times for your deployment.

  3. Start a manual patrol

    To begin immediately, tap Start Manual Patrol. Waypoint progress updates in real time (e.g., "Waypoint 2 of 5").

  4. Deactivate

    Toggle the Sentry Mode switch to OFF to cancel the patrol.

โš 
If the patrol scene entity is not configured in Home Assistant, a red error message appears. There is no silent fallback โ€” this makes misconfiguration immediately visible. Contact support if you see this error after initial deployment.

7. Wellness

The Wellness screen shows live health and activity data from a KnightGuard Wear OS wearable, polled from the Knights Health API every 30 seconds.

โš 
To activate Wellness monitoring: (1) sign in to SoundCentral, (2) ensure the deployment includes the KNIGHTS_BASE_URL and KNIGHTS_API_KEY credentials, and (3) ensure the wearer's KnightGuard Wear OS app is installed and authenticated.

7.1 Live Vitals

Heart Rate (BPM)

ZoneRangeColour
Low< 50 BPMBlue
Normal50โ€“100 BPMGreen
Elevated100โ€“120 BPMAmber
High120โ€“150 BPMOrange
Critical> 150 BPMRed

Blood Oxygen โ€” SpOโ‚‚ (%)

ZoneRangeColour
Normalโ‰ฅ 95%Green
Low90โ€“94%Amber
Critical< 90%Red

Body Temperature (ยฐC)

ZoneRangeColour
Hypothermia< 35.0ยฐCBlue
Normal35.0โ€“37.5ยฐCGreen
Fever37.5โ€“39.0ยฐCAmber
High Fever> 39.0ยฐCRed

7.2 Activity Today

MetricDescriptionDaily Goal
StepsTotal steps taken today10,000 steps
CaloriesKilocalories burnedโ€”
DistanceMetres travelledโ€”
SpeedCurrent speed in m/sโ€”

7.3 Movement Quality

7.4 24-Hour Activity Chart

Plots hourly activity for the past 24 hours. Colour-coded bars:

ColourActivity Level
No barNone โ€” no movement detected
BlueLow activity
AmberMedium activity
RedHigh activity

8. Settings

Access Settings via the โš™ icon in the top-right of the app bar.

8.1 SoundCentral Account

ActionHow
Sign inTap Sign In โ†’ scan QR code or enter device code in your SoundCentral app
View accountName, email, and subscription status are shown when signed in
Sign outTap Sign Out โ†’ confirm โ†’ session cleared

8.2 Manage Personnel

ActionHow
View enrolled peopleTile shows total enrolled count
Add a personTap Manage Personnel โ†’ Add Person โ†’ enter name and relation โ†’ tap Enrol
Delete a personOpen person list โ†’ tap entry โ†’ tap Delete

8.3 Home Assistant Connection

FieldDescription
Base URLHA server address with no trailing slash. Example: http://192.168.1.100:8123
Access TokenLong-lived HA token. Generate in HA โ†’ Profile โ†’ Long-Lived Access Tokens. Stored in hardware-backed secure storage on the device.

8.4 Entity IDs

Six Home Assistant entity IDs are configurable in Settings. Tap Validate entities to check all six against your live HA instance โ€” each field shows โœ… (found) or โŒ (not found).

FieldDefault Entity ID
Thermostatclimate.living_room_thermostat
Blindscover.living_room_blinds
Evening scenescene.living_room_evening
Morning scenescene.living_room_morning
Presentation scenescene.living_room_movie_night
Focus Mode scenescene.living_room_work_mode

8.5 Device Filters

Comma-separated substrings that control which HA entities appear on the Devices screen. Default: zigbee,zwave. Examples:

8.6 Alert Poll Interval

How frequently Ngoma polls the HA logbook for new alerts. Default: 30 seconds. Minimum: 5 seconds. Recommended: 15โ€“60 seconds (lower values increase Home Assistant API load). Enter in seconds and tap Save.

9. Perception System

The perception system provides Ngoma with real-time awareness of its environment, running on NVIDIA Jetson AGX Thor edge hardware and publishing results via MQTT. The status cards at the top of the Entertainment screen display:

CardWhat it shows
๐Ÿ‘ค PeopleNumber of people currently detected in the monitored zone
๐Ÿƒ ActivityDetected workspace activity (Working, Relaxing, Meeting, Moving)
๐Ÿ”Š SoundAmbient sound classification (Music, Conversation, Silence, Alert)

Simulation mode: Before the Jetson is deployed, the perception system cycles through realistic simulated values. All features โ€” including mood soundscapes and auto-ducking โ€” are fully functional in simulation.

Production mode: When the Mosquitto broker and Jetson AI pipeline are running, the cards show live data. No application changes are required to switch from simulation to production.

Auto-ducking activates automatically when sound class is Conversation โ€” audio drops to 20% and restores when the classification changes.

10. Voice Commands Reference

Playback Commands

CommandAction
"Play"Resume or start playback
"Pause"Pause current playback
"Stop"Stop playback entirely
"Next"Skip to the next track
"Previous"Return to the previous track

Volume Commands

CommandAction
"Volume up"Increase volume by 10%
"Volume down"Decrease volume by 10%
"Mute"Mute all audio
"Unmute"Restore audio to previous level

Smart Environment Commands

CommandAction
"Turn on [device name]"Turn on the named Home Assistant device
"Turn off [device name]"Turn off the named Home Assistant device

Device names should match the friendly name as configured in Home Assistant. Example: "Turn on reception lights" or "Turn off floor two heating".

๐Ÿ’ก
Speak at a normal pace โ€” no need to slow down or use robotic phrasing. For tap-to-talk, wait for the red microphone indicator before speaking. The last recognised phrase and its source (Platform STT or Whisper/Jetson) are always shown in the Voice Control card.

11. FAQ & Troubleshooting

"Configuration Required" screen on launch

Cause: Home Assistant credentials were not provided at deployment time.
Fix: Tap Open Settings and enter your HA base URL and access token. Or tap Continue without configuration to use the platform in limited mode.

Smart environment shows stale data or a "stale data" banner

Cause: Ngoma cannot reach Home Assistant.
Fix: Confirm HA is running and accessible on your network. Verify the base URL has no trailing slash. The app continues to serve from cached device states until connectivity is restored.

Entertainment shows a loading spinner indefinitely

Cause: SoundCentral credentials are missing, or the server is temporarily unreachable.
Fix: Ensure you are signed in via Settings โ†’ SoundCentral Account. The client retries with exponential backoff โ€” wait 30โ€“60 seconds and pull to refresh.

Live TV stream shows an error

The player retries automatically up to three times with increasing delays. Try a different channel and retry the original after a few minutes.

Voice control microphone button does nothing

Fix: Go to System Settings โ†’ Apps โ†’ Ngoma โ†’ Permissions and enable Microphone access. The app cannot request this permission again once denied โ€” it must be granted manually in system settings.

Ambient voice mode shows "Whisper unavailable"

Fix: Confirm the Jetson wyoming-whisper service is running and reachable at the configured host and port (default 192.168.1.200:10300). Tap-to-talk continues to work independently at all times.

Wellness screen shows "Not Configured"

All three conditions must be met: (1) signed in to SoundCentral, (2) deployment includes KNIGHTS_BASE_URL and KNIGHTS_API_KEY, (3) the wearer's KnightGuard Wear OS app is installed and authenticated. Contact your account manager if credentials are missing.

Sentry Mode shows a red error

Create a scene in Home Assistant named sentry_mode_patrol. Refer to your deployment guide for the required scene structure. There is no silent fallback โ€” the error is visible immediately to prevent undetected misconfiguration.

Entity validation shows โŒ for all fields

Confirm the HA base URL and access token are correct. Browse HA โ†’ Developer Tools โ†’ States to find the correct entity IDs, then update them in Settings and re-validate.

Facial recognition does not detect enrolled household members

The Jetson backend (Mosquitto + ArcFace pipeline) must be deployed and connected. Enrolment data stored locally in the app will be used as soon as the Jetson is connected โ€” no re-enrolment required.

12. Glossary

AirPlay 2
Apple's wireless audio/video streaming protocol for routing audio to Apple devices and compatible speakers.
ArcFace
A deep learning face recognition model. Runs on the Jetson to identify enrolled household members in real time.
Ambient mode
Voice recognition mode where the microphone is always listening and streaming audio to the Jetson wyoming-whisper service for on-device processing.
Bluetooth A2DP
Advanced Audio Distribution Profile โ€” the Bluetooth standard for streaming high-quality audio to wireless speakers and headphones.
Entity ID
A unique identifier for a device or automation in Home Assistant. Format: <domain>.<location>_<device>.
HLS
HTTP Live Streaming โ€” the protocol used for live TV and radio streams.
Home Assistant (HA)
An open-source home/building automation platform. Ngoma uses it as the smart environment control layer for Zigbee and Z-Wave devices.
Jetson AGX Thor
NVIDIA's edge AI compute module. Powers the Ngoma platform's AI pipelines (vision, audio, navigation).
KnightGuard
A Wear OS health monitoring wearable from Knights Health. Streams biometric sensor data to the Knights Health API for display in the Wellness screen.
MQTT
Message Queuing Telemetry Transport โ€” a lightweight publish/subscribe protocol used for Jetson โ†” platform real-time communication.
Nav2
The ROS 2 navigation stack. Runs on the Jetson and handles autonomous path planning and obstacle avoidance.
Perception system
The AI pipeline on the Jetson that detects people, classifies activity, and recognises ambient sounds in real time.
Sentry Mode
An autonomous patrol mode where the robot moves through configured waypoints, monitoring for security events.
SoundCentral
Ngoma's media content provider, offering audio tracks, video content, live TV channels, and live radio stations.
Wyoming protocol
A lightweight JSON-over-TCP protocol for streaming audio to ASR services. Used by wyoming-whisper for ambient voice recognition.
YAMNet
A deep learning model for audio event classification. Detects ambient sounds (conversation, music, alerts) on the Jetson.
YOLOv8
A real-time object detection model used on the Jetson for people counting and pose estimation.
Zigbee
A low-power wireless mesh protocol widely used for smart environment sensors, lighting, and switches.
Z-Wave
A wireless building automation protocol operating at 900 MHz for improved range and reduced interference compared to 2.4 GHz alternatives.