Integrate Teensy 4.1 design on custom PCB

Hi,

Because of an ongoing project of ours, I would like to ask what it takes to integrate a MIMXRT1062CVL5B on our own PCB, it is a slightly different version than the one on Teensy 4.1. Differences are Temperature range industrial C and 500 Mhz processor.

Due to support by e.g. Arduino and Zephyr I would like to stay close to the current design, because of compatibility.

  • Does this need a different bootloader? (remark on the page of the bootloader (compatibility with IMXRT1062DV*6B or IMXRT1062DV*6A))
  • Can the application code stay the same? Backward compatibility with the current teensy 4.1
  • Are there other considerations to keep into account?

Any insight is welcome.

Thanks
Bob
 
Nobody really knows. So far, at least as far as I know, nobody has built such a board and confirmed whether it works.

NXP documents only a single JTAG ID on page 188 of the reference manual. So odds seem likely the bootloader chip won't be able to tell the difference between the different temperature spec parts. I can confirm the chip clocks at only 396 MHz when the bootloader is in control, not 600 MHz, so you should be fine with the 528 MHz limit of that part. Of course, while working with code, be careful to set Tools > CPU Speed to 528 MHz or less. It will default to 600 MHz.

Truth is, I've never used the wide temperature parts. All I know is the info I've read. Sure looks like they're (probably) the exact same silicon, which NXP (maybe) tests different, and of course the one difference that doesn't take any guesswork is their price.

Really the only way to find out would be to build a couple boards and see if they work. PJRC does not have any of the other temperature specs parts, so with the long lead times, seems unlikely I'll manage to test it.
 
Are you planning to use that chip only because it is currently in stock, or do you need the higher temp range?

I have had luck ordering samples of MIMXRT1062DVJ6B from NXP's website even though they are out of stock for purchase.
 
Thank you very much for the reply @PaulStoffregen.

@aaronlevan both, we do need the temp range and indeed the shortage does not help either.
 
Nobody really knows. So far, at least as far as I know, nobody has built such a board and confirmed whether it works.

NXP documents only a single JTAG ID on page 188 of the reference manual. So odds seem likely the bootloader chip won't be able to tell the difference between the different temperature spec parts. I can confirm the chip clocks at only 396 MHz when the bootloader is in control, not 600 MHz, so you should be fine with the 528 MHz limit of that part. Of course, while working with code, be careful to set Tools > CPU Speed to 528 MHz or less. It will default to 600 MHz.

Truth is, I've never used the wide temperature parts. All I know is the info I've read. Sure looks like they're (probably) the exact same silicon, which NXP (maybe) tests different, and of course the one difference that doesn't take any guesswork is their price.

Really the only way to find out would be to build a couple boards and see if they work. PJRC does not have any of the other temperature specs parts, so with the long lead times, seems unlikely I'll manage to test it.

We can confirm that RT1062 industrial version also works, with Teensy and MKL02 chip.

We have used:
MIMXRT1062CVL5B


T-U63W141906A-06-3.jpg

Also we have tried with:
MIMXRT1062DVL6B works also fine.

Both chips have smaller package size than the chip on the Teensy.

We have overheated above 100 degree, and changed the core code:
https://github.com/PaulStoffregen/c...f4c556b2927458c8a554dda/teensy4/tempmon.c#L10

Worked ok. But for a long run we do not have an experience yet.
 
We can confirm that RT1062 industrial version also works, with Teensy and MKL02 chip.

We have used:
MIMXRT1062CVL5B
...
Also we have tried with:
MIMXRT1062DVL6B works also fine.

Both chips have smaller package size than the chip on the Teensy.
...

Very cool they got tested to work. Not cheap - but perhaps available.

Those are smaller 10x10 size like on the T_4.0 instead of the 12x12 on the T_4.1?
 
Very cool they got tested to work. Not cheap - but perhaps available.

Those are smaller 10x10 size like on the T_4.0 instead of the 12x12 on the T_4.1?

Yes:
LFBGA196, plastic, low profile fine-pitch ball grid array; 196 balls; 0.65 mm pitch; 10 mm x 10 mm x 1.3 mm body.

Oh I did not know that the 4.0 had the same package size.
 
Yes:
LFBGA196, plastic, low profile fine-pitch ball grid array; 196 balls; 0.65 mm pitch; 10 mm x 10 mm x 1.3 mm body.

Oh I did not know that the 4.0 had the same package size.

Yes, T_4.0 came out with 10x10 and Pin# silkscreen easy large type fit to the MCU. T_4.1's went 12x12 for extra I/O pins and those to on board PHY to MagJack and QSPI needed larger bga pitch to run the wires on Teensy PCB with more normal build/drill - and the Pin# labels are twisted and smaller.
 
Yes, T_4.0 came out with 10x10 and Pin# silkscreen easy large type fit to the MCU. T_4.1's went 12x12 for extra I/O pins and those to on board PHY to MagJack and QSPI needed larger bga pitch to run the wires on Teensy PCB with more normal build/drill - and the Pin# labels are twisted and smaller.

Thanks for the info.
 
Congratulations on getting a good build with that chip not seen tested yet. Good to know the bootloader chip can work with them and offer the extended temp range, or when needed fill in for the 600 MHz MCU with speed drop for others to build.

Thanks for the info.

Just IIRC PJRC notes as they passed by.
 
Thanks for confirming your experience with these chips. Several people have asked about these wide temperature chips over the last couple years. Testing them has been on my low priority to-do list, but the higher priority list seems to never get any shorter. Really glad to hear they worked for you.

I've edited the T4 bootloader chip page to replace "have not been tested" with "Success with some of these chips has been reported on the forum" which links to your message. Hopefully this can help everyone in the future wishing to use these chips to find this conversation.
 
@ted - Could I talk you into running this little program on both of those chips and share the results here?

Code:
void setup() {
  Serial.begin(9600);
  while (!Serial) ; // wait for Arduino Serial Monitor
  Serial.printf("CPU ID:   %08X\n", SCB_CPUID);
  Serial.printf("Fuse %X: %08X\n", (int)&HW_OCOTP_CFG2 & 0xFFF, HW_OCOTP_CFG2);
  Serial.printf("Fuse %X: %08X\n", (int)&HW_OCOTP_CFG3 & 0xFFF, HW_OCOTP_CFG3);
}

void loop() {
}
 
Hello Paul,

Yes, of course.


MIMXRT1062CVL5B
CPU ID: 411FC271
Fuse 430: 50010063
Fuse 440: 00410002

MIMXRT1062DVL6B (this is commercial, and as turned out this is used in the teensy 4.0, we thought both teensy 4.1 and teensy 4.0 uses the same package)
CPU ID: 411FC271
Fuse 430: 50010000
Fuse 440: 00420002

Hope it helps.

Other question:
We would like use "Code Security & Lockable Teensy" on the industrial version: MIMXRT1062CVL5B.

Do you think we can do it safely with the current code? or needed to update?

Thanks.
 
I now have a working MIMXRT1062DVJ6B based custom board that I'm getting ready to share. :D Details to come soon.
 
I now have a working MIMXRT1062DVJ6B based custom board that I'm getting ready to share. :D Details to come soon.

If you share the PCB design here or on a site like github, please ping me if I've missed it. Would love to add a link from the T4 bootloader page.
 
We can confirm that RT1062 industrial version also works, with Teensy and MKL02 chip.

We have used:
MIMXRT1062CVL5B


View attachment 31186

Also we have tried with:
MIMXRT1062DVL6B works also fine.

Both chips have smaller package size than the chip on the Teensy.

We have overheated above 100 degree, and changed the core code:
https://github.com/PaulStoffregen/c...f4c556b2927458c8a554dda/teensy4/tempmon.c#L10

Worked ok. But for a long run we do not have an experience yet.

Hello! We've integrated the teensy circuitry to one of our boards. I'm not really an expert to firmware things and programming so I don't have any idea regarding the flashing of the device.
I did my research and it says I can use JTAG or SWD. I only saw JTAG pins in datasheet so I assumed those are the pins I needed to do the flashing.
However, there is also a section for bootloaders, now I'm confused.

Can you help advise which of the pins should I use for the flashing of the MCU? Also, can I just convert the previously .ino code to .hex to burn on the device?

Thanks in advance!
 
Hello! We've integrated the teensy circuitry to one of our boards. I'm not really an expert to firmware things and programming so I don't have any idea regarding the flashing of the device.
I did my research and it says I can use JTAG or SWD. I only saw JTAG pins in datasheet so I assumed those are the pins I needed to do the flashing.
However, there is also a section for bootloaders, now I'm confused.

Can you help advise which of the pins should I use for the flashing of the MCU? Also, can I just convert the previously .ino code to .hex to burn on the device?

Thanks in advance!

Hello,

We do not use any JTAG or SWD. We just use USB cable to program it as a standard teensy 4.1 board (Arduino and teensy loader).
You might need to press the program button at first time to start the firmware update.
 
Hello,

We do not use any JTAG or SWD. We just use USB cable to program it as a standard teensy 4.1 board (Arduino and teensy loader).
You might need to press the program button at first time to start the firmware update.

Hello Ted,

Thanks for the prompt reply! Did you not re-create the PCB using CVL5B to develop your own teensy?
The only connections I have from the USB port are supply pins and OTG1 +/- . I don't know if this is enough to program the fresh MCU.

I tried doing the flashing using arduino but it doesn't recognize the device at all because it was not yet configured, I think...
 
Hello Ted,

Thanks for the prompt reply! Did you not re-create the PCB using CVL5B to develop your own teensy?
The only connections I have from the USB port are supply pins and OTG1 +/- . I don't know if this is enough to program the fresh MCU.

I tried doing the flashing using arduino but it doesn't recognize the device at all because it was not yet configured, I think...

USB_OTG1_DP and USB_OTG1_DN should working I think.
Screenshot 2023-09-05 at 15.20.44.jpg
 
We modified the schematic and just took out the connections we need. Do you think this can be a reason why it is not working?

Maybe something you removed really was needed?

Or perhaps your design is perfect, but the soldering or other physical construction has a problem?

Please understand we can't see your hardware or schematic, and we have almost no information other than a screenshot of an error you would get if nothing was connected you PC. The best anyone can do is blind guesswork. But there isn't even much info to try guessing.
 
Back
Top