Skip to content

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_run bitfield struct union
  • Conditions that declare "unit ok"
    • Check failure causes fast flashing yellow/purple notification in standby
    • Stored in conditions_for_machine bitfield 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:34
or
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 version
T=device type (PM=power module, SP=sample prep module)
ECL=cumulative error flags in logger module
TS=current rtc time
MAIN_STATE=what state are we in
SN=nordic-provided hardware mac address which can serve as a unique identifier for each board
Vbatt=fuel gauge provided battery voltage
SOC=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