11 KiB
aliases, Tags, day_grade, Dehnen, Sport, Ernährung
| aliases | Tags | day_grade | Dehnen | Sport | Ernährung | |
|---|---|---|---|---|---|---|
|
2026-01-07
2026-01-06 <--> 2026-01-08
Error generating daily quote
Planning
- Write Email to F&D to quit.
- finalize battery bms driver
Reflection
Notes
Email Draft
Hey I've been thinking about my situation at OneSec and I want to fix an end date this week. I think the best solution is to leave as soon as possible. The reason for this being: I don't feel the same drive as before after what happened in December and you can hire 2 extra Valentins for my salary. I'm open to discuss the exact date, but I'd suggest end of January, this leaves a bit more than 3 weeks to do the following:
- finalize the battery driver code and have it reviewed by Hasan
- Review both PDBs --> this concludes a full iteration of pcbs.
- With the new wiring and propulsion harnesses arriving next week: test thoroughly then bring up propulsion system
- Handover
- document everything I can think of with loom videos and articles
Are there any other subjects you want me to tackle?
Hey, regarding my notice I suggest fixing the 31st of January as an end date. This leaves just enough time to finalize ongoing activities and organize a clean handover. Additionally it leaves space to hire two more interns with the same financial investment if needed. Please let me know if that is fine for you.
Hey Regarding my situation at OneSec:
- has there been any progress on the contracts that we wanted to sign? Can I assist in any way?
- I want to fix an end date and my suggestion is the 31st of January. This leaves just enough time to finalize ongoing activities and organize a clean handover and frees up resources for OneSec to hire 2 interns just like Valentin. I'm aware that this is very short notice, so I'm open to discuss this if you are against it, but I think this is the best solution.
Rough list of things to finish:
- finalize the battery driver code and have it reviewed by Hasan
- Review both PDBs --> this concludes a full iteration of pcbs.
- With the new wiring and propulsion harnesses arriving next week: test thoroughly then bring up propulsion system with healthy pcbs. Include Valentin in the process
- Handover
- document everything I can think of with loom videos and articles
Please let me know your thoughts and if anything is missing on the list.
Hey,
Regarding my position at OneSec: I propose to fix the 31st of January as an end date. This gives just enough time to properly close the ongoing topics and organize a clean handover. I’m aware this is short notice, so I’m open to aligning if you strongly disagree — but from my side this is the preferred solution.
Rough list of items to finish: • Finalize the battery driver code and have it reviewed by Hasan • Review both PDBs (completing a full PCB iteration) • With the new wiring and propulsion harnesses arriving next week: thoroughly test and bring up the propulsion system with healthy PCBs, including Valentin in the process • Handover: document everything I can (loom videos + written docs)
Let me know if anything important is missing or if you want me to prioritize differently.
On another note: has there been any progress on the contracts we wanted to sign? If not, I’m happy to help push this forward.
Upper PDB Driver Requirements
Structure:
- each driver standalone and not dependent on osd-autopilot-2
- the upper pdb manager module is responsible of using the three drivers (bq76942, bq34z100, hdc2010) to get the right registers at the right frequencies and publish them to where its needed (chirp, zmq, mqtt)
- the upper pdb message structures are the following:
- HDC2010 Data
- temperature in deg C
- humidity in RH%
- is heater on in bool
- HDC2010 Config (includes calibration values)
- manufacturer ID
- device ID
- Measurement config
- temperature offset
- temperature resolution
- humidity offset
- humidity resolution
- dataready and interrupt configuration
- soft reset and interrupt cofniguration
- etc (look at datasheet)
- BMS Data Fast
- pack voltage in V
- pack current in A (use CC2)
- min cell voltage in V
- max cell voltage in V
- max temperature in BMS in °C
- min temperature in BMS in °C
- state of charge in % (from 34z100 coulomb counter)
- charge fet enabled
- discharge fet enabled
- has fault? --> protection/alarm active? --> if yes trigger a search for what is wrong and escalate
- BMS Data Detailed
- soc_percent
- remaining_capacity_mah
- pack_voltage_mv
- instantaneous_current_ma
- average_current_2s_ma
- discharged_mah
- fault_bitmask
- cell_voltages_mv
- cell_min_index
- cell_max_index
- balancing_cells_bitmask --> indicates which cells are being balanced right now
- num_cells_balancing
- balancing_enabled
- balance_threshold_mv
- fault_flags
- full_charge_capacity_mah
- design_capacity_mah
- time_to_empty_min --> based on what consumption?
- time_to_full_min --> based on what charging?
- state_of_health_percent
- max_error_percent
- cycle_count
- total_cycle_count
- average_power_mw
- remaining_energy_kwh
- design_energy_kwh
- status_flags
- BMS Data Temperatures
- bq76942_internal
- bq76942_cell
- bq76942_mosfet
- bq34z100_internal
- bq34z100_cell
- BMS Config
- bq76942_fw_version
- bq34z100_fw_version
- all AFE safety settings (alerts and thresholds)
- etc
MQTT topic structure
- /fleet/
- configurations/{ID}/
- hdc2010_updb/
- bq34z100_updb/
- hdc2010_updb/
- temperatures/{ID}/
- hdc2010_updb/
- bms_updb/
- bms/{ID}/
- data_fast
- data_detailed
- configurations/{ID}/
HDC2010 barebones Driver Requirements
- Needs to be configurable
- change resolution of measurements
- change measurement mode
- needs to support a self test to ensure proper health status
- needs to answer in polling mode
- needs to support a calibration routine
BQ76942 barebones Driver Requirements
BQ34Z100 barebones Driver Requirements
UPDB Manager Module
- shall be configured with the conf file
- needs to pass the configuration to the 3 drivers according to the .conf file
- shall run the driver data polling at the right intervals for the different chips and different messages
- shall publish mqtt / zmq and or chirp messages depending on the configuration
- needs to make sure the i2c handler works and can be shared without concurrency issues with the 3 drivers
- shall poll the configuration of each sensor once after initialization and after configuration and publish the config messages
- if there is any fault triggered by the bq chips it shall poll the necessary information and escalate it by sending error and warning messages
- all measurements shall be treated as invalid after a timeout (e.g 2s, configuratble): meaning we need timestamps
- The Battery Manager module shall validate incoming measurements against configurable physical bounds (e.g., voltage/current/temperature limits) and mark invalid samples.
- The Battery Manager module shall maintain a health state per battery instance (e.g., OK / degraded / failed) derived from data validity and driver communication status.
- The Battery Manager module shall continue operating with reduced functionality when optional measurements (e.g., temperature, cell voltages) are unavailable.
- The Battery Manager module shall behave deterministically for identical input streams and parameter sets.
- When a battery data source becomes available (driver starts successfully or communication is established), the Battery Manager module shall transition that battery instance to “connected” and begin publishing valid status.
- When communication with a battery data source is lost for longer than the stale timeout, the Battery Manager module shall mark the instance as failed and publish status indicating loss of battery data.
- When an incoming measurement violates configured bounds, the Battery Manager module shall reject the sample and increment an error counter for that instance.
- When valid measurements resume after a communication fault, the Battery Manager module shall clear the failed state after a configurable number of consecutive valid updates.
- When remaining capacity or voltage crosses configured low thresholds, the Battery Manager module shall set the corresponding warning level for that instance.
- When remaining capacity or voltage crosses configured critical thresholds, the Battery Manager module shall set the corresponding warning level for that instance.
- When remaining capacity or voltage crosses configured emergency thresholds, the Battery Manager module shall set the corresponding warning level for that instance.
- When current exceeds a configured maximum for longer than a configured duration, the Battery Manager module shall set an over-current warning/fault for that instance.
- When temperature exceeds configured limits (or drops below configured limits), the Battery Manager module shall set the corresponding temperature warning/fault for that instance.
- When any cell voltage exceeds configured per-cell limits (min/max), the Battery Manager module shall set a cell warning/fault and identify the affected cell index where supported.
- If the BMS provides state-of-health and cycle count, the Battery Manager module shall publish them
- If the BMS provides manufacturer name, serial number, pack name, or chemistry, the Battery Manager module shall publish and log these identifiers.
- The Battery Manager module shall not mark a battery instance as valid when the underlying measurement stream is stale, uninitialized, or failing validation.
- The Battery Manager module shall not publish values with inconsistent units or scaling relative to the configured source.
- The Battery Manager module shall not oscillate warning states due to noise; it shall apply hysteresis and/or time filtering.
- The Battery Manager module shall not fail silently; it shall surface persistent faults through status flags and logs/events.
- The Battery Manager module shall log battery status, warnings, and faults at rates compatible with flight log analysis.
- The Battery Manager module shall provide battery data needed for telemetry reporting to a ground station (voltage, current, remaining, warnings) where telemetry is enabled.
- The Battery Manager module shall initialize into a safe state where missing/invalid data results in conservative warnings rather than optimistic “OK”.
- The Battery Manager module shall rate-limit error reporting to avoid log flooding during repeated comms failures.
- The Battery Manager module shall bound its CPU usage and bus transaction rate to avoid starving higher priority real-time control tasks.
- The Battery Manager module shall ensure thread-safe access to shared state if multiple drivers/sources update concurrently.