Zeo shutting down: export your data!

Yes. The O version unencrypts the SD card, the R version unencrypts the SD card and activates the serial port

Hi Eildosa, I think you would find the Bedside model better suited for hacking. The Bedside model offers fairly easy access to raw data while the mobile version does not.
My opinion anyway,
Jay

Hi all,

Finally, an update about receiving data from the beside:

  1. I connected the Tx pin of the bedside to the Rx (0) pin of the Arduino and ground to ground.
  2. I wrote a simple Arduino program:
int incomingByte = 0;   
int zeoPin = 0;

void setup() {
  Serial.begin(38400);  // opens serial port to the zeo, sets data rate to 38400 bps
  Serial.println("——————–");
}

void loop() {    
          
        // read the incoming byte:
        incomingByte = digitalRead(zeoPin); // Rx pin in the arduino
        Serial.println(incomingByte, DEC);
        Serial.println('\n');
}

However, this only prints 1s in the COM display and nothing else. I also tried another version reading the serial port again with 38400 bps and wrote to the serial port (I think that this was a mistake since the I think I should have been reading the input from the keyboard) but I was getting data from the bedside! I know this because the numbers I was printing to the screen were depending on whether I had the headband on or not.

However, I have tried that many times again and no luck.

Any ideas about how to get it to work? or why sometimes the Arduino gets confused about the serial port and the Rx pin?

Thanks!

I would agree with that, you can get the output of the bedside model directly

Any suggestions about where to obtain that viewer that has been taken down would be appreciated. Just my luck, I purchased Zeo over three years ago for my son, he never used it, today I thought I would use it for myself and discovered that Zeo is history. Would like to get some use out of it. Thanks.


Would you be willing to share the viewer? As Jay’s update indicates, that source has been taken down.

alfie, try this first: ZeoDecoderViewer0.2a2Release.zip

Then check your private messages

Jay

Hi all,

I finally got it to work, I am reading the data on the fly using the arduino. Many thanks for your help!

I was wondering if you guys know the format of such data or a reference to this format. It seems like a package of data starts with 65 and then a sequence of numbers, time stamp, etc. But not sure if there is a data format sheet to make sure I am parsing correctly those values.

Thanks!

Hi zeolith,

Attached is the information I have.

Enjoy

ZEO Raw Data API.pdf (263.4 KB)

Great. Thanks again!

I am getting a raspberry Pi soon so I might give a python parser a try as well.

I purchased a bedside Zeo over three years ago for my son who never used it. This unit has set in our closet unopened until recently when I decided to use it. After setting the unit up, opening the sealed sensor bag, and placing the sensor on the unit for charging, it took over 2 hours to even recognize the sensor unit and start the charge. Then it took another 5 hours to show full charge. But, I expect that the battery is too weak after sitting unused for so long, and that it will not hold sufficient charge to last through a night of logging. Does anyone have any experience with replacement of the batteries. I found nothing in the manual about replacing the battery(s). I may have to attempt to pry the sensor open.

Hi Alfie,

I hope the charge held through the night. 5 hours to charge is not too bad given they probably did not design the Zeo Bedside to fast charge the headband, and a slower charge rate should extend battery life. The fact that it did display the headband as charged is a good sign! From my experience Zeo put a lot of thought into the Bedside Unit design, so there may be life left in your unit.

We are all looking at the future of battery replacement (see post #101 this thread). Let us know how it works out, and if possible take pictures of the process and insides when it happens.

Thank you.

Zeo Bedside Model Resources

Terms of Use:
zeotermsofuse.pdf (71.6 KB)

Original encrypted firmware:
firmwareoriginal-v2.6.3.zip (163.9 KB)

Basic unencryption firmware:
ZEO-firmware-v2.6.3O.zip (161.1 KB)

Unencrypt and allow real-time serial port access firmware:
firmwareopenrealtime-v2.6.3R.zip (165.3 KB)

Python library - bridge to real-time port:
ZeoRawData-2.0.zip (6.9 KB)

Decoder library allows access to data in text or XML format:
ZeoDataDecoder.zip (164.0 KB)

GUI viewer with decoder library provides visual access and access to data in XML format:
ZeoDecoderViewer0.2a2Release.zip (594.2 KB)

Original myZeo website export data help sheet:
Export Data Help Sheet.pdf (527.9 KB)

To unencrypt previously encrypted data, see the post by bo3bber, here:

See a new Zeo viewer developed by Woodinblack:

send pm or email for corrections or additions

2 Likes

The Bedside Zeo DataDecoder Installation

Terms of use: zeotermsofuse.pdf

The Java-based Zeo DataDecoder reads the ZeoSleep.Dat file of the SD card and produces a txt or xml output.

The DataDecoder runs in the command prompt or Terminal Mode.

For Windows, remove all previous versions and download and install the latest Java (JRE) from Java.com. For Mac, see Java.com for instructions pertaining to particular OS.

To install the DataDecoder, first update the firmware with v2.6.3O or v2.6.3R. See instructions in post #90:

Next, download the ZeoDataDecoder.zip and extract the files to a chosen location.

Review the Doc file included, but note: Java JDK and Ant are not required.

In Command Prompt, change directory (cd) to the DataDecorder directory chosen above.

Then execute one of the following basic commands:
(assumes copy of zeosleep.dat file residing in working directory)

Write to screen
java -jar ZeoDataDecoder.jar ZEOSLEEP.dat

Create text file in working folder
java -jar ZeoDataDecoder.jar ZEOSLEEP.dat zeosleep.txt

Create xml file in working folder
java -jar ZeoDataDecoder.jar ZEOSLEEP.dat zeosleep.xml

Modify the commands as necessary/desired:

directory/java -jar ZeoDataDecoder.jar [options] /directory/ZEOSLEEP.dat /directory/zeosleep.txt

See Doc for options.

Most common errors relate to path and directory. For example, the error

‘Java’ not recognized as an internal or external command

most likely means you will need to precede the Java command with its full path or modify the PATH variable.

Here are partial examples of txt and xml outputs.

1 Like

Thanks. So far so good for the first night use. The battery indicator is inconsistent with description in that it blinks a lot longer than 2 hrs of charging and after indicating a full charge will begin blinking if the headset contact is broken even for a moment, as if it is a weak charge. But apparently it is okay and lasted the night. Now I need to figure out the whole data conversion process (CSV preferred). If I need to experiment with battery replacement, I will post up the results here.


I am going to attempt one of the data conversion processes offered up on this forum. First I need to upgrade the firmware but am reluctant to irreversibly alter the existing capability of my bedside unit without a backup.

Is there any reason why I can’t take a spare SD card, format it (in my PC) and insert that with the firmware update, reserving the original SD card (with original dat file) for retracing my steps if something goes awry. I’ve also DL a copy of the original firmware file.

More specifically, the original Zeo SD card is a 250 meg and my spare is 1 gig. Would I need to match the capacity exactly for the Zeo unit to recognize and utilize? Wonder if Zeo anticipated that possibility (of a different SD card being used)?

Input appreciated.

Alfie, I see no reason your 1 gig card won’t work. The card that came with mine was 2 gig. Don’t forget to insert your new card into the bedside unit 1st to create the Zeo folder. Then put the new card in the PC and copy the new firmware into the Zeo folder. It will not work if it is not in the folder. Also, you must erase the card after installing the new firmware, because when you put the card back in the bedside unit to update the firmware it will write encrypted data to the card. Erasing after updating gets rid of that encrypted data. Neither decoder will work if there is still encrypted data on the card.

The decoderviewer is probably the easiest to install and work with, both the viewer and the decoder use the same firmware update procedure. Review the steps in post #90.

Jay

Hi Alfie,

I have an 8 GB card in mine so 1 GB should be fine. The Zeo Bedside is tolerant of other folders on the SD card as long as it has the one it wants, which is put on by erasing the card from the bedside unit. You can completely wipe the card on your PC and then put it in the Zeo Bedside and erase it again to create the proper folder and necessary data file. If you are updating firmware it also goes into this folder. Remember to erase the SD card in the Zeo Bedside after firmware update.

I don’t think you need to save the original SD card. The process was to transfer the data to your PC and then upload to the myzeo.com website, so just save the encrypted file somewhere you can find it.

Good luck.

I have some contributions to make on Zeo sensors (it was I who wrote all the Wikipedia Zeo,_Inc.#Effect_on_users section (as it stands today) mentioned in message 1, BTW).

I’m not an expert writing authoritatively; in particular the suggestions I make are probably extremely inappropriate if you use electrodes in a life-critical medical environment. I’ll try to distinguish what I’ve found out, what I’ve read, and what I think is reasonable! All this may depend upon each person’s skin, hairline, etc.

While Zeo was still a going concern, I saw some postings about using disposable adhesive gel ECG electrodes with offset press-stud connections, which was reported to give better results than the Zeo headband.

Electrodes used were Ambu Blue Sensor Monitoring Electrode. P-00-S/<number in pack, e.g. 50>.

From my reading: ECG electrodes come with several different connectors; only the press studs are suitable. In the Ambu range the final “S” means stud; “A” and “F” are different connectors (but more on this later). Most electrodes have connectors in the middle of the pad, which is not suitable for Zeo; it is essential to use offset connectors. The electrode is basically a pad covered with an electrically conductive gel, to give good skin contact over a largish area. It can be fixed to the body with, say, sticky tape, or an electrically conductive glue can be used (the glue is water-soluble; you can wash it off with water, don’t use alcohol). There is nothing magical or high-tech about what an electrode is; there is even a project to make electrodes with the plastic inserts in beer-bottle crown tops, using a flour, water, and salt conductive (but not adhesive) gel for use in countries that get given ECG machines but can’t afford disposable electrodes.

I think I also read somewhere of someone taping the Zeo transmitter directly to their forehead, getting a signal.

The problem with gel electrodes is that they dry out. The Ambu electrodes come in packs of 50; the pack has an expiration date, and an opened pack must be used within 30 days. For non-critical applications like Zeo I would simply use them until they became unreliable. I tend to refrigerate things to make them last longer, but doubt that it would help with an open pack of electrodes. Hermetic sealing of the pack and squeezing out air should help (this is recommended by sources, not just my idea). The blue center of Ambu electrodes should never be pressed, but only the white ring; always avoid any pressure on the center, especially when pressing an electrode onto the skin to get it to adhere firmly and removing tape.

General advice for nurses is that electrodes should be placed on dry skin. For ECG, contact is improved by shaving the skin and removing dead skin cells by rubbing with a rough paper or cloth.

I read somewhere (Amazon review?) that you could get two nights’ use out of the Ambu electrodes, but that results on the third night were not reliable.

It’s basically a matter of money; you can buy electrodes and use 3 every 2 days, discarding opened packs after 30 days and unopened ones on expiry. This adds up over a year; you can try to extend electrode life to reduce the outlay. I estimate that using electrodes every day, once only (as specified) and buying one pack at a time from Ambu, costs £442 per year. Using electrodes several times, buying larger quantities to reduce carriage costs, and buying from sources such as eBay reduces the cost progressively, until a single order of a years’ supply of short-dated P-00-A electrodes (wrong type, but easily modified, see elsewhere in this post) to be used 5 times (much more is possible), and beyond their expiry date, costs £26.

What I have tried: first let me say that I haven’t done the extensive comparative testing to determine absolute maximum mileage - it would take lots of packs and many months. But, by Feb 2014, I know I (YMMV) can get at least 10 days out of each set of 3 electrodes, ignore the expiry date on the pack, and ignore the “use within 30 days of opening” warning if I follow some simple procedures.

I’ve used gel electrodes, both fresh with their own glue and older with tape; they stay in place very firmly and never come off during sleep or when up, and I never have the feeling that they are precariously held, though I worry about the irreplaceable transmitter falling down the toilet or into the wash-basin! I haven’t had any issues with the electrodes or Hypafix, Transpore and Micropore tape damaging or marking my skin. I wash my forehead and dry it by rubbing roughly with a towel (to help remove dead skin cells), then place the electrodes and rub the white edge (but not the blue middle where the gel is) to help them stick, adding surgical tape to tired electrodes.

If electrodes dry out, let’s see if we get improvement by keeping them moist. A single experiment with adding a drop of water to electrodes that were fading didn’t work (maybe it could be made to work? But the following way seemed better). So I got a small plastic container with lid, put some cotton wool in and saturated it with water, with a bit of free water at the bottom, and a few drops of bleach added to inhibit mould. Every morning I put the protective plastic layer back on the electrodes and lay them on top of the cotton wool in the humidor; the idea is that they are in a humid atmosphere, not wet (which would wash the adhesive and the conductive gel off). I used a set of electrodes for 5 days this way. For the first two days the adhesive glue held strongly. By the third day the glue was weakening, but the electrodes still gave a reliable signal if held in place, so I put 2.5cm-wide tape on where the electrodes weren’t sticking (but I didn’t need to tape all 3 electrodes even on the 5th day; two lower electrodes in a line tend to be OK, the one sticking out higher up is less flat and prone to unsticking). I can get about 6 days this way, and more with could Tensive adhesive conductive gel (see below).

What I think is reasonable: it would need months of comparison tests to confirm this, but I am storing my opened packs of electrodes in a large plastic lidded container with absorbent cloth or paper soaked in water with a drop of bleach - my overnight humidor writ large. I think both the 30-day limit and the printed expiry date are ultra-conservative, for medical use (you don’t want the tiniest chance that your defibrillator electrodes are dead, or your patient will be), so being able to exceed the limits doesn’t actually prove that the humidor works - maybe the electrodes would work OK without? Maybe someone will try comparative testing?

A way to revive fading electrodes is with Parker Tensive adhesive conductive gel, designed I think for dry TENS electrodes. Amazon reviews complain that it leaves a terrible sticky mess, and recommend applying the gel and letting it dry for 24 hours; I disagree. The manufacturer says to apply and use immediately. I put the smallest possible amount on the middle and spread it with a finger, immediately before use. There is a bit more sticky mess the next day than with the original electrode, but it comes off easily with water. One application of Tensive (I’ve never tried more) gives the electrode another 4-6 days life, though with 6 days electrode life anyway it may not be worth bothering with it.

There seem to be Chinese producers of electrodes which may be suitable, but the minimum order has lots of zeroes after it. I doubt there’s enough of a market to import these things for home use in small packs; I’m certainly not going to do it. Maybe a Chinese seller might find it worthwhile to offer small quantities on eBay, if they are suitable?

I accidentally bought a pack of (cheap, short-dated) type P-00-A instead of P-00-S; I discovered that they were just the press-stud electrodes with a small plastic housing added to plug 4mm connectors into, and I was able to cut off the extra bit with diagonal cutters, leaving effectively P-00-S. The first one took 3 cuts and about a minute, subsequent ones one cut (you cut the base of the housing, being careful not to press or twist the center of the electrode) and 5 seconds. So if P-00-A or P-00-K are available at bargain price and you don’t mind spending a few seconds, they can be made to work.

Tapes for fixing electrodes that don’t stick well: 3M Micropore; 3M Transpore (cheaper, holds more firmly with slight risk of skin damage, though not like ouch-traditional-sticky plasters); Hypafix Self Adhesive Dressing Retention Tape. I have a roll of 5cm wide Hypafix; I cut it to half-width for Ambu electrodes. I find Hypafix best as it is more conformable and doesn’t lift at the edges. I use the same tape for 2-3 days and store the electrodes with it in place, for convenience not economy. Old tape can be peeled off the electrodes, with a little difficulty, trying to hold the electrode edges, not center; or it can be trimmed off with scissors (I usually peel). I haven’t had any skin damage from tape or electrodes.

I might experiment with fixing the Zeo transmitter directly to my forehead with the full width of the Hypafix tape, or maybe some type of headband. Maybe push metal sew-on press studs into the transmitter to increase the area? Maybe use press studs with something like the African beer-bottle plastic circle with conductive gel, adhesive or not?

While everyone will have seen the article on making a Zeo-type dry headband, gel electrodes also work fine.

I hope this is helpful.

10 Feb 14: In case anyone comes here via a search, I’ve added some further comments in the second part of post #282. I’ve also slightly updated this post (mainly re Hypafix, Tensive and electrode life - later experience has confirmed the rest), valid as of 19 Feb 14. I don’t think there were any comments to the original post affected by the edit.

2 Likes

Hi pol098,

I purchased one of the Zeo adhesive sensor kits, but have not used it yet. It is basically a plastic adapter plate that matches the snap location on the Zeo Bedside electronics module. The connections spread out to the three familiar Zeo headband locations.

I agree this approach is expensive and I am considering other options for the connection. The decoded data includes a field for Headband Impedance that will give you a measure of the performance of your setup.

"Headband Impedance – A measure of the headband’s ability to pick up signals from the forehead. Averaged over 10 minute periods for the last 24 hours. Store using 8 bits. Lower is better. 0 indicates no data was received from the headband for the 10 minute period. 255 indicates an error - the headband is off the head or otherwise not making a connection. "

I believe the article I read talked about lower impedance (better) measurements for the adhesive sensors. You should be able to confirm this by comparing the data (average and standard deviation of the headband impedance) from two different setups (headband vs adhesive). With my headband I recently got 129 average and 2.9 standard deviation. I also noticed dropouts on a different night that would probably not occur with the adhesive connections. I am not sure how the signal quality would impact the detection of deep sleep.

Thank you for sharing your experiments.

Thanks for your comments @OP_Engr. The problem with the Zeo adhesive sensors is that the supply will probably dry up (as will the electrodes!). Also, I don’t know if I can get them in the UK, and they would probably be expensive (haven’t investigated as the Ambu electrodes are totally viable). I have bought 2 years’ supply (if used 5 times) of short-dated Ambu electrodes for £50 (~US$75) ; so long as they work beyond their expiry date I’m OK.

Wasn’t aware of this, thanks. Will have a look. Where I first saw a report on the use of gel electrodes on the Web there were impedance measurements; the electrodes had significantly and consistently lower impedance than the headband. I can’t make this comparison as I don’t have a working headband. My attitude is basically that the gel electrodes definitely work, and probably better than the headband; they’re also about my only option, so basically I’m not seriously evaluating their performance, but trying to get them to work optimally and last as long as possible. For ultimate economy improvised electrodes based on press-studs and plastic film with a flour-salt gel, with the transmitter and electrodes taped to the head, might be the way to go, and have good impedance, but I’m not going there. (I’d also be concerned about the salty gel corroding the transmitter’s press-studs.)

I’ve not done this, and don’t have a headband, but the link above reports just such measurements.

I don’t have any dropouts with adhesive gel electrodes, except towards end of life. I don’t remember many dropouts with a headband, though it did occasionally shift or come off.

That can be tested statistically by someone with a headband. All I can say is that for a time my Zeo headband reported a roughly consistent deep sleep time (human memory only, no records, only an encrypted pre-meltdown Zeo sleep file). I stopped using it for a time, then resumed with gel electrodes, which consistently reported about twice as much deep sleep. That could be a difference due simply to gel vs headband, but maybe my sleep changed? Or the different relative electrode positions forced by gel electrodes give different results?

Hi,

I saw a Zeo Mobile Sleep Manager and I was wondering if I buy it, can I still use it with an android app despite the website is down?Or is it totally unusable now?
Thank you for your answers