tinyK20 Open Source ARM Debug/Universal Board – First Prototypes

After the proof of concept phase (see “Proof of Concept: Open Source ARM SWD Debug and General Purpose Board“), the first prototypes are ready:

Two K20 Boards

Two tinyK20 Boards

I had the first prototypes of the board we have produced internally in my hands:

K20 Board Blocks

tinyK20 Board Blocks

A different USB connector can be populated on the backside of the board, so it can directly be plugged into a USB port. Additionally the board can be placed into a small USB thumb drive case that way (I don’t have one for a picture now, but we use them for a different project).

K20 Board Back Side

tinyK20 Board Back Side

Here it is one tinyK20 debugging the FRDM-KL25Z board:

Debugging the FRDM-KL25Z Board

Debugging the FRDM-KL25Z Board

One tinyK20 debugging another tinyK20:

TinyK20 debugging another TinyK20

tinyK20 debugging another tinyK20

Not the first time it happens to me :-(: things always look better on the layout 😉

SWD Connector

SWD Connector

Fort the next iteration, a few changes are under consideration:

  • Must have: The reset button needs to move away from the target MCU SWD connector.
  • Optional: Changing orientation of the ‘plugin’ version: if I plug-in the board into a notebook, the board components are not visible.
  • Optional: Potentially move the target MCU connector so it does not block the pin rows.
  • Optional: Using a smaller clock (Murata Electronics CSTCE8M00G55-R0). The latest FRDM boards are using this one too (FRDM-K64F, FRDM-K22F) for the K20, so it seems this one is accurate enough for USB operations. That would save space.
  • Optional: make the capacitors around the K20 clock DNP (Do Not Populate) to reduce part number.

Let me know what you think, Do you have other ideas? Or anyone has a better name than ‘tinyK20’?

Happy Debugging 🙂


37 thoughts on “tinyK20 Open Source ARM Debug/Universal Board – First Prototypes

  1. Hello Eric,

    Great work. How about making it a Key-Chain
    debugger, that way you can take it with you or
    even a key-chain USB debugger.

    Are you going to make it available to the public?


  2. Nice project. I always try to use a 3D visualizer part of the design software, I don’t know if you have that in the software you use. It helps tell if components are too close together. I use Proteus and sometimes I have to make my own 3D models in Sketchup and export them, then import them for visualization when I have new components that are not available in the library.


  3. Eric

    Is it possibe to add an a uSD card footprint on the bottom (below the reset switch) – this would allow adding SD cards without needing an extrension board.

    Also the KL27 may be an interesting alternative to the K20 – it is cheaper and you could save the rather large crystal).

    I always found that the Teensy missed a user button (as well as a reset button) so I would consider both a reset and user botton. The user botton is interesting when a boot loader has been programmed using the SWD (and maybe the debug extension brocken off) because it then allows for a simple method to force the loader mode again.
    [There is a bigger KL27 HW here as reference: http://www.coffeebrain.org/blog/distribucion-de-pines-capuccino-kl27/%5D

    Finally – are all USB host sockets oriented the same way so that the user LED is facing down? If it is not random (I believe not since USB cables have a sign on them showing ‘up’) how they are oriented it would be better to have the LED visible when the stick is inserted directly into a host socket.




    • Hi Mark,
      thanks for all your ideas and suggestions:
      – SD card: I considered that, but there are different footprints/sockets, and we wanted the bottom of the board without any parts populated. As for adding an SD card or anything else, the design is that you could add your own breadboard board to the top or bottom.
      – We intentionally kept the K20DX128 to be compatible with the FRDM OpenSDA design. Yes, it is not the most powerful/best processor, but it keeps changes to the FRDM board at a minimum.
      – User button: the reset button can be re-assigned as a user button (well, then you do not have reset). For resetting a bootloader you still could shortcut any of the pins on the breadboard side with a paperclip/etc as needed. The problem with adding another button is the space available on the board.
      – USB sockets: yes, I want to have the populated parts on the top side. We are looking into ways how to accomplish that in the next revision.



      • Hi Mark,
        progress on the SD card item: we finally are going to add an SD card footprint for a micro SD card socket on the back of the PCB. As we are using the K20 3.3V internal regulator, that 3.3V is limited to about 100 mA max. If using a low power SD card which only needs say 10-20 mA for writing, that should be fine. However, we have seen SD cards which need >200 mA (yikes!). For such cards, we will add the footprint for a linear voltage regulator (5V->3.3V) too.


  4. Hi Erich, another great project !!! Some curiosities, how did you build the PCB ? How did you deal with the vias connections ? As I can see on the images they are not soldered. Thanks.


  5. This first prototype look very nice ! But is it possible to power the board only by SWD ? Less cable is less problem problem (especially on Mac note book, just two USB port ! ).

    Did you weld all component with oven ?


  6. Hey great to see. Be interested to order one when its available for a debugger interface and telling a few friends about it. Are you planning for one of the connectors to Micro-A to allow USB-otg – though that implies separate power supply?
    Is there going to be 32Khz xtal on it for RTC support – though of course that suggests the need to be able to use it on a separate battery Vcc


    • No dedicated USB-OTG planned for now. OTG to me is rarely used these day. We tought about adding a jumper or configuration for USB host support, but not sure if this would be worthwile too. Would need a 5V supply/pin/jumper. And if using the same approach as on the FRDM boards, then the supply would be unprotected. USB host sounds nice, but I think it is not worthwile the complexity and required space on the board?


  7. Pingback: tinyK20 USB Thumb Drive Enclosure | MCU on Eclipse

  8. Pingback: tinyK20: New Board with micro-SD Card | MCU on Eclipse

  9. Pingback: Production tinyK20 Boards arrived! | MCU on Eclipse

  10. Dear Erich
    Can you please explain in short the procedure for a newly purchased MK22FN1M0AVLH12 (or any other) to be programmed for the first time? Is it necessary to have a bootloader programmed first or can it be programmed directly via J-link?

    Happy new year!


    • Hi Cristian,
      no, there is no need for a bootloader.
      Make sure that
      a) reset line is pulled up to Vcc by external pull-up resistor (10K)
      b) C between reset line and GND (100nF)
      c) CPU is powered properly by 3.3V
      Then use the J-Link to connect and program the device.
      Other than that, make sure there is not a problem with NMI pin or EzPort.
      I hopet this helps,


What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.