Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Firmware/OpenLog_Artemis/autoDetect.ino
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ bool beginQwiicDevices()
temp->online = tempDevice->begin(temp->address, qwiic) == LPS28DFW_OK;
lps28dfw_md_t modeConfig =
{
.fs = LPS28DFW_1260hPa, // Full scale range
.fs = (nodeSetting->mode == 2) ? LPS28DFW_4000hPa : LPS28DFW_1260hPa, // Full scale range
.odr = LPS28DFW_ONE_SHOT, // Output data rate
.avg = LPS28DFW_4_AVG, // Average filter
.lpf = LPS28DFW_LPF_DISABLE // Low-pass filter
Expand Down
11 changes: 11 additions & 0 deletions Firmware/OpenLog_Artemis/menuAttachedDevices.ino
Original file line number Diff line number Diff line change
Expand Up @@ -873,6 +873,10 @@ void menuConfigure_LPS28DFW(void *configPtr)
SerialPrint(F("3) Log Temperature: "));
if (sensorSetting->logTemperature == true) SerialPrintln(F("Enabled"));
else SerialPrintln(F("Disabled"));

SerialPrint(F("4) Toggle Pressure Range: "));
if (sensorSetting->mode == 1) SerialPrintln(F("Mode 1 (260 - 1260 hPa)"));
else SerialPrintln(F("Mode 2 (260 - 4000 hPa)"));
}
SerialPrintln(F("x) Exit"));

Expand All @@ -886,6 +890,13 @@ void menuConfigure_LPS28DFW(void *configPtr)
sensorSetting->logPressure ^= 1;
else if (incoming == '3')
sensorSetting->logTemperature ^= 1;
else if (incoming == '4') // <-- NEW: Mode toggle
{
if (sensorSetting->mode == 1)
sensorSetting->mode = 2;
else
sensorSetting->mode = 1;
}
else if (incoming == 'x')
break;
else if (incoming == STATUS_GETBYTE_TIMEOUT)
Expand Down
3 changes: 3 additions & 0 deletions Firmware/OpenLog_Artemis/nvm.ino
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,7 @@ void recordDeviceSettingsToFile()
settingsFile.println((String)base + "log=" + nodeSetting->log);
settingsFile.println((String)base + "logPressure=" + nodeSetting->logPressure);
settingsFile.println((String)base + "logTemperature=" + nodeSetting->logTemperature);
settingsFile.println((String)base + "mode=" + nodeSetting->mode);
}
break;
case DEVICE_PHT_BME280:
Expand Down Expand Up @@ -1206,6 +1207,8 @@ bool parseDeviceLine(char* str) {
nodeSetting->logPressure = d;
else if (strcmp(deviceSettingName, "logTemperature") == 0)
nodeSetting->logTemperature = d;
else if (strcmp(deviceSettingName, "mode") == 0)
nodeSetting->mode = d;
else
SerialPrintf2("Unknown device setting: %s\r\n", deviceSettingName);
}
Expand Down
1 change: 1 addition & 0 deletions Firmware/OpenLog_Artemis/settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ struct struct_LPS28DFW {
bool log = true;
bool logPressure = true;
bool logTemperature = true;
uint8_t mode = 1; //Allow selection of pressure mode 1 (260-1060 hPa) or mode 2 (260-4000 hPa)
unsigned long powerOnDelayMillis = minimumQwiicPowerOnDelay; // Wait for at least this many millis before communicating with this device. Increase if required!
};

Expand Down