Hi all,
I'm making a custom board and want to protect the firmware. The process is explained well for boards made by PJRC, but in my case I'm buying the core parts from PJRC and putting them on my own boards. I asked PJRC the following:
So just so I'm sure that I understand this correctly - any MKL02 (from PJRC) can enable this on any iMXRT1060 (from anywhere)? It's the Teensy 4 Security Tool that enables this using firmware in the MKL02 chip?
Paul then replied:
1: Only specific iMXRT1060 chips are supported, as documented on the web page. For example, "1064" parts definitely do not work. Parts with an extra "X" in the part number also will not work. Only specific flash memory chips are supported. Pay attention to "M" vs "Q" in the part number!
2: Yes, a MKL02 chip from PJRC pairs with a brand new IMXRT1062 chip as sold by NXP through distributors. Once paired, that MKL02 only works with that specific IMXRT1062.
3: Custom boards begin the same as Lockable Teensy. Details are thoroughly documented on the code security page. If you haven't already, I would highly recommend you buy at least one Lockable Teensy so you can experience the process of locking before you design a custom PCB. Try using it with Arduino IDE on another PC that doesn't have your key.pem file. Also try copying only the .hex or .ehex file and open it with Teensy Loader on another PC. This stuff is all documented, but there's really no substitute for experiencing it first hand.
Posting his reply here as Paul suggested, so others can find the answer via search. My core takeaway is that for any Teensy from PJRC, these fuses are pre-programmed. On a custom board and a blank MIMXRT1062DVJ6B, you are free to set the fuses as you like. When you set them to be locked (Tools > Teensy 4 Security), they're permanent.
I'm making a custom board and want to protect the firmware. The process is explained well for boards made by PJRC, but in my case I'm buying the core parts from PJRC and putting them on my own boards. I asked PJRC the following:
So just so I'm sure that I understand this correctly - any MKL02 (from PJRC) can enable this on any iMXRT1060 (from anywhere)? It's the Teensy 4 Security Tool that enables this using firmware in the MKL02 chip?
Paul then replied:
1: Only specific iMXRT1060 chips are supported, as documented on the web page. For example, "1064" parts definitely do not work. Parts with an extra "X" in the part number also will not work. Only specific flash memory chips are supported. Pay attention to "M" vs "Q" in the part number!
2: Yes, a MKL02 chip from PJRC pairs with a brand new IMXRT1062 chip as sold by NXP through distributors. Once paired, that MKL02 only works with that specific IMXRT1062.
3: Custom boards begin the same as Lockable Teensy. Details are thoroughly documented on the code security page. If you haven't already, I would highly recommend you buy at least one Lockable Teensy so you can experience the process of locking before you design a custom PCB. Try using it with Arduino IDE on another PC that doesn't have your key.pem file. Also try copying only the .hex or .ehex file and open it with Teensy Loader on another PC. This stuff is all documented, but there's really no substitute for experiencing it first hand.
Posting his reply here as Paul suggested, so others can find the answer via search. My core takeaway is that for any Teensy from PJRC, these fuses are pre-programmed. On a custom board and a blank MIMXRT1062DVJ6B, you are free to set the fuses as you like. When you set them to be locked (Tools > Teensy 4 Security), they're permanent.