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.

Notice that LED14 and LED17 are OFF

 

This program turns on all load switches so I was able to measure the following:

Table 1

Connector

Reading (volts)

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 -

  • PA0_FAN_POT2/TEMP2

  • PA1_FAN_POT1/TEMP1

 

  • ~3.3

  • ~0.7

Fan group 2

  • NetFan group 2_1

  • NetFan group 2_2

  • NetFan group 2_6

  • NetC60_5

  • Fan2_PWR

  • Fan_pwm2

 

  • ~0

  • ~0

  • ~0

  • ~3.3

  • ~13.7

  • ~3.3

Fan group 1

  • Fan1_PWR

  • Fan_pwm1

  • NetC60_7

  • NetC60_8

  • NetFan group 1_5

  • NetFan group 1_6

  • NetFan group 1_12

 

  • ~13.7

  • ~3.3

  • ~3.3

  • ~3.3

  • ~13.7

  • ~3.3

  • ~3.3

 

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)

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)

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)

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)

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.

All (yellow) LEDs connected to the load switches turn 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