Brainbox Serieel Protocol Referentie
De Brainbox ontvangt data van Podcatcher-apparaten via BLE en stelt deze beschikbaar als CSV-frames over een USB serial-verbinding. Interactieve installaties, kiosken en maatwerksoftware kunnen deze frames uitlezen om in realtime te reageren op acties van bezoekers.
Fysieke verbinding
Section titled “Fysieke verbinding”| Parameter | Waarde |
|---|---|
| Interface | USB Serial (CDC) |
| Line delimiter | \r\n (CR+LF) |
| USB Vendor ID | 0x2dcf |
| USB Product ID | 0x6003 |
Verbind de Brainbox via USB met een computer. Hij verschijnt als een standaard seriële (COM-)poort — op moderne besturingssystemen zijn geen speciale stuurprogramma’s nodig.
Console-commando’s
Section titled “Console-commando’s”Activeer na het openen van de seriële poort de Brainbox-console en schakel de frametypes in die je nodig hebt:
<CR> ← send a carriage return (0x0D), wait 300 msconsole tracking 1<CR> ← enable Tracking V2 frames, wait 200 msconsole interactive 1<CR> ← enable Interactive V1 frames, wait 200 msversion<CR> ← response: "version: 2.5.1"Beschikbare commando’s
Section titled “Beschikbare commando’s”| Command | Functie |
|---|---|
console tracking 1 | Tracking V2-output inschakelen |
console tracking 0 | Tracking V2-output uitschakelen |
console interactive 1 | Interactive V1-output inschakelen |
console interactive 0 | Interactive V1-output uitschakelen |
console syncdock 1 | Basecamp-frames inschakelen (nog niet in firmware — zie AVS-147) |
version | Firmwareversie opvragen |
help | Alle beschikbare commando’s tonen |
Contentstructuur in de CMS
Section titled “Contentstructuur in de CMS”Om de framedata te begrijpen helpt het te weten hoe content is georganiseerd in de Guide-ID CMS:
Site └── Tour └── Stop └── Clip (audio file + optional Interactive Clip Id)- Een site heeft één of meer tours
- Een tour bevat één of meer stops
- Een stop bevat één of meer clips — een clip is de daadwerkelijke content, doorgaans met een gekoppeld audiobestand
- Elke clip heeft een optioneel Interactive Clip Id (1–65535) dat hem uniek identificeert voor interactieve opstellingen
De waarde clipIdUser in de onderstaande frames komt overeen met dit Interactive Clip Id. Je stelt het per clip in de CMS in onder de clipinstellingen.

Hoe clips worden geactiveerd
Section titled “Hoe clips worden geactiveerd”Een clip begint op een van de volgende manieren af te spelen op de Podcatcher:
- Beacon scan — de bezoeker scant handmatig een beacon bij een stop
- UWB auto-trigger — de bezoeker betreedt een zone en de Podcatcher activeert automatisch op basis van nabijheid (UWB-afstand)
- Clip flow-navigatie — de bezoeker drukt op knoppen (Up, Down, Left, Right) om binnen een stop door de clip flow te navigeren (bijvoorbeeld choice clips met meerdere vertakkingen)

Telkens wanneer een clip start, stuurt de Brainbox een frame met het bijbehorende Interactive Clip Id — ongeacht hoe de clip werd geactiveerd.
BLE-frametypes
Section titled “BLE-frametypes”Alle frames komen binnen als CSV-regels over serieel. Het eerste veld (version byte) bepaalt het frametype.
Tracking V2 — versie 66 (0x42)
Section titled “Tracking V2 — versie 66 (0x42)”Wordt ongeveer één keer per seconde verzonden voor elk apparaat binnen bereik. Gebruik dit voor het realtime volgen van de bezoekerspositie, batterijbewaking en knopstatus.
66,pp009071,0xA1B2C3D4E5F60718,1001,150,3700,0x0004,0x0000| # | Field | Type | Voorbeeld | Beschrijving |
|---|---|---|---|---|
| 0 | version | decimal | 66 | Altijd 66 |
| 1 | deviceSerial | string | pp009071 | Serienummer van de Podcatcher (pp + 6 cijfers) |
| 2 | visitorId | hex | 0xA1B2C3D4E5F60718 | 16 hex-tekens (8 bytes) — 0x0000000000000000 = inactief |
| 3 | clipIdUser | decimal | 1001 | Interactive Clip Id van de laatst geactiveerde clip (0 = geen) |
| 4 | lastTriggerDistance | decimal | 150 | UWB-afstand in cm (0 = geen trigger) |
| 5 | batteryMv | decimal | 3700 | Batterijspanning in mV |
| 6 | keysLast | hex | 0x0004 | Laatst ingedrukte knoppen (bitmask) |
| 7 | keysHeld | hex | 0x0000 | Momenteel ingedrukt gehouden knoppen (bitmask) |
Knop-bitmasks
Section titled “Knop-bitmasks”| Bit | Hex | Button | Beschrijving |
|---|---|---|---|
| 0 | 0x0001 | Down | Knop omlaag |
| 1 | 0x0002 | Right | Knop rechts |
| 2 | 0x0004 | Center | Knop midden |
| 3 | 0x0008 | Up | Knop omhoog |
| 4 | 0x0010 | Left | Knop links |
| 12 | 0x1000 | Volume Up | Volume één stap hoger |
| 13 | 0x2000 | Volume Down | Volume één stap lager |
Interactive V1 — versie 161 (0xA1)
Section titled “Interactive V1 — versie 161 (0xA1)”Wordt elke keer verzonden dat een clip begint af te spelen op een Podcatcher — of dit nu wordt geactiveerd door een beacon scan, een UWB auto-trigger of clip flow-navigatie. Elk frame vertelt je:
- Welk apparaat is geactiveerd (
deviceSerial) - Welke bezoeker het gebruikt (
visitorId— uniek per sessie) - Welke taal is geselecteerd (NL, EN, DE, FR, ES, IT)
- Welke clip is geactiveerd (
clipIdUser— het Interactive Clip Id dat in de CMS is geconfigureerd) - Welke armed code door de Podcatcher is ingesteld (
requestedVideoCode— meestal een AV-Sync-videocode) - Hoeveel triggers deze bezoeker tot nu toe heeft gehad (
sequence)
161,pp009071,A1B2C3D4E5F60718,2005,EN,7,0x0000001A| # | Field | Type | Voorbeeld | Beschrijving |
|---|---|---|---|---|
| 0 | version | decimal | 161 | 161 of 160 (beide geaccepteerd) |
| 1 | deviceSerial | string | pp009071 | Serienummer van de Podcatcher |
| 2 | visitorId | hex | 0xA1B2C3D4E5F60718 | Visitor ID (uniek per sessie) |
| 3 | clipIdUser | decimal | 2005 | Interactive Clip Id van de geactiveerde clip |
| 4 | language | string | EN | Taalcode van 2 tekens uit het triggerbestand (NL, EN, DE, FR, ES, IT) |
| 5 | sequence | decimal | 7 | Teller die per trigger oploopt en na 255 overloopt |
| 6 | requestedVideoCode | hex | 0x0000001A | Armed code — meestal een AV-Sync-videocode (0x00000000 = geen) |
Voorbeeld: scenario met een interactief scherm
Section titled “Voorbeeld: scenario met een interactief scherm”Een bezoeker loopt met de Podcatcher langs een interactief scherm. Het scherm ontvangt:
161,pp009071,0xA1B2C3D4E5F60718,2005,EN,7,0x0000001AHet scherm weet nu direct:
- Bezoeker
0xA1B2C3D4E5F60718→ herkenbaar bij het volgende scherm - Taal is Engels → toon Engelse ondertiteling of tekst
- Clip 2005 → speel de bijbehorende animatie af
- Armed code
0x1A→ speel de AV-Sync-video af die aan deze stop is toegewezen - Trigger #7 → de bezoeker is al een tijdje actief, pas de content daarop aan
Toepassingen voor interactieve opstellingen
Section titled “Toepassingen voor interactieve opstellingen”Automatische taalaanpassing De bezoeker kiest de taal op de Podcatcher. Elk scherm in het museum past zich automatisch aan — geen touchscreen of taalknop op het scherm zelf nodig.
Bezoekersherkenning tussen ruimtes
De visitorId blijft gedurende het hele bezoek behouden. Een bezoeker activeert een scherm in ruimte A en loopt vervolgens naar ruimte B — het scherm daar herkent dezelfde visitorId en kan personaliseren: “Welkom terug, je zag eerder…” Geen login of QR-scan vereist.
Interactieve projecties en animaties
Een Podcatcher komt binnen bereik → de projectie start automatisch. Meerdere bezoekers tegelijk? Je applicatie ziet alle actieve visitorId-waarden in de zone en kan de content aanpassen aan het aantal bezoekers (solo-ervaring versus groepservaring).
AV-sync met externe schermen
Wanneer een bezoeker een stop activeert, stelt de Podcatcher een code in (meestal een AV-Sync-videocode). Deze requestedVideoCode wordt via het interactive frame verzonden. Het verbonden scherm matcht de armed code en speelt de bijbehorende content af — geen extra hardware (tablet, touchscreen) nodig.
Interactieve installaties debuggen
Section titled “Interactieve installaties debuggen”Gebruik bij het ontwikkelen van een interactieve installatie een seriële monitor om:
- Live te debuggen: zie frames in realtime binnenkomen terwijl je voor het scherm staat
- Het wisselen van taal te testen: verander de taal op de Podcatcher en controleer of het scherm reageert
- De timing te controleren: frames komen binnen 1 seconde na de beacon-trigger binnen
- Met meerdere bezoekers te testen: test met 2–3 Podcatchers tegelijk en observeer alle
visitorId-waarden
Gerelateerde artikelen
Section titled “Gerelateerde artikelen”- Inzicht in de Brainbox — wat de Brainbox doet en hoe het werkt
- AV-Sync instellen — gesynchroniseerde audiovisuele weergave configureren