Commit graph

12 commits

Author SHA1 Message Date
Tyeth Gundry
1d237a6695
Bump version to 1.0.2 in library.properties
Some checks failed
Arduino Library CI / build (push) Has been cancelled
2025-08-22 21:44:39 +01:00
Limor "Ladyada" Fried
1846a7318a
Merge pull request #1 from adafruit/init-as-nullptr
Initialize i2c_dev to nullptr in constructor
2025-08-22 15:18:11 -04:00
Tyeth Gundry
dd363596d7
Initialize i2c_dev to nullptr in constructor
This alleviates the issue on initialisation and particularly on destruction and reinitialization of the driver.
2025-08-22 12:30:28 +01:00
Tyeth Gundry
25ae7b4997
Update library.properties - bump version to 1.0.1
Some checks failed
Arduino Library CI / build (push) Has been cancelled
2025-08-05 13:38:54 +01:00
ladyada
39dd3c54fe Update license to MIT and add proper attribution
- Change from BSD to MIT license across all files
- Add MIT LICENSE file with standard text
- Update author attribution to Limor "Ladyada" Fried with assistance from Claude Code
- Update file headers to reference MIT license and LICENSE file
- Enhance README with comprehensive feature list and proper attribution
- Update README to reference LICENSE file instead of license.txt

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-03 12:51:32 -04:00
ladyada
1da8a7438c Add library.properties with Adafruit_BusIO dependency
Some checks failed
Arduino Library CI / build (push) Has been cancelled
- Define library metadata for Arduino Library Manager
- Add Adafruit BusIO as required dependency
- Set initial version to 1.0.0
- Include comprehensive library description
- Support all architectures

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 16:32:45 -04:00
ladyada
c93ea16dd6 Integrate calibration loading and add comprehensive mode support
- Automatically load calibration constants in begin() method
- Remove separate getCalibrations() call from example sketch
- Add selectable measurement modes in example with commented options
- Implement proper SOC (Start of Conversion) triggering for step modes
- Support all measurement modes: Continuous, Step, and Sleeping Step
- Optimize loop for efficient new data flag handling
- Add automatic single measurement triggering for step-based modes
- Tested and verified both continuous and step mode operation
- Apply clang-format code formatting to all C++ files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 16:29:51 -04:00
ladyada
195681dc69 Add extended range mode support and optimize continuous measurements
- Implement extended range measurement mode for both ambient and object temperature
- Support automatic mode detection (Medical vs Extended Range)
- Extended range uses RAM_52-59 with complex S calculation formula
- Medical mode continues using cycle position-based calculations
- Unify variable names (ram_ambient, ram_ref) for cleaner code
- Update debug output to show measurement mode and generic variables
- Optimize test sketch for efficient continuous monitoring:
  - Reset new data flag before starting measurements
  - Only check isNewData() flag instead of busy flags
  - Reset flag after each reading for proper data flow
  - Reduce I2C bus traffic with minimal delay

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 15:56:29 -04:00
ladyada
4552553eb3 Add complete object temperature calculation with debug controls
- Implement full getObjectTemperature() with Stefan-Boltzmann law calculation
- Add complete object temperature formula: TO = pow( STO / (emiss * Fa * Ha * (1 + Ga * (TODUT - TO0) + Fb * (TADUT - TA0))) + TAK^4, 0.25) - 273.15 - Hb
- Add TO0/TA0 member variables for iterative calculation state tracking
- Add scientific notation display for large values (TAK^4, TO_K^4) using custom formatting
- Add MLX90632_DEBUG define with ifdef controls for all debug output
- Add proper indentation (2 spaces) for all debug prints for better readability
- Convert all string literals to F() macro for SRAM optimization (1150 bytes saved)
- Complete temperature measurement system working: ambient ~24°C, object detection functional
- All intermediate calculations visible with proper formatting in debug mode

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 15:15:02 -04:00
ladyada
374dbc0494 Add calibration constants and ambient temperature calculation
- Implement getCalibrations() to read all EEPROM calibration constants with proper double precision scaling using multiplication (2^-n) instead of division
- Add getAmbientTemperature() with complete calculation: VRTA, AMB pre-calculations and final temperature formula P_O + (AMB - P_R)/P_G + P_T * (AMB - P_R)^2
- Add refresh rate control with setRefreshRate()/getRefreshRate() functions
- Add getEEPROMVersion() for version information
- Add RAM_6 register definition for ambient temperature calculations
- Update test sketch to display calibration constants and continuous ambient temperature readings
- All functions tested successfully on hardware with MLX90632 sensor showing stable ~23.36°C readings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 20:38:53 -04:00
ladyada
dfa2379739 Add comprehensive MLX90632 control and status register functionality
- Add getProductCode() function with product code decoding
- Add control register functions: startSingleMeasurement(), startFullMeasurement()
- Add mode control: setMode(), getMode() with enum support
- Add measurement select: setMeasurementSelect(), getMeasurementSelect()
- Add status register functions: isBusy(), isEEPROMBusy(), reset()
- Add data monitoring: readCyclePosition(), resetNewData(), isNewData()
- Add measurement mode and type enums (HALT, STEP, CONTINUOUS, MEDICAL, EXTENDED_RANGE)
- Update test sketch with full register testing and status monitoring
- All functions use proper RegisterBits for clean bit manipulation
- All setter functions return bool for I2C write verification

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 14:55:31 -04:00
Limor Fried
d38f88cb80 Initial commit: MLX90632 Far Infrared Temperature Sensor library
- Basic I2C communication with byte-swapped register addresses
- Chip detection via product code register
- getProductID() function for 48-bit unique product ID
- Test example sketch
- GitHub CI workflow and clang-format configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 19:25:34 -04:00