MKL02 bootloader chip not working on custom Teensy 4.1 based board

milindaj99

New member
Hi all,


I have designed custom PCB that includes the Teensy 4.1 design on-board, replicated exactly as per the official Teensy 4.1 schematics. Upon receiving the custom boards, I noticed that there is no activity on the IMXRT1062 chip. After extensive debugging, it came down to the fact that the MKL02 chip is not showing any sign of life as the LED on PTB3 does not blink, PTA3 (DCDC_PSWITCH) is not asserted, which also means the core voltage on the IMXRT1062 does not turn on. Here is a list of all observations

1. VDD_SOC is 0V (because PTA3 is not asserted HIGH)
2. PTB2 is at 0V
3. PMIC_ON_REQ gets driven HIGH sucessfully, enabling 3.3V regulator
4. VDD_HIGH_CAP outputs 2.5V
5. NVCC_PLL outputs 1.1V
6. PTA1 seems to have a wierd sawtooth signal at a frequency of 27kHz (image on scope attached)

So based on the above observations, its clear the MKL02 is not active and probably bootlooping, as PTA1 is the RESET pin on the MKL02 IC?

The MKL02 chips were purchased from PRJC.

Any advice or insight into this phenomenon would be really appreciated, thank you in advance. I have attached the relevant schematic block and scope outputs below:
 

Attachments

  • pcb-teensy4x.pdf
    620.3 KB · Views: 39
  • Screenshot 2025-09-18 at 21.00.52.png
    Screenshot 2025-09-18 at 21.00.52.png
    540.6 KB · Views: 26
One weird thing I noticed when I searched the schematic is PTA1 is listed 4 times.

This might be nothing but appears that the MKL02 chip on the schematic might be duplicated, one directly on top of the other.

Does the PTA1 trace have any other connections besides the MKL02 and the main processor? Is it routed near any noisy boost or buck regulators?

Have you observed this on multiple boards or could it just be a hardware issue with one board?

Sorry I don't have any more ideas at this time.
 
Re posting the power up sequence from here:
6. 3.3V Power - The TLV75733P voltage regulator turns on, supplying the main3.3V power to the entire board.
7. DCDC_PSWITCH - After 3.3V is stable for several milliseconds, the MKL02chip drives DCDC_PSWITCH high.
8. CPU Power - The IMXRT DCDC buck converter begins producing1.15V power for the CPU and most internal IMXRT circuitry. Later, software can adjust this voltage as needed for speeds greater than 528 MHz.

Note: You probably already know this, but I didn't realize the buttons on that page show the boot up power sequence step by step.

You seem to be stuck between step 7 and 8 of the power up sequence.

1. Do you have PTA3 connected to DCDC_PSWITCH and AD_B0_11? I didn't see that in your schematic.
2. Does the 3.3V rail stay at 3.3V or does it oscillate as well?

1758294157449.png


3. Might there be a solder bridge under a capacitor or inductor that get power in step 8? Thinking this might be the case because of the weird saw tooth signal. It rises "slowly" then has a sharp cuts off.

1758294668618.png
 
Re posting the power up sequence from here:
6. 3.3V Power - The TLV75733P voltage regulator turns on, supplying the main3.3V power to the entire board.
7. DCDC_PSWITCH - After 3.3V is stable for several milliseconds, the MKL02chip drives DCDC_PSWITCH high.
8. CPU Power - The IMXRT DCDC buck converter begins producing1.15V power for the CPU and most internal IMXRT circuitry. Later, software can adjust this voltage as needed for speeds greater than 528 MHz.

Note: You probably already know this, but I didn't realize the buttons on that page show the boot up power sequence step by step.

You seem to be stuck between step 7 and 8 of the power up sequence.

1. Do you have PTA3 connected to DCDC_PSWITCH and AD_B0_11? I didn't see that in your schematic.
2. Does the 3.3V rail stay at 3.3V or does it oscillate as well?

View attachment 38198

3. Might there be a solder bridge under a capacitor or inductor that get power in step 8? Thinking this might be the case because of the weird saw tooth signal. It rises "slowly" then has a sharp cuts off.

View attachment 38199
Hi, thank you for your time and consideration : )
Yup, PTA3 is connected to DCDC_PSWITCH and AD_B0_11, it is a little tough to spot since the whole schematic is connected by net labels instead of wires.

The 3.3V rail starts up up just fine - there doesn't really seem to be any significant noise on the 3.3V rail.
 
Your observation:
2. PTB2 is at 0V
This is not good. The Program signal should be reading logic 1 when Program button is not pressed.
You can observe this behavior with T4.0 and T4.1. Use an Ohm meter at the thru-holes near SD card signals. Connect probes between GND and Program holes. Should read open cct. Now press Program button and should read 0 Ohms.

I'm guessing you have a normally closed switch installed. Remove the switch and see that behavior changes.
 
Your observation:
2. PTB2 is at 0V
This is not good. The Program signal should be reading logic 1 when Program button is not pressed.
You can observe this behavior with T4.0 and T4.1. Use an Ohm meter at the thru-holes near SD card signals. Connect probes between GND and Program holes. Should read open cct. Now press Program button and should read 0 Ohms.

I'm guessing you have a normally closed switch installed. Remove the switch and see that behavior changes.
Hi, you are right, PTB2 should ideally be HIGH after the MKL02 starts up. However on my board, it just stays LOW.

The push button on my PCB is a normally OPEN switch, so it's not shorting the PTB2 signal to GND : )
 
Hi, you are right, PTB2 should ideally be HIGH after the MKL02 starts up. However on my board, it just stays LOW.

Please check whether your boards were built with MKL02 chips purchased from PJRC. Also please check you have the T4 version and not the older version which implements Teensy3. PJRC always ships chip orders with a printed receipt that has the part number. The anti-static bag always has a label that clearly identifies the part number and says Teensy 4.x or Teensy 3.x compatibility.

We have seen many times where a contract manufacturer purchased blank chips from a distributor, rather than buying programmed chips from PJRC. A blank chip will have the Program signal low. Typically there is a small leakage current through the MKL02 if software hasn't configured the pin. Most modern digital multimeters will measure approx 0.25 volts in the blank chip scenario, rather than exactly 0 volts. The actual voltage seen varies between chips and with temperature and the input circuitry inside your multimeter. If you see this small voltage, you can confirm it's "weak" from only leakage current by connecting a 10K or 1K resistor across the multimeter leads and watching for the voltage to go to zero. Or even just touching both leads with your fingers and watching for the voltage to decrease can give a pretty good indication if the low-but-not-zero voltage is weak leakage through the chip, which is a sure indication the soldering and wiring are correct and the cause of trouble is a blank chip.

If you don't see the voltage from tiny leakage current, and if you multimeter does actually read zero when the negative lead remains connected to GND but the positive lead is not touching anything, then your low signal on Program problem is likely an issue with wiring or soldering, or something on the PCB shorting that signal to GND.
 
Last edited:
Hi, you are right, PTB2 should ideally be HIGH after the MKL02 starts up. However on my board, it just stays LOW.

The push button on my PCB is a normally OPEN switch, so it's not shorting the PTB2 signal to GND : )
Is the switch square or rectangular footprint? If square, is it installed in the correct orientation? You might want to check the switch datasheet for pinout contacts.

Even more likely...,
@PaulStoffregen detailed some very good points and some diagnostic procedures. Well worth following up.
 
Hi @Paul, thank you for the detailed explanation and guidance. I did verify by measuring the voltage across PTB2, and indeed it is a weak voltage (around 0.1-0.2V) that drops to almost zero when I touch the multimeter leads.

And it turns out, the PCB manufacturer had confirmed later on they made a mistake on their end, by sourcing blank MKL02 chips instead of sourcing them from the specified PRJC link in my BOM file. That, and the above diagnosis proved that the chips are blank.

Thanks again! Cheers
 
Back
Top