I’m powering the DFRobot SEN0189 with an ESP32 @ 3V3, and I’m in the same boat as you. There are 3 points on the graph, so I used multiple-variable algebra and solved.

**TL;DR:**

**3V3 quadratic equation:**

y = -2572.2x² + 8700.5x - 4352.9

I’ll post my work, so you can catch me if I’m wrong.

First, we need to transform the X-axis from 5V to 3V3:

5V |
3.3V |

2.5V |
1.65V |

3.9V |
2.574V |

4.2V |
2.772V |

Now to transform the quadratic equation from 5V to 3V3:

y = -1120.4x² + 5742.3x - 4352.9

Replace the coefficients with `a`

, `b`

, and `c`

y = -ax² + bx - c

Now, substitute in the three points:

3000 = -a(1.650)² + b(1.650) - c

1000 = -a(2.574)² + b(2.574) - c

0 = -a(2.772)² + b(2.772) - c

Represent `c`

, as values of `a`

and `b`

:

c = -a(2.772)² + b(2.772)

Replace `c`

:

1000 = -a(2.574)² + b(2.574) - (-a(2.772)² + b(2.772))

1000 = 1.058508a - 0.198b

1000 + 0.198b = 1.058508a

a = 0.187055743b + 944.725972784

Represent `c`

in terms of `b`

:

c = -1.437333336b - 7259.259259259 + 2.772b

c = 1.33466664b - 7259.259259259

Substitute and solve for `b`

:

3000 = -0.50925926b - 2572.016460904 + 1.650b - 1.33466664b + 7259.259259259

3000 = -0.1939259b + 4687.242798355

0.1939259b = 1687.242798355

b = 8700.451040088

Solve for `c`

:

c = 1.33466664 * 8700.451040088 - 7259.259259259

c = 4352.9424969

Solve for `a`

:

a = 0.187055743 * 8700.451040088 + 944.725972784

a = 2572.195306523

**3V3 quadratic equation:**

y = -2572.2x² + 8700.5x - 4352.9

The new equation works for the 3V3 points:

- 3000.11 = -2572.2×1.65² + 8700.5×1.65 - 4352.9
- 1000.14 = -2572.2×2.574² + 8700.5×2.574 - 4352.9
- 0.14 = -2572.2×2.772² + 8700.5×2.772 - 4352.9

As well as (3.5, 2000) from the original graph:

3.5V => 2.31V

2019.74 = -2572.2(2.31)² + 8700.5(2.31) - 4352.9