Bootloader Chip For Teensy 4.0

Very interesting.
I found this on the forum when I was designing my board on the T4 Bootloader Chip thread:

Only 3 flash chips will be supported, W25Q16JV**IM, W25Q64JV**IM, and W25Q128JV**IM. This and so many other design issues still need to be documented. These IMXRT chips have a much more complicated startup process than simpler microcontrollers

Silicon is dear these days, and I was able to find availability in the W25Q128, so I have a 16MB flash chip on there. (EDIT: size, duh)

It's good to know that the board variants aren't burned into the MKL chip.

I'll try the fix #1 you mention to verify that this is the issue.

You say
There is no single simple answer,
but I want a single simple answer!
This is a prototype, so I think that my team and I will have to make the custom change on our machines for now.
For future versions that will be released, I will just need to make sure that I get the correct size flash so that the Tympan 'just works' with the Teensyduino. I can't expect folks to make that low level change.

Thanks @defragster!
 
Very interesting.
I found this on the forum when I was designing my board on the T4 Bootloader Chip thread:
Only 3 flash chips will be supported, W25Q16JV**IM, W25Q64JV**IM, and W25Q128JV**IM. This and so many other design issues still need to be documented. These IMXRT chips have a much more complicated startup process than simpler microcontrollers

Silicon is dear these days, and I was able to find availability in the W25Q128, so I have a 16MB flash chip on there. (EDIT: size, duh)

It's good to know that the board variants aren't burned into the MKL chip.

I'll try the fix #1 you mention to verify that this is the issue.

You say but I want a single simple answer!
...
Thanks @defragster!

As a placeholder hope that info 'safely' helps until Paul might offer more. At least the guess about '16MB chosen Flash was right' :)

And it was Paul who said: "There is no single simple answer, as the core library and other libraries have many features. Exactly what you would change depends on the details."
> That was said in context on that thread where it wasn't clear of 'all' the factors for the PCB at hand.
But indeed there will be some choice in how the best solution is arrived at. A combination of production rate (one off or product), and the PCB support versus FLASH at hand [ routed as ( 4.0, 4.1, T_MM, custom ) ] ...

@Paul: It seems it is time to update the Bootloader Chip page to cover all three Flash variants: 2,8,16 MB?
 
The simple test to delete that .elf file has done the trick.
My board was a MicroMod (showing on the Ports list).
Then I pressed the program button with a Teensy 4.1 targeted HEX file and presto!
Now my board shows up as a Teensy 4.1 in the ports list, and I am getting a passing grade from my basic board test that reads button inputs.

Next, I will go in and modify the .ld so that my team and I can have some ease.

Again, thanks @defragster for your quick reply.

EDIT:
Making the change to the _teensy_model_identifier in the .ld file works!
I am happy as a clam!
 
Last edited:
Quick update, if anyone's still watching this thread... today I am working on making the bootloader compatible with virgin IMXRT chips (the chip on Teensy 4.0 gets fuses initialized by our bed-of-nails test fixture).

Bootloaders need to be tested very thoroughly. We'll probably have 1 month or longer of testing, so please do not expect to see PJRC offering a ready-to-use bootloader chip until March or perhaps April. But it is coming.



Hello. I've been using Teensy 4.1 in one of our projects in the Company where I work. Today we decided to have our Main Control Board (that uses Teensy 4.1 attached to it) re-designed to have the bootloader, microcontroller and all other peripherals we need on our board directly.
I can see that the bootloader is currently available on PJRC Store, flash memory options are pretty easy to find, the only problem currently is the blank Microcontroller.
I can see on the same page that PJRC Store may have some in small quantity. The problem is, this update is from a few months ago. Any chance to still be able to order 25 pieces of microcontroller + Bootloader chips (it would be enough for our initial batch).
Thanks!
 
Any chance to still be able to order 25 pieces of microcontroller + Bootloader chips (it would be enough for our initial batch).

Will only 17 be enough to get started? That's how many extra chips 1062 we have at this moment. Email me directly if you want them.
 
Looks like we'll have a small number of 1062 chips (under 200) within a week or two. Probably won't get more after these until the next production run on Teensy 4.1, which currently scheduled in July.
 
Yes Paul 17 is enough! I will contact you today CCing the Supply Chain Manager, so he can conduct the order.

Thanks for the support!

Hey Paul, sorry we changed plans today and we will run another batch of our Control PCBs still with a Teensy 4.1 attached to it. We will upgrade to onboard microcontroller next batch, which will run around July.

Thanks anyways!
 
What if I want to design custom PCB compatible with teensy 4.1, but I cant supply my own components to PCB+assembly manufacturer like jlcpcb, that means I can't just buy 1000 bootloader chips and send them over to them so they put them on my pcb. They can only put virgin, new chips. Is there a bootloader code or hex file for MKL02Z32VFG4 or this is not public?
 
They can only put virgin, new chips.

If that is true, then you should use another vendor. I have no idea why everyone promotes JLC PCB. I only have bad experience with them myself. If they cannot place parts with custom firmware - then they are not the right ones for the job? Use someone else instead. If you want to make your product in China to save money - use PCBWay? As opposed to JLCPCB, they actually have customer support staff and engineers that speak English and will ask you engineering questions if something looks off about your design. At JLC they'll "just do stuff" that may or may not be right, but without asking you.

Is there a bootloader code or hex file for MKL02Z32VFG4 or this is not public?

No and that's for good reasons. Paul has been cloned in China before and he does not want that to happen again.

I've made several designs using T4.1 and the bootloader chip. Feel free to use my T4.1 Kicad design as a starting point, but use a proper PCB factory that can take preprogrammed chips. Every serious PCB factory can do this. It's very standard.
 
If that is true, then you should use another vendor. I have no idea why everyone promotes JLC PCB. I only have bad experience with them myself. If they cannot place parts with custom firmware - then they are not the right ones for the job? Use someone else instead. If you want to make your product in China to save money - use PCBWay? As opposed to JLCPCB, they actually have customer support staff and engineers that speak English and will ask you engineering questions if something looks off about your design. At JLC they'll "just do stuff" that may or may not be right, but without asking you.



No and that's for good reasons. Paul has been cloned in China before and he does not want that to happen again.

I've made several designs using T4.1 and the bootloader chip. Feel free to use my T4.1 Kicad design as a starting point, but use a proper PCB factory that can take preprogrammed chips. Every serious PCB factory can do this. It's very standard.

I'll just add that we've had good results making our own T3.2 and T3.6 custom designs and other boards with assembly at PCBWay. They have done a good job finding my errors, and were quite patient going back and forth as I solve them. To save on assembly cost for samples we typically have them do the SMD and we add the through hole parts, like connectors. My only real complaint is solderability wasn't always great, so now we use ENIG for surface finish. They purchase components from a larger list if suppliers than JLCPCB, and as jensa mentioned you can send pre-programmed or whatever parts to them.
Be aware that parts that are pre-programmed may have exceeded humidity exposure limits and will need to be baked. See the MSL (Moisture Sensitivity Level) in the datasheet. Specify any special handling with your assembly instructions. I usually make some slides showing "do not stuff" refdes, orientations and whatever special assembly handling is required. They are very accommodating in my experience.
 
I'll just add that we've had good results making our own T3.2 and T3.6 custom designs and other boards with assembly at PCBWay. They have done a good job finding my errors, and were quite patient going back and forth as I solve them. To save on assembly cost for samples we typically have them do the SMD and we add the through hole parts, like connectors. My only real complaint is solderability wasn't always great, so now we use ENIG for surface finish. They purchase components from a larger list if suppliers than JLCPCB, and as jensa mentioned you can send pre-programmed or whatever parts to them.
Be aware that parts that are pre-programmed may have exceeded humidity exposure limits and will need to be baked. See the MSL (Moisture Sensitivity Level) in the datasheet. Specify any special handling with your assembly instructions. I usually make some slides showing "do not stuff" refdes, orientations and whatever special assembly handling is required. They are very accommodating in my experience.

Did you mean RayMing Pcb Assembly?
 
HASL finish can be problematic for the bootloader chip (and all QFN packaged parts), due to lack of flatness on the surface.

Often it's the cheapest option and works pretty well for other types of parts. But it should usually be avoided if any QFN chips like the bootloader are used.
 
I've had thousands of boards assembled from the factory on HASL lead free finish PCBs using the QFN bootloader chips without any issues. For the problematic boards (~0.5-1%), the issue is usually the soldering of the LQFP MK20DX chip where some pins are not properly soldered to the pads. But then again, I've still got a bunch of boards which can't be detected via USB so I'll dig into whether its an issue with the bootloader soldering.

Might be off topic but.. what's the preferable finish to use for best solderability? I've tried HASL lead free and immersion gold(ENIG) but I can't stay for sure that immersion gold made it any easier to solder. I've moved to ENIG for newer designs but don't really have enough data points yet.

I get my boards all assembled but now and then the factory makes some mistakes. For example, they missed out soldering these pads. These are immersion gold but I'm having a hard time getting the solder to stick whether using a soldering iron or hot air gun + solder paste.
photo_2023-01-06_13-43-13.jpg
 
Just added power to my custom teensy and it doesn't work. If anyone has any troubleshooting ideas for me it could be a big help!

Info
Using a slightly modified version of Jensa's Teensy 4.1 Example. (Thanks Jensa!!)
The bootloader LED blinks once every 35 seconds
I supplied usb power, waited a few seconds and hit the program button.
I hooked up to my computer and nothing at all was recognized.
By probing pin 13 I can randomly turn the teensy LED on and off and it measures 2.4v
I measure:
1.16v at L1
5.5V at TP1 (jensa's test point 1)
3.3V at TP2, TP3
2.66v at TP4
1.05v at TP5
2.53v at TP6
3.3v at bootloader pin3

3.3v at D18 sometimes

I don't know how to measure the weak pullup on bootloader pin 10.
Tried holding down program button for 15 seconds and nothing happened.

Reference image of test points is attached.
testpoints.PNG

Thanks!
 
Solved. I had the program button wired such that it was permanently switched "on". [facepalm]. Works now! thanks again to PJRC and Jensa!
 
Hi everybody,

Currently working on a custom 4.1 board that is using the RT1062CVL5B due to difficulties acquiring the RT1062DVJ6B. I understand that this model is not at all tested with the bootloader, but it is my naïve assumption that most things should work generally the same.

Following the posted 4.1 schematic, my board manages to power on successfully and I'm seeing 1.15V on VDD_SOC_IN. From this point on, the bootloader has been giving the three-blinks error and I've been struggling to diagnose what is going on with the SPI communication to the W25Q64JVSSIM flash memory chip. The CS line pulls down and I can see the SCK line just about to start, but then CS pulls high and starts to oscillate at about 1MHz with SCK following its inverse. Additionally, SCK maxes out at around 2V during "communication" even if I deadbug a pull-up onto it.

Here's a scope trace from such operation, with CH1 (yellow) being CS (SD_B1_06) and CH2 (cyan) being SCK (SD_B1_07):
20230320_143651.jpg

I've labeled all flash memory signals in my board routing in the following image.
Picture2.jpg

Again I acknowledge this board is a mountain of bad mistakes (Using the CV model, 10mm package assembly woes, etc.). But I have some sort of hope for it! It boots up and JTAG between the processor and bootloader seems to be working alright. It seems that getting the flash memory to work is the last step until I can get proper USB diagnostics, Windows/Teensyduino is not recognizing it just yet.
 
recommendation for board finish with QFN?

HASL finish can be problematic for the bootloader chip (and all QFN packaged parts), due to lack of flatness on the surface.

Often it's the cheapest option and works pretty well for other types of parts. But it should usually be avoided if any QFN chips like the bootloader are used.

Paul, what is your recommendation for board finish with QFN?
 
Not quite sure what I'm looking at with this PCB layout. Is it via-in-pad? How many layers? I can't see how pin 7 (D3) on the flash chip connects.
 
Oops apologies, I drew on yellow lines in power point in an attempt to make it more legible and decreased the legibility as a result. Here's the actual layout. The route for that specific pin goes right underneath the flash chip's silkscreen outline.
Picture4.jpg
This is an 6-layer board with one dedicated ground plane and power plane. Two internal layers are used for orthogonal trace routing, and all layer have a GND plane fill.
board_layout.JPG
It is via-in-pad. I do have my concerns about continuity on the BGA because of that, but it's soldered well enough to get good voltages from the internal DCDC so enough is going right I believe.
 
Does anyone know where to source the IMXRT1062DVJ6B? Is there an alternative to the IMXRT1062DVJ6B? Seems they are out of stock pretty much everywhere.
 
Arrow has IMXRT1062DVN6B and MIMXRT1062DVL6B. They aren't what you want but are the only thing I've seen in stock that can work for Teensy.
 
Back
Top