Custom Teensy LC with MK02 accepts bootloader but no USB

Not open for further replies.


Hi Everyone,

I am attempting my first custom Teensy. In this case, I am using an MKL26Z64VFT4 just like the Teensy LC, instead of the 3.1 (which is what I see people debugging most often on the forums).

I have been able to get to the point where I can see the MK02 sending signals to the MKL26 followed by the oscillator booting up. However, I don't see anything on the USB lines. When I inspect them with an oscilloscope I see almost nothing. There is a little bit of deterministic noise (as if singnals are coupling into the USB lines) but no external signals to the Teensy are moving at all.

Things I have examined:
- I am using an external regulator so VREGIN is tied to VDD (there is no VBATT pin on the LC).
- The oscillator has no switching signals crossing under it. I could improve the ground ring slightly but the osc. running.
- I have tried powering this from a bench power supply with al of the other high-power components removed.
- I have manually gone through the pinouts to make sure signals are connected properly on the board.
- I have checked for shorts and open pins and everything is checking out.

I have attached my schematics and board layout. I would appreciate it if anyone has any ideas about what to try next.



Screen Shot 2017-02-06 at 6.34.41 PM.pngView attachment communicator.pdfScreen Shot 2017-02-06 at 6.37.08 PM.png
Always a first check... when you hold Program low, does the MKL02 hold Reset low? (not 0.1V to 0.2V due to the chip watchdog repeatedly rebooting, but 100% low)
I saw your project on Hackaday and thought I would mention it here in case it gets buried in the comments. In the photos it looks like you have a short on the processor side of your two 33 ohm resistors for your usb data lines. you might take a look at that with an ohm meter.
Yes, I did have a short in that photo (good eye!!). The short was fixed before posting here. The USB data lines get initialized to a differential value (one is high and the other is low) after the bootloader does it's magic. I jsut don't see any toggling on them.
Yes, there is a GND copper pour that is hidden in the picture which connects to the bottom pin and the chasis of the conenctor. The ID pin is floating.
Here's a picture of the board with the Grounds poured, it makes other signals harder to see but the ground connections are now visible
Screen Shot 2017-02-21 at 5.31.27 PM.png
Looks like we're not seeing whatever's wrong from only these diagrams.

Don't know if good photos of the actual build would be any better, but maybe worth a try?
Sure, it's totally worth a try. Here are some photos of the board at different angles. The gray wire is bypassing the battery charger and connecting VUSB directly to the input of the 3.3V switching regulator.

Just looked it over again. Sure seems like it ought to work.

Maybe something's just not soldered quite right? Those pads under the chips look like they come very close to the pins. Did you get any solder mask between the pad & pins? Perhaps one or more pins could be shorted to ground underneath either chip?
OMG I found it!!! Thanks for the tip Paul. There were no ground shorts, but probing EVERYTHING helped me find a MISSING TRACE on one of the usb signals. The board had a trace jsut deleted from it! UGH! I must have hit the delete key jsut before saving the board.

A little blue-wire and an exacto knife and it's alive now!!

Screen Shot 2017-02-23 at 5.38.32 PM.png
Wow, glad you found it.

I added a mention of this on the troublehshooting list. Maybe it'll help others someday?

I personally don't use Eagle, but I'm curious if it has an electrical connectivity check? The ancient version of pads does. Just curious if there's some sort of a software-based check possible to run in Eagle? Maybe something more specific to recommend for the future??
I'm curious if it has an electrical connectivity check?

Yes, it has ERC and DRC. I believe they do check for unrouted wires. I think what happened was I ran the checks, they passed. I then accidently hit the delete key while that wire was selected. Then I saved. That's the only way to explain it I think.
Do you still have the file with the deleted wire?

Is there any step-by-step ERC guidance we could give people using Eagle, to run on their files after their board is made but not working, which could catch this specific type of mistake? Or exclude this type of mistake from the list of mysterious reasons their board isn't working?

I personally don't use Eagle, so I'm depending on those to do for any insights that might help others in the future when struggling to troubleshoot their custom boards.
I just checked the ERC (and DRC) tool on the old PCB file and it did NOT find the error.
I think it would be good to know how to find this type of air-wire error in Eagle.
I'm attaching the board and schematic files in case it helps anyone find a solution to this.
View attachment
Open the board window, go to Tools -> Statistic... and search for "unroutet (airwire)"

Last edited:
Thanks HWGuy, It's a bit surprising that Eagle doesn't have a better sign-off mode for this. I will be sure to add this to my sign-off procedure for now on.
@HWGuy - Yes, awesome screenshot! :D

I've added 'In Eagle, use Tools > Statistic... and search for "unroutet (airwire)".' to the MKL02 page troubleshooting tip (which also links to this thread). Next time this happens, hopefully it'll save someone else time & troubleshooting frustration.

Does anyone know if Kicad has a similar feature? Such as "To check in Kicad, click {fill in this blank}"...
Just FYI, there is a simpler solution to detect missing wires ("airwires") in Eagle.

Click on the Ratsnest button and the status bar shows the total number of remaining air wires.


Nichts zu tun = nothing to do
1 Luftlinien = 1 airwires
I am facing some issue with the custom board. When i connect to USB and try to load the program nothing happens. Can anyone help me? I am attaching schmetic of my board. Any help is appriciated.

@jrdlm: Double Posting won’t help... I’ll delete the duplicate post in the other thread.

It is normal for nothing to happen with an uninitialized custom board when you connect it to USB for the first time, since there isn’t yet any USB code loaded in the MK20. The very first upload of a program requires a press of the program button to manually activate boot loading process.
Can you guide me what should I do? When i press program button controller resets but nothing happens in my laptop. can you help mw out ?
Not open for further replies.