Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug in getting uSv per hour #97

Closed
Wikilicious opened this issue Mar 28, 2024 · 3 comments
Closed

Bug in getting uSv per hour #97

Wikilicious opened this issue Mar 28, 2024 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@Wikilicious
Copy link
Owner

Currently, get_usv_h() is coded simply as µSv/h = (CPM / CalibrationCPM_1) * Calibration_uSv_1
However, after recently getting a GMC-600+ I noticed the uSv/h values a bit off from what I was seeing on the device display.

Unlike the GMC-300S who's CalibrationCPM_0, CalibrationCPM_1, CalibrationCPM_2 (and corresponding uSv) all produce an identical result...

Other device models seem to use multiple calibration points... Seems like it's not a linear response between CPM and uSv/h.

Now the question is... how does GQ calculate the displayed uSv from the calibration values in the config?

@Wikilicious Wikilicious added the bug Something isn't working label Mar 28, 2024
@Wikilicious Wikilicious self-assigned this Mar 28, 2024
@Wikilicious
Copy link
Owner Author

Posted question on GQ support forum
https://www.gqelectronicsllc.com/forum/topic.asp?TOPIC_ID=10435

@Wikilicious
Copy link
Owner Author

Did some empirical testing on a GMC-300S (GMC-300SRe 1.14)

|              | CPM   | uSv  |  | CPM   | uSv  |  | CPM    | uSv  |  | CPM    | uSv  |  | CPM  | uSv  |  | CPM     | uSv   |  | CPM     | uSv   |
| ------------ | ----- | ---- |  | ----- | ---- |  | ------ | ---- |  | ------ | ---- |  | ---- | ---- |  | ------- | ----- |  | ------- | ----- |
| Calibration0 | 50    | 1    |  | 25    | 1    |  | 25     | 2    |  | 25     | 2    |  | 100  | 4    |  | 100     | 4     |  | 100     | 4     |
| Calibration1 | 100   | 4    |  | 100   | 4    |  | 100    | 4    |  | 100    | 4    |  | 25   | 2    |  | 25      | 2     |  | 25      | 2     |
| Calibration2 | 32300 | 200  |  | 32300 | 200  |  | 32300  | 200  |  | 200    | 32   |  | 200  | 32   |  | 200     | 32    |  | 200     | 32    |
|              |       |      |  |       |      |  |        |      |  |        |      |  |      |      |  |         |       |  |         |       |
|              | CPM   | uSv  |  | CPM   | uSv  |  | CPM    | uSv  |  | CPM    | uSv  |  | CPM  | uSv  |  | CPM     | uSv   |  | CPM     | uSv   |
|              | 55    | 1.3  |  | 27    | 1.08 |  | 25     | 2    |  | 25     | 2    |  | 25   | 1    |  | 209     | 33.54 |  | 101     | 15.03 |
|              | 63    | 1.78 |  | 39    | 1.56 |  | 26     | 2.03 |  | 27     | 2.05 |  | 26   | 1.04 |  | 251     | 40.74 |  | 117     | 17.77 |
|              | 73    | 2.38 |  | 56    | 2.24 |  | 35     | 2.27 |  | 34     | 2.24 |  | 31   | 1.24 |  | 433     | 71.94 |  | 124     | 18.97 |
|              | 81    | 2.86 |  | 64    | 2.56 |  | 43     | 2.48 |  | 46     | 2.56 |  | 37   | 1.48 |  | 478     | 79.66 |  | 131     | 20.17 |
|              | 98    | 3.88 |  | 87    | 3.48 |  | 67     | 3.12 |  | 56     | 2.83 |  | 54   | 2.16 |  | 544     | 90.97 |  | 142     | 22.06 |
|              |       |      |  | 99    | 3.96 |  | 78     | 3.41 |  | 65     | 3.07 |  | 66   | 2.64 |  | 614     | 103   |  | 159     | 24.97 |
|              |       |      |  |       |      |  | 89     | 3.71 |  | 75     | 3.33 |  | 75   | 3    |  | 717     | 120.6 |  | 168     | 26.51 |
|              |       |      |  |       |      |  | 99     | 3.97 |  | 87     | 3.65 |  | 86   | 3.44 |  | 806     | 135.9 |  | 179     | 28.4  |
|              |       |      |  |       |      |  |        |      |  | 98     | 3.95 |  | 99   | 3.96 |  | 294     | 48.11 |  | 191     | 30.46 |
|              |       |      |  |       |      |  |        |      |  |        |      |  | 22   | 0.88 |  |         |       |  | 200     | 32    |
|              |       |      |  |       |      |  |        |      |  |        |      |  |      |      |  |         |       |  |         |       |
|              |       |      |  |       |      |  |        |      |  |        |      |  |      |      |  |         |       |  |         |       |
| Slope        | 0.06  |      |  | 0.04  |      |  | 0.0266 |      |  | 0.0267 |      |  | 0.04 |      |  | 0.1714  |       |  | 0.1714  |       |
| Intercept    | \-2   |      |  | 9E-16 |      |  | 1.3365 |      |  | 1.3323 |      |  | 0    |      |  | \-2.291 |       |  | \-2.287 |       |

Observations:

  • Order of calibrations matter (intended to increase CPM every calibration level)
  • The calibration CPM is treated like a max-CPM (if cpm is higher, then it goes to the next calibration)
  • The response curve is linear and only valid for the config interval range.
  • Once the CPM exceeds the max calibration point, uSv is extrapolated based on the highest calibration point.
  • After the first calibration, further calibration points are treated as slope-intercept form calculated from the last calibration and current.
  • Nuances when calibration CPM points are not in increasing order.

@Wikilicious
Copy link
Owner Author

Bug resolved... to the best of my knowledge... in 11d6726

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant