This Teensy 3.5 board is based on the MK64FX512VMD12 which is a 120MHz device from the performance and integration K64 family with Cortex-M4 core, FPU, Ethernet and FS-USB. This K64 device has 512 program Flash and 256k SRAM and is in an 144 pin MAPBGA package, whereby the K64 is also available in 100 pin LQFP/MAPBGA or 121 pin XFBGA and its memory ranges from 512k...1M Flash with 256k SRAM. There is a 16MHz crystal on the board for clocking the part.

Full details and documentation for this board can be obtained from the PJRC web site: Teensy 3.5

To configure the µTasker project for this board simply enable the define TEENSY_3_6 in the project's config.h file. The compiler needs to be set to build for Cortex M4 (and not Cortex M0+) and the linker script K_512_256.ld should be selected [K_512_256_BM.ld for downloadable version] {the linker script extension may vary for different compilers, whereby *.ld is valid for GCC}

Teensy 3.5 Arduino/Teensyduino users can use their projects together with the µTasker serial loader by following these instructions: "Using the uTasker Serial Loader with Teensy 3.1 Arduino/Teensyduino applications"


Here are some binary/srec/hex files that can be loaded to the board. These were built using the µTasker applications (serial loader and V1.4 application) and can be simply generated using the supported compilers/IDEs [these were built using GCC], built using different configuration options or modified to suit specific requirements or hardware derived from this board :

  • uTaskerSerialBoot_Teensy3-5_SREC_KBOOT_HID_MSD.hex KBOOT compatible USB-HID loader with composite USB-MSD loading as well as SREC loading on UART 2 [18.3k] allowing applications to be loaded at link address 0x8080 (using Freescale's KBOOT USB connection, UART2 SREC at 115'200 Baud or USB-MSD when the board appears as upload hard disk). When operating, the red LED blinks at 5Hz. To force the loader reset the board with header pin 22 [A8] connected to GND. To disable the watchdog reset the board with pin 23 [A9] connected to GND. This can be loaded using the Teensy Loader Application (HalfKay boot loader) as described on the PJRC web site. Note that the loader limits application sizes to 70k - it can be built without limits using the µTasker project.
  • uTaskerV1.4.12_BM_Teensy3-5_8080.bin Teensy 3.5 application with command-line menu on the virtual COM connection (115'200 Baud) with various menu items, including the ability to switch to USB-UART-2 bridge mode with end-to-end flow control. Low power modes can be set in the application menu. The USB device is a composite USB-CDC and HID-keyboard device and the keyboard operation can be tested using the inputs pin 21 [A7] (acting as the key 't') and pin 20 [A6] (acting as the SHIFT key). Drivers that can be used for this device are available below. The processor runs at 180MHz [34.3k].
    Linked to 0x8080, this binary image can be loaded with drag-and-drop onto the upload disk that appears when the serial loader is operating or using the KBOOT loader's USB connection. When the application is running the orange LED blinks at 2.5Hz.
  • uTaskerV1.4.12_BM_Teensy3-5_8080.srec The same Teensy 3.5 application in SREC format that can be loaded via UART2 with the SREC serial loader function [98.8k].
  • uTaskerV1.4.12_Teensy3-5.hex The same Teensy 3.5 application as stand-alone software that can be loaded using the Teensy Loader Application [96.7k].

  • uTaskerFreescaleHID_VirtualCOM.inf USB composite keyboard/CDC installation file for 32-bit windows.
  • uTaskerFreescaleHID_VirtualCOM_64bit.inf USB composite keyboard/CDC installation file for 64-bit windows. See the following for a guide to installing unsigned drivers on Windows 8.1

TEENSY 3.5 USB-MSD Device using internal Flash

This application shows the TEENSY 3.5 as a USB-MSD device with a FAT in 166k of its internal Flash. The flash drive can be formatted by a PC host when connected via USB and is seen as a 166k disk. Usually it will format it as FAT12 which gives a usable space of 146k due to the FAT12 overhead.

The application is configured with USB_INTERFACE to enable USB and USE_USB_MSD to enable the USB-MSD operation. The define FLASH_FAT is used instead of SDCARD_SUPPORT to specify that internal flash is used (the SD-card could be used in parallel with the SDCARD_SUPPORT define) and the following defines to control the location and size of the Flash area dedicated to the FAT:
#define INTERNAL_FLASH_FAT_SIZE (166 * 1024) // size of the flash area used as disk
#define FAT_FLASH_MANAGEMENT_ADDRESS (90 * 1024) // physical address where the used flash starts

A variation of this application includes a command line menu on the USB interface as composite CDC and MSD device, whereby there are three USB-CDC interfaces according to the following application ("USB-CDC with 3 UARTs").

The command line menu shell on the virtual COM connection allows the file system to also be used in the "Disk Interface" menu (this is a DOS like interface but with various extra tools for analysing visible, deleted and hidden files. The interface additionally allows formatting for FAT16 or FAT32, as well as FAT12, if desired.

The application is configured with addition of the USB-CDC setting as described in the following application ("USB-CDC with 3 UARTs").

USB-CDC with 3 UARTs

The following µTasker V1.4 application configures for a 3 USB-CDC interface composite device by enabling USB-CDC and setting the define for USB_CDC_COUNT to 3, the maximum number of available UARTs in the K20 on the TEENSY3.5. The first interface (0) is connected to the command line shell (as is UART0 TX1 on pin 1/RX1 on pin 0) but can be commanded to a USB-UART0 bridge in the USB menu. The other 2 USB-CDC interfaces perform dedicated USB-UART bridges as follows:
CDC Interface 1 - UART 1 (TX2 on pin 10/RX2 on pin 9)
CDC Interface 2 - UART 2 (TX3 on pin 8/RX3 on pin 7)
Low power modes can be set in the application menu and wakeup from the low-leakage power mode (LLS) is achieved by a falling edge on pin 11 (LLWU_P10), which temporarily allows the processor to run and respond with a message before automatically returning to the low-leakage power mode. A falling edge on pin 6 (LLWU_P10) can be used to wake the processor back to its fully operational state. More details of this operation can be found in Low-Leakage Wakeup (LLWU) Support

100/10M Ethernet using the Microchip ENC424J600

The following µTasker V1.4 application configures for an Ethernet connection with internal TCP/IP stack via SPI to the Microchip ENC424J600. Including FTP, TELNET, SNTP, SMTP, NetBIOS, DHCP client, SNMPv1/v2 and web servers; SD card support has been enabled as well as a composite USB-CDC and USB-MSD.

The SD card can be inserted into the Teensy's Micro SD Card Adaptor and the SPI based Ethernet controller connected using the following connections SPI0_SCK, SPI0_SOUT and SPI0_SIN are the same as the SD card connections:

  • SPI0_SCK = PTC5 (Teensy pin 13 LED)
  • SPI0_SIN = PTC7 (Teensy pin 12)
  • SPI0_SOUT = PTC6 (Teensy pin 11)
  • SPI0_CS = PTC4 (Teensy pin 10)
  • Interrupt line = PTC3 (Teensy pin 9)

When connected to the PC host via USB a command line menu is available on the virual COM port and the SD card apears as an external hard drive. The default IP address of the Ethernet connection is but this can be modified and saved via the command line menu (in LAN sub-menu) on the virtual COM port if required - the new settings are valid after a reset.

The command line menu is also available on a TELNET connection and the SD card content can be viewed and manipulated in the utFAT Disk Interface sub-menu. The SD card can aso be read and copied to via the USB-MSD connection or via an FTP connection to the board's IP address. Below is a set of web pages that can be loaded to the SD card (they should be put into a directory called "web" and then they will be served when the board is contacted by a web browser.

In case there is no SD card inserted, the web server and FTP will fall back to a small internal file system in internal Flash. The same set of web pages can be copied via FTP to internal Flash using the Batch file in the web page package.

On the SMTP web page it is possible to enter an email configuration and command the Teensy 3.5 to send emails to the address entered on the start side.

The Teensy 3.5 will periodically attempt to connect to an SNTP server in the Internet to synchronise its local time, which can be viewed on the Administrator web page or in the command line menu. It is not necessary to have a 32kHz oscillator connected on the board since the configuration performs a software based Gregorian RTC and will also maintain the time across software resets.

  • uTaskerV1.4.12_BM_TEENSY3-5_WEB_MSD_CDC.bin Version for loading with the USB-MSD or web server boot loader (see next section) [106k]
  • uTaskerV1.4.12_TEENSY3-5_WEB_MSD_CDC.hex Stand-alone version that can be loaded using the Teensy Loader Application [300k hex]

  • The Web server will first look for a start page on the SD card called "index.htm" in a director called "web". If the SD card is not inserted, or the directory/file not exist it will fall back to using files from the µFileSystem in internal Flash. The following set of internal web pages can be loaded to the board by executing the file "Copy_all.bat". This will open an FTP connection to the board (edit the IP address in the file if a different IP address is used) and automatically copy the list of files in "ftp.txt". Alternatively the copy can be performed manually with an FTP client. After loading, the web server will work with these files rather than showing a 404 error when there is no content.

    The following USB drivers can be used with this device
  • uTaskerFreescaleMultiVirtualCOMx1.inf USB CDC installation file for 32-bit windows (usable for 1 USB-CDC composite interface plus USB-MSD).
  • uTaskerFreescaleMultiVirtualCOMx1_64bit.inf USB CDC installation file for 64-bit windows (usable for 1 USB-CDC composite interface plus USB-MSD). See the following for a guide to installing unsigned drivers on Windows 8.1

  • Web Server Boot Loader

    Using the ENC424J600 Ethernet Controller connected to the Teensy 3.5 via SPI (see previous section for details) the Web Server Boot Loader functionality is added in this binary. See the µTasker Serial Loader User's Guide for full details.

    This loader version includes USB-MSD and USB-HID (KBOOT compatible) loading via USB, KBOOT compatible UART and Web Server loading.

  • uTaskerV1.4.12_BM_TEENSY3-5_WEB_MSD_CDC.bin This can be loaded using the Teensy Loader Application (HalfKay boot loader) as described on the PJRC web site. Note that the loader limits application sizes to 110k - it can be built without limits using the µTasker project [82.8k hex / 30.4k binary]

  • Return to the Kinetis landing page

    µTasker Kinetis Teensy 3.5 support. Copyright (c) 2004..2018 M.J.Butcher Consulting