We last wrote about Teensy boards in 2016 for the launch of Teensy 3.5 & 3.6 boards powered by NXP Kinetis K64/K66 Arm Cortex-M4 microcontroller, and a longer form factor.
Paul Stoffregen has now upped the ante with Teensy 4.0 featuring a much more powerful NXP i.MX RT1062 Cortex-M7 cross-over processor clocked at 600 MHz, and going back to the original, and more compact, form factor of earlier Teensy boards such as Teensy 3.2.
Teensy 4.0 hardware specifications:
- SoC – NXP i.MX RT1062 Arm Cortex-M7 processor at 600 MHz with 1024KB RAM (512KB is tightly coupled),
- Storage – 2048KB serial flash (64KB reserved for recovery & EEPROM emulation)
- USB – 1x micro USB port for power and programming
- Expansion via through-holes and pads
- USB – 2x USB ports, both 480 MBit/sec
- Storage – 1x SDIO (4 bit) native SD
- Audio – 2x I2S Digital Audio, 1x S/PDIF Digital Audio
- Serial – 7x Serial, all with 4 byte FIFO; 3x CAN Bus (1x with CAN FD)
- 31x PWM pins
- 40x digital pins, all interrupt capable
- 14x analog pins, 2x ADCs on chip
- 3x SPI, all with 16 word FIFO; 3x I2C, all with 4 byte FIFO
- Security – Cryptographic Acceleration; Random Number Generator
- Misc – RTC for date/time, 32x general-purpose DMA channels, Programmable FlexIO, Pixel Processing Pipeline, Peripheral cross triggering, Power On/Off management
- Power Supply – 5V via micro USB port
- Power Consumption – ~100 mA @ 600 MHz
- Dimensions – 3.6 x 1.8 cm
The board is programmable with the Arduino IDE using Teensuino add-on, although currently, you’ll need to use the beta version until v1.47 is released.
The forum post linked also have more details, including several benchmarks, pinout list, and more. Talking about benchmarks, Teensy 4.0 is really much more powerful, as shown by CoreMark results tested with this Arduino sketch.
You should also see significant performance improvement for some operations that use floating-point, as NXP i.MX RT1062’a Arm Cortex-M7 FPU is more advanced and supports 64-bit hardware-floating point, and not only 32-bit like in the Kinetis MCU found in Teensy 3.6. The results below speak for themselves (double = 64-bit (double precision); float = 32-bit (single precision)):
1 2 3 4 5 6 7 8 9 |
Linpack 100x100 mflops double float T4@600mhz 71.4 166.3 gcc -O3 M7@600mhz 66.97 125.5 ARM CC -O3 T3.6@256mhz 2.85 41.1 Fastest T3.6@180mhz 2.13 28.4 Faster T3.2@120mhz 0.65 1.0 Faster no FPU adaM4F@120mhz 1.4 20.1 SAMD51 STM32L4@80mhz 0.88 15.4 dragonfly -O2 |
Price is also a nice surprise. Teensy 3.6 was introduced for $28 via a Kickstarter campaign, but Teensy 4.0 was launched for just $19.95, and quickly ran out of stock. It may take a few weeks before it becomes available again. You’ll find more details and pre-order link on the product page.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Who wrote this article? Clearly not someone of technical experience or writing experience. Check your work. For example, paragraph 2 has an incomplete sentence. “Clocked at .” AT WHAT????
“1024K RAM” is that Kbits or Kbytes?
The latter.
It’s kilobytes – https://www.nxp.com/part/MIMXRT1062CVL5A
Interesting that the power consumption is ~100ma. That’s not much better than the single core A7 I’ve been messing with and it has 64MB of DDR2, ethernet etc going. *edit* And the rock pi s is apparently around ~100ma too.
Just curious…what A7 chip are you messing with ? 100ma sounds decent !
>Just curious…what A7 chip are you messing with ? 100ma sounds decent !
MStar MSC313E. Board on my desk is 110ma idling. It maxes out at ~140ma when running dhrystone. This is with a lot of clocks that aren’t needed not-gated so potentially it could be a lot better. With all of the analogue bits for the ethernet turned off I think it was around ~90ma idle.
I understand it’s 100mA under load at 600 MHz though. Cortex-A7 systems may idle at 60-100mA, but under load they’ll consume more. Tom Cubie said Rock Pi S (Cortex-A35) idles at under 50mA
>I understand it’s 100mA under load at 600 MHz though.
Does the teensy scale the clock at all? Otherwise idle is going to be pretty similar to loaded.
>Cortex-A7 systems may idle at 60-100mA, but under load they’ll consume more.
Seeing 140ma at 1ghz here. ~100ma when “idle” (cpufreq switching up and down because of a heartbeat triggered LED). The same board is ~90ma at idle with the ethernet phy’s analogue parts disabled (there’s an LDO and some other junk..). Turning off the DDR makes it even lower but then you are stuck to 64K of SRAM and 16MB of memory mapped SPI nor.
>Tom Cubie said Rock Pi S (Cortex-A35) idles at under 50mA
If true that’s really good. Even better if the 9ma sleep he said can be woken up without massive delays so it can be sleeping most of the time. The RK3308 has different power domains for each of the cores so it should be possible to totally power down all but one of the cores and get right down there. The RK3308G with embedded memory is very interesting too but it looks impossible to get and BGA isn’t much fun.
> Does the teensy scale the clock at all?
Based on the info on Teensy product page, yes.
They did not provide power consumption numbers at idle, or other power modes though.
> The RK3308G with embedded memory
I missed that one. 64MB built-in RAM nice!
> The RK3308G with embedded memory
>I missed that one. 64MB built-in RAM nice!
Very nice but the only source I can find for it want $10 each. I can get a Cortex A7 in QFN with 64MB DDR embedded for $2.8.
> They did not provide power consumption numbers at idle, or other power modes though.
Full consumption analysis for the i.MX RT1060 EVK: https://www.nxp.com/docs/en/application-note/AN12245.pdf
Perfect. You’ve got to love NXP (Freescale) documentation 🙂
> Perfect. You’ve got to love NXP (Freescale) documentation.
Aye. Unsurpassed to this day.
The only big advantage seems to be when running at 24mhz. Running an a7 from SRAM at that frequency might not be that different.
The 64-bit FPU is a nice feature as tensorflow is mostly using 64-bit floats under the hood.
Generally, it’s a great mcu and for the price it’s a killer.
What is the maximum sampling rate of the ADC? I can only see it’s 12 bit ADC in the datasheet.