Karl's Free Rebreather Resource Page

A Web Log of the K1 Open Source Version
Includes Open Source files for both electronics and software


NOTE: If you did not read the WARNING page, go back and do it now!


For the running K1 "Prototype" Project Page, click here
For my view on the politics of rebreathers, and why I'm doing this, you should click here.

What's the difference between the below and the "Prototype" page? Plenty. The below is a free contribution to the Rebreather community. It consists of my early code and board design work endeavoring to build an eCCR. What's here works, and there are pieces of the project I am actually building to potentially produce here as well - along with some bits and pieces you might be interested in that may, from time to time, be for sale. None of what is for sale on this page is potentially hazardous to your health, at least not without a LOT of work on your part (for example, the handset case is just a box - a rather precisely machined box, but just a box nonetheless....)

For example, if you're looking for a source for a handset case that will accept the very common 4x20 LCD displays, this is the place. Scroll on down towards the end and see what I've got. If you're looking for some free source code, schematics and PC board layouts, this is the place as well - scroll on down.

On the other hand if you're interested in where I stand on the "prototype" version of this thing - which may lead to a production product, then you want to follow the above link, as that will take you to the prototype status page. And of course if you want to know why I'm doing it all, you just passed the correct place to click.

Enjoy your stay here!





All material on this page is Copyright (C) 2006 Karl Denninger

These programs and data files are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

These programs and data files are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details. You may view the full license here or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

These files can be used for experimentation with the control electronics for an eCCR (Electronic Closed-Circuit Rebreather.) Depending on your desired level of integration, you can use this code (with some modifications) as simply a three-cell PO2 meter, or, as it stands and with an appropriate solenoid, you can actually use it to control the PO2 of a unit.

Please note that this is not by any means a complete, tested, commercial-grade product! What is presented here will require SIGNIFICANT engineering work to turn into something you can actually use - if it is even suitable for that at all in its present implementation! You - and you alone - must discern what's useful here for your purposes and what is not. Because I can in no way control how you intend to use this information I am presenting it here ONLY FOR YOUR STUDY AND REVIEW as one approach to the issues presented in monitoring and control of O2 content in a closed-circuit-rebreather.


For the final time - actually attempting to use the material here to build a closed-circuit underwater breathing device can result in your DEATH or SEVERE AND PERMANENT INJURY. While it is fun to play with devices like this on the bench, while dry, using them underwater is an entirely different matter. Only YOU can determine if you have the knowledge and ability to pull it off - and the price of being wrong in that determination is quite literally your life!


The following data files are designed to be incorporated into Express PCB, a low-cost board house which provides prototype PC board services. You can download their software from the link provided, and use it to design and have produced PC boards. There is both a schematic and board layout file. Note that these files have been used to produce actual working prototype PC boards, and include a bill of materials in the form of the specific part numbers called out.

The schematic and board layout files may be downloaded HERE.

The files in this archive are:

The latter file can be used DIRECTLY to make Printed Circuit Boards that implement the electronics design.

Please note that the "head" board, should you choose to locate it in the head of a rebreather, is exposed to full ambient pressure, condensing humidity and hyperbaric O2. This is a potentially hazardous environment and short circuits or malfunctions can lead to smoke or even a fire inside the unit! For this reason you must provide proper circuit protection in the power feed and fully pot this board, including its connectors, so that there is no possibility of sparks being emitted by loose connections or malfunction.

The CPU board must be located in a 1 ATA enclosure as it contains an electrolytic filter capacitor which reacts very badly to elevated pressure. It is envisioned that this board will go inside the battery container; it has been sized so that it will fit down the "bore" of a standard 4.5AH dive light cannister. In addition, the same cannister will accept a 4AA + 1AA NiMH battery holder configuration. Mounting arrangements and cabling are up to you, of course. Alternatively, you could mount it in the handset, if you so choose and have room for it.

The board files are designed to produce one each of the CPU and "head" board per actual board - you then cut them apart with a fine-tooth hacksaw. It is done this way because ExpressPCB provides you with THREE boards for about $50 in this size - therefore, you get three COMPLETE board sets for a very, very nice price! If I was to separate the boards it would cost twice as much...... To use this feature you want ExpressPCB's "Miniboard" service - the option is in their software. Just put in your billing and shipping information and in under a week they'll be at your door ready to go!

The CPU board has one jumper on it that is not on the schematic. Please refer to the schematic for the proper connection for this jumper if you are using the Parallax BS2Pe microcontroller. This jumper is present because this same board layout will also function with the "BX" (Netmedia) and "ZX" (BasicZX) microcontrollers.

No code is available (publically) for either of those two chipsets - the only publically-released code is for the Parallax BS2pe chip. If you wish to use these boards with the BX or ZX chipsets, you are on your own. The

The above files were designed to cover the code found here, which operates on the Parallax BS2pe. You will need Parallax's compiler in order to use these files. This is a low-cost programmable microcontroller that runs a rather primitive Integer Basic interpreter. There are some limitations to this chipset that have a significant effect on this firmware; they are:

Note that for my own "production unit", including what I may choose to produce as a commercial product at some point in the future, I have moved to the "ZX" microcontroller and a different PC board design for various reasons. As such what is presented here is for your use and study; it is extremely unlikely that I will actually dive this EXACT configuration, although I almost certainly WILL dive - and update - the Parallax software.

The code included can run on either a 2x16 or a 4x20 display, both made by Parallax. For many reasons I strongly recommend the 4x20, as it simply displays a LOT more data. All the more recent updates to the firmware were predicated on the 4x20 - while the 2x16 will allegedly work, I have not attempted to run the full controller code on it since many display and functionality changes were made - so you do so at your own risk (and reward, if it works ok for you.)

What can you do with the above?

Here are some photos of what the code actually looks like, along with the hardware:

The CPU board, complete, with the BS2pe chip mounted during burn-in. Note the cut traces (an "oops"), which is why the board file is a Rev2 in the archive..

Both CPU and "head" boards, complete. Note the "ZX" chip (what I'm working with now) on the CPU carrier. Yes, it really will support either...

The K1 CPU Startup Screen.

You were a bad boy and did not calibrate within the last 24 hours!

Ok, you did now....

Cell millivolt display.

Display during a dive - your depth, dive time, the clock time, setpoint and all three O2 sensors

Display during a surface interval (you haven't dove the unit since it was turned on)


A Jpeg of what the board looks like, at the silkscreen level, before it is sawed apart and filled. Note that if you use the "miniboard" service (cheaper!) there is no soldermask or silkscreen layer.

The completed handset case with an LCD mounted in it (the Fischer connectors are not yet here....)

Cases, should you want one or more, may be (depending on supply) available for sale. The case was designed for and fits the Parallax 4x20 serial LCD, and most other 4x20 LCDs with various serial backpacks. The case itself is machined from a solid block of black delrin with the lid machined from clear polycarbonate. The lid is a nominal 1/2" thick (actual .485" less the lip of .050") and the case itself has a nominal wall thickness of .500". The studs for mounting the LCD are Allied Electronics SKU 839-0841 (Keystone 4801), and the nylon screws are Keystone 9327 (Allied also carries these in bags of 100.) The lid screws are standard 6-32 x 1/2 stainless socket cap screws, available at Home Depot or Lowes. Note that the case itself is tapped - there are no metallic inserts, and thus no corrosion (either crevice or dissimilar metal) concerns. However, for this reason you must be careful when tightening down the lid, as it is possible to strip the holes in the case! The lid seal is a standard 1/8" nominal c/s O-ring available from Air-Oil or nearly anywhere else. The cable hole on the side of the case is designed to accept a Fischer DEE-104 bulkhead connector, and there are two holes on the bottom of the case drilled and tapped 1/2" UNC intended to mount a boss, button and spring on which is mounted a magnet to activate switches inside the case. Clearance from the bottom of these bore holes to the inside of the case is approximately 1/4" which is perfect for reed switches and should work for hall effect transistors as well if you use a strong enough magnet. The case has 4 holes on the bottom corners intended for 3/16" bungie for a wrist mount. If you're interested in one or more cases drop me a note at the below email link. The case was designed for 10 ATM (330') with a 2:1 safety factor; this has not yet been verified, but will be.

The Bill of Materials for the above board is coming soon - the schematic should have enough for you to construct a working copy, but as soon as I can get the time to go through the invoices and POs that I have for the various bits and pieces, and extract part numbers from various suppliers, I will post a Bill of Materials file in this space.

Questions? Feel free to ask away by email!

If your mail bounces you get to try to pass the Turing Test (another name for a test of sentience - if you can't pass it then you probably should be playing with dangerous toys like Rebreather Controllers!)

Enjoy, and dive safely!