|
(current version 1.17)
We want a robust, easy-to-use computer with all functions that
other producers fail to offer -- without losing facility of
use and reliability. We also offer the computer up as a experimental
platform, on which new models of decompression calculation
may be tested, without first having to develop the complex hardware.
General • Software
and Source Code • Further Development
• Bootloader • Download
Firmware
General:
A remark first: Programming a microcontroller (like
the one used for our OSTC) is completely different from programming
a Windows program, for example. The available ressources are limited
and have to be considered carefully before each extension.
Even though single parts of the program can be developped individually,
it doesn't mean that "plugins" can be loaded and installed just like
that. The firmware as a whole can be updated, but not a single
module. Newly developped modules are thus compiled with the
other parts of the program and then installed on the OSTC as a new
firmware version.
Before you start programming, you will most likely need some time
to get acquainted with the OSTC. Experience with microcontrollers
-- ideally with some by Microchip -- are of advantage.
Software and source code:
We will publish the entire source code. Apart from
the Bootloader, the entire controller may be used. This also means
that there is no operating system in which the user can run his own
programs, but that you have full control of all orders/functions that
are described in the data sheet of the controller.
The RAM is not managed, meaning that a faulty routine may very well
influence other functions. An intensive testing phase
(in which every interested user can take part) will thus precede
every stable version. The controller of the OSTC runs basic
hardware function (such as the reading of the pressure sensor) as
well as higher software functions (such as the decompression calculation).
For those, interrupts and scheduling are used according to priority.
Our current software version offers the functions of a mixed gas
computer and occupies less than 30% of the available program space,
less than 30% of the available RAM and less than 50% of the available
computing power. Obviously, there are enough reserves for extensions
and adjustments.
Thefunctions concerning hardware and modules are
written in Assembler; to make it easier to read,
the decompression routine is written in C. The momentarily
used calculation model is the Bühlmann ZH-L 16. However,
even with extensions written in C, the developper should be familiar
with data structure as well as particularities of the processor. We
will help with arising questions to the best of our abilities and
hope, that other users will familiarize with the source code and help
to further develop this project.
Further development:
Open Source does not mean that everyone using this unit has
to write programs, it means that he can. Users that don't
program, but instead notify of errors and give hints, profit just
as much. (Especially considering that there are only few
dive computers on the market that make a firmware update even possible.)
In addition, the OSTC offers the possibility of installing
additional hardware. To the right of the display, on the
main board, there is a connector with an interface to the controller.
We already have a few ideas of how to use it (some people have voiced
their interest in a wireless tank pressure integration; the required
room has thus already been integrated in the case design), but there
is no time plan for additional hardware modules just yet.
Bootloader:
Manual:
- After extraction, start the Bootloader executable tinybldWin.exe
- Select COM Port
- Test communication with button "CheckPIC" and then reset the OSTC
with the "Reset"-button at the interface within 10 seconds
- Load currect HEX file (Firmware file)
- Click button "Write Flash" and then reset the OSTC with the "Reset"-button
at the interface within 10 seconds
- While the firmware is being updated, do not push any button at the
OSTC and wait until the bootloader has finished
- If the firmware update was successful, the OSTC will reboot automatically.
You have to reset time and date.
You may download the Bootloader on our download page.
Firmware:
This firmware is distributed under the GNU
General Public License.
The following archives are currently available:
Changelog:
New in 1.17:
- Added underwater menu "Bailout in ppO2 mode
- five bailout gases can be selected underwater
- Added Apnoe mode ("Setup" -> "Decotype")
- fixed bug in NDL calculations in depth < 7m
- fixed display bug in Gauge mode
- Added CF30: Apnoe mode timeout in minutes
New in 1.16:
- Fixed Bug when CF2 was set to 255
- Added background debugger: When the unit is reset from Divemode
using the USB interface, some important informations are displayed.
With this informations we can reproduce and fix potential problems and
bugs.
New in 1.15:
- added custom text in Surfacemode
- changed Surfacemode layout
- entire profile memory can be deleted from Logbook menu
- several calculations are done faster
- fixed bug with external I2C bus devices
- changed I2C timeout routine
- fixed bug with N2 saturation display during Divemode
- fixed bug with Nofly time display
- fixed Nofly time overflow
- fixed bug in Logbook detail view (Desaturation time)
- fixed bug with gauge mode display
- fixed bug with serial number display
New in 1.14:
BETA Version - Do NOT use for diving!
- ppO2 does not overwrite "Menu?" in Divemode
- Added Debugmode
New in 1.13:
BETA Version - Do NOT use for diving!
- Desaturation and NoFly Time calculations adjusted
- Fixed Display Bug in NDL mode
- Fixed Display Bug for ppO2 display
- ppO2 is Displayed in Surfacemode
- Added Submenu in Logbook Detailview
- Dives can be deleted from the Logbook
- small cosmetic changes in the divemode layout
- Fixed bug in deco forecast (Decogas)
New in 1.12:
BETA Version - Do NOT use for diving!
- Added Battery Information Menu
- Battery LED blinks two times when battery is >90%
- Start Gas is Displayed in Surfacemode
- Removed Gradient Graph in Surfacemode
- Renamed underwater Menu "Set Gas" to "Gaslist"
(Select gas from the Gaslist)
- Added Underwater Menu "Set Gas" (Configure a Gas manually
during the dive)
- Added Event "Manual Gas change" in profile routine
- Fixed bug in deco forecast
New in 1.11:
BETA Version - Do NOT use for diving!
Added CF28: Offset Logbook dive counter (Detailed view only). When <>
0 this CF is increased with every dive!
Added CF29: Last decodepth in m, will display a warning if >6
New in 1.10:
BETA Version - Do NOT use for diving!
- Expanded GAS Setup
Gases can be (de)activated for more precise decompression forecast
Change depth can be specified
- Fixed Bug with Month length
- Added CNS calculation
Added CF27: Threshold in % to show CNS value
- Added CNS decay
- Fixed Profile-Bug
New 1.08:
- Fixed short sampling rates
New in 1.06:
BETA Version - Do NOT use for diving!
- Fixed gas table in profile header
- First Gas and Decotype are resetted after update
- unused entries in the Setupmenu are ignored
- increased debounce delay in Setupmenu
New in 1.05:
BETA Version - Do NOT use for diving!
- Added Gauge mode
- Divetime is displayed in mins:secs in gauge mode
New in 1.04:
BETA Version - Do NOT use for diving!
- Updated internal Logbook for new profile format
- fixed bug with Events in new profile format
New in 1.03:
BETA Version - Do NOT use for diving!
- He ratio now rolls to zero in "Gas Setup" when O2+He>100%
- Added CF20-CF26 (New Profile format)
CF20:sampling rate in seconds
CF21:sampling_divisor_temperature
CF22:sampling_divisor_decodata
CF23:sampling_divisor_tankdata
CF24:sampling_divisor_ppo2_sensors
CF25:sampling_divisor_nuy1 (Not used yet)
CF26:sampling_divisor_nuy2 (Not used yet)
- First try with new profile format 0x20
01/15/08: Stable 1.02 has been released
New in 1.02:
- increased debounce delay in Menu and Logbook
- increased timeout for UART receive
- Fixed bug with temperature compensation
01/15/08: Stable 1.01 has been released
New in 1.01:
- Fixed bug with negative and very low temperatures
- Fixed bug when timeout was set to Zero
- Fixed bug with switches in Simulatormode
- Changed ppO2 low warning level to 0.19Bar as default
- Tissue saturation graphs can be displayed in divemode
- added new Interface command "g" (sends internal EEPROM via
UART)
- added new Interface command "h" (resets decompression data)
- a firmware update does now reset custom functions automatically, gases
are not overwritten
- NoFly time shows 0:00 instead of 00:00 when zero
01/10/08: The current stable version is the most recent release. Beta
0.23 has known bugs -- do not use for diving!
|