Teensy by PJRC is a series of tiny [[Single Board Computers]] with microcontrollers and a vast array of on-board capabilities coupled with a large set of [[3. Reference/Software/Programming Languages/C|C]] libraries to exercise them. - [Website](https://www.pjrc.com/teensy/) - [Software Libraries](https://www.pjrc.com/teensy/td_libs.html) - [Documentation](https://www.pjrc.com/teensy/pinout.html) # Notability ## Faux ISA The Teensy is tagged as an [[ISA]] because the Teensy platform can often serve the purposes of a microcontroller, but better and with less effort. # Variants Depending on the variant, different instruction sets are supported. Typically [[ARM Thumb]] or Atmel [[AVR]]. ## Overview | Variant | MCU | Core | Extensions | RAM | PWR | | ---- | ---- | ---- | ---- | ---- | ---- | | 4.1 | Cortex-M7 | [[ARMv7]]E-M | [[Thumb]]/Thumb2,<br>Float | 1024K | 3.3v | | 4 | Cortex-M7 | [[ARMv7]]E-M | [[Thumb]]/Thumb2,<br>Float | 1024K | 3.3v | | 3.6 | Cortex-M4F | [[ARMv7]]E-M | [[Thumb]]/Thumb2,<br>Float | | 3.3v | | 3.5 | Cortex-M4F | [[ARMv7]]E-M | [[Thumb]]/Thumb2,<br>Float | | 3.3v | | 3.2 | Cortex-M4 | [[ARMv7]]E-M | [[Thumb]]/Thumb2 | | 3.3v | | LC | Cortex-M0+ | [[ARMv6]]-M | *partial*<br>[[Thumb]]/Thumb2 | | 3.3v | | 2++ | AVR | | | | 5v | | 2 | AVR | | | | 5v | Due to changes in the supply chain, no Teensy boards prior to the 4.x variants are recommended for new projects. > We do not believe supply of chips for Teensy 3.x is likely to ever fully recover. > Teensy++ 2.0 is discontinued. PJRC has no plans to manufacture more Teensy++ 2.0 boards. ## 4.1 & 4.0 |Feature|Teensy 4.1|Teensy 4.0| |---|---|---| |Ethernet|10 / 100 Mbit <br>[DP83825 PHY](http://www.ti.com/product/DP83825I) <br>(6 pins)|-none-| |USB Host|5 Pins with <br>power management|2 SMT Pads| |SDIO (4 bit data)|Micro SD Socket|8 SMT Pads| |PWM Pins|35|31| |Analog Inputs|18|14| |Serial Ports|8|7| |Flash Memory|8 Mbyte|2 Mbyte| |QSPI Memory|2 chips + <br>Program Memory|Program memory| |Breadboard I/O|42|24| |Bottom SMT Pads|7|16| |SD Card Signals|6|0| |Total I/O Pins|55|40| ### 4.1 - https://www.pjrc.com/store/teensy41.html ### 4.0 - https://www.pjrc.com/store/teensy40.html # OS Support It is extremely common to program the Teensy directly for its particular purpose directly on bare metal. Generally, the Teensy's hardware is underutilized (or at least inefficiently utilized) by this strategy. There are many capabilities that an operating system could expose and help manage in a dynamic realtime environment. ## Zephyr [Zephyr](https://docs.zephyrproject.org/latest/introduction/index.html) is not exclusive to the Teensy and is able to run on everything from x86 to RISC-V and more. It [requires](https://docs.zephyrproject.org/latest/boards/arm/teensy4/doc/index.html) a 32 or 64 bit architecture like that found in the Teensy 4.x line. ## TMK [[TMK]] was built primarily with Teensy boards in mind, for use as human input devices (keyboards etc). - https://github.com/tmk/tmk_keyboard/wiki/Compatible-Microcontrollers ## QMK [[QMK]] also supports this architecture, as a legacy from TMK. - ## Others - https://github.com/tsandmann/freertos-teensy - https://www.chibios.org/dokuwiki/doku.php - https://forum.pjrc.com/threads/57850-ChibiOS-RT-RTOS-for-Teensy-4-0 - https://github.com/RetiredWizard/PyDOS # Use Cases ## Music Many Eurorack modular and outboard music devices use Teensy boards or derivatives. ## Emulation The 4.x series of Teensies are powerful enough to emulate entire retro computers and their software in real time including the [[6502]], [[Z80]] and many more. Beyond even traditional "retro computing", it can emulate the x86 architecture and still play [3D DOS games](https://forum.pjrc.com/threads/57623-A-Teensy-4-0-demo-Playing-the-old-Stunt-Island-DOS-game-Real-time-3D) from the early 90s - at the minimum - as well as various arcade systems and beyond. - https://github.com/Jean-MarcHarvengt/MCUME - https://github.com/Jean-MarcHarvengt/teensyMAME # Dev Tools - develop Teensy using [[Rust]]: https://github.com/mciantyre/teensy4-rs