zeo + Vibrationsarmband = Klarheit

quintic-bandplatine-ausgepacktNachdem ich mit dem FBT-40 BLE Armband nicht weiter gekommen bin und das Angel leider schnell kaputt war, habe ich nach einer längeren Pause einen Durchbruch mit einem anderen Device errungen. Das Viech nennt sich “W007C”, kostet noch weniger und basiert auf einem QN9021 Chip. Dafür gibt es viele tolle Entwicklertools und erfreulicherweise sind die ganzen PINs auf dem Board verfügbar. Doch eine eigene Firmware drauf zu hacken, war für mich gar nicht notwendig. Dank einem netten Menschen auf github gibt es in diesem Gist eine schöne Informationssammlung, um mit python das Armband fernzusteuern.

Der Job: Vibrationen während REM auslösen. Ich hatte mich darauf konditioniert, einen RC zu machen, wenn ich Vibrationen spüre. Dann habe ich ein kleines Programm basierend auf der Library gebastelt, das auf einem Socket hört und wenn jemand auf den Socket connected das Band kurz vibrieren läßt.

Auf der anderen Seite liest das pizeo mein EEG und löst bei REM Aktionen aus. Die erste Nacht ging schief, da war das Rasperry pi mit dem Zeo dran zu weit vom Bett weg und hat ständig die Verbindung zum Armband verloren.

Die zweite Nacht stellte ich es neben das Bett und hypnogramm-vibranachtda lief es wunderbar. Konfiguriert hatte ich, dass alle 5 Epochen (eine Epoche ist 30 Sekunden lang) ein Vibrationssignal gesendet wird. Das war zu viel des guten und riss mich immer wieder ganz aus dem Schlaf. Den Rest der Zeit war ich präluzide und nutzte die Aufwacher als Rhythm Napping.

 

Nächste Nacht neues Setup:

  • nur alle 10 Epochen wird ein Signal gegegen
  • erkennt das pizeo ein LRLR-Signal, hören die Signale auf, bis die REM-Phase zuende ist
Posted in allgemeines, pizeo, Schlafhacking, Zeo | Tagged , , | Leave a comment

Schaf im Wolfspelz: sleep shepherd blue reversed

Nun, wie es aussieht, bekomme ich keine Unterstützung vom Hersteller. Man habe andere Prioritäten als ein SDK zu öffnen. Verstehe ich. Warten möchte ich aber auch nicht. Also rücken wir dem Ding mit üblichen Reversing tools zuleibe: bluez/gattool und einem decompiler.

Schließlich muss die offizielle App ja irgendwie mit dem Ding reden. Dazu hole ich mir als erstes mal das APK von hier. Apks sind erst mal ja nur zips, die man umbenennen und dann einfach auspacken kann. Darin sind tolle Dinge wie Ressoucen (Bilder, sounds, …) und das Programm selbst. Im konkreten Fall als .dex Datei. Außerdem erkennt man sofort, dass diese App mit Phonegap/Cordova entwickelt ist, weil es den Ordner assets\www gibt und darin die ganzen typischen Sachen rumliegen. Schön, das kenne ich, damit kenne ich mich aus. Weiterhin angenehm ist, dass die ganze Applikationslogik als javascript-files quasi im Quellcode rumliegt und ich mir erst mal den tieferen Blick in die .dex Datei (z.B, mit dex2jar und java-decompiler) für später aufheben kann 🙂

Es wäre eigentlich denkbar und der einfachste Weg, diese tolle app einfach auszupacken und erweitert um ein paar LD Funktionen mit Phonegap neu zu builden. Aber das Ergebnis könnte man nicht verteilen, weil es vermutlich Stress mit “geistigem Eigentum” gibt. Also lieber schnell was von Null mit den wichtigsten Infos zusammenbasteln. Wobei… *hust* im 1.1.10 apk ist in der index.js der Vermerk (einfach dringelassen vom phonegap schätze ich), dass das File unter Apache license steht :p

So, man will also laut dem .js code ein Gerät mit folgenden Eigenschaften finden:

serviceUuid = “ffe0”,
charUuid = “ffe1”,
desiredName = “SSV1_00000”

bluetoothle.subscribe(subSuccess, subFail, {“address”:address,”serviceUuid”:serviceUuid,”characteristicUuid”:charUuid, “isNotification”:true });

schauen wir mal…

root@zeopi8-1:/# hcitool lescan
LE Scan …
20:91:48:AA:B8:FA (unknown)
20:91:48:AA:B8:FA SSV1_00000

root@zeopi8-1:/# gatttool -b 20:91:48:AA:B8:FA -I
[20:91:48:AA:B8:FA][LE]> connect
Attempting to connect to 20:91:48:AA:B8:FA
Connection successful
[20:91:48:AA:B8:FA][LE]> primary
attr handle: 0x0001, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0x000f uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x0010, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb

yep. Hab ich. Nice.

Jetzt die ganzen Funktionen. Ziemlich wüster Wust, das gehört eigentlich gekapselt und zentralisiert, aber ich bin dankbar über die vielen Kommentare und dass auch einige unbenutzte Sachen noch im Code auskommtentiert drin gelassen wurde. Einige Highlights:
function getVersionNumber(){
var hexArray = [“AA”,”AA”,”03″,”99″,”20″,”00″,””];
function sendCheckDataCommand()    var hexArray = [“AA”,”AA”,”03″,”94″,”20″,”00″,””];
function sendGetHeaderCommand()
var hexArray = [“AA”,”AA”,”03″,”93″,”20″,”00″,””];
function sendEraseDataCommand()
var hexArray = [“AA”,”AA”,”03″,”96″,”20″,”00″,””];
function getAccel()
var hexArray = [“AA”,”AA”,”03″,”58″,”20″,”00″,””];
function sendConfirmationCommand()
var hexArray = [“AA”,”AA”,”03″,”9A”,”10″,”01″,””];
function sendDataRecordingCmd()
var hexArray = [“AA”,”AA”,”03″,”95″,”20″,”00″,””];
function sendTurnOffRecordCmd()
var hexArray = [“AA”,”AA”,”03″,”95″,”10″,”00″,””];
function setVolCmd(value)
var hexArray = [“AA”,”AA”,”03″,”84″,”10″,hexValue,””];
function setWakeTime(value){
var hexArray = [“AA”,”AA”,”06″,”34″,”10″];
function changeState(newState)
var hexArray = [“AA”,”AA”,”03″,”24″,”10″,newState.toString(),””];
function sendStartCommand()
var hexArray = [“AA”,”AA”,”0C”,”82″,”10″];
hexArray = hexArray.concat(intToBytes(time,6), intToBytes(sampleRate*1000,4), [“”]);
function sendEndCommand()
var hexArray = [“AA”,”AA”,”08″,”83″,”10″];
hexArray = hexArray.concat(intToBytes(time,6), [“”]);

Weiter unten findet sich in der Bolognesesoße um den Javascript-Spaghettihaufen ab Zeile 2557 (index.js) Information darüber, wie das Protokoll aufgebaut ist, z.B.

// — Received accel data — //
if (returnedBytes[0] == 170 && returnedBytes[1] == 170 && returnedBytes[3] == 88 && returnedBytes[4] == 48){
//alert(“received signal strength of: “+returnedBytes[4]);
var xArray = [returnedBytes[5], returnedBytes[6]];
var yArray = [returnedBytes[7], returnedBytes[8]];
var zArray = [returnedBytes[9], returnedBytes[10]];

// — Received Sleep Data Header Packet — //
if (returnedBytes[0] == 170 && returnedBytes[1] == 170 && returnedBytes[3] == 129 && returnedBytes[4] == 48){

// — Received Sleep Data Stream Packet — //
if (returnedBytes[0] == 170 && returnedBytes[1] == 170 && returnedBytes[2] == 11 /* 16 */){

// — Received Sleep Data Footer Packet — //
if (returnedBytes[0] == 170 && returnedBytes[1] == 170 && returnedBytes[3] == 131 && returnedBytes[4] == 48){

Leider findet sich im Code der App kein Hinweis auf eine Möglichkeit, der Mütze Audio zum Abspielen zu schicken. Das heißt, auch die Firmware der Mütze selbst müsste mal gehackt werden. Dass man so einfach an den Code kommt wie an den der App, glaube ich weniger, als nächstes müsste man mal die Plastikbox vorsichtig öffnen, und den Inhalt begutachten, ein ROM-Dump versuchen usw.

Posted in Gadgets, Schlafhacking, Schlafmütze | Tagged , , | Leave a comment

kluge EEG-Schlafmütze: sleep shepherd blue

Vor gut einem Jahr hatte ich das erste Sleep Shepherd, damals noch ohne Bluetooth und App, gebackt und war schon sehr angetan davon. Dann kam das nächste Announcement zum neuen Projekt, mit Uplink und App. Natürlich folgte ich freudig der Einladung, ein super early bird zu werden.

Sleep Shepherd blue box

Sleep Shepherd blue ausgepackt

Ich wurde nicht enttäuscht. Die Firma lebt vor, wie Kickstarter sein sollte: man hat was eigentlich fertiges und läßt die “early adopter” nur noch den Feinschliff oder die Massenproduktionsvorbereitung finanzieren. Wieder haben sie ihre Timeline perfekt eingehalten und ein fertiges, schönes Produkt geliefert. Angenehm ist außerdem, dass sie sogar beim beigelegten USB-Kabel auf Qualität geachtet haben. Beim Versand gab’s keinen Zollstress, es wurde direkt nach Hause geliefert!

In der Packung ist das Sleep Shepherd blue, ein micro-USB Kabel zum Laden und ein (US-) USB-Netzteil. Das Gadget selbst kommt nun in Form eines bequemen breiten Kopfbandes statt wie früher einer Mütze, der quadratische Plastikkasten mit der Elektronik ist an der Stirn statt am “Bommel” befestigt, nur Stoff und Elektroden sind sie gleichen wie bei der ersten Version und die kleinen Lautsprecher sind weiterhin im Stoff verschiebbar, um sie zu positionieren. Ziel des Geräts in der Intention des Herstellers die Verbesserung von ein- und durchschlafen durch Biofeedback (EEG als Input, Audio als Output).

SchlafanalyseKopfpositionFür iOS und Android gibt es nun eine Schlaftracking-App, die neben dem üblichen Erfassen der Schlafphasen bzw. der Schlaftiefe noch ein weiteres erfreuliches Feature hat: es registriert, auf welcher Seite man schläft und wie lange. Vermutlich ist die neue Form des Stoffs diesem Features geschuldet.

Das zu tracken finde ich sehr nützlich. Interessant wäre hier noch, wie oft man sich umgedreht hat, das kann die App aber noch nicht. Die App liest die Daten einer Nacht in einem Rutsch, wenn man den “stop sleep” Knopf drückt, eine beständige Verbindung zum Smartphone in der Nacht ist nicht erforderlich.

An Developer-Infos ist noch nichts zu mir durchgedrungen, ich habe aber schon bei Michael Larson angefragt. Es hat in der Tat alles, was man als lucid dreaming Hilfe braucht:

  • eeg-basierte REM-detection
  • connected via BLE
  • cooles Headband, bequem
  • Lautsprecher (mit Biofeedback schon drin)

Als Ziel für das hacken dieses Gadgets formuliere ich: eine App, die

  1. REM-detection des Geräts nutzt
  2. während REM dann beliebige Töne abspielen kann, sei es eine Reminder-Datei (“hey, Du träumst gerade”), Binaural beats (zusätzlich zu den automatischen, die Schlaftiefe regulierende des Herstellers) und isochronous tones (“ein paar Faustschläge mit dem 40Hz Hammer”).
  3. live Schlafdaten für shared dreaming/Kommunikation im Traum ins Internet streamen kann
Posted in Gadgets, News, Schlafhacking | Leave a comment

(Fallen) Angel Sensor

Einen Tag und eine Nacht mit dem Ding am Handgelenk bin ich ein paar Erfahrungen reicher. Mit dem Teil zu reden ist einfach, aber die Datenqualität ist nicht so toll. Pulsfrequenz ist weit off, die offiziell App taugt nicht viel (historie z.B. funktioniert nicht), an Fitbit und Co wird das Ding über Jahre nicht rankommen und es fehlen Services. An meinem pi bietet es mir folgende Services:

[00:07:80:78:CA:97][LE]> primary
attr handle: 0x0001, end grp handle: 0x0003 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0004, end grp handle: 0x0010 uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x0011, end grp handle: 0x0015 uuid: 0000180d-0000-1000-8000-00805f9b34fb
attr handle: 0x0016, end grp handle: 0x001d uuid: 00001809-0000-1000-8000-00805f9b34fb
attr handle: 0x001e, end grp handle: 0x0028 uuid: 7cd50edd-8bab-44ff-a8e8-82e19393af10
attr handle: 0x0029, end grp handle: 0x0033 uuid: 552508f9-24ba-4578-82ba-f6d5987e8c41
attr handle: 0x0034, end grp handle: 0x0038 uuid: 0000180f-0000-1000-8000-00805f9b34fb
attr handle: 0x0039, end grp handle: 0x004f uuid: 481d178c-10dd-11e4-b514-b2227cce2b54
attr handle: 0x0050, end grp handle: 0x005a uuid: 902dcf38-ccc0-4902-b22c-70cab5ee5df2
attr handle: 0x005b, end grp handle: 0x006e uuid: 68b52738-4a04-40e1-8f83-337a29c3284d
attr handle: 0x006f, end grp handle: 0x007a uuid: 87ef07ff-4739-4527-b38f-b0e228de6ed3
attr handle: 0x007b, end grp handle: 0xffff uuid: 41e1bd6a-9e39-441c-9312-b6e862472480

Und irgendwie sind die hier schon ein ganzes Stück weiter, und der hier spielt auch schon fleißig damit.

Posted in allgemeines, Gadgets | Tagged , , | Leave a comment

Angel Sensor Armband als Vibra-Cue-Generator (REM reminder)

IMG_6578 Angel Sensor M1IMG_6581

 

 

 

Heute kam ein vor ein paar Tagen in einer spontanen Laune heraus mitten in der Nacht bestelltes “Angel Sensor” Armband an. Das Ding (99 US$, promo 10% off, sprich Versandkosten gespart) bietet als Sensoren Beschleuningung, Pulsfrequenz und spO2 über BLE und hat einen Vibrationsmotor. Als es auf Indiegogo war, hab ich es verpasst (zum Glück, die “classic” war laut Internetposts von usern wohl nicht so toll) und nicht gebackt, jetzt wird die “M1” Version gerade aggressiv vermarktet.

Angeblich ist alles über Programmierung steuerbar und der Hersteller hat ausdrücklich hacker und maker als Zielgruppe im Visir. Es sollte also schnell möglich sein, ein “vibrieren am Arm während REM” Gadget (REM-Erkennung extern via ZEO/mobile) daraus zu machen. Das hatte ich mit “China-billig” Armbändern wie dem miband und dem FBT-40 erfolglos probiert, weil die Doku mies ist und sich die Service nach Firmware-Updates ändern. Also auf ein neues mit einem offiziell hackbaren Gerät.

Auf den ersten Blick tut das Ding, was es verspricht, die offizielle iOS App verbindet mit dem Sensor und zeigt Daten an, ein gesetzter Vibra-Alarm läuft on time los, und das Raspberry pi findet und connected auch zum BLE Service.

Posted in Gadgets, pizeo, Schlafhacking | Tagged | Leave a comment

the Dash ist da

box-IMG_4464Es gibt auch Kickstarter-Projekte, die irgendwann fertig und dann sogar sehr gut werden. Heute kam ein developer Kit the Dash von Bragi bei mir an. Das Gerät habe ich als developer Backer deswegen mit großer Spannung erwartet, weil es mit seinem Featuresatz ein schönes Schlafhacking-Gadget ist:
– Pulssensor, spO2 Sensor (“Ist das angebliche Herzrasen beim WILD nun real oder nicht?”)
– BT Audio und Mediaplayer (“Du träumst, mach nen RC”, Binaural beats, isochronic tones)
– Bewegungssensor und Temperatur (REM-Detection für arme)

inhalt-IMG_4470SDK kommt “bald”… im Moment ist es erst mal ein Headset mit HR-Sensorfunktion, Bequemlichkeit und Soundqualität überzeugen schon und ein kurzer Test läßt mich hoffen, in Verbindung mit einem weichen Kopfkissen auch mit dem Ding im Ohr schlafen zu können. Da die Developer Edition nicht wasserdicht ist, muss ich sie zum Duschen wohl rausnehmen 😛

 

Update 29/1/2016: Es ist immer noch kein SDK released 🙁
Man kann mit den Dingern halbwegs gut schlafen. Nach ein paar Stunden drückt es dann schon. Aber um nach einem WBTB Suggestionen zu hören oder ein paar Stunden einen schnarchenden Mitschläfer durch Metal zu ersetzen, funktioniert das gut.

Posted in Gadgets, News, Schlafhacking | Leave a comment

FBT-40 Aktivitätstracker von newgen medicals (pearl): Request for hacks/infos/BLE characteristics

Hallo Welt, hat jemand irgendwas zu dem FBT-40? So ein Ding ging via pearl für knapp 15€ als Sonderposten her und ist als Schlafhack-Gerät (Vibra-RC-Reminder) ansich gut geeignet. Hardware scheint OK zu sein, die (iPhone-)App ist leider nicht so toll.

Vorhaben: on demand per BLE aus einer eigenen App heraus vibra anmachen und wieder ausmachen. Dafür bräuchte man Infos zum BLE Protokoll. Suche im Netz bringt keine Ergebnisse. Daher: wer was hat, bitte gern kommentieren. Ich hoffe, dieser Post wird bei ähnlichen Recherchen wie meiner heute gefunden und führt zu Info-Aggregierung.

english short summary: I’m looking for anything hackable (firmware dump, BLE characteristics, BLE protocol info, reverse engineering infos) on the FBT-40 sold by Pearl in Germany.

Posted in Gadgets | Tagged , , | 2 Comments

foc.us v2 developer mit LD-Feature

Bisher habe ich nur lesend auf mein Gehirn zugegriffen. Mit dem foc.us v2 developer Edition (neu mit offiziellem LD-Feature) möchte ich mich nun vorsichtig an “schreibenden” Zugriff heranwagen.

foc.us unboxingDas Paket besteht aus einem kleinen Minicomputer+Dockingstation, einem Elektrodensatz und einer Schlafmaske. Angenehmerweise war das Gerät eine Woche nach Bestellung wirklich da. Da andere (luciding, aurora) notorisch nicht liefern, ist das allein schon positiv.

Auf meinem Windows 8.1 PC habe ich foc.us+ connect installiert und auf dem iPhone 5 und dem Note 4 jeweils die App.

Während der Akku initial geladen wird, lese ich mich in die Tools, APIs und SDKs ein. Denn so wie ich das verstehe, hat das Gerät keine eingebaute REM-Erkennung und stützt sich da auf Erfahrungswerte und Timer.

Vom Layout der Elektroden her hat man auf der Stirn genug Platz für ZEO und foc.us v2, insofern kann das Gerät eine tolle Erweiterung für mein pizeo Setup sein.

Zeo-FocUs-spiegelselfie

ZEO zum “lesen” mit drei Elektroden in der Mitte foc.us v2 zum “schreiben” rechts (Referenz) und links (Stimulation)

Update nach dem ersten Versuch:
Die erste Nacht war leider nicht erfolgreich. Zum einen musste ich mich doch auf den Timer verlassen, weil die technische Doku so dünn ist, dass ich es nicht hinbekommen habe, schon für die erste Nacht eine zeopi-Integration mit Fernsteuerung des Stimulators zu implementieren. Die Gelpads halten nicht gescheit, weil die Elektroden recht schwer sind – auch nicht mit der (zwar bequemen) Schlafmaske, die foc.us mitliefert, bleiben sie nicht am Platz. Die nächste Nacht werde ich also ein Stirnband aus Stoff darüber tun. Zufälligerweise habe ich gerade dieses rumliegen.

Posted in allgemeines, Gadgets | Tagged , | 2 Comments

Zeo Mobile Teardown

Oder: Warum wir keine Rohdaten vom Zeo Mobile haben können.

Ein Gastbeitrag von steeph vom Podcast BLucid

Die Zeo-Produkte sind eine konzeptionelle Seltenheit. Ein Schlafphasen-Wecker mit Stirnband-EEG für ca. 100 $. Wer hätte gedacht, dass eine Firma mit so einem Produkt pleite gehen kann? 2013 war das offenbar noch möglich. Heute scheinen diese Geräte beliebter denn je zu sein. Vorallem die Bedside-Version, mit einer neuen Firmware versehen, die die Rohdaten des EEG über eine serielle Schnittstelle ausgibt. Diese relativ kleine Veränderung lässt Anwender ein Zeo Bedside in ein Mini-Schlaflabor für zuhause verwandeln und hat schon viel Hobby-Forschung ermöglicht. Die neuere Version des Zeo, das Zeo Mobile, hat diese Möglichkeit zum Abgreifen der Rohdaten nicht. Das Kopfband sendet über Bluetooth ausschließlich die Daten, die die Android- und iOS-Apps zur Schlafanalyse benutzt haben (also hauptsächlich die aktuelle Schlafphase). Die Frage von Besitzern des Zeo Mobile nach der Möglichkeit, Rohdaten aus diesem zu bekommen wird immer schnell damit beantwortet, dass das nicht möglich sei. Doch theoretisch muss es ja möglich sein. Schließlich sind die Daten ja definitiv da und werden zum Errechnen der Schlafphasen verarbeitet. Die Frage ist also eigentlich eher, mit wie viel Aufwand ein solcher Hack verbunden wäre.

Dank Raipat habe ich gerade ein solches Zeo Mobile, um mir anzuschauen, warum wir keine Rohdaten von ihm bekommen bzw. wie es vielleicht doch ginge. Denn obwohl sich immer gleich alle ganz sicher sind, dass es nicht möglich ist, an die Rohdaten zu kommen, habe ich die Antwort auf das Warum nie irgendwo dokumentiert gesehen.

Die Kopfeinheit

IMG_6087

Die Kopfeinheit ist nicht zum Öffnen gedacht. Die vordere und hintere Schale werden durch zwei unzugängliche Schnappverschlüsse zusammengehalten. Mit einem Messer oder flachen Schraubendreher und ein bisschen sanfter Gewalt bekommt man die beiden Schalen voneinander getrennt. Seit dem benutze ich einfach zwei Klebestreifen, um das Gehäuse zusammen zu halten. Unter der Abdeckung befindet sich ein kleiner Akku, eine Platine mit der ganzen Elektronik und eine flexible Platine mit den Anschlüssen für die Elektroden.

IMG_6090IMG_6096

Die wichtige Platine wird von zwei kleinen Schrauben gehalten. Die interessanten Teile, die nicht offensichtlich sind, habe ich hier mal markiert.

IMG_6094_n  IMG_6095_n

Die Rückseite ist schnell abgehandelt. Das einzige potentiell interessante Bauteil ist hier der mit 1 markierte Bluetooth-Baseband-Chip BlueCore6-ROM. Aber da wir schon wissen, dass der die Rohdaten gar nicht erst erhält, soll er fürs erste keine weitere Aufmerksamkeit bekommen.

Der mit 2 markierte Beschleunigungssensor (ADXL345) war für mich eine kleine Überraschung. Ich wusste nicht, dass das Zeo auch Bewegungsdaten in seinen Algorithmus einbaut. Das vermute ich jedenfalls, denn es macht Sinn, um Wach von REM zu unterscheiden.

Die 3 ist ein MCP609, der letzte Teil des Verstärkers. Dort könnte man das analoge Signal abgreifen, wenn man das tun wollte.

Leider passiert der ganze Rest der Datenverarbeiten in einem Chip (die 4). Der EFM32G210F128 ist ein Gecko-Mikrocontroller mit ARM Cortex-M3 CPU. Der übernimmt sowohl die Digitalisierung der EEG-Daten als auch die Berechnung der Schlafphasen.

Die Dockingstation

IMG_6100

Die Dockingstation des Zeo Mobile ist vergleichsweise klein. Sie wird ja auch nur zum Laden des Akkus in der Kopfeinheit benutzt. Ihr Gewicht bekommt die Dockingstation übrigens von einem, naja, Gewicht eben, damit das Teil auch stehen bleibt. Es wird ihr nachgesagt, dass sie auch nur ein Ladegerät sei. Das stimmt aber nicht ganz. Ein paar Schrauben am Boden und an den Plastikhalterungen im Inneren abgeschraubt fallen einem zwei Platinen entgegen. Darauf befindet sich auch ein Seriell-zu-USB-Controller, der Daten von der Kopfeinheit über eine USB-1.1-Schnittstelle an einen Rechner weiterleiten kann.

 IMG_6097 IMG_6098

Leider kommen dort so gar keine Daten heraus. Die Schnittstelle ist wohl für Firmware-Updates vorgesehen. Ob es auch eine Anwendersoftware für den PC gab, weiß ich nicht. Leider habe ich auch kein Handbuch des Zeo Mobile gefunden, weshalb diese Frage für mich bisher unbeantwortet bleibt.

Rohdaten?

Meine größte Hoffnung war, dass das verstärkte Signal durch einen Analog-zu-Digital-Converter geht, bevor es zur Berechnung der Schlafphasen in den Mikrocontroller kommt. Dann hätte man einen Punkt gehabt, an dem man die Rohdaten in einem brauchbaren Format hätte abgreifen können. Leider wird aber der ADC des Mikrocontrollers dafür benutzt, wodurch diese Variante nicht mehr in Frage kommt. Natürlich könnte man auch das verstärkte analoge Signal abgreifen und selbst digitalisieren. Aber so viel zusätzliche Elektronik möchte ich eigentlich nicht anbringen.

Dann dachte ich mir, vielleicht gibt der Gecko ja an einem Pin die Rohdaten aus. Äußerst unwahrscheinlich. Aber einen Versuch war es wert. Dort kommt jedoch nichts raus.

Das heißt auch an der seriellen Schnittstelle für die Dockingstation gibt es nichts. Möglicherweise können dort Daten abgefragt werden, indem man zuerst einen Befehl an die Kopfeinheit sendet. Vielleicht wäre hier eine Brute-Force-Suche einen Versuch wert.

Doch wie es aussieht ist die letzte Möglichkeit, an die Rohdaten des Zeo Mobile zu kommen, eine neue Firmware aufzuspielen, die die Rohdaten ausgibt. Die Hardware für eine Schnittstelle ist vorhanden. Die Zeit um die Firmware zu reversen jedoch nicht. Doch das heißt nicht, dass ich den Wunsch nach Rohdaten aus dem Zeo Mobile damit niederlege. Wahrscheinlich wird es hier irgendwann einen Folgebeitrag zu dem Thema geben.

 

Update: Anfang 2015 hat John Willis mehrere kurze Blogposts veröffentlicht, in denen er sich die Schnittstellen des Zeo Mobile angeschaut hat. Darin finden sich auch einige Links, u.a. zu interessanten Apps für das Zeo Mobile. Die Posts verteilen sich über Februar und März 2015.

Posted in Gadgets, Zeo | Leave a comment

Schlafenstalken, Blinkenschlafen

Die Installation auf dem Camp ist live und zeigt unsere Schlafstadien an. Wir haben für drei Zelte zeopi’s installiert und erleuchten mit LED-Streifen die Zelte in den Farben derjenigen, die darin schlafen. Eine kleine Webanwendung zeigt den “Multiplayer” Status unserer Village auf einer Slide an. Die beamen wir von innen gegen unser Pavillon.

URL: http://151.217.60.25/blinkenschlafen/beamer.php

Und so sieht es aus: blinkenschlafen

Posted in Schlafhacking, Zeo | Tagged , , , | Leave a comment