Rev 3.1 PD validation
Components removed:
R127
R6
Components adjusted/fixed:
R135 (resoldered)
C61 (resoldered)
changed R7 (4.7k → 1.21k)
POWERING ON THE BOARD AND TESTING LOAD SWITCHES
At this point I flashed the controller board with the PD firmware (power_distribution) and connected the controller to PD; after soldering some jumper wires (for VBAT and GND), the board was connected to the DC power supply. The power supply was set to 13.5 V with a 0.80 A current limit; when the board was powered on I noticed that some LEDs were periodically blinking on and off (LED4 and iirc LED27 and LED23). I was also getting incorrect voltage readings for V5 (5 V) and V1 (3.3 V).
After probing and inspecting the bergstak connector, I found out that the pins of the connector were not actually soldered onto the pads (floating pins) so after removing the bergstak with the heat gun and firmly placing it down, the bergstak was resoldered. Then I probed it to make sure there were no shorts between the pins and that the bergstak was soldered properly.
I then tested the continuities between the rails (VBAT, 5V, 3V3, and GND) using the test points to make sure I didn’t bridge any pins on the bergstak:
VBAT and 5V
VBAT and 3V3
VBAT and GND
5V and 3V3
5V and GND
3V3 and GND
After confirming that there were no shorts between VBAT, 5V, 3V3, and GND, I connected PD to the power supply again (13.5 V, 0.8 A limit) and powered on PD and flashed the controller board with the power_distribution firmware under the pd_smoketest branch.
This program turns on all load switches so I was able to measure the following:
Table 1
Connector | Reading (volts) |
---|---|
Main_Pi | ~0 |
Driver_Disp | ~5 |
Spare_5V_1 | ~5 |
Spare_5V_2 | ~0 |
Left_Cam/Rear_Cam | ~5 |
Right_Cam | ~5 |
MCI | ~13.7 |
Steering/Solar_sense | ~13.7 |
Spare_1 | ~13.7 |
Main_Disp/BMS | ~13.7 |
Center_Console | ~13.7 |
Rear_Cam_Display | ~13.7 |
L_Disp/Chgr_Interface | ~13.7 |
R_Disp/BPS_strobe | ~13.7 |
Spare_2 | ~13.7 |
Spare_3 | ~13.7 |
DRL/Brake_light | ~13.7 |
Turning_Light | ~13.7 |
Fan Control -
|
|
Fan group 2
|
|
Fan group 1
|
|
As shown in the table, Main_Pi and Spare_5V_2 is not giving an output voltage (we are expecting both to give ~5V).
Ryan said that there’s no firmware reason for both Main_Pi and Spare_5V_2 to both be zero and he suggested to take a look at the I/O expander connected to both Main_Pi and Spare_5V_2 (which is U10 in this case). More specifically, the following pins: 13, 14, 15, 16, 17, 18.
After confirming that these pins are not shorted with one another, I powered on PD and measured the following (from U10):
Table 2
Pin | Reading (volts) |
---|---|
13: MAIN_PI_B+ EN | ~3.3 |
14: MAIN_PI_DRVR_DISP_DSEL | ~0 |
15: DRIVER_DISPLAY_EN | ~3.3 |
16: 5V_SPARE_1_EN | ~3.3 |
17: 5V_SPARE_DSEL | ~0 |
18: 5V_SPARE_2_EN | ~3.3 |
From the table, you can see that the load switches (U13 and U14) are receiving the EN signals (MAIN_PI_B+ EN and 5V_SPARE_2_EN) so there must be something wrong at U13 and U14 rather than U10.
I first checked for shorts for the output pins of U13; in this case I checked pins 12, 13, 14 with GND, VBAT, 5V, and 3V3. I also did the same for the output pins of U14 (8, 9, 10). In both scenarios, there were no shorts. So then I then checked the surrounding components.
I did the following:
I checked the orientation of both LED14 and LED17 using the diode mode from a DMM, to make sure they weren’t soldered the wrong way (in this case they were both soldered correctly)
I checked for shorts with the other passive components (I found out that they were soldered correctly)
I added more solder to certain components that I thought were lacking enough to create a solid connection between the component and the pad
At this point, both LED14 and LED17 still did not turn on so I decided to check the input pins of U13 and U14 (1, 2, 3, 4, 5, 6, 7). I checked for shorts between the pins (which there were none) so then I decided to measure the voltages.
Starting with U13:
Table 3
Pin | Reading (volts) |
---|---|
1: GND | ~0.14 |
2: IN0 (input 0) | ~0 |
3: DEN | ~3.25 |
4: NC | ~0 |
5: DSEL (diagnosis select) | ~0.14 |
6: IN1 (input 1) | ~3.25 |
7: NC | ~0 |
As you can see in red, the voltage at pin 2 is zero!!! It should be around 3.25 V which is what pin 6 (IN1) is at. While taking these measurements, by luck I found out that LED14 turned on when I applied enough pressure to pin 2; this means that the component lead was “floating” above the pad on the board so I was able to easily fix this by soldering it down. So when I powered on PD again, LED14 turned on.
Moving onto LED17 (connected to U14), I tried to apply the same strategy. This time, I applied pressure to pin 6 but unfortunately, LED17 didn’t turn on. This means that pin 6 was soldered correctly.
So I decided to measure the voltages of the input pins (of U14):
Table 4
Pin | Reading (volts) |
---|---|
1: GND | ~0.14 |
2: IN0 (input 0) | ~3.25 |
3: DEN | ~3.25 |
4: NC | ~0 |
5: DSEL (diagnosis select) | ~0.14 |
6: IN1 (input 1) | ~0 |
7: NC | ~0 |
Just like the table for U13, as you can see in red, pin 6 is zero!!! It should be around 3.25 V. But pin 6 is soldered correctly, so I needed to look elsewhere. In this case, I moved onto R80 which is the resistor array that is directly connected to U14.
Since LED16 turns on, I decided to measure the following (from R80):
Table 5
Pin | Reading (volts) |
---|---|
8 (connected to pin 2 of U14) | ~3.25 |
5 (connected to pin 6 of U14) | ~0 |
As you can see in red, the voltage at pin 5 is zero!!! It should be around 3.25 V; this issue again points to another soldering issue but where?
So I decided to measure the voltage at pin 4 (which is directly across pin 5) and found out that the voltage was zero. But it shouldn’t be zero since pin 4 is connected to the 5V_SPARE_2_EN net/trace, which is connected to the I/O expander (U10). From Table 2, the 5V_SPARE_2_EN trace is 3.3 V so this must mean that either pin 4 or pin 5 of R89 is “floating” (i.e. not soldered properly). By luck, I was able to create a solid connection with a test probe at pin 4 while I was taking the measurements in Table 5, so I knew that I needed to solder pin 4. After doing so, I powered on the board and LED17 finally turned on.
Throughout this process, for some odd reason, LED22 randomly decided not to turn on, but this was easily solved by soldering pin 4 of R115 (same process for LED17).
TESTING FAN CONTROL (TO BE EDITED)
use power_distribution firmware
soldered a 2 pin 100 thou header to Fan Control
solder 4pin 100thou header to Fan group 1
connects to 12 V fan
after powering on the board, the fan spins, but doesn’t adjust in rpm when I turn the pot
(IGNORE FOR NOW):
power_distribution
automatically detects as rear board (in minicom)
LED27, LED23, LED4 stay on
LED1 of controller board stays on
VBAT: ~13.5 V
V5: ~5 V
V1: ~3.3 V
smoke_bts7200
LED27, LED23, LED4 stay on
LED1 of controller board stays on
smoke_bts7040:
LED27, LED23, LED4 stay on
LED1 of controller board stays on
To be edited:
Potential component/soldering issues
VBAT:
bergstak pins
V1 (3V3):
R89 (added more solder)
R80 (added more solder)
bergstak pins
R102 (added more solder)
R132 (added more solder)
R115 (added more solder)
V5:
probing of I2C
SCL
SCA