We have all been there. You get a new development board, you go online to check how you communicate with it and then you realize you need a new connector that costs some extra cash. And here goes on the cycle of electronic waste, because it generally only works with boards from that company, hence you can deem them, dust catchers, as they provide no other use to you. This becomes even more inconvenient when you have to work in more than one place and keep forgetting the connectors. And I did not bring up debugging, which is mandatory if you do more than a printf(“Hello World!”), and you do, so we can add a logic analyzer to the mix, it is something you should not live without. If only there was a way to condense all this clutter into a single package… Wait, there is, Tigard!
Tigard is an open-source, multi-protocol multi-voltage PCB to be used in hardware hacking. It combines a bunch of common pinouts, a labeled wiring harness, an onboard level shifting, and a connector for a logic analyzer and was specifically designed to attach and communicate with the low-speed interfaces found in hardware platforms. Tigard supports the most popular interfaces and some very useful features on a very small board. It can act as a replacement for many of your tools bought specifically for this or that board and just clutter your working space and add to your project’s expenses. It has native support for commonly used hardware tools, such as OpenOCD, FlashROM, and many more. The Tigard may be a simple device, but it enables about 80% of all the common hardware hacking tasks needed, so it can serve as a very useful starting point, or even as the only thing you need.
Regarding specifications, the Tigard has:
- USB Type-C high-speed interface (480 Mbps)
- FTDI FT2232HQ dual high-speed multipurpose UART / FIFO IC
- High-performance directional level shifters ranging from 1.8 to 5.5 V
- Switch to choose between on-board 1.8, 3.3 and 5 V and off-board target voltage supplies
- Switch to choose between SPI / JTAG and I2C / SWD modes
- Logic analyzer port to check the signals on devices
- Indicator lights for debugging purposes
Now, where can you apply this? For starters, you can plug it into a device you are trying to reverse engineer, program MCUs by using the JTAG and SWD interfaces and use the logic analyzer port (and a respective logic analyzer) to observe the interactions at the same time, for instance, with an I2C OLED display.