# Tools

This folder contain several helpful tools that will ease our USB development process. Some are small enough to be included here, some you will need to download by yourself.

## USB Tree View 

It is the enhanced version of Microsoft USBView and is a very handy windows application from http://www.uwe-sieber.de for viewing usb devices and their descriptors.

![usb_tree_view.png](http://docs.tinyusb.org/images/usb_tree_view.png)

## Tera Term

For most demo, UART is the default/prefer way to interact with user, thus I would recommend a decent terminal such as [Tera Term](http://en.sourceforge.jp/projects/ttssh2/). Especially host demo requires a [ANSI escape](http://en.wikipedia.org/wiki/ANSI_escape_code) supported terminal to demonstrate properly.