Version 0.9.0 (2025-06-30)
==========================

The v0.9.0 release adds support for several new devices. It also introduces some
important parser api changes to be able to add some new features and remove a
few deprecated ones. Some BLE enabled dive computers also required some extra
additions to the BLE I/O layer. Due to all these api changes, this release is
not backwards compatible.

New features:

 * Add support for new backends:
    - i330r: Aqualung i330R, Apeks DSX
    - symbios: Halcyon Symbios
 * Add support for some new devices:
    - Aqualung: i100
    - Cressi: Leonardo 2.0, Nepto, Archimede
    - Heinrichs Weikamp: OSTC 5
    - Mares: Puck Air 2, Sirius, Quad Ci, Puck 4, Puck Lite
    - Ratio: iDive 2, iX3M 2 GPS
    - Scubapro: G3, Luna 2.0, Luna 2.0 AI
    - Seac: Tablet
    - Shearwater: Tern, Tern TX, Peregrine TX
    - Uwatec: Aladin One
 * Add the sensor index to the ppO2 sample
 * Add a TTS field to the deco sample
 * Add a usage field to the tank and gas mix
 * Export the filter function in the public api
 * Add ioctl's for the bluetooth authentication
 * Add ioctl's for reading and writing BLE characteristics
 * Add helper functions to convert UUID to/from strings
 * Add a new field to report the GPS location

Removed/changed features:

 * Change the units for the sample time to milliseconds
 * Pass the sample struct by reference
 * Remove the backend specific calibration functions
 * Remove the clock parameters from the constructor
 * Remove the dc_parser_set_data function
 * Use separate data structures for USB and USB HID
 * Replace the dc_descriptor_iterator function

Version 0.8.0 (2023-05-11)
==========================

The v0.8.0 release is mainly a bugfix release, and brings in support for a
number of new devices. This release is fully backwards compatible with the
previous one.

New features:

 * Add support for new backends:
    - excursion: Deep Six Excursion, Crest CR-4, Genesis Centauri, Tusa TC1, Scorpena Alpha
    - screen: Seac Screen and Action
    - cosmiq: Deepblu Cosmiq+
    - s1: Oceans S1
    - freedom: Divesoft Freedom and Liberty
 * Add support for some new devices:
    - Aqualung: i200C
    - Cressi: Donatello, Michelangelo, Neon
    - Mares: Puck Pro +
    - Oceanic: Geo Air
    - Ratio: iX3M 2
    - Scubapro: G2 TEK
    - Shearwater: Petrel 3, Perdix 2
    - Sherwood: Amphos Air 2.0
 * Add support for parsing the decompression model
 * Add a public api to configure the depth calibration
 * Add a public api to configure the clock synchronization
 * Add a basic Android build system

Removed/changed features:

 * Migrate to Visual Studio 2013 (or newer)
 * Move the Visual Studio project to the contrib directory

Version 0.7.0 (2021-05-07)
==========================

The main highlight of the v0.7.0 release is the introduction of the new
I/O interface. With this common interface, the dive computer backends
can more easily use different I/O implementations at runtime, including
an application defined one. This is needed to support Bluetooth Low
Energy (BLE), for which there is no built-in implementation available.

Due to the fundamental changes to the I/O layer, this release is not
backwards compatible.

New features:

 * A new I/O interface
 * Add support for new backends:
    - goa: Cressi Goa and Cartesio
    - divecomputereu: Tecdiving DiveComputer.eu
    - extreme: McLean Extreme
    - lynx: Liquivision Xen, Xeo, Lynx and Kaon
    - sp2: Sporasub SP2
 * Add support for many new devices:
    - Aqualung: i100, i200C, i300C, i470TC, i550C, i770R
    - Heinrichs Weikamp: OSTC 2 TR
    - Mares: Genius, Horizon, Quad Air, Smart Air
    - Oceanic: Geo 4.0, Pro Plus 4, Pro Plus X, Veo 4.0
    - Ratio: iDive Color, iX3M GPS, iX3M 2021
    - Scubapro: A1, A2, Aladin H Matrix, G2 Console, G2 HUD
    - Seac: Guru, Jack
    - Shearwater: Peregrine, Teric
    - Sherwood: Amphos 2.0, Beacon, Sage, Wisdom 4
    - Suunto: D5, EON Steel Black
    - Tusa: Talis
 * Firmware upgrade support for the Ratio computers
 * Support for semi-closed circuit diving

Removed/changed features:

 * Unify the Uwatec Smart, Meridian and G2 backends

Version 0.6.0 (2017-11-24)
==========================

The v0.6.0 release adds support for several new devices, introduces two
new features and fixes a couple of bugs. There are a few minor backwards
incompatible changes, but most applications won't be affected by those.

New features:

 * Add support for new backends:
    - g2: Scubapro G2, Aladin Sport Matrix, Aladin Square
 * Add support for many new devices:
    - Aqualung: i200, i750TC
    - Cochran: Commander I, II and TM
    - Cressi: Drake
    - Hollis: DG02
    - Mares: Quad
    - Oceanic: F10
    - Ratio: iX3M and iDive series
    - Suunto: D4f, Eon Core
    - Uwatec: Aladin Tec 3G
 * Add basic timezone support
 * Add support for synchronizing the device clock
 * Document the public api with man pages

Removed/changed features:

 * Remove the deprecated gas change events
 * Remove the deprecated vendor_product_parser_create(),
   vendor_product_device_open() and vendor_product_extract_dives()
   functions from the public api
 * Remove the hw_{frog,ostc,ostc3}_device_clock() functions

Bug fixes:

 * Many small improvements

Version 0.5.0 (2016-09-30)
==========================

After more than three years of development, the v0.5.0 release is long
overdue. The main highlights are the support for many new devices, a few
new features and lots of bug fixes. This release is fully backwards
compatible with the previous one.

New features:

 * Add support for new backends:
    - aqualand: Citizen Hyper Aqualand
    - commander: Cochran Commander and EMC
    - eonsteel: Suunto EON Steel
    - idive: DiveSystem iDive and iX3M
    - meridian: Scubapro Meridian, Mantis and Chromis
    - nitekq: Dive Rite NiTek Q
 * Add support for many new devices:
    - Aeris: 500 AI, A300, A300CS, F11, XR-1 NX
    - Aqualung: i300, i450T, i550T
    - Beuchat: Mundial 2, Mundial 3, Voyager 2G
    - Cressi: Giotto, Newton
    - Dive Rite: NiTek Trio
    - Heinrichs Weikamp: OSTC 2, 3+, 4, cR and Sport
    - Hollis: TX1
    - Mares: Airlab, Smart, Smart Apnea, Puck 2
    - Oceanic: F11, OCi, VTX
    - Scubapro: XTender 5
    - Shearwater: Nerd, Perdix, Petrel 2
    - Sherwood: Amphos, Amphos Air, Vision
    - Subgear: XP-3G, XP-Air
    - Suunto: Vyper Novo, Zoop Novo
    - Tusa: IQ-700
    - Uwatec: Aladin 2G, Aladin Sport
 * Add a new sample with the active gas mix.
 * Add the temperature, tank and divemode fields.
 * Add support for updating the OSTC and OSTC3 firmware.
 * Add support for configuring the OSTC3 settings.
 * Add a new dc_parser_new2 convenience function.

Removed/changed features:

 * The gas change events (SAMPLE_EVENT_GASCHANGE and
   SAMPLE_EVENT_GASCHANGE2) have been replaced with the new gasmix
   sample (DC_SAMPLE_GASMIX). The legacy events are considered
   deprecated, but kept for backwards compatibility.

Bug fixes:

 * Many small improvements

Version 0.4.0 (2013-05-13)
==========================

The v0.4.0 release is mainly a bugfix release, and brings in support for a
number of new devices. There are also two minor backwards incompatible changes,
but most applications won't be affected by those.

New features:

 * Add support for the Heinrichs Weikamp OSTC3.
 * Add support for the native Shearwater Petrel protocol.
 * Add support for retrieving the transport type.

Removed/changed features:

 * The Shearwater Predator dive data format has been modified to include the
   final block at the end of each dive. The parser retains support for the old
   data format.
 * The mares_iconhd_extract_dives function now requires a valid device handle.

Bug fixes:

 * [atom2] Fix temperature and tank pressure for the Tusa Element II.
 * [atom2] Add support for yet another Oceanic OC1 variant.
 * [iconhd] Limit the memory capacity to 256K.
 * [d9] Add support for the Suunto DX.
 * [d9] Prevent an infinite loop.
 * [misc] Use a new xml element for the gaschange events.
 * [misc] Add a root element to the xml output.
 * [misc] Update the msvc project file.
 * [misc] Exclude device descriptors for unsupported devices.
 * [misc] Update the README with the new domain name.
 * [frog] Fix the gas change events for the Heinrichs Weikamp Frog.
 * [iconhd] Fix the parsing of the gas mixes.
 * [leonardo] Add a devinfo event containing the serial number.
 * [leonardo] Flush the serial buffers after opening the port.
 * [leonardo] Fix a potential NULL pointer dereference.
 * [atom2] Add support for the Genesis React Pro White
 * [veo250] Fix the temperature and year for the Genesis React Pro.
 * [veo250] Fix the sample rate for the Genesis React Pro.
 * [misc] Add additional descriptors for Uwatec devices.
 * [predator] Fix time conversion for Shearwater computers
 * [misc] Add support for the Mares Nemo Steel and Titanium.
 * [atom2] Add support for the Oceanic Pro Plus 3.
 * [smart] Fix the decoding of negative temperatures.
 * [misc] Re-order the decostop array to match the enum values.
 * [vtpro] Add support for the Aeris Atmos 2.
 * [vtpro] Add support for the Aeris Elite.

Version 0.3.0 (2013-02-06)
==========================

The v0.3.0 release introduces some interesting features for technical divers,
support for a number of new devices and many smaller bugfixes.

There have been a few minor changes to the public interface, to remove a few
deprecated functions. Therefore this release is not completely backwards
compatible with the previous release. However, most applications won't be
affected by these changes.

New features:

 * Add support for the Cressi Leonardo.
 * Add support for the Mares Nemo Wide 2, Matrix and Puck Pro.
 * Add support for the Shearwater Predator and Petrel.
 * Add support for decostop / ndl samples
 * Add support for setpoint, ppO2 and CNS
 * Add support for salinity and atmospheric pressure
 * Add a new gaschange2 event with O2 and He percentages.
 * Add a new vendor event.
 * Add some missing size macros.
 * Add timestamps to the default log function.
 * Include the git commit SHA1 in the version number.

Removed/changed features:

 * Remove the suunto_vyper_device_set_delay function.
 * Remove the reefnet_sensusultra_device_set_maxretries function.
 * Remove the xxx_device_set_timestamp functions.
 * Remove the uwatec_smart_device_version function.
 * Remove the dc_device_version function.
 * Remove the page, packet and memory size macros from the public api.
 * Add a model parameter to the mares_iconhd_device_open function.

Bug fixes:

 * [d9] Fix the fingerprint offset for the Suunto D4i, D6i and D9tx.
 * [d9] Add support for the new D6i firmware.
 * [veo250] Add support for the Seemann XP5.
 * [atom2] Add support for a second Aeris Elite T3 variant.
 * [atom2] Fix the tank pressure decoding for the Hollis DG03.
 * [vtpro] Fix the unit conversion for the max depth.
 * [iconhd] Decode the serial number as a 32 bit number.
 * [suunto] Fix the decoding of the Suunto serial numbers.
 * [d9] Add support for trimix gas changes.
 * [cobalt] Add gas changes and violation events for Atomic Aquatics Cobalt
 * [ostc] Fix gas handling for OSTC
 * [misc] Log the date/time and version in the example applications.
 * [puck] Add a small delay before retrying a packet.
 * [misc] Update the msvc project file.
 * [vyper2] Read the version info when opening the connection.
 * [atom2] Fix a typo in the Sherwood Wisdom 3 model number.
 * [misc] Fix a redefinition warning for the ERROR macro.
 * [ostc] Skip the size validation for unused divisors.
 * [atom2] Add support for the Aeris A300 AI.
 * [ostc] Autodetect the three OSTC variants.
 * [ostc] Fix a regression in the depth calculation.
 * [atom2] Add support for a second Sherwood Insight variant.
 * [ostc] This adds support for a subset of the events the OSTC provides.
 * [ostc] Correct the OSTC depth calculation
 * [atom2] Add support for a second Aeris Epic variant.
 * [atom2] Fix the parser for the Hollis DG03.

Version 0.2.0 (2012-09-21)
==========================

The v0.2.0 release marks the first step towards a redesign of the public
interface. The major highlights of this release are the introduction of
a namespace prefix, the device enumeration support, and a much more
flexible logging system.

Please note that the public interface has changed significantly, and
therefore this release is NOT backwards compatible with the previous
release. Applications will have to be updated to support the new
features!

New features:

 * Add support for the Heinrichs Weikamp Frog.
 * Separate private and public headers.
 * Use common status codes for the device and parser layers.
 * Use a common backend type for the device and parser layers.
 * Introduce a namespace prefix for the high-level public api.
 * Add the device enumeration support.
 * Add a dc_device_open convenience function.
 * Add a dc_parser_new convenience function.
 * Add a new library context object.
 * Add support for an application defined logging function.
 * Add an option to disable the logging.
 * Add an option to enable support for pseudo terminals.

Bug fixes:

 * [d9] Enable the model hint to speedup the autodetection.
 * [ostc] Add support for eeprom bank number 2.
 * [iconhd] Fix the detection of the last dive.
 * [d9] Fix the profile ringbuffer end.
 * [misc] Fix a build error with automake 1.12 or newer.
 * [serial] Fix some ioctl calls on 64bit Mac OS X.
 * [cobalt] Fix the libusb timeout handling.
 * [atom2] Add support for the Aeris Manta.
 * [irda] Remove the IrDA init and cleanup functions.
 * [serial] Enable exclusive access mode.
 * [atom2] Add support for the Oceanic OCS.
 * [frog] Finish immediately if there are no dives available.
 * [frog] Verify the header in the logbook and profile are identical.
 * [atom2] Fixed date parsing for Oceanic VEO 3.0
 * [smart] Add support for the Uwatec Galileo Trimix.
 * [vyper] Don't exceed the maximum number of bytes.
 * [d9] Fix the gas mix parsing.
 * [d9] Take the gas model into account to parse the gas mixes.
 * [misc] Update the list with supported models.
 * [misc] Update the msvc project file.

Version 0.1.0 (2012-04-27)
==========================

First release.
