This Freedom board is based on the KL46Z256VLL4 which is a 48MHz device from the ultra-low-power KL family with Cortex-M0+ core. This KL46 device has 256k Flash and 32k SRAM and is in a 100 pin LQFP package, whereby the KL46 is also available in 64 LQFP or MAPBGA and 121 pin BGA (with the same memory). There is an 8MHz crystal on the board for clocking the part.

Full details and documentation for this board can be obtained from the NXP web site: FRDM-KL46Z

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

FRDM-KL46Z Binaries

Here are some binary 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_FRDM-KL46Z_KBOOT_UART_KBOOT_HID_USBMSD.bin KBOOT compatible UART loader or KBOOT compatible HID or USB-MSD [16.5k] allowing applications to be loaded at link address 0x8080. When operating, the green LED blinks at 5Hz. To force the loader reset the board with SW1 held down. To disable the watchdog reset the board with SW3 held down. This can be loaded using the FRDM-KL46Z's USB-MSD boot loader. Note that the loader limits application sizes to 70k - it can be built without limits using the µTasker project. When USB is connected "USb" is displayed in the segment display on the board ("b" flashes in the segment display to signal boot loader mode).
  • uTaskerV1.4.8_BM_FRDM_KL46Z_8080.bin KL46 application with command-line menu on the virtual COM connection and accelerometer operation (activate output in I2C menu). Low power modes can be set in the application menu and the processor runs at 48MHz [26.5k]. Linked to 0x8080, it can be loaded using the KBOOT PC tool (UART or USB) or by drag-and-drop on the upload disk that appears. When the application is running the green LED blinks at 2.5Hz. The application displays the time in the segment display on the board.
  • uTaskerV1.4.8_FRDM_KL46Z.bin The same KL46 application as stand-alone software that can be loaded using the FRDM-KL46's USB-MSD OpenSDA boot loader [27.5k].

FRDM-KL46Z nRF24L01+

This application shows the FRDM-KL46Z using the Nordic Semiconductor 2.4GHz wireless transceiver nRF24L01+ as either master (primary Tx) or slave to another device. It initialises the transceiver on channel 15 at 1Mb/s with auto-ack enabled. Then messages are sent out once every 5s so that they can be received by other devices on the channel with the same configuration and echoed responses are displayed on the UART (OpenSDA virtual COM). As slave it will display receptions on its UART output and echoes modified data back to the master.

Use together with another FRDM-KL46Z as master/slave pair or any other of the Kinetis boards with a binary available for this configuration.

To build for this configuration the nRF24L01P+ interface is enabled by the define nRF24L01_INTERFACE in config.h.

Wiring Details:
nRF24L01P_CS - PORTA_BIT14 - J2-9
nRF24L01P_DOUT - PORTA_BIT17 - J2-15
nRF24L01P_SCLK - PORTA_BIT15 - J2-11
nRF24L01P_DIN - PORTA_BIT16 - J2-13
nRF24L01P_IRQ - PORTA_BIT6 - J2-7

The default mode is master (primary Tx). To set slave mode connect the input PTB19 (J1-3) to GND at reset.

FRDM-KL46Z USB-MSD Device using internal Flash (with composite HID mouse and keyboard)

This application shows the FRDM-KL46Z as a USB-MSD device with a FAT in 128k of its internal Flash. The flash drive can be formatted by a PC host when connected via USB and is seen as a 128k disk. Usually it will format it as FAT12 which gives a usable space of 108k 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 (128 * 1024) // size of the flash area used as disk
#define FAT_FLASH_MANAGEMENT_ADDRESS (128 * 1024) // physical address where the used flash starts

As well as the USB-MSD operation the flash disk can also be accessed via the command line menu (on OpenSDA virtual COM connection) and offers a DOS like interface (utFAT disk interface) with additional commands to analye directories and files, including viewing deleted files and an undelete function in case the file is still not damaged.

The USB composite device includes a keyboard interface as described in µTasker USB Device Configuration and keyboard testing plus a mouse interace which can be easily tested by pressing the two buttons on the FRDM-KL46Z: SW3 moves the mouse to the left and SW1 moves it to the right. These interfaces were added using the defines USE_USB_HID_MOUSE and USE_USB_HID_KEYBOARD which automatically add the composite HID operation to the USB-MSD class.


This application shows the FRDM-KL46Z as a USB-CDC device whereby, once the VCOM interface has been connected, hitting the enter key moves the command line menu from the UART to this.

The command line interface includes a USB menu where a USB-CDC to UART bridge can be commanded or a software upload of new firmware can be performed. For more details about the operation simply follow the USB Demo document.

This USB-CDC interface can be added to any µTasker project by enabling the USB device interface with USB_INTERFACE, selecting USB-CDC with USE_USB_CDC and the quantity of USB-CDC interfaces required with USB_CDC_COUNT; this reference has this set to just 1 but the KL46 can support up to 6, or USB-CDC interfaces can easily be mixed (composite) with various other types as discussed at ┬ÁTasker USB Device Configuration and Keyboard Testing.

Note that the USB-CDC device requires a driver and the following can be used:

FRDM-KL46Z USB-CDC and Accelerometer Mouse - plus AES256

This application shows the FRDM-KL46Z as a USB-CDC composite device with a mouse movement based on input from the on-board accelerometer. SW1 on the FRDM-KL46Z acts as the mouse left button.

The application is configured with USB_INTERFACE to enable USB and USE_USB_CDC to enable the USB-CDC operation. The define USE_USB_HID_MOUSE adds the HID mouse class, whereby the I2C peripheral to the accelerometer is enabled with I2C_INTERFACE and the accelerometer interaction is then enabled by TEST_MMA8451Q in the I2C test file i2c_tests.h.

In the "Advanced commands" menu on the USB-CDC interface, or UART via OpenSDA, AES128, AES192 and AES256 operation (based on mbedTLS library) can be tested.

Return to the Kinetis landing page

µTasker Kinetis support. Copyright (c) 2004..2017 M.J.Butcher Consulting