Getting Started with Zedmon

To get started with Zedmon you will need to do 3 steps:

  1. Connect the wiring
  2. Build and upload the firmware to Zedmon
  3. Build the command line utiliy

1. Wiring

  • Connect a “Micro-USB B to USB cable” between the device and the monitoring host.
  • Intercept the power of the target device and split it, connect the power source to the IN pins, and the target device to the OUT pins, s.t. all power is going through the Zedmon.

Image of Zedmon

2. Building and Uploading the Firmware

This step needs to be done only once per Zedmon device.


Make sure that you have an arm-none-eabi gcc toolchain and dfu-util installed.

To install the arm-none-eabi gcc toolchain, download the latest version from this link, extract and add the path to bin into your $PATH.

To install dfu-util:

sudo apt-get install dfu-util


git clone --recurse-submodules
cd zedmon/firmware

The builds output will end up in ./build-zedmon.


To upload the firmware to zedmon, the device needs to be in DFU mode. To enter DFU mode:

  1. Hold down the boot0 button.
  2. Press and release the reset button.
  3. Release the boot0 button.

Once the device is in DFU mode, you can upload the firmware with dfu-util:

dfu-util -a 0 -s 0x08000000:leave -D  build-zedmon/lk.bin -d 0483:df11

3. zedmon Command Line Utility

Installing Dependencies

On Debian-based systems, the following command will install packages required to build the command line utility:

sudo apt-get install golang libusb-1.0-0-dev

Fetching Source

The zedmon utility is written in Go. Because it is hosted on, it can not simply be fetched with go get. Instead you'll need to check it out manually:

mkdir -p zedmonutil/src/
cd zedmonutil
export GOPATH=`pwd`
cd src/
git clone
go get
go install

The output executable will be in ./bin/zedmon.

Getting started wit the zedmon utility

To record a zedmon trace, run:

./bin/zedmon record

which will start a recording and it will record a power sample every 630 ╬╝sec. Send ^C to stop. The ouput will be stored in zedmon.csv

The output is of the following format:


Sample output:


For the full list of the commands run: