Profile cover photo
Profile photo
Free Cross-Platform Open-Source CPAP Review Software
Free Cross-Platform Open-Source CPAP Review Software

SleepyHead's posts

Post has attachment
Just spent ages trying to track down a ResMed importer bug in SleepyHead that shouldn't technically exist.. My Ti & Te waveforms kept doubling up, with different but similar looking plots.. 

I found the culprit, and I am rather annoyed/disturbed by it.

ResMed has been caught again being naughty with the EDF format, reusing EDF signal names. Could they at least behave a little and slap a 2 on it?

The solution to fix it in SleepyHead is easy, just take the first one (they are processed in order stored in the EDF file), as the second plot looks rough as guts compared to the first, as you can see in the screenshot.

Can anyone think of why there would be two?
I'm don't think I'm going to even bother keeping the (bottom) unfiltered one..
2 Photos - View album

Post has attachment
Good news CMS50F v3.7+ and CMS50i owners..

SleepyHead codebase now directly imports from these devices, as well as files saved by Spo2 Assistant 

Thanks to François Revol and Michael Masterson for all their help getting to the bottom of how these little oximeters tick.

Post has attachment
Been working on some new stuff.. thought I'd give a little update.

Just implemented a Time at Pressure chart, very text-y, but has useful information in it..  It's the first "graph" I've done that background calculates, meaning it works it out on another CPU and orders a redraw when ready.. Doesn't really need it because it calculates so fast, but anyway.. at least now I know I can do it when I really need it. :-}

The T@P graph in the screenshot isn't showing a lot of information, because it is showing for the zoomed in selection.. updates live as you zoom/pan/whatever..

If any of you haven't seen the Line Cursor mode, or the context highlights, they are shown too, as are the markers over all graphs, and the ability to disable individual events (the combo box down the bottom).. 

You can even rename channels labels/names/descriptions and change their marker/plot colors.

Tons more new stuff waiting for you in 0.9.7 :)

Post has attachment

So Shiny.. The new S10 looks like a sexier S9 turned on it's front. 

Love the look of the humidifier.

Can't wait to write the importer.. I need me some data samples! :) 

In an effort to boost SleepyHead's quality control, future binary builds of SleepyHead will go through a little more rigorous testing by a closed beta group before being publicly released.

This doesn't mean there won't be any more publicly released binaries until release day, it just means that the steps along the way to an official v1.0.0 release will hopefully be more reliable.

The raw source code of course is still open for anyone who wants to delve into it, or "roll their own" binaries from it.

If you are interested in joining this group, and you meet one of the following criteria, don't hesitate to send Jedimark a request via email.

The Criteria...

1) You regularly track SleepyHead's GIT repository and build from source and have given patches or feedback to help solve bugs.

2) You work on documentation or tutorials for SleepyHead

3) You work (or would like to work) on translating SleepyHead into other languages.

4) You are well versed in the program, regularly help others in the forums, and you know how to give clear, concise bug reports on issues still relevant to the latest testing version, (always stating your Operating System, and your CPAP machine model), along with providing .zip'ed machine data to reproduce the bugs when necessary, to help solve these problems for other users.

5) You've got a genuine interest in SleepyHead, plus have a strong background in mathematics, statistics, programming, waveform analysis, or sleep medicine (ie, your a doctor or researcher), and have the time to participate and bring your technical expertise to discussions about improving this software.

The main condition of staying a group member is that any pre-release test binaries or shared machine data are not to be spread outside the beta group.

Members will have access to a private SleepyHead Testing Forum hosted over on ApneaBoard (thanks SuperSleeper!), where once things are up and running, you will find links to Sleepyhead builds that are updated a lot more frequently, a pool of test data from other CPAP machine types you may not have access to (and are welcome to add to).

Hopefully this extra quality assurance will eventually help reduce the number of SleepyHead bug reports showing up in our favourite forums, leaving them clearer for the much more important work they do.

Post has attachment
There's a couple of new test builds up for anyone willing to help in the bugsmashing leading up to the next solid SleepyHead version.

See the CPAPTalk thread here:

I've finally finished a complete Oximetry system rewrite, and it has now been merged into SleepyHead's master branch.  The old and busted oximetry tab is going away now, replaced with a nice easy to use wizard.

You can now sync an oximeter recording easily to any CPAP session, not just the first of the last day imported.

The Contec CMS50 importer has been rewritten from scratch using a more stable serial port library, it's also no longer interwoven with the Oximetry code.. it's just an another import module now. 

SleepyHead also now supports reading from .dat files from ChoiceMMed MD300W1 oximeters. (Thanks Bill Page for helping with this)

If anyone has any data files for any other brand of  oximeter, I'd love a sample of one of your files, as file importers are fairly easy to write.

Anyway, that oximetry rewrite was one of my biggest "blocking" tasks completed.  Still to do are some import multi-threadding improvements to stop SleepyHead using so much memory on initial import.

Then all that remains is bug hunting..

There are some Pressure settings glitches and STR.edf summary bugs left on ResMed, plus some session glitches with F&P ICON data, and that's pretty much it before an official 0.9.6 release.

I intend on 0.9.6 to be the best build yet.. so I'm not going to rush it this time. 


I fixed a bug today that was drawing yAxis labels incorrectly for the Flow Waveform. It was a minor bug, but fixing it exposed that the flow rate data underneath is centred after all.

I'm looking forward to tinkering with some more waveform processing code now I know this is true for more than just Philips Respironics. 

Post has attachment
I finally got around to making it easer to extend the Statistics page. It's still a work in progress, but eventually you will be able to choose which data channel calculations you want, rather than them being hard coded.

I'm not sure whether this will start as an editable XML/CSV file, or if there's an easier way to bring this feature to everyone. I'm still thinking it through.

I also just added a monthly view option, which will show monthly statistics going back up to 12 months. The toggle underneath switches between views quickly.

I ran into a bit of a snag with the Windows build.. OpenGL has been broken since Qt5.2 and I have to figure out a workaround. (I sure wish they'd stop changing things on me!)

Anyway, I'm off to do more tinkering..

2 Photos - View album

An updated Apple Mac build of SleepyHead is available for testing.

It features long awaited Philips Respironics System One x60 series fixes, plus an auto-scanner to make it easier to locate data cards.

It's available from here:

Please give it a try especially if you use a PRS1 x60 series machine.

I'll upload a Windows version sometime tomorrow.

Wait while more posts are being loaded