Diagrams · WaveDrom macro
Timing diagrams that change when the spec changes
With the WaveDrom macro your signal timing - the part of a hardware or protocol spec that a picture explains and prose cannot - is drawn from a short JSON description. The diagram sits in the specification itself and changes when the specification does, so you never nudge rectangles in a graphics tool again.
You edit text instead of nudging rectangles
Drawing waveforms by hand in a graphics tool is slow and gets slower every time the timing changes. Here a clock, a few signals and their transitions are a handful of lines - and adding a wait state means editing text rather than moving rectangles.
Your readers zoom to the handshake being discussed
Long traces are unreadable when squeezed to page width, so the diagram pans and zooms: an overview of the whole transaction, then a close look at the handshake under discussion. It is vector, so it stays sharp however far in a reader goes.
The next engineer inherits your reasoning, not just the picture
JSON5 is accepted as well as strict JSON, so the description carries comments and trailing commas - room to explain why a signal waits three cycles, right next to the line that makes it wait. The next engineer inherits the reasoning along with the diagram.
You take the waveform out of the page when you need to
Export the waveform as a PNG for a datasheet or a slide, or download the JSON to
reuse. Write it in the macro, point it at a versioned file, or drop a fenced
wavedrom block into a Markdown document and have it render where you
wrote it.
What the Kroki bundles do with your unreleased spec
No app on the Marketplace is dedicated to WaveDrom. The only other way to get a waveform onto a Confluence page is a general Kroki bundle, which sends the description to kroki.io and puts the returned image on the page - a picture drawn on somebody else's server. This macro runs WaveDrom in the reader's browser: your trace stays interactive and sharp, the JSON5 stays commentable, and an unreleased protocol spec is never sent to a third-party renderer to be drawn.
WaveDrom is one of 31 macros in Macro Pack
One app to install, one licence to renew, one place your team learns - and 30 more formats it already reads, from spreadsheets and diagrams to API specs and documents.
See every macro in the pack