Embedded systems developers rely on a variety of tools: debug adapters, power supplies, multimeters, oscilloscopes, logic analyzers, spectrum analyzers, and more.
Much of the equipment we use lives in our offices or labs, since it's too bulky to move around. But for engineers who travel frequently, it's quite helpful to have a portable toolkit. You never know when you'll be stuck in an emergency debugging situation, and having familiar tools on hand is a blessing.
If you're an engineer who travels frequently, or if you're just simply looking for useful tools, I hope you can find inspiration from my kit.
My Portable Embedded Toolkit
I've slowly built my portable embedded toolkit over the past ten years, and I've managed to pack a lot of debugging power into a small load. My kit is always on hand when I'm visiting a client, and its travelled with me to multiple manufacturing builds in China.
My kit consists of the following:
- Digital multimeter
- Aardvark I2C/SPI Host Adapter
- Saleae Logic Analyzer
- TIAO USB Multi-Protocol Adapter
- USB Hub
- A grab bag of wires and clamps
- Spare jumpers
Most of the kit packs down into a first-edition Saleae Logic 8 case, which was made with a much sturdier shell. I carry the DMM and Aardvark adapter separately in my bag.
Let's take a deeper look at each piece of my kit and the roles they serve.
Digital multimeters (DMMs) are an essential tool for anyone working with electronics. I regularly need to measure voltage/current/resistance/capacitance and check continuity between signals.
My portable DMM of choice is the Mastech MS8288, which costs around 30 USD. I purchased my multimeter ten years ago and have yet to find a single cause for complaint.
For low-power tasks, the Mastech MS8288 performs admirably and produces accurate measurements. Once voltages and currents start to rise, you’ll notice inaccuracy (I've seen 3% error while measuring a 48V power supply). With that in mind, this isn't a DMM you'd use for tuning your power settings. For tasks which require precise measurements, you'll need to turn to a higher-precision DMM.
When selecting your own multimeter, make sure it has the following features:
Continuity check with audible beep
Selectable measurement range
Aardvark I2C/SPI Host Adapter
The Aardvark I2C/SPI Host Adapter is the newest addition to my toolkit. The Aardvark has been tremendously helpful in tracking down I2C/SPI problems and validating I2C/SPI interfaces. The adapter can operate as both a master and slave, and you can script sequences of commands to send to the device.
Total Phase also supplies libraries that you can use to interact with the adapter programatically. I’ve written I2C and SPI drivers for the Aardvark adapter, which enables me to write device drivers from the comfort of my host machine. Once the drivers are working, I can quickly port them to the target platform.
Saleae Logic Analyzer
When I first started my career, logic analyzers were giant pieces of equipment which lived permanently in the lab. You would spend hours carefully getting set up and configuring the device, and you were chained to the analyzer until you were finished.
When Saleae released their amazingly compact USB logic analyzer, I immediately jumped on board. The Saleae Logic 8 is my favorite tool in my kit. Saleae’s logic analyzer software supports a variety of trigger conditions and data resolutions, and it can also decode a common communication protocols such as JTAG, SPI, I2C, CAN, and UART.
I think that eight channels is the sweet spot for a portable analyzer. I’ve rarely needed to monitor more than eight channels at once, and in those rare cases I can usually work through signal groups in stages. I also find that I regularly use more than four channels, especially when I need to analyze both control signals and a bus (e.g. SPI).
TIAO USB Multi-Protocol Adapter
The TIAO USB Multi-Protocol Adapter (TUMPA) has been another invaluable tool in my kit.
TUMPA is built around FTDI’s FT2232H chip. Between OpenOCD and FTDI libraries, you can use the TUMPA as an adapter for SWD, JTAG, SPI, I2C, UART, and digital I/O. The board also sports on-board voltage translation, which can be enabled/disabled through software or with a jumper.
TUMPA allows me to use a single debug adapter across most of my projects. If you work on a variety of projects, having a single debugging adapter can drastically simplify your development environment.
My laptop doesn't have enough ports to support all of my debugging devices, so I’m always carrying around a small USB hub.
I use Sabrent’s 4-port USB Hub without an external power supply, which I love for its small size and toggle buttons. If you’re working with high-current devices, I recommend purchasing the 4-port hub with a 5V power adapter.
You can use any USB hub you like, but I highly recommend picking one with toggle buttons. Being able to selectively enable and disable ports has been helpful when working with embedded devices. I frequently find myself cutting power to a USB device, using the buttons to reset devices, and to force USB disconnect/connect conditions.
All of these debug tools need to be hooked up to the target system, so I keep a mixed bag of wires and clips in my kit. I have a mix of male-male, female-male, and female-female jumper wires to handle any manner of connector. I also keep a few pieces of scrap wire for emergency soldering needs.
The clips you see come with the Saleae logic analyzers, but they are just generally useful for clipping pins and boards. You can find all manner of useful clips by searching for “test probe hook clip”.
Because I keep finding myself in situations where I don’t have enough jumpers, I decided to keep a little baggie of 2.54mm standard jumpers in my kit. These come in handy when you lose a jumper, or your local EE can’t seem to find enough for that new dev board.
What’s in your kit?
I’d love to hear from my readers about the tools you frequently carry around. Leave me a note in the comments!