The NXP Freedom boards are very popular. Many of them are inexpensive (less than $20), include a debug interface and can be easily extended with extra shields or boards. Especially the FRDM-KL25Z is very popular: I’m getting told because of Processor Expert and tutorials available on web sites like this one ;-).
Unfortunately there are no small or breadboard friendly Kinetis boards available. There is the NXP LPC800-DIP but with no onboard debugger and without Processor Expert support. We have the tinyK20, but projects tend to use more CPU power, FLASH and RAM space than what the tinyK20 board (50 MHz, 128 KByte FLASH, 16 KByte RAM) can provide. So we ended up designing the big brother of the first tinyK20: the tinyK22 with 120 MHz, 512 KByte of FLASH and 128 KByte of RAM.
While the Freedom boards are great, they are not ideal for wearable, bread boarding, small projects or where low power/battery operation is required. What we need is a small board with an onboard debug interface and a capable processor, similar to the STM32 Nucleo-32 boards which are both small and inexpensive. Plus the board needs to be used used with industry standard Eclipse and JTAG/SWD tools (sorry, no Arduino!).
Instead making our own boards, we considered buying the excellent Teensy 3.5 boards. The problem with the Teensy boards is that you cannot debug it with a normal SWD/JTAG debugger, and it uses a proprietary loader. While the Teensy can be hacked (see “ Search Modifying the Teensy 3.5 and 3.6 for ARM SWD Debugging“), it means higher costs plus an external debug probe is needed. What we want is a user friendly, industrial grade and open source tool chain and not yet another Arduino environment.
Similar to the tinyK20, the board is breadboard friendly. As a plus the board can be directly soldered on a base board using the outside PCB solder rings. Below is the first ‘hand hand-produced’ prototype board:
On the board there is a NXP K22FN512 (same device as on the FRDM-K22F). The K22FN512 (120 MHz ARM Cortex-M4F) has more FLASH (512KB) and RAM (128 KB) than the K20DX128 (50 MHz) on the tinyK20 (128 KByte FLASH and 16 KByte RAM). But main decision factor for the K22F was that it is supported by Processor Expert.
The board includes the Kinetis K20 which is loaded with the DAPLink bootloader and CMSIS-DAP debug firmware: that way no external debug interface is needed. The K20 DAPLink device can be disconnected if needed. For first programming of the K20 and K22, the board includes PCB top layer contact points:
That way no expensive connectors are needed, and the holes in the PCB are used to align the probe and fix it from the bottom side with an adapter if needed. The picture below shows the needle adapter with the backside fixing part. Other variants of such adapter can be found e.g. on http://www.tag-connect.com
As the tinyK20 (see “Data Logger with tinyK20 Board“) the board has the option to add a micro-SD card socket on the PCB bottom side. If the SD card is power-hungry, an extra 3.3V regulator can be added as the K22 can only provide about 100 mA with it internal regulator.
The first prototype is working fine, and we are going to make a small test batch in the coming weeks, followed by a larger volume one probably early next year. Target costs for around 200 boards is around or less than $20.
Below images from the second run with a few fixes applied: boards produced in China without gold plating:
If there is enough interest and demand, we could consider to make the design/board available outside of the university: what do you think?
Happy Breadboarding 🙂
PS: Thanks to Christian Di Battista for this great design!