Enable Set/Reset (write 0x29 to Z_MSB)#192
Closed
hussam-qawaqzeh wants to merge 18 commits intortlopez:masterfrom
Closed
Enable Set/Reset (write 0x29 to Z_MSB)#192hussam-qawaqzeh wants to merge 18 commits intortlopez:masterfrom
hussam-qawaqzeh wants to merge 18 commits intortlopez:masterfrom
Conversation
Enable Set/Reset (write 0x29 to Z_MSB)
rtlopez
reviewed
Dec 29, 2025
Owner
rtlopez
left a comment
There was a problem hiding this comment.
- what problem does this change solve?
- there is a typo in file name, QMC5338P but should be QMC5883P.
| // We use ±8G (0x02) as the default range for the drone. | ||
| _currentRange = QMC5883P_RANGE_8G; | ||
| setMode(_currentRange); | ||
| // 🔑 Step 1: Enable Set/Reset (write 0x29 to Z_MSB) |
Owner
There was a problem hiding this comment.
Plase remove UTF symbols from code.
rtlopez
reviewed
Jan 4, 2026
| _currentRange = QMC5883P_RANGE_8G; | ||
| setMode(_currentRange); | ||
| // Step 1: Enable Set/Reset (write 0x29 to Z_MSB) | ||
| _bus->writeByte(_addr, QMC5883P_REG_ZOUT_MSB, 0x29); |
Owner
The improvements I added to the QMC5883P driver in MagQMC5338P.h are: Aligned the driver more closely with the Adafruit library: same I2C address (0x2C), same chip ID (0x80), and the same CONTROL1 / CONTROL2 register layout. Improved sensor detection in testConnection(): it now retries multiple times instead of relying on a single read, which helps during startup. Improved initialization in begin(): I added softReset(), then explicitly configured the range, set/reset mode, and continuous measurement mode at 100Hz. Made initialization safer: any failed write or read now causes a real initialization failure instead of continuing as if the sensor was detected successfully. Improved compatibility with the project architecture: periodic reading now uses readMag() with readFast() like the other magnetometer drivers, and includes an initial read to support BusSlave. Improved raw-to-Gauss conversion in convert() based on the active range instead of relying on a weaker implicit assumption. Cleaned up the implementation by replacing magic numbers with explicit sensor constants, which makes the driver easier to maintain.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

No description provided.