Firmware v3.x Design Updates
Version Summary
The version summary table (.csv) lists the updates made in the minor revisions of firmware v3.
| VersionTag | Change Summary | Tech Review Slide |
|---|---|---|
| V3.1 | LAST ODIC TOUCHPOINT | |
| V3.2rc1 | add USB cdc commands | |
| V3.2rc1 | improve robustness, reduce bugs, add debug outputs | |
| V3.2rc1 | add additional logging for low-battery transitions | |
| V3.2rc1 | add additional logging on bootup | |
| V3.2rc1 | rework USB to allow simultaneous CDC and MSC modes | |
| V3.2rc1 | change powermodule run-start conditions to require state change | |
| V3.2rc1 | fix problem where powermodule was rebooting after successful run completion | |
| V3.2rc1 | set default config | |
| v3.2rc2 | add powermodule buzzer support | |
| v3.2rc2 | add USB cdc commands | |
| v3.2rc2 | fix RTC reset issue seen when batteries first plug in | TRUE |
| v3.2rc2 | rework configuration file framework to use key-value tables | |
| v3.2rc2 | set default config | |
| v3.2rc2 | fix sampleprep issue which manifested with subsequent runs after stall could terminate early with erroneous stall message; add I2C retry counter logging | |
| v3.2rc3 | fix typo with powermodule configuration table | |
| v3.2rc4 | make powermodule also support do_automatic_runs | |
| v3.2rc4 | add USB cdc commands | |
| v3.2rc4 | fix powermodule usage of front led set | |
| v3.2rc4 | led notifications: speed up all breathing patterns | |
| v3.2rc4 | led notifications: rework framework, add double-yellow graceperiod, solid-red sample invalidation | |
| v3.2rc4 | add powermodule buzzer support | |
| v3.2rc4 | led notifications: add solid-yellow run startability capability; and red-magenta flashing for device cannot run | |
| v3.2rc4 | improve robustness, reduce bugs, add debug outputs | |
| v3.2rc4 | fix bug transitioning from power-module cycle 3 to power-module cycle 4 related to temperature sensor reading | |
| v3.2rc4 | set default config | |
| v3.3 | led notifications: led driver re-write, always show battery on the BATTERY led | |
| v3.3 | set default config | |
| v3.4 | add USB cdc commands | |
| v3.4 | add check for total run time taken within tolerance | |
| v3.4 | use RTC time for run state machine | TRUE |
| v3.4 | fix powermodule issue with valve power supply, we are now reinitializing the chip completely every sensor sample cycle | TRUE |
| v3.4 | catch at the cycle-level if the cycle took too long to complete | TRUE |
| v3.4 | set default config | |
| v3.5 | set default config | |
| v3.5 | handle occasional RTC bad date through retry mechanism | TRUE |
| v3.5 | catch in the middle of a cycle if our runtime according to cputicks has a severe disagreement from the rtc time we are using to measure the cycle runtime | |
| v3.5 | improve reliability of DFU entry | |
| v3.5 | add a retry mechanism in powermodule sensors data collection to deal with valve power supply workaround | |
| v3.5 | fixed issue with battery overtemperature error, where it would not have been handled appropriately |
Conditions
The conditions table (.csv) lists the status checks, performed in standby and prior to a run, that ensure a unit is healthy and able to complete a run. Last updated in firmware v3.5.
- Conditions that allow "start run"
- Check failure causes solid yellow notification in standby
- Stored in
conditions_for_runbitfield struct union
- Conditions that declare "unit ok"
- Check failure causes fast flashing yellow/purple notification in standby
- Stored in
conditions_for_machinebitfield struct union
| Context | Bitfield | Explanation |
|---|---|---|
| start run | temperature_zones_in_range |
In standby mode temperatures are refreshed once a second. If config.min_run_zone_temp_en is TRUE, the latest temperature of any zone must be < config.min_run_zone_temp. Essentially requires the temperatures in the device to have cooled down sufficiently, and show above zero. The latest temperature of any zone must be > 0.1 ºC (this checks for something really wrong with sensor communication). |
| start run | battery_charge_level_acceptable |
Battery charge level must not be "red." |
| start run | machine_can_run |
All machine conditions must be true (see "device ok" conditions in this table) |
| unit ok | configs_loaded_and_validated |
Checked once at bootup. Configs could be loaded from filesystem without error. Inside read_filesystem_and_configurations, |
if get_naatos_configuration_parameters() and get_cycle_configurations_parameters() do not return okay, this will be false. |
||
| unit ok | filesystem_deemed_okay |
Checked once at bootup. After all startup filesystem operations, check is_naatos_storage_okay() which will return a naatos_storage_initalized local variable from the naatos_storage.c compilation unit. |
| unit ok | battery_has_stayed_cool |
Checked every standby cycle (at samplerate). Battery temperature thermistor (as measured by fuel gauge chip) must be < 59.0 ºC. |
| unit ok | canary_value_noninitializer |
The active master config value config.canary was not 999; when default configs are written out, it would be 12345; so this is a type of canary in the coalmine situation to indicate a filesystem problem, and also test the notification scheme easily. |
| unit ok | canary_value_nondefault |
The active master config value config.canary was not 999; when default configs are written out, it would be 12345; so this is a type of canary in the coalmine situation to indicate a filesystem problem, and also test the notification scheme easily. |
| unit ok | norflash_could_mount_filesystem |
Checked once at bootup. If nor_flash_could_mount_filesystem in naatos_storage.c compilation unit is TRUE. |
Errors
The errors table (.csv) lists the reasons a run would abort before successful completion. Last updated in firmware v3.5.
| Cycle error enums | Explanation | When Does NOT Apply | Example Logfile Event Text | Notes |
|---|---|---|---|---|
CYCLE_ERROR_ACTUAL_RUNTIME_HAD_A_MISMATCH |
When cycle is completed, the rtctime or cputicktime difference to cycle_config.cycle_run_time is within cycle_config.accept_cycle_time_error. |
If any cycles in the run have a cycle_config.ramp_to_temp_before_start_cycle set to TRUE (would imply variable time behavior).If cycle_config.accept_cycle_time_error is 0. |
Cycle run time error was beyond the configured threshold of 7.5 seconds. | Catches a severe time mismatch at the cycle level. |
CYCLE_ERROR_FINISHED_BUT_ACTUAL_RUNTIME_HAD_A_MISMATCH |
When the whole run is completed otherwise successfully (right when the last cycle ends), but the whole run rtctime or cputicktime difference to the sum of all cycle_config.cycle_run_time s is greater than config.accept_run_time_error_s. |
If any cycles in the run have a cycle_config.ramp_to_temp_before_start_cycle set to TRUE (would imply variable time behavior).If config.accept_run_time_error_s is 0. |
Total run time taken error was beyond the configured threshold of 30 seconds. | Catches a severe time mismatch at the run level. |
CYCLE_ERROR_TIME_ERROR_BETWEEN_RTC_AND_CPUTICKS_DURING_RUN |
When a cycle is running and the rtcelapsed has diverged from tickelapsed by greater than config.accept_run_time_error_s |
Caught time-error beyond 30 sec between RTCelapsed_s:50 & TICKelapsed_s:4 while cycle_run_time_s was 30 sec |
Catches the cycle never stopping problem we saw. | |
CYCLE_ERROR_BUTTON_EXIT |
When the pushbutton is actuated during run. | Cycle cancled via button. | ||
CYCLE_ERROR_SENSOR_BREAK |
When the hall effect and/or optical sensor is switched during the run. | Optical sensor interrupted. | ||
CYCLE_ERROR_TIMEOUT_DURING_RAMP |
When ((time in the cycle elapsed) > cycle_config.ramp_to_temp_timeout) and any of the temperatures have not yet met or exceeded their respective setpoints in this cycle. |
If cycle_configs.ramp_to_temp_timeout is 0. |
Ramp to temp timed out. Stopping cycle. | |
CYCLE_ERROR_OVER_TEMP_BATTERY |
When battery temperature thermistor reading >= 59.0 degC | Battery over temperature error. | ||
ERR_TEMP_SENSOR_READ / CYCLE_ERROR_I2C_FAIL |
When temperature sensor could not be read correctly (in respective sensor.c file). |
I2C sensor read error. | ||
ERR_OVERTEMP_EVENT / CYCLE_ERROR_OVER_TEMP |
When a temperature reading in a respective sensor zone is greater than it's configured setup (config.heater_max_temp) |
Sample over temperature error. | ||
CYCLE_ERROR_MOTOR_STALLED_PERCENT |
When motor RPM drops this PERCENT below the motor setpoint. | If motor is not configured to run in the cycle. If measured motor RPM has not yet met or exceeded the motor RPM setpoint in the current cycle. If config.motor_stall_en is FALSE. |
Motor stalled detected due to drop in motor speed. | |
CYCLE_ERROR_MOTOR_STALLED_PWM |
When motor PWM control value exceeds config.motor_stall_pwm. |
Motor stalled detected due to an increase in PWM. | ||
| Not a defined error / a watchdog reboot | Other uncaught error conditions or programming bugs. This will not show any explanation in logfile (because it's uncaught) but result in a reboot triggered by the hardware watchdog timer. |
Commands
The commands table (.csv) lists the USB CDC Serial Commands.
Note
The comma after many of these commands is important! The string parser won't treat them as commands with that trailing comma (on commands that don't take arguments).
| Command | Name | Takes Args | Examples | Explanation | Note |
|---|---|---|---|---|---|
SETCLK |
RTC Time Setting | YES | SETCLK,2024-11-14 14:27:34or SETCLK,2024-11-14T14:27:34 |
Set the RTC time to the specified timestamp. Before setting, a software reset will be issued to the RTC chip (same as RSTCLK) |
convenient to use with YAT (yet another terminal) timestamp insertion: SETCLK,\!(TimeStamp()) |
TSTCLK |
RTC Test | TSTCLK, |
|||
RSTCLK |
RTC Software Reset | RSTCLK, |
Send a software reset the RTC chip. | ||
LSDIR |
Output listing of filesystem directories | LSDIR, |
Output to serial port a summary listing of the filesystem root directory. | ||
| Each folder will be entered and the file entries in that folder counted, and returned in this message. | |||||
REBOOT |
Reboot MCU | REBOOT, |
Reboot MCU (must be in MAIN_STANDBY state) | ||
STATUS |
Output summary information | STATUS, |
Output to serial port some Status and ID information. Examples:14:07:51 - V="3.5" T="PM" ECL=0x00 TS="2025-03-14 14:07:54" MAIN_STATE="MAIN_STANDBY" SN="DBF4CF86E4F8"14:07:51 - Vbatt=3.924000 SOC=70 Tbatt=27.917969 Tamp=69.151276 Tvalve=70.782478 |
V=firmware versionT=device type (PM=power module, SP=sample prep module)ECL=cumulative error flags in logger moduleTS=current rtc timeMAIN_STATE=what state are we inSN=nordic-provided hardware mac address which can serve as a unique identifier for each boardVbatt=fuel gauge provided battery voltageSOC=fuel gauge provided state of charge |
|
CFGGET |
Config get | CFGGET, |
Output to serial port a summary of the active run and cycle configurations. | Behavior never tested with more than 4 cycles, there is some string limit that may be exceeded with >8 cycles | |
CFGSET |
Config set | YES | CFGSET, |
||
TODFU |
Enter DFU mode | TODFU, |
Enter DFU for firmware upgrade, by simulating 3 rapid button presses (must be in MAIN_STANDBY state) | ||
TOMSC |
Enter MSC mode | TOMSC, |
Enter mass storage mode for USB file operations, by simulating long button press (must be in MAIN_STANDBY state) | ||
EXITMSC |
Exit MSC mode | EXITMSC, |
Exit mass storage mode, by simulating a button press (must be in MAIN_FILE state); the firmware effectively performs a reboot as part of this transition | ||
REFORMAT |
Reformat filesystem and reboot | REFORMAT, |
Perform a filesystem reset, much like holding down button while powering-up. Then system is rebooted. | On some devices , at some times, this needs to be issued more than once, followed by some reboots, perhaps. You may see the fast flashing magneta/yellow when this is happening and you need to try this again. Cause unknown / not investigated. |
Git Log
The git log (.csv) lists the history of git commits made after the update to firmware v3. The log was generated using the command:
git log --since='02-11-2025 9:00AM' --pretty=format:"%H,%ad,%an,%ae,%x22%(decorate:prefix=,suffix=,)%x22,%x22%s%x22" --date=format:"%Y-%m-%d %H:%M:%S" --reverse > gitlog.csv
| Commit Hash | Date | Author | Tags | Full Commit Message | Version | Short Commit Message |
|---|---|---|---|---|---|---|
| dc38f5e | 2/11/2025 17:17 | Liam Sullivan | tag: V3.1_and_odic_splitpoint, odic/V3.1, ghlgit/GHL_V3.1, GHL_V3.1 | Merge remote-tracking branch 'origin/GHL_PM_V3.1_ghlRC4' into V3.1 | V3.1 | LAST ODIC TOUCHPOINT |
| 93d14f8 | 2/12/2025 11:27 | Simon Ghionea | set for JLINK debug, sample-prep, and MOTOR_FG_REWORK (unit56 board) | V3.2rc1 | ||
| 28a9712 | 11/15/2024 12:22 | Simon Ghionea | GHL add basic CDC serial command handling for SETCLK to allow setting the datetime through serial | V3.2rc1 | add USB cdc commands | |
| bdee8f5 | 2/12/2025 16:05 | Simon Ghionea | double the size of the logger queue, to allow more debug and event log messages to be processed | V3.2rc1 | improve robustness, reduce bugs, add debug outputs | |
| 2ae17d2 | 2/12/2025 16:07 | Simon Ghionea | changes to low battery logging, re-write message to file when above recovery" voltage" | V3.2rc1 | add additional logging for low-battery transitions | |
| 1e371f5 | 2/12/2025 16:16 | Simon Ghionea | changes power-on message and make applicable to all bootups or resets | V3.2rc1 | add additional logging on bootup | |
| 74c0f54 | 2/14/2025 12:54 | Simon Ghionea | CDC serial command GETVER | V3.2rc1 | add USB cdc commands | |
| e60af5c | 2/14/2025 16:17 | Simon Ghionea | WIP: remap usb endpoints, to have simultaneous MSC and CDC. kind-of works, but when doing a sample-prep run there are pretty frequent NOR flash errors and reboots in the middle of runs :-( | V3.2rc1 | rework USB to allow simultaneous CDC and MSC modes | |
| bb5568f | 2/18/2025 20:26 | Simon Ghionea | move cdc serial port rx parsing out of logger task and into main_task | V3.2rc1 | ||
| d765d4a | 2/18/2025 20:58 | Simon Ghionea | add USB CDC COM commands STATUS and CFGGET | V3.2rc1 | add USB cdc commands | |
| af01f6d | 2/18/2025 21:38 | Simon Ghionea | ghlgit/GHL_usb_work_msc_and_cdc_simultaneous, GHL_usb_work_msc_and_cdc_simultaneous | add reboot log-message that includes reset-reasons from NRF registers | V3.2rc1 | add additional logging on bootup |
| 0632d77 | 2/20/2025 16:52 | Simon Ghionea | set compile for powermodule | V3.2rc1 | ||
| cb98729 | 2/20/2025 16:52 | Simon Ghionea | make GETCFG compile for power module | V3.2rc1 | ||
| 9085db6 | 2/21/2025 10:33 | Simon Ghionea | work on USB-CDC commands, move to a separate new task | V3.2rc1 | add USB cdc commands | |
| cdce1de | 2/21/2025 11:18 | Simon Ghionea | trigger power module only on low->high transition (don't begin run when powered on with cassette installed) | V3.2rc1 | change powermodule run-start conditions to require state change | |
| ce62a1f | 2/21/2025 11:58 | Simon Ghionea | add software watchdog debug statements to try to debug watchdog resets | V3.2rc1 | improve robustness, reduce bugs, add debug outputs | |
| e8dd538 | 2/21/2025 12:15 | Simon Ghionea | fix the consistent software watchdog reset in heater_task on powermodule run completion on the first successful run after bootup | V3.2rc1 | fix problem where powermodule was rebooting after successful run completion | |
| 8c494d4 | 2/21/2025 12:16 | Simon Ghionea | start simple GPREGRET2 usage and logging on first boot-up | V3.2rc1 | add additional logging on bootup | |
| 3ca23b5 | 2/21/2025 12:56 | Simon Ghionea | make USB CDC command REFORMAT work | V3.2rc1 | add USB cdc commands | |
| 5ab1cd8 | 2/21/2025 13:11 | Simon Ghionea | USB CDC status command add uniqueid (device mac address) | V3.2rc1 | add USB cdc commands | |
| f3588d3 | 2/21/2025 13:34 | Simon Ghionea | set to bootloader linker | V3.2rc1 | ||
| b5bd57e | 2/21/2025 13:35 | Simon Ghionea | tag: PM_V3.2rc1, ghlgit/GHL_PM_debug_reboot_after_goodrun, ghlgit/GHL_PM_V3.2rc1, GHL_PM_debug_reboot_after_goodrun, GHL_PM_V3.2rc1 | bump version string to 3.2rc1 and set defaults according to chin's testing | V3.2rc1 | set default config |
| 082b942 | 2/21/2025 16:13 | Simon Ghionea | Power Module buzzer capability hacked-in, with simple tones on error and on completion | v3.2rc2 | add powermodule buzzer support | |
| 175495f | 2/21/2025 21:02 | Simon Ghionea | ghlgit/GHL_PM_bringup_buzzer_and_other_leds, GHL_PM_bringup_buzzer_and_other_leds | better CFGGET formatting | v3.2rc2 | add USB cdc commands |
| f3c5d54 | 2/11/2025 14:12 | Simon Ghionea | WIP: add some query to the RTC | v3.2rc2 | fix RTC reset issue seen when batteries first plug in | |
| d405fc2 | 2/21/2025 22:57 | Simon Ghionea | ghlgit/GHL_better_clockcalendar_inits, GHL_better_clockcalendar_inits | fix RTC not ticking problem on some units by always reset RTC when setting time, and add a USB CDC function to read and return some RTC status register | v3.2rc2 | fix RTC reset issue seen when batteries first plug in |
| 004a3cf | 2/22/2025 10:17 | Simon Ghionea | WIP kv store implementation | v3.2rc2 | rework configuration file framework to use key-value tables | |
| b49bb58 | 2/22/2025 17:44 | Simon Ghionea | Power module add short sound on startup | v3.2rc2 | add powermodule buzzer support | |
| 61c2378 | 2/22/2025 17:49 | Simon Ghionea | Merge branch 'GHL_V3.2rc2' into GHL_rework_storage_to_keyvalue_pairs | v3.2rc2 | rework configuration file framework to use key-value tables | |
| 77bfbe4 | 2/22/2025 22:47 | Simon Ghionea | WIP: master and cycle configs now being read with key value system, powermodule tested but not SP yet | v3.2rc2 | rework configuration file framework to use key-value tables | |
| 7276c33 | 2/23/2025 13:33 | Simon Ghionea | change storage to create master config file from the key-value table, add powermodule sound volume to config | v3.2rc2 | rework configuration file framework to use key-value tables | |
| 5656ca5 | 2/23/2025 20:42 | Simon Ghionea | tested key-value store on sampleprep | v3.2rc2 | rework configuration file framework to use key-value tables | |
| 015b2ec | 2/24/2025 7:29 | Simon Ghionea | bump version to V3.2rc2 (works SP and PM); do_automatic_runs now config item for sampleprep | v3.2rc2 | set default config | |
| 05da070 | 2/24/2025 13:59 | Simon Ghionea | tag: V3.2rc2, ghlgit/GHL_rework_storage_to_keyvalue_pairs, ghlgit/GHL_V3.2rc2, GHL_rework_storage_to_keyvalue_pairs, GHL_V3.2rc2 | handle issue for motor-stall where mainErrorQueue has > 1 items on stall condition; add I2C retry counter and message in log | v3.2rc2 | fix sampleprep issue which manifested with subsequent runs after stall could terminate early with erroneous stall message; add I2C retry counter logging |
| 8795ac0 | 2/25/2025 6:31 | Simon Ghionea | ghlgit/GHL_V3.2 | add decorators to naatos_config_File.c | v3.2rc3 | |
| 915ba1f | 2/25/2025 15:39 | Simon Ghionea | fix typo in the power module config for valve zone PID values (Swapped KI and KD) | v3.2rc3 | fix typo with powermodule configuration table | |
| 53eee6a | 2/25/2025 15:41 | Simon Ghionea | tag: PM_V3.2rc3, ghlgit/GHL_V3.2rc3, GHL_V3.2rc3 | version string to V3.2rc3 | v3.2rc3 | |
| 0000108 | 2/25/2025 16:40 | Simon Ghionea | bump version to 3.2rc4; make do_automatic_runs work for power module as well | v3.2rc4 | make powermodule also support do_automatic_runs | |
| d228f70 | 2/26/2025 12:36 | Simon Ghionea | change CFGGET command to dump more information about config; typo in a PM config parameter | v3.2rc4 | add USB cdc commands | |
| 8b70ef4 | 2/26/2025 12:59 | Simon Ghionea | PM make choice of top or front led's configurable through config file | v3.2rc4 | fix powermodule usage of front led set | |
| 7c9f566 | 2/26/2025 13:30 | Simon Ghionea | speed up breathing led driver pattern | v3.2rc4 | led notifications: speed up all breathing patterns | |
| d9543dc | 2/27/2025 7:18 | Simon Ghionea | add REBOOT serial command | v3.2rc4 | add USB cdc commands | |
| da6bb1f | 2/27/2025 15:23 | Simon Ghionea | major: add double-yellow, add graceperiod config parameter, update default config, re-work FSM to allow temperature not reached terminations, add solid-red sample invalidation logic | v3.2rc4 | led notifications: rework framework, add double-yellow graceperiod, solid-red sample invalidation | |
| 39f11de | 2/27/2025 19:06 | Simon Ghionea | fix with temperature setpoint reached messages being sent upon stopping heaters, where not appropriate | v3.2rc4 | led notifications: rework framework, add double-yellow graceperiod, solid-red sample invalidation | |
| f486a1c | 2/28/2025 10:10 | Simon Ghionea | PM add additional audio alert, mario song, and accompanying config parameters | v3.2rc4 | add powermodule buzzer support | |
| cc04c60 | 2/28/2025 10:50 | Simon Ghionea | Add capability to main_task to receive low-rate temperature data in MAIN_STANDBY state; planning to use this to determine if we can start a run | v3.2rc4 | led notifications: add solid-yellow run startability capability; and red-magenta flashing for device cannot run | |
| 549c84a | 2/28/2025 14:07 | Simon Ghionea | strip out min_run_zone_temp handling from powermoduleheater and sampleprepheater tasks; plan to re-implement at higher level | v3.2rc4 | led notifications: add solid-yellow run startability capability; and red-magenta flashing for device cannot run | |
| 9e1e2de | 2/28/2025 14:12 | Simon Ghionea | prepare to start using global flags to track whether or not we can start a run or the device is working well | v3.2rc4 | led notifications: add solid-yellow run startability capability; and red-magenta flashing for device cannot run | |
| 523dc33 | 2/28/2025 15:46 | Simon Ghionea | ghlgit/GHL_rework_if_run_possible_during_standby, GHL_rework_if_run_possible_during_standby | reworked alert system and run-start system to show yellow led if starting is not possible, yellow-red cycling if device error has occurred | v3.2rc4 | led notifications: add solid-yellow run startability capability; and red-magenta flashing for device cannot run |
| fe979ef | 2/28/2025 16:11 | Simon Ghionea | add some additional tracking information to help trace logging errors | v3.2rc4 | improve robustness, reduce bugs, add debug outputs | |
| 75ce61a | 2/28/2025 16:26 | Simon Ghionea | fix issue with battery level led updating, after all the changes to the led indications | v3.2rc4 | led notifications: rework framework, add double-yellow graceperiod, solid-red sample invalidation | |
| fde22a9 | 2/28/2025 16:47 | Simon Ghionea | GHL_SG_working_rc4 | add a canary global configuration parameter, to help detect if we could load a config properly | v3.2rc4 | improve robustness, reduce bugs, add debug outputs |
| 68623fe | 3/1/2025 12:02 | Simon Ghionea | changed mkfs fat filesystem arguments (2k allocation unit instead of the default), added some additional error checking in nand and storage initialization which would result in yellow-red alternating | v3.2rc4 | improve robustness, reduce bugs, add debug outputs | |
| 9fba97a | 3/2/2025 8:47 | Simon Ghionea | add more info to STATUS USBCDC message | v3.2rc4 | add USB cdc commands | |
| c304241 | 3/3/2025 10:27 | Simon Ghionea | fix for some corner case of sensor reading failures on power-module transition from valve/amp=TRUE to amp=TRUE/VALVE=TRUE (cycle 3-4 transition) | v3.2rc4 | fix bug transitioning from power-module cycle 3 to power-module cycle 4 related to temperature sensor reading | |
| 9b43226 | 3/3/2025 13:53 | Simon Ghionea | addressing some SERIAL message lines getting lost when sending from device | v3.2rc4 | add USB cdc commands | |
| d0f199e | 3/3/2025 14:49 | Simon Ghionea | change power module defaults before release for test | v3.2rc4 | set default config | |
| 9410e3f | 3/3/2025 15:30 | Simon Ghionea | move global config initialization earlier in naatos_storage, and revert to AUTO block size for mkfs() | v3.2rc4 | improve robustness, reduce bugs, add debug outputs | |
| 582ab96 | 3/3/2025 21:05 | Simon Ghionea | ghlgit/GHL_V3.2rc4 | fix compilation for sampleprep | v3.2rc4 | |
| 87a022e | 3/4/2025 7:43 | Simon Ghionea | tag: PM_V3.2rc4, GHL_V3.2rc4 | new CDC command LSDIR, add delay to REFORMAT | v3.2rc4 | add USB cdc commands |
| df8a609 | 3/6/2025 9:25 | Simon Ghionea | Major LED driver and notification rework to support new LED scheme (battery led2 always show batter, everything else on led1); new approach to IS31FL3196 LED driver using local register values and bitfields | v3.3 | led notifications: led driver re-write, always show battery on the BATTERY led | |
| 4656602 | 3/6/2025 10:25 | Simon Ghionea | change defaults for sampleprep for new fw features | v3.3 | set default config | |
| 914df64 | 3/6/2025 10:27 | Simon Ghionea | bump version to V3.3 | v3.3 | set default config | |
| cd5c6f3 | 3/6/2025 16:50 | Simon Ghionea | tag: V3.3, ghlgit/GHL_V3.3, GHL_V3.3 | changed a default for sampleprep | v3.3 | set default config |
| e742aed | 3/7/2025 12:33 | Simon Ghionea | refactor: move and organize all USB CDC commands into own compilation unit/files, and modularize command handlers with a lookup table | v3.4 | ||
| 078f003 | 3/7/2025 13:43 | Simon Ghionea | USB CDC command CFGGET new formatting | v3.4 | add USB cdc commands | |
| 9c476fb | 3/7/2025 13:54 | Simon Ghionea | handle com_write() situation where NRF_ERROR_BUSY was returned from Nordic USB driver; will now delay shortly and yield to other threads during that delay; handles nicely missing output when lots of data sent to the com port | v3.4 | add USB cdc commands | |
| 84e3b41 | 3/7/2025 15:37 | Simon Ghionea | added USB CDC command CFGSET with global and writeglobal subcommands | v3.4 | add USB cdc commands | |
| 07c0bea | 3/7/2025 20:43 | Simon Ghionea | USB CDC LSDIR" command | v3.4 | add USB cdc commands | |
| f8f319a | 3/9/2025 13:51 | Simon Ghionea | bump to V3.4; add to segger project build-configurations for sample prep, power module (preprocessor definitions set there now not naatos_config.h) and bootloader/jlink linker selections; set batch-build options | v3.4 | ||
| ac222da | 3/10/2025 14:44 | Simon Ghionea | fix issue with USB CDC command CFGSET parsing floating point value string, refactored key-value configuration table to use functions from naatos_config_file.c | v3.4 | add USB cdc commands | |
| bd0f0eb | 3/10/2025 15:40 | Simon Ghionea | upon run completion, verify that the run took the expected amount of time in order to exit with solid green/success, add c standard library mktime and difftime support for RTC handling | v3.4 | add check for total run time taken within tolerance | |
| 2a97de7 | 3/10/2025 21:32 | Simon Ghionea | add option to use RTC-queried time for cycle running state-machine (option: FSM_USE_RTC_FOR_CYCLE_TIME) | v3.4 | use RTC time for run state machine | |
| 4a2ff81 | 3/11/2025 13:43 | Simon Ghionea | fix issue where tps55288 valve power supply was occasionally not being set to 6V settings; redid the TPS55288 handling | v3.4 | fix powermodule issue with valve power supply, we are now reinitializing the chip completely every sensor sample cycle | |
| 9525b76 | 3/11/2025 15:30 | Simon Ghionea | add per-cycle run-time checking and a cycle parameter | v3.4 | catch at the cycle-level if the cycle took too long to complete | |
| d2a9254 | 3/12/2025 14:47 | Simon Ghionea | tag: V3.4 | update defaults | v3.4 | set default config |
| c909567 | 3/13/2025 20:56 | Simon Ghionea | change default for powermodule cycle2 to allow longer rtc vs tick time-error | v3.5 | set default config | |
| 374f031 | 3/13/2025 21:00 | Simon Ghionea | added rtc calendar query retry mechanism and checking for known bad dates (day=00, month=00, year=2080) which became a problem for us when switching the cycle state machine to use RTC time | v3.5 | handle occasional RTC bad date through retry mechanism | |
| fededd9 | 3/13/2025 21:08 | Simon Ghionea | add catch for high error between cputick and rtc cycle timer to abort at inner-cycle-level if time is beyond config.accept_run_time_error_s | v3.5 | catch in the middle of a cycle if our runtime according to cputicks has a severe disagreement from the rtc time we are using to measure the cycle runtime | |
| c65236d | 3/13/2025 21:10 | Simon Ghionea | kick hardware watchdog just prior to resetting for DFU-entry | v3.5 | improve reliability of DFU entry | |
| cf9676c | 3/14/2025 7:26 | Simon Ghionea | add an additional TPS55288 retry mechanism for valve supply workaround in sensors.c | v3.5 | add a retry mechanism in powermodule sensors data collection to deal with valve power supply workaround | |
| af599fd | 3/14/2025 7:31 | Simon Ghionea | fixed issue with battery overtemperature error, where it would not have been handled appropriately | v3.5 | fixed issue with battery overtemperature error, where it would not have been handled appropriately | |
| d500503 | 3/14/2025 8:15 | Simon Ghionea | bump version to 3.5 | v3.5 | set default config | |
| 02cca2b | 3/14/2025 10:21 | Simon Ghionea | change power module defaults to modify timing error allowances and grace periods, only timeout during cycle2 if timing error occurred | v3.5 | set default config | |
| 74c22ab | 3/14/2025 11:00 | Simon Ghionea | HEAD -> GHL_nextver, tag: V3.5, ghlgit/GHL_nextver | change sample prep cycle defaults | v3.5 | set default config |