9 Commits
Author SHA1 Message Date
Phil-Engljaehringer 010f6dcbae Refactor PCA9685 (#26379)
* refactor: use parseDefaultArguments

* style: reverted changes to docs (should be auto-generated)

* refactor: use parseDefaultArguments

* style: reverted changes to docs (should be auto-generated)
2026-03-05 15:31:12 +01:00
Phil-Engljaehringer 193a4478ed fix: adjusted probe function to new revision of TLA2528 (and add status function) 2026-01-29 18:04:25 +01:00
Phil-Engljaehringer 744548e9f2 fix: use correct address passed with -a flag 2026-01-29 18:03:04 +01:00
Phil-Engljaehringer 46d9b14ba0 Feat: Add driver for TMP102 temperature sensor for Skynode-N (#26241)
* feat: added driver for tmp102 temperature sensor

* style: removed new line

* style: adjusted date in header

* style: removed duplicated logging

* fix: moved start-up command from rc.board_sensors to rc.sensors

* style: used consexpr for expected config reg value

* feat: added retry logic to probe function

* style: added _ as prefix to global variable

* style: used make format

* fix: corrected temperature calculation

* fix: mask AL-bit in probe function

* style: removed header files from CMakeLists

* style: used correct english in comments

* refactor: return error right after failure

* style: moved init call to correct place

* fix: corrected temperature calculation (again)

* refactor: removed _curr_pr variable => always have to set PR to desired register on read

* fix: add multi logged topic
2026-01-12 18:42:51 +01:00
Phil-EngljaehringerandAlexander Lerach 3438d593a1 drivers: MCP23009 & MCP23017 shared code base (#25924)
* Implemented driver for MCP23017

* fixed compatability with mcp23009. (naming of instantiated GPIO-Devices)

* removed some comments

* removed even more comments

* commented out instatntiation of driver since it will not be used with v6x

* removed last useless comments

* re-activated gpio_mcp23009 driver, removed useless comments and empty lines

* removed empty lines at the end of mcp23017.cpp

* removed empty line

* Implemented driver for MCP23017

* fixed compatability with mcp23009. (naming of instantiated GPIO-Devices)

* removed some comments

* removed even more comments

* commented out instatntiation of driver since it will not be used with v6x

* removed last useless comments

* re-activated gpio_mcp23009 driver, removed useless comments and empty lines

* removed empty lines at the end of mcp23017.cpp

* removed empty line

* basic working implementation

* first improved driver version with shared code base for MCP23009 & MCP23017 (built as state machine with sanity checks)

* removed unused imports

* changed module name from MCP to MCP230XX

* removed debug print statements

* adjusted auto start command of driver

* removed comments

* -added seperate main functions for both derivative modules (mcp23009 and mcp23017)

* compile common functions as shared library in src/lib/drivers

* fixed cleanup of modules

* ->unclean working version with shared common library

* used make format

* working & cleaned version

* -> Added CallbackHandler to be able to use multiple reading GPIO-expanders simultaneously
-> Removed old mcap23009 calls and pin registrations
-> Adjusted GpioIn.msg to contain MAX_INSTANCES

* ->removed unused imports
->used make format

* Fix: Re-enabled platform_mcp_gpio for accton-godwit, cuav, fmu-v5x

* Fix: enabled platform_mcp_gpio in px4/fmu-v5x

* added depency to fmu-v5x

* Fix: removed new lines

* Fix: fixed linker errors

* removed unused linkage against mcp-library

* Made mcp start calls consistent for fmu-v5x and fmu-v6x

* moved logging of comm errors to read/write function directly

* added perf_count for sanity_check

* removed error message

* ensured member variables follow naming convention

* added retries to probe function

* simplyfied state-logic

* add break to terminate loop early

* ensured clean state when register_gpios() fails

* add registered-flag to pins

* used path from top dir instead of relative path in CMakeLists

* used constexpr to set parameters instead of calculating them at runtime

* style: used make format

* fix: corrected i2c_bus assignment

* style: init input of callbackhandler to 0

* fix: mark pin as registered if successful

* style: made arguments const type

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-12-17 17:48:30 +01:00
Phil-Engljaehringer 0cefd74fee drivers: add perf counters and documentation to ads7953 2025-11-24 11:06:56 +01:00
Phil-Engljaehringer 8a2239f3e8 drivers: Add TLA2528 ADC driver (#25898)
* tla2528 basic implementation (restarting driver still fails)

* fixed probe function, restarting driver now works

* -added reset call to init
-added return value checks on all important transfers and retry if failed when possible
-removed comments
-removed unnecessary parameters of module

* Introduced initialization-states that can be executed multiple times on failure

* Added one more state s.t. init() only does probing

* added communication error count _comms_errors

* use get() instead of param_find

* changed scheduling interval

* start in reset state. check second byte in probe. add 2 retries to probe function

* add space in front of comments

* jump to reset state when another state fails

* changed SAMPLE_INTERVAL to 10_ms

* added static assert on number of channels in adc_report
2025-11-18 17:30:34 +01:00
fb13b880ce sensors: add ads7953 adc
* sensors: add ads7953 adc

* Update src/drivers/adc/ads7953/ADS7953.h

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

* Implemented changes suggested by review

* Implemented suggested changes

* removed unused variables and moved scope of ch_id

* Activated distance sensor again

* Update msg/AdcReport.msg

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* Update ADC report message field comments

* Update ADC msg - fix layout

* update comments

* changed group to Sensors in module.yaml

* created new module subcategory "adc"

* reverted group change in module.yaml

* added module descrption to modules_driver.md

* removed module description in modules_driver.md (autogenerated)

* removed unused variable, changed board_adc publication method to "multi"

* added static assert

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-11-04 17:22:10 +01:00
Phil-Engljaehringer dc0af1ab9d health: Fix displayed value in power check (#25751)
* Changed the healthFailure call in the PowerChecks to ensure that no value above the low_error_threshold or below the high_error_threshold is reported in AMC

* fix format

* made _latest_low_failure and _latest_low_failure member variables. Only update them when hystersis state changes from false to true.
2025-10-17 14:54:16 +02:00