You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+47-42
Original file line number
Diff line number
Diff line change
@@ -16,11 +16,12 @@ The logarithmic resistor array and optional MOSFET configuration allow measureme
16
16
17
17
- Real-time I-V curve measurement
18
18
- Maximum Power Point (MPP) tracking
19
+
- ADC (ADS1115) for precise voltage measurements
19
20
- OLED display with live readings
20
21
- E-ink display for persistent measurements
21
22
- Logarithmic resistor array for wide measurement range
22
23
- Optional MOSFET for low-resistance measurements
23
-
- Built-in voltage divider for measuring higher voltage sources (>3.3V)
24
+
-Optional: Built-in voltage divider for measuring higher voltage sources (>3.3V)
24
25
25
26
## Button Control
26
27
The device features a single button for measurement control:
@@ -55,46 +56,51 @@ The web interface provides real-time visualization of measurements, displaying b
55
56
56
57
## Hardware Overview
57
58
```ascii
58
-
+-------------+ +----------+ +-----------+
59
-
| Solar | | Resistor | | MUX |
60
-
| Cell |---->| Array |---->| CD74HC |
61
-
| (DUT) | | (R1-R16) | | 4067 |
62
-
+-------------+ +----------+ +-----------+
63
-
| |
64
-
| |
65
-
| |
66
-
| +---------+ |
67
-
+---------->| MOSFET | v
68
-
| | Circuit |GND
69
-
| +---------+
70
-
| |
71
-
| |
72
-
| |
73
-
| |+--------------+
74
-
+----------------+------->| ESP32-S3 |
75
-
| Mini |
76
-
| (ADC1) |
77
-
+--------------+
78
-
^
79
-
|
80
-
|
81
-
+---------------+
82
-
| UI Controls |
83
-
| OLED, Pots, |
84
-
| Button,E-ink |
85
-
+---------------+
59
+
+-------------+ +-----------+ +--------------+
60
+
| Solar | | ADS1115 | | ESP32-S3 |
61
+
| Cell |---->| ADC (I2C) |---->| Mini |
62
+
| (DUT) | | | | (I2C Master) |
63
+
+-------------+ +-----------+ +--------------+
64
+
| ^
65
+
| |
66
+
| |
67
+
| |
68
+
| +---------+ |
69
+
+---------->| MOSFET | |
70
+
| | Circuit | |
71
+
| +---------++---------------+
72
+
| | | UI Controls|
73
+
| v| OLED, Pots,|
74
+
| GND | Button,E-ink |
75
+
| +---------------+
76
+
|
77
+
|
78
+
|+----------++-----------+
79
+
+----------->| Resistor ||MUX|
80
+
| Array|---->| ADG706 |
81
+
| (R1-R16) || or 4067 |
82
+
+----------++-----------+
83
+
|
84
+
|
85
+
v
86
+
GND
86
87
```
87
88
88
89
## Key Components
89
90
90
-
- ESP32-S3 Mini
91
-
- CD74HC4067 16-channel multiplexer
91
+
- ESP32-S3
92
+
- ADG705 16-channel multiplexer
93
+
- or lower precision: CD74HC4067 16-channel multiplexer
92
94
- SSD1306 OLED display
93
-
- 16 precision resistors (83Ω - 10.3kΩ)
95
+
- 16 precision resistors (15Ω - 20kΩ)
94
96
- MOSFET for low-resistance measurements
97
+
- ADS1115 ADC for precision Analog Voltage measurements
95
98
96
99
## Technical Notes
97
-
### Resistance Measurement Accuracy
100
+
### Low internal resistance with ADG706 Multiplexer
101
+
To be able to measure the currents at high load (low voltages), which completes the curve to the end, a high quality multiplexer is needed, with very low internal resistance. This is the reason why ADG706 was chosen over the CD74HC4067.
102
+
103
+
#### Resistance Measurement Accuracy with 4067
98
104
The CD74HC4067 multiplexer has a significant internal ON resistance (RON) of approximately 70Ω that affects measurements. Rather than compensating for this in software, we've directly measured each resistor through the MUX circuit. The resistor values listed in the code (83Ω - 10.3kΩ) already include this MUX internal resistance, ensuring accurate current calculations without additional compensation.
99
105
100
106
For example:
@@ -104,6 +110,12 @@ For example:
104
110
- No additional software compensation needed
105
111
- Measurements remain accurate across the full range
106
112
113
+
### Sensitivity of the ESP32 internal ADC
114
+
The ESP32 is known for quite a shitty ADC, non-linear in the middle range, with a very slow slope near the ends. This can cause significant issues with accurate voltage measurements, especially at low voltages.
115
+
116
+
### Use external ADC, such as ADS1115
117
+
Solves the issue.
118
+
107
119
## Getting Started
108
120
1. Clone this repository
109
121
2. Install PlatformIO
@@ -130,13 +142,6 @@ The project includes a custom PCB design for a MUX ADG706 for more reliable meas
130
142

131
143
*First prototype of the I-V Curve Analyzer testing a series of Dye-Sensitized Solar Cells (DSSC). The compact design allows for easy in-line measurements during workshops and experiments.*
132
144
133
-
### Component Library
134
-
The [`ad706/`](MUX-ADG706/ad706/) directory contains all necessary files for the ADG706 multiplexer:
135
-
136
-
-[`ADG706BRUZ-REEL7.kicad_sym`](MUX-ADG706/ad706/ADG706BRUZ-REEL7.kicad_sym) - KiCad symbol file
137
-
-[`SOP65P640X120-28N.kicad_mod`](MUX-ADG706/ad706/SOP65P640X120-28N.kicad_mod) - Footprint for the 28-pin SOP package
138
-
-[`ADG706BRUZ-REEL7.step`](MUX-ADG706/ad706/ADG706BRUZ-REEL7.step) - 3D model for visualization
139
-
140
145
### Project Files
141
146
The KiCad project (`MUX-ADG706/`) contains:
142
147
@@ -153,9 +158,9 @@ Code and hardware design by Marc Dusseiller (@dusjagr), with assistance from the
153
158
## Future Improvements
154
159
Future development plans for the I-V Curve Analyzer include:
155
160
156
-
1.**Enhanced Multiplexer**: Replace the current multiplexer with ADG706 for lower internal resistance, improving measurement accuracy especially in the low-resistance range.
161
+
1.DONE **Enhanced Multiplexer**: Replace the current multiplexer with ADG706 for lower internal resistance, improving measurement accuracy especially in the low-resistance range.
157
162
158
-
2.**IoT Integration**: Utilize the ESP32's WiFi capabilities to upload measurements to an IoT cloud service for:
163
+
2.ONGOING **IoT Integration**: Utilize the ESP32's WiFi capabilities to upload measurements to an IoT cloud service for:
0 commit comments