Skip to content

Releases: ShimmerResearch/shimmer3

LogAndStream_Shimmer3_v0.11.0

01 Feb 09:18
Compare
Choose a tag to compare

LogAndStream v0.11.0

Public Release

This release is a major update to v0.10.0 with the following updates/improvements:


Bug Fixes

Sensing stopped when docked

This release fixes a bug in SetupDock() whereby a sensing unit is forced to stop sensing if "docked".

New Features

SR47-4 support

New SR47-4 (ExG) devices now supported. ADS1292R clock lines are reconfigured for this device such that both ADS chips share the same clock line. Interrupt for Chip 2 is disabled such that both chips are serviced by chip 1's data ready pin interrupt routine alone. Default configuration bytes now also cater for SR47-4 (and newer) Shimmer ExG devices. Checks EEPROM info and applies ADS clock chip configuration bit accordingly.

An additional 1 second time-out is now applied in firmware- see page 63 of ADS1292R datasheet for more info.

SDLog_Shimmer3_v0.18.0

06 Dec 13:53
71d67ef
Compare
Choose a tag to compare

SDLog v0.18.0

Public Release

This release is a major update to v0.17.0 with the following updates/improvements:

Bug Fixes

Undock-start bug

This is a long-standing issue with the undock-start feature of public Shimmer3 firmware images. A bugfix has been ported that essentially debounces the undock action (100ms delay).

BMP180 showing in sdlog.cfg file

For Shimmer units using the BMP280 device, bmp180 was still being written to sdlog.cfg file. Now writes text based on current on-board sensor.

LSM303AHTR Wide range accel at high sampling rates

Wide range accel not sampling correctly above 1024Hz. Fix applied in LSM303AHTR driver to apply settings correctly for samplingRate > 7. To be tested internally

Device freezes when TCXO is enabled

Timeout in i2c driver assumes that the 32Khz clock is enabled. Modified hal_i2c.c to match 32kHz clock timing if tcxo clock is instead enabled. EEPROM can take up to 5ms to read 128 bytes but incorrect tcxo timings were only allowing < 1ms for a page read - end result was inconsistent device booting.

New Features

Low battery auto-stop

This feature stops the Shimmer from logging/streaming data and returns it to idle mode if a low-battery state has been reached. The low-battery state (3.65Volts - 10%) is confirmed if 3 battery read operations all read below this threshold. The battery state is reset upon docking the Shimmer or power-cycling the device. This feature is configurable through infomem (NV_SD_TRIAL_CONFIG1 & BIT0) and/or the "sdlog.cfg" file under the name "low_battery_autostop".

LogAndStream_Shimmer3_v0.10.0

06 Dec 13:55
71d67ef
Compare
Choose a tag to compare

LogAndStream v0.10.0

Public Release

This release is a major update to v0.9.0 with the following updates/improvements:


Bug Fixes

Undock-start bug

This is a long-standing issue with the undock-start feature of public Shimmer3 firmware images. A bugfix has been ported that essentially debounces the undock action (100ms delay).

BMP180 showing in sdlog.cfg file

For Shimmer units using the BMP280 device, bmp180 was still being written to sdlog.cfg file. Now writes text based on current on-board sensor.

LSM303AHTR Wide range accel at high sampling rates

Wide range accel not sampling correctly above 1024Hz. Fix applied in LSM303AHTR driver to apply settings correctly for samplingRate > 7. To be tested internally

Device freezes when TCXO is enabled

Timeout in i2c driver assumes that the 32Khz clock is enabled. Modified hal_i2c.c to match 32kHz clock timing if tcxo clock is instead enabled. EEPROM can take up to 5ms to read 128 bytes but incorrect tcxo timings were only allowing < 1ms for a page read - end result was inconsistent device booting.

New Features

Low battery auto-stop

This feature stops the Shimmer from logging/streaming data and returns it to idle mode if a low-battery state has been reached. The low-battery state (3.65Volts - 10%) is confirmed if 3 battery read operations all read below this threshold. The battery state is reset upon docking the Shimmer or power-cycling the device. This feature is configurable through infomem (NV_SD_TRIAL_CONFIG1 & BIT0) and/or the "sdlog.cfg" file under the name "low_battery_autostop".

Board ID updated via UART and BT.

Removed factory restriction on programming daughter ID EEPROM (for Proto3 mini and SR31-7 conflicts).

Sleep_Shimmer3_v0.3.0

24 Nov 16:05
Compare
Choose a tag to compare

Sleep_Shimmer3_v0.3.0

Public Release

This release is a major update to v0.2.0 with the following updates/improvements:

Bug Fixes

NONE

New Features

Extended board support

Added support for all Shimmer3 boards. EEPROM read for each device and pin configuration modified on a unit-by-unit basis to achieve lowest power consumption for a given board.

Extensive code commenting

Added further code commenting for better explanation of code functionality.

SDLog_Shimmer3_v0.17.0

28 Sep 15:15
Compare
Choose a tag to compare

SDLog v0.17.0

Public Release

This release is a major update to v0.15.0 and v0.16.0 with the following updates/improvements:


Since v0.16.0

See https://github.com/ShimmerEngineering/FW_Shimmer3/releases/tag/SDLog_v0.16.0

Bug Fixes

BMP280 Temperature/ Pressure Values

BMP280 sensory parameters are obtained properly

New Features

None


Since v0.15.0

Bug Fixes

TCXO operation fixed

TCXO functionality was not working as expected, issued a fix.

New Features

Support for new sensors

Updates for new sensors - includes all (non FACTORY_TEST) changes made to LogAndStream from v0.8.0->v0.9.0 inclusive.

Default calibration bytes

Default calibration bytes are now written correctly for a blank Shimmer

Default Shimmer name

Default name changed from "idXXXX" to "Shimmer_XXXX"

LogAndStream_Shimmer3_v0.9.0

28 Sep 15:25
Compare
Choose a tag to compare

LogAndStream v0.9.0

Public Release

This release is a major update to v0.8.0 with the following updates/improvements:


Bug Fixes

Default calibration bytes not written for blank Shimmer

Firmware now writes default calibration parameters if Shimmer unit is blank (all 0xFF).

New Features

Shimmer name

Default name changed from "idXXXX" to "Shimmer_XXXX"

New sensor support

Firmware supports new sensors (LSM303AHTR, MPU9250 & BMP280) and current Shimmer3 sensors, deciding upon boot which drivers to use.

BMP280 calibration byte commands

BMP280 has new calibration get and response commands to separate it from the BMP180's calibration response as the BMP280 includes two extra calibration bytes (24 vs 22). If a BMP280 is onboard and the BMP180 calibration command is used, it will return 0x01's instead of a valid calibration response.

TCXO

TCXO is now functioning as expected.

SDLog_Shimmer3_v0.15.0

24 May 08:59
Compare
Choose a tag to compare

SDLog v0.15.0

Public Release

This release is a major update to v0.13.0 with the following updates/improvements:

Bug Fixes

est_exp_len not being set correctly

est_exp_len not assigned value correctly in "sdlog.cfg" file. User would instead see "est_exp_len=" with no parameter after the "=". sprintf now uses %d instead of %u.

Firmware mis-calculating sampling rate in SD header

Firmware's FreqDiv() function set to use round(clockFreq / num_in) instead of floor(clockFreq / num_in) - was changing sampling rate between sessions as the resulting output of FreqDiv() did not match that set by Consensys.

ExG idle current consumption >20mA

All ExG boards (SR37, SR47 and SR59) - Normal P2.0 output conflicting with DRY pin on ADS chips. Changed to input (on MSP430) for these boards. Current draw at idle is now correct (~2mA).

ADC channel-read updates

Customers reported spiky PPG data when recording with no PPG sensor enabled. Spikes were attributed to a combination of:

  • Periodic Battery read
  • Open circuit on PPG line picking up ongoing ADC operations (crosstalk).

Strong crosstalk/coupling between the Low-Noise Accelerometer and PPG channels was also observed when either Battery, A6, A7 or A15 were not enabled. Some level of debugging and improving later, much of the observed crosstalk is still present but we have decided this to be a limitation of the ADC's hardware rather than software/firmware at this point.

BMP180/280 Support

BMP180 polling at very high resolution caused an issue whereby the first sample was always zero. Resolved by changing SKIP50MS definition flag (and associated timing mechanism) to SKIP100MS in SDLog.

Support added for BMP280 device with future releases of Shimmer devices as BMP180 reaches End-Of-Production. New code polls on-board i2c devices in search of distinct BMP180/280 addresses and selects appropriate driver from there.

BMP180 driver renamed to BMPX80 (.c and .h files) accordingly.

LSM303dlhc mag fix

Fixed issue where buffer overflow caused spike in magnetometer data while streaming over Bluetooth.

Configuration file write causing some SD Card Errors when loading SDLog firmware

When batch programming Shimmer3 devices (via Consensys), several units would always return SD Error when the Reload Configuration after firmware write box was left un-ticked. This was down to the Shimmer attempting to access the SD card while being written to by Consensys.

New Features

Only respond via dock communication when the Shimmer has finished initialising

Ignore UART comms (dock or otherwise) while "initialize" state is true.

WatchDog Timer

WatchDog Timer support added. This code was recently included to enable the device to reset if it were to halt while powered on.

User button LED feedback

Battery LED lights on user press, new task started on button release - offers better user feedback.

New SD error LED sequence

An SD Error now has a RED/YELLOW led error sequence instead of BLUE/GREEN. This change comes in light of several use cases where differentiating between RTC error and SD error has been difficult.

Startup duration extended

SDLog startup duration now matches that of LogAndStream. This added delay is an effort to replicate the user feedback given in LogAndStream to improve usability. Also, longer initial delay will help give Shimmer time to settle voltage levels on startup.

LogAndStream_Shimmer3_v0.8.0

24 May 08:59
Compare
Choose a tag to compare

LogAndStream v0.8.0

Public Release

This release is a major update to v0.7.0 with the following updates/improvements:

Bug Fixes

Firmware mis-calculating sampling rate in SD header

Firmware's FreqDiv() function set to use round(clockFreq / num_in) instead of ceil(clockFreq / num_in) - was changing sampling rate between sessions as the resulting output of FreqDiv() did not match that set by Consensys.

GSR range change not retained after power-cycle

GSR range was being reset on each power cycle due to incorrect logic operation not overwriting old data.

ExG idle current consumption >20mA

All ExG boards (SR37, SR47 and SR59) - Normal P2.0 output conflicting with DRY pin on ADS chips. Changed to input (on MSP430) for these boards. Current draw at idle is now correct (~2mA).

ADC channel-read updates

Customers reported spiky PPG data when recording with no PPG sensor enabled. Spikes were attributed to a combination of:

  • Periodic Battery read
  • Open circuit on PPG line picking up ongoing ADC operations (crosstalk).

Strong crosstalk/coupling between the Low-Noise Accelerometer and PPG channels was also observed when either Battery, A6, A7 or A15 were not enabled. Some level of debugging and improving later, much of the observed crosstalk is still present but we have decided this to be a limitation of the ADC's hardware rather than software/firmware at this point.

GSR

Customers reported periodic spikes in GSR while streaming. Issue was more notable when Shimmer device was also docked as it was discovered that DMA polling of the battery voltage caused GSR ADC values to corrupt. Change includes tweaking both ADC and DMA settings to allocate read battery values to alternative ADC memory space and enable DMA when GSR is in use.

BMP180/280 Support

BMP180 polling at very high resolution caused an issue whereby the first sample was always zero. Resolved by changing SKIP50MS definition flag (and associated timing mechanism) to SKIP65MS in LogAndStream.

Support added for BMP280 device with future releases of Shimmer devices as BMP180 reaches End-Of-Production. New code polls on-board i2c devices in search of distinct BMP180/280 addresses and selects appropriate driver from there.

BMP180 driver renamed to BMPX80 (.c and .h files) accordingly.

LSM303dlhc mag fix

Fixed issue where buffer overflow caused spike in magnetometer data while streaming over Bluetooth.

New Features

In-stream status byte updated

Status byte now also includes SD_IN_SLOT (true/false) and SD_ERROR (true/false) flags. Helps aid user feedback in Consensys over Bluetooth.

SD Error LED sequence

SD error LED sequence (RED/YELLOW) now added to indicate SD error whenever access is requested during use. This feature was added to emulate SD card access error feedback like that in SDLog. Bit is configurable through Consensys via infomem bit SDH_SDERROR_EN in NV_SD_TRIAL_CONFIG0, the corresponding bit is also stored in sdlog.cfg file as "sd_error_enable=0/1"

Infomem bytes not updating when SD Error present

The configuration and calibration bytes set by Consensys were not being held by the Shimmer after undock or power cycle and kept reverting to bad values when an SD error was present (but SD card was in slot). With no SD card in the slot the bytes had no trouble saving to Infomem, this functionality has now been replicated for the case where SD card is present but presents an ERROR.

Only respond via dock communication when the Shimmer has finished initialising

Ignore UART comms (dock or otherwise) while "initialize" state is true.

WatchDog Timer

WatchDog Timer support added. This code was recently included to enable the device to reset if it were to halt while powered on.

User button LED feedback

Battery LED lights on user press, new task started on button release - offers better user feedback.