You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Firmware/OpenLog_Artemis/OpenLog_Artemis.ino
+5-2Lines changed: 5 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -86,10 +86,12 @@
86
86
(done) Add support for the SGP40 VOC Index sensor
87
87
(done) Add support for the SDP3X Differential Pressure sensor
88
88
(done) Add support for the MS5837 - as used in the BlueRobotics BAR02 and BAR30 water pressure sensors
89
+
(done) Correct an issue which was causing the OLA to crash when waking from sleep and outputting serial data https://github.com/sparkfun/OpenLog_Artemis/issues/79
90
+
(done) Correct low-power code as per https://github.com/sparkfun/OpenLog_Artemis/issues/78
89
91
*/
90
92
91
93
constint FIRMWARE_VERSION_MAJOR = 1;
92
-
constint FIRMWARE_VERSION_MINOR = 9;
94
+
constint FIRMWARE_VERSION_MINOR = 10;
93
95
94
96
//Define the OLA board identifier:
95
97
// This is an int which is unique to this variant of the OLA and which allows us
@@ -99,7 +101,7 @@ const int FIRMWARE_VERSION_MINOR = 9;
if (deviceExists(DEVICE_MULTIPLEXER, i2cAddress, muxAddress, portNumber) == true) return (DEVICE_MULTIPLEXER);
1428
1442
1429
1443
// If an MS8607 is connected, multiplexerBegin causes the MS8607 to 'crash' and lock up the I2C bus... So we need to check if an MS8607 is connected first.
1430
-
// We will use the MS5637 as this will test for itself and the pressure sensor of the MS8607
1444
+
// We will use the MS5637 as this will test for itself, the MS5837 and the pressure sensor of the MS8607
1431
1445
// Just to make life even more complicated, a mux with address 0x76 will also appear as an MS5637 due to the way the MS5637 eeprom crc check is calculated.
1432
-
// So, we can't use .begin as the test for a MS5637 / MS8607. We need to be more creative!
1446
+
// So, we can't use .begin as the test for a MS5637 / MS5837 / MS8607. We need to be more creative!
1433
1447
// If we write 0xA0 to i2cAddress and then read two bytes:
1434
1448
// A mux will return 0xA0A0
1435
-
// An MS5637 / MS8607 will return the value stored in its eeprom which _hopefully_ is not 0xA0A0!
1449
+
// An MS5637 / MS5837 / MS8607 will return the value stored in its eeprom which _hopefully_ is not 0xA0A0!
1436
1450
1437
1451
// Let's hope this doesn't cause problems for the BME280...! We should be OK as the default address for the BME280 is 0x77.
if ((buffer[0] != 0xA0) || (buffer[1] != 0xA0)) // If we read back something other than 0xA0A0 then we are probably talking to an MS5637 / MS8607, not a mux
1465
+
if ((buffer[0] != 0xA0) || (buffer[1] != 0xA0)) // If we read back something other than 0xA0A0 then we are probably talking to an MS5637 / MS5837 / MS8607, not a mux
am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_CACHE); //Turn off CACHE
325
-
am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_FLASH_512K); //Turn off everything but lower 512k
326
-
//am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_SRAM_64K_DTCM); //Turn off everything but lower 64k (Leaving 64K powered up probably isn't enough - "Global variables use 70496 bytes of dynamic memory.")
327
-
//am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_ALL); //Turn off all memory (doesn't recover)
321
+
//Power down cache, flash, SRAM
322
+
am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_ALL); // Power down all flash and cache
323
+
am_hal_pwrctrl_memory_deepsleep_retain(AM_HAL_PWRCTRL_MEM_SRAM_384K); // Retain all SRAM
328
324
329
325
//Use the lower power 32kHz clock. Use it to run CT6 as well.
Copy file name to clipboardExpand all lines: Firmware/OpenLog_Artemis/settings.h
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -297,7 +297,7 @@ struct struct_SDP3X {
297
297
boollogPressure= true;
298
298
boollogTemperature= true;
299
299
boolmassFlow= true;
300
-
boolclockStretching= false;
300
+
boolaveraging= false;
301
301
unsigned long powerOnDelayMillis=minimumQwiicPowerOnDelay; // Wait for at least this many millis before communicating with this device. Increase if required!
302
302
};
303
303
@@ -307,7 +307,7 @@ struct struct_MS5837 {
307
307
boollogTemperature= true;
308
308
boollogDepth= true;
309
309
boollogAltitude= true;
310
-
boolmodel=true; // Valid options are: 0 (MS5837::MS5837_30BA) and 1 (MS5837::MS5837_02BA)
unsigned long powerOnDelayMillis=minimumQwiicPowerOnDelay; // Wait for at least this many millis before communicating with this device. Increase if required!
0 commit comments