summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/mag_cal.c6
-rw-r--r--test/mag_cal.c12
2 files changed, 9 insertions, 9 deletions
diff --git a/common/mag_cal.c b/common/mag_cal.c
index 1dc40e34db..f7b1945933 100644
--- a/common/mag_cal.c
+++ b/common/mag_cal.c
@@ -132,9 +132,9 @@ int mag_cal_update(struct mag_cal_t *moc, const intv3_t v)
/* 4. Kasa sphere fitting */
kasa_compute(&moc->kasa_fit, bias, &radius);
if (radius > MIN_FIT_MAG && radius < MAX_FIT_MAG) {
- moc->bias[X] = FP_TO_INT(bias[X]);
- moc->bias[Y] = FP_TO_INT(bias[Y]);
- moc->bias[Z] = FP_TO_INT(bias[Z]);
+ moc->bias[X] = -FP_TO_INT(bias[X]);
+ moc->bias[Y] = -FP_TO_INT(bias[Y]);
+ moc->bias[Z] = -FP_TO_INT(bias[Z]);
moc->radius = radius;
diff --git a/test/mag_cal.c b/test/mag_cal.c
index e1931c352a..65ffa13d8f 100644
--- a/test/mag_cal.c
+++ b/test/mag_cal.c
@@ -62,9 +62,9 @@ static int test_mag_cal_computes_bias(void)
/* Add the final sample and check calibration. */
TEST_EQ(1, mag_cal_update(&cal, samples[cal.batch_size - 1]), "%d");
TEST_EQ(525, FP_TO_INT(cal.radius), "%d");
- TEST_EQ(-1, cal.bias[0], "%d");
- TEST_EQ(1, cal.bias[1], "%d");
- TEST_EQ(-2, cal.bias[2], "%d");
+ TEST_EQ(1, cal.bias[0], "%d");
+ TEST_EQ(-1, cal.bias[1], "%d");
+ TEST_EQ(2, cal.bias[2], "%d");
/*
* State should have reset, run the same code again to verify that
@@ -74,9 +74,9 @@ static int test_mag_cal_computes_bias(void)
TEST_EQ(0, mag_cal_update(&cal, samples[i]), "%d");
TEST_EQ(1, mag_cal_update(&cal, samples[cal.batch_size - 1]), "%d");
TEST_EQ(525, FP_TO_INT(cal.radius), "%d");
- TEST_EQ(-1, cal.bias[0], "%d");
- TEST_EQ(1, cal.bias[1], "%d");
- TEST_EQ(-2, cal.bias[2], "%d");
+ TEST_EQ(1, cal.bias[0], "%d");
+ TEST_EQ(-1, cal.bias[1], "%d");
+ TEST_EQ(2, cal.bias[2], "%d");
return EC_SUCCESS;
}