Ga naar inhoud
Hardware

Brainbox Serieel Protocol Referentie

7 min leestijd Bijgewerkt jun 2026

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.

ParameterWaarde
InterfaceUSB Serial (CDC)
Line delimiter\r\n (CR+LF)
USB Vendor ID0x2dcf
USB Product ID0x6003

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.

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 ms
console tracking 1<CR> ← enable Tracking V2 frames, wait 200 ms
console interactive 1<CR> ← enable Interactive V1 frames, wait 200 ms
version<CR> ← response: "version: 2.5.1"
CommandFunctie
console tracking 1Tracking V2-output inschakelen
console tracking 0Tracking V2-output uitschakelen
console interactive 1Interactive V1-output inschakelen
console interactive 0Interactive V1-output uitschakelen
console syncdock 1Basecamp-frames inschakelen (nog niet in firmware — zie AVS-147)
versionFirmwareversie opvragen
helpAlle beschikbare commando’s tonen

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.

Clipinstellingen in de CMS — het veld Interactive Clip Id onderaan identificeert deze clip uniek voor interactieve opstellingen.

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)

De clip flow in de Tour Editor — een stop met meerdere clips verbonden via knopkeuzes (Left, Up).

Telkens wanneer een clip start, stuurt de Brainbox een frame met het bijbehorende Interactive Clip Id — ongeacht hoe de clip werd geactiveerd.

Alle frames komen binnen als CSV-regels over serieel. Het eerste veld (version byte) bepaalt het frametype.

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
#FieldTypeVoorbeeldBeschrijving
0versiondecimal66Altijd 66
1deviceSerialstringpp009071Serienummer van de Podcatcher (pp + 6 cijfers)
2visitorIdhex0xA1B2C3D4E5F6071816 hex-tekens (8 bytes) — 0x0000000000000000 = inactief
3clipIdUserdecimal1001Interactive Clip Id van de laatst geactiveerde clip (0 = geen)
4lastTriggerDistancedecimal150UWB-afstand in cm (0 = geen trigger)
5batteryMvdecimal3700Batterijspanning in mV
6keysLasthex0x0004Laatst ingedrukte knoppen (bitmask)
7keysHeldhex0x0000Momenteel ingedrukt gehouden knoppen (bitmask)
BitHexButtonBeschrijving
00x0001DownKnop omlaag
10x0002RightKnop rechts
20x0004CenterKnop midden
30x0008UpKnop omhoog
40x0010LeftKnop links
120x1000Volume UpVolume één stap hoger
130x2000Volume DownVolume één stap lager

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
#FieldTypeVoorbeeldBeschrijving
0versiondecimal161161 of 160 (beide geaccepteerd)
1deviceSerialstringpp009071Serienummer van de Podcatcher
2visitorIdhex0xA1B2C3D4E5F60718Visitor ID (uniek per sessie)
3clipIdUserdecimal2005Interactive Clip Id van de geactiveerde clip
4languagestringENTaalcode van 2 tekens uit het triggerbestand (NL, EN, DE, FR, ES, IT)
5sequencedecimal7Teller die per trigger oploopt en na 255 overloopt
6requestedVideoCodehex0x0000001AArmed 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,0x0000001A

Het 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.

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
Was dit artikel nuttig?