ambientfirm · ambientapp · ambientcloud

Device
Lab.

Full-stack simulation of the IWR6843AOP + AM62x device lifecycle. Watch every layer initialize — from ROM bootstrap through MQTT publish to cloud pipeline completion.

3
repos
12
boot stages
36
devices (pilot)
7
pipeline stages
1fps
frame rate
Device layer
App layer
Cloud layer
00 Stack01 Boot02 Fleet03 Provision04 CDK05 Pipeline06 MQTT07 Commands08 Frame Test09 Health10 Heatmap11 CDK Deploy12 Radar13 Alerts14 Device Log15 Batch Prov16 Athena17 OTA Update18 Incident19 Topology20 CFAR21 Shadow22 Certs23 Cal Wizard24 Algo Perf25 Power26 CloudWatch27 DTLS28 S3 Frames29 Multi-Tenant30 Mem/Flash
00

Stack Overview

Three repositories spanning firmware, application runtime, and cloud infrastructure
ambientfirmFIRMWARE
Hardware & Firmware
active
PlatformAM62x SK-LP · IWR6843AOP · OSD62x-PM PCB
SDKTI Processor SDK 11 · Yocto Kirkstone
Boottiboot3 (hs-fs) → A53 SPL → U-Boot → eMMC
Toolchainbitbake tisdk-default-image + RT patches
Dev loopxz|dd flash confirmed · TFTP dev transfer
View runbook →
ambientappAPP
Application Layer
active
RuntimePython 3.11 · systemd ambient-radar.service
TransportUART CTRL + DATA ports · /dev/ttyUSB0–1
Packagemqtt/ · AWS IoT Core SDK v2
ProtocolMQTT 3.1.1 · TLS 1.3 · port 8883 mTLS
Updatedmqtt/ package added 2026-05-22
ambientcloudCLOUD
Cloud Infrastructure
live
Account741448953538 · us-east-1
CDK13 stacks live · Ambient-dev-Iot pending
PipelineIoT Core → SNS → Lambda → S3 → Athena
Ella AIellamemory.com · Claude on Bedrock narratives
APIkfdi49uke9.execute-api.us-east-1.amazonaws.com
View runbook →
01

Boot Sequence

ROM to cloud in 8.3 seconds — 12 stages across device, application, and cloud layers
00 ROM Bootstrap
01 tiboot3
02 TIFS M4 core
03 A53 SPL
04 U-Boot
05 Linux 6.1-rt
06 systemd services
07 ambientapp init
08 Radar config push
09 MQTT connect
10 Cloud handshake
11 First frame published
DEV-MOH-301-A — serial console
$ Simulate Boot to watch the system start — ROM to cloud in 8.3s
02

Device Fleet

12 rooms · 3 zones each · 36 IWR6843AOP sensors · PCB serials pending provisioning
unprovisioned
booting
online
offline
0/36 online
301
MOCAREV-0001
A
B
C
ADEV-MOH-301-Aunprovisioned
BDEV-MOH-301-Bunprovisioned
CDEV-MOH-301-Cunprovisioned
302
MOCAREV-0002
A
B
C
ADEV-MOH-302-Aunprovisioned
BDEV-MOH-302-Bunprovisioned
CDEV-MOH-302-Cunprovisioned
303
MOCAREV-0003
A
B
C
ADEV-MOH-303-Aunprovisioned
BDEV-MOH-303-Bunprovisioned
CDEV-MOH-303-Cunprovisioned
304
MOCAREV-0004
A
B
C
ADEV-MOH-304-Aunprovisioned
BDEV-MOH-304-Bunprovisioned
CDEV-MOH-304-Cunprovisioned
305
MOCAREV-0005
A
B
C
ADEV-MOH-305-Aunprovisioned
BDEV-MOH-305-Bunprovisioned
CDEV-MOH-305-Cunprovisioned
306
MOCAREV-0006
A
B
C
ADEV-MOH-306-Aunprovisioned
BDEV-MOH-306-Bunprovisioned
CDEV-MOH-306-Cunprovisioned
307
MOCAREV-0007
A
B
C
ADEV-MOH-307-Aunprovisioned
BDEV-MOH-307-Bunprovisioned
CDEV-MOH-307-Cunprovisioned
308
MOCAREV-0008
A
B
C
ADEV-MOH-308-Aunprovisioned
BDEV-MOH-308-Bunprovisioned
CDEV-MOH-308-Cunprovisioned
309
MOCAREV-0009
A
B
C
ADEV-MOH-309-Aunprovisioned
BDEV-MOH-309-Bunprovisioned
CDEV-MOH-309-Cunprovisioned
310
MOCAREV-0010
A
B
C
ADEV-MOH-310-Aunprovisioned
BDEV-MOH-310-Bunprovisioned
CDEV-MOH-310-Cunprovisioned
311
MOCAREV-0011
A
B
C
ADEV-MOH-311-Aunprovisioned
BDEV-MOH-311-Bunprovisioned
CDEV-MOH-311-Cunprovisioned
312
MOCAREV-0012
A
B
C
ADEV-MOH-312-Aunprovisioned
BDEV-MOH-312-Bunprovisioned
CDEV-MOH-312-Cunprovisioned
Run boot simulation above to bring devices online
03

Provisioning

Steps to bring all 36 devices live — checklist persists across sessions
Provision Checklist
0/8
!
PCB serial numbers received
36 boards · EVT-0.1 batch from EI Microcircuits
BLOCKED
Device IDs assigned
DEV-MOH-{301–312}-{A|B|C} format · 36 total
02
Ambient-dev-Iot CDK deployed
cdk deploy Ambient-dev-Iot --profile pilot
03
X.509 certs generated
Per-device cert + private key via AWS IoT CA · 36 pairs
04
Things registered in IoT Core
aws iot create-thing --thing-name DEV-MOH-{…} × 36
05
ambient-device-policy attached
Publish + subscribe · topic filter ambient/{id}/*
06
Env vars flashed to device
IOT_ENDPOINT · CERT_PATH · KEY_PATH · THING_NAME × 36
07
First frame received per device
Verified via Athena golden_frames partition query
08
04

Cloud Stacks

13 CDK stacks live in us-east-1 · 1 pending deploy · ambientcloud repo
CDK Stacks · us-east-1 · 741448953538
13 live1 pending
StackStatusPurposeLast Deployed
Ambient-dev-VpcLIVEVPC · subnets · NAT gateways · security groups2026-05-19
Ambient-dev-KmsLIVEKMS keys — S3, DynamoDB, CloudTrail encryption at rest2026-05-19
Ambient-dev-IamLIVEIAM roles · Lambda execution · device trust policies2026-05-19
Ambient-dev-S3LIVES3 buckets — raw/ golden/ processed/ · versioning + lifecycle2026-05-20
Ambient-dev-DynamoDBLIVEDynamoDB — device registry · Ella narratives · alert state2026-05-20
Ambient-dev-LambdaLIVELambda — frame-ingest · golden-combine · Ella AI narrator2026-05-21
Ambient-dev-AthenaLIVEAthena workgroup · v_ambient_activity_index · v_zone_activity2026-05-21
Ambient-dev-CognitoLIVECognito — nurse + admin user pools · JWT auth2026-05-18
Ambient-dev-ApiGatewayLIVEREST API — nurse endpoints · Ella proxy · kfdi49uke92026-05-18
Ambient-dev-BedrockLIVEBedrock access — Claude Sonnet · Ella narrative generation2026-05-17
Ambient-dev-SnsLIVESNS — fall alerts · nurse push notifications · Google Chat2026-05-22
Ambient-dev-MonitoringLIVECloudWatch · GuardDuty · Security Hub · Config · Access Analyzer2026-05-19
Ambient-dev-EventBridgeLIVEEventBridge — Security Hub → Lambda → Google Chat pipeline2026-05-15
Ambient-dev-IotPENDINGIoT Core · thing registry · device certs · topic rulesnot deployed
Ambient-dev-Iot — deploy to unlock thing registry, device certs, and topic rules: cdk deploy Ambient-dev-Iot --profile pilot
05

Data Pipeline

Device frame publish → IoT Core → Lambda ingest → S3 Parquet → Athena → ellamemory dashboard
Pipeline Status
Device
AM62x + IWR6843
idle
MQTT
IoT Core :8883
idle
IoT Core
Rule engine
idle
Lambda
frame-ingest
idle
S3
raw/ Parquet
idle
Athena
v_ambient_*
idle
ellamemory
Dashboard
idle
Devices online
0 / 36
Frame rate
Topic pattern
ambient/DEV-MOH-{room}-{zone}/frames
Payload
Schema V2 · Parquet · zlib
MQTT Topic
ambient/{device}/frames
IoT Core Rule
SELECT * FROM "ambient/#"
Lambda Target
frame-ingest · S3 put_object
S3 Prefix
raw/{date}/{facility}/{device}/
06

MQTT Stream

Live frame publications from online devices — 1fps per sensor, continuous
MQTT · IoT Core us-east-1○ idle
Waiting for device — boot a device to start the stream
07

Command Console

Send IoT commands to online devices — simulated ack flow with realistic per-command latencies
MQTT Command Console
0 online
Boot devices first to enable the command console
08

Frame Tester

Compose a test frame and trace it hop-by-hop — compose through MQTT publish to Athena verify
End-to-End Frame Tester
frame #0
Frame Config
Subject
Zone
Occupancy
Posture
Activity
24
PUBLISH ambient/DEV-MOH-301-A/frames
{
  "frame_number": 0,
  "device_id": "DEV-MOH-301-A",
  "subject_id": "MOCAREV-0001",
  "zone": "A",
  "captured_at": "2026-05-24T07:05:58.707Z",
  "AmbientOccupancy": 1,
  "AmbientActivityCounts": 24,
  "AmbientPosture": "Seated",
  "_test_frame": true
}
Pipeline Trace
00
Compose Frame
Build test payload
200ms est
01
MQTT Publish
Send to IoT Core :8883
55ms est
02
IoT Core
Rule engine evaluation
14ms est
03
Lambda Ingest
frame-ingest processing
142ms est
04
S3 Put
raw/ Parquet write
38ms est
05
Athena
Partition + query verify
4200ms est
06
Verify
golden_frames confirmed
1800ms est
09

Health Monitor

IoT Device Shadow viewer · desired / reported / delta · per-device metrics · auto-polls on boot
Device Health Monitor
0
Online
0
Booting
36
Unprovisioned
0
Errors
Boot devices to populate health data — shadows auto-poll on device online
10

Occupancy Heatmap

1fps live update · 36 zones · activity heat levels — from the same MQTT stream feeding ellamemory
Live Occupancy Heatmap
Boot a device to stream occupancy data
Empty / offline
< 15 · minimal
15–30 · low
30–50 · moderate
50+ · peak
A · Living Room
B · Bathroom
C · Entry
301
0001
A
B
C
302
0002
A
B
C
303
0003
A
B
C
304
0004
A
B
C
305
0005
A
B
C
306
0006
A
B
C
307
0007
A
B
C
308
0008
A
B
C
309
0009
A
B
C
310
0010
A
B
C
311
0011
A
B
C
312
0012
A
B
C
11

CDK Deploy

Simulate Ambient-dev-Iot stack deployment — CloudFormation event stream · stack outputs · IoT Core endpoint
CDK Deploy Terminal
cdk deploy Ambient-dev-Iot --profile pilot
$ Click Deploy Stack to simulate cdk deploy Ambient-dev-Iot
12

Radar Config

Visual editor for IWR6843AOP profile.cfg — range · frame rate · CFAR sensitivity · clutter removal · push via UART
IWR6843AOP Radar Profile Editor
26 lines · profile.cfg
Parameters
Max Range
Frame Rate
CFAR Sensitivity
TX Antennas
Static Clutter Removal
Frame period1000ms
Ramp end time49.8μs
ADC samples256
CFAR-R thresh10
profile.cfg26 lines
1sensorStop
2flushCfg
3dfeDataOutputMode 1
4channelCfg 15 7 0
5adcCfg 2 1
6adcbufCfg -1 0 1 1 1
7profileCfg 0 60.75 7 7 49.84 0 0 70.295 1 256 5209 0 0 30
8chirpCfg 0 0 0 0 0 0 0 1
9chirpCfg 1 1 0 0 0 0 0 2
10chirpCfg 2 2 0 0 0 0 0 4
11frameCfg 0 2 128 0 1000 1 0
12lowPower 0 0
13guiMonitor 0 1 0 0 0 0 1
14cfarCfg -1 0 2 8 4 3 0 10 1
15cfarCfg -1 1 0 4 2 3 1 12 1
16multiObjBeamForming -1 1 0.5
17clutterRemoval -1 0
18calibDcRangeSig -1 0 -5 8 256
19extendedMaxVelocity -1 0
20lvdsStreamCfg -1 0 0 0
21compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
22measureRangeBiasAndRxChanPhase 0 1.5 0.2
23CQRxSatMonitor 0 3 4 99 0
24CQSigImgMonitor 0 127 4
25analogMonitor 0 0
26sensorStart
13

Fall Alert Console

Trigger simulated fall alerts and watch the 6-step clinical chain — Radar → MQTT → IoT Core → Lambda → SNS → Google Chat
Alert Trigger
Propagation Chain
1
Radar Detection
IWR6843AOP point cloud
2
MQTT Publish
ambient/{device}/alerts
+55ms
3
IoT Core Rule
fall-alert-rule → Lambda
+14ms
4
Lambda Handler
fall-alert-handler
+180ms
5
SNS Publish
ambient-fall-alerts
+95ms
6
Google Chat
Webhook · cardsV2
+120ms
Google Chat Payload
// Click "Trigger Alert" to preview payload
Alert History
No alerts yet
14

Device Log Streamer

Simulated journalctl output from ambient-radar.service · live 1fps stream · level filter · pause/resume
journalctl -u ambient-radar.service -f
No devices online — boot first
$ waiting for devices...
15

Provisioning Batch

36-device parallel provisioning simulation · 100ms stagger · 7-step progress matrix · ~8s total runtime
PCB Serials (36 expected)
16

Athena Console

SQL interface for ambient_db · v_ambient_frames · v_ambient_fall_alerts · partition scan · live result table
ambient_db · us-east-1
v_ambient_frames
Raw radar frame telemetry — 1fps per device
schema
device_idvarchar
facilityvarchar
roomvarchar
zonevarchar
tstimestamp
occupancytinyint
activityfloat
posturevarchar
point_countint
range_mfloat
vel_mpsfloat
snr_dbfloat
v_ambient_fall_alerts
Fall alert events enriched with subject ID
SQL · us-east-1 · Athena
17

OTA Update

Push firmware 2.1.4 to a device · 8-step Mender pipeline · sector-by-sector flash animation · Shadow version bump
Target Device
No devices online — boot first
1.8.2 → 2.1.4
1
Fetch Manifest
Mender artifact registry
320ms
2
Download Artifact
ambientapp-2.1.4.mender · 42 MB
2.8s
3
Verify Checksum
SHA-256 integrity check
180ms
4
Flash Partition
/dev/mmcblk0p2 · 64 sectors
3.2s
5
Device Reboot
Graceful shutdown + restart
4.5s
6
Verify Boot
Watchdog heartbeat OK
1.1s
7
Update Shadow
reported.fw_version → 2.1.4
220ms
8
MQTT Reconnect
TLS handshake · keepalive
380ms
Artifact Download
ambientapp-2.1.4.mender0%
Flash Sectors · 0/64 written
18

Incident Replay

Frame-by-frame replay of a fall event · IWR6843AOP point cloud · CFAR threshold crossing · UART TLV bytes
IWR6843AOP · Point Cloud · Frame 0/11
t = 0st = 11s
Frame Metadata
Frame0
Timestamp09:12:00.000
Occupancy1 — occupied
Activity0.35
Points9
Max |vel|0.249 m/s
Min range1.10 m
UART Frame (TLV)
42 61 04 FF /* magic */
42 61 04 FF 00 00 00 00 /* frame# */
09 00 00 00 /* n_pts */
01 00 00 00 /* TLV type */
...
19

Network Topology

Live packet animation across all system layers — 36 devices → IoT Core → Lambda → S3 → Athena → ellamemory
0/36 devices online
IoT Core / Athena
Lambda
S3
ellamemory
Boot a device to activate packet flow →
20

CFAR Tuner

Constant False Alarm Rate radar detection — tune training cells, guard cells, threshold α — see detection tradeoffs live
Training Cells: 8
Guard Cells: 2
Threshold α: 3.0
Detections
0
False alarms
0
Window
21 bins
Scan bin
Profile
Threshold
Detection
Training
Guard
21

Shadow Resolver

AWS IoT Device Shadow desired / delta / reported — edit desired state and watch the reconciliation animate
Boot a device to simulate shadow resolution
In sync ✓
Desired· cloud intent
fw_version1.8.2
frame_rate_hz
range_m
sensitivity
clutter_rem
tx_antennas
Delta· pending changes
empty — all fields in sync
Reported· device state
fw_version1.8.2
frame_rate_hz1
range_m4.5
sensitivitymedium
clutter_remtrue
tx_antennas2
22

Certificate Manager

X.509 device certificates for AWS IoT Core — expiry tracking, one-click rotation, batch renewal for expiring certs
36
Total
30
Active
0
Expiring
6
Revoked
DeviceARN (truncated)StatusDays LeftIssuedLast RotatedAction
301-A953538:cert/000e044c0000REVOKED2025-10-272025-11-22
301-B953538:cert/0010ab830001REVOKED2025-09-152025-09-29
301-C953538:cert/001352ba0002REVOKED2025-10-032025-10-05
302-A953538:cert/00159d240003REVOKED2025-10-182025-11-04
302-B953538:cert/0018445b0004REVOKED2025-09-062025-09-11
302-C953538:cert/001aeb920005REVOKED2025-09-242025-10-17
303-A953538:cert/001d35fc0006ACTIVE868d2025-10-092025-10-17
303-B953538:cert/001fdd330007ACTIVE886d2025-10-272025-11-22
303-C953538:cert/0022846a0008ACTIVE844d2025-09-152025-09-29
1/4
23

Calibration Wizard

IWR6843AOP installation calibration — noise floor capture, height validation, zone boundary definition, walk test
1
Background Capture
2
Height Calibration
3
Zone Boundary
4
Walk Test
5
Commit to Shadow
Capturing static noise floor — keep area clear for 10s
0%
24

Algorithm Performance

Fall detection sensitivity / specificity — ROC curve, confusion matrix, CFAR parameter comparison, benchmark table
ROC Curve — α = 2.5
94.0%
Sensitivity
94.0%
Specificity
88.7%
PPV
96.9%
NPV
Confusion Matrix
94
TP
12
FP
6
FN
188
TN
Benchmark Comparison
SystemSensSpecType
Ambient IWR6843AOP94%94%Radar CFAR
PIR Motion Sensor71%82%Passive IR
Wearable Pendant85%88%Accelerometer
Camera (Vision AI)91%93%CNN
25

Power Budget

TX antenna count × frame rate × TX power → mW breakdown and runtime estimate for IWR6843AOP + AM62x system
216h
Runtime (10000 mAh @ 12V)
9.0d
Days of operation
TX Antennas2×TX
Frame Rate1 Hz
TX Power0 dBm
Battery Pack
Capacity (mAh)
Voltage (V)
26

CloudWatch Metrics

Live Lambda invocations, error rate, P50 duration, IoT Core message throughput — four panels, auto-refreshing every 3s
Window:Live · refreshes every 3s
27

DTLS Handshake

Animated TLS 1.2 mutual-auth flight diagram — device X.509 cert → IoT Core CA validation → encrypted MQTT channel
301-A device
Press Animate to replay the DTLS 1.2 mutual-auth handshake
IoT Core
28

S3 Frame Inspector

Browse Parquet partition tree in s3://ambient-frames — click a file to preview the frame JSON and compression stats
s3://ambient-frames/
ambient-frames/
year=2026/
month=05/
day=22/
Click a .parquet file to preview a frame
29

Multi-Tenant Isolation

IoT policy → Lambda env → DynamoDB pk → S3 prefix → Athena DB — tenant boundary enforced at every layer
Each tenant is isolated at every layer — IoT Core policies, Lambda environment variables, DynamoDB partition key prefix, S3 key prefix, and Athena database. Click a tenant row to attempt a cross-tenant access.
Mount Olivet Home
36 devices
Demo Environment
3 devices
Pilot Site 2
pending
IoT Policy
iot:tenant-moh/*
iot:tenant-demo/*
iot:tenant-site2/*
Lambda Env
TENANT_ID=tenant-moh
TENANT_ID=tenant-demo
TENANT_ID=tenant-site2
DynamoDB pk
pk#tenant-moh
pk#tenant-demo
pk#tenant-site2
S3 Prefix
tenant-moh/
tenant-demo/
tenant-site2/
Athena DB
moh_db
demo_db
site2_db
30

Memory / Flash Budget

AM62x DDR4 RAM map and eMMC Flash allocation — kernel, ambientapp, radar driver, data buffer, free space
AM62x DDR4 · 1024 MB total
Linux Kernel + DTB128 MB (13%)
ambientapp service256 MB (25%)
Radar driver + buf64 MB (6%)
System daemons32 MB (3%)
Available heap544 MB (53%)
eMMC Flash · 16.00 GB total
OS rootfs (ext4)2 GB (13%)
ambientapp + deps0.5 GB (3%)
Radar FW (.bin)0.13 GB (1%)
Calibration data0.02 GB (0%)
Data buffer (ring)4 GB (25%)
Free9.35 GB (58%)