Wavedrom on-demand

There is a really cool JavaScript library for generating electronic timing diagrams created by Aliaksei Chapyzhenka. The problem with this library however is, that it is JavaScript: It makes it easy to embed in a website, but how can you make use of these cool plots on, for example, a forum that does not have the library installed?

Now it is easy: I created a web service that can generate wavedrom plot images on-demand at the URL: http://wavedrom.craftware.info/.

One can paste Wavedrom-JSON on the website and the server will auto-generate a link that can be pasted freely anywhere across the web. For example, pasting the following script on the website:

{
signal: [
{name: 'pulse', wave: 'ppppppppp', node: ".a......."},
{name: 'signal1', wave: '0.2...30.', data: ["data", "prty"]},
{name: 'signal2', wave: '101010101', node: ".b......."}
],
edge: ["a->b sync" ]
}

Will yield the URL:

http://wavedrom.craftware.info/rest/gen_image?type=svg&scale=1.0&c=34ADcAIRdAD2cyVX4n%2ByefOiEYt63aI8IHLdqN3CoFeTFDJ4BXrWnmtctJiKAPWEq%2BirEK0qqFUrebORxuyao5tqlqvcKJoyl1xNLbexubcKlNXOaVMyHZPxC5iAd2tHG2G4L32xXvAZxoqQxN8pwYu%2FXBJse%2Bo96Mr6rpPgVDDdP%2B7QV6b9Xs6w9QAAv9TZB5cZL8QABoAHdAQAA8OfVMrHEZ%2FsC

Which in turn renders this image:

It is possible to generate PNGs or SVGs with SVGs being way more crisp, but possibly embedding SVGs is not supported everywhere. For details on the syntax of Wavedrom, visit the wiki-documentation on the original GitHub-repository. There is also a gallery with examples as well as a nice-looking editor available for Wavedrom. Note however, that only the rendering Wavedrom images with the default skin is supported at the moment!

I also published the source-code for the on-demand server on GitHub. The server is written in Python and uses PhantomJS to render the images.

Leave a Reply

Your email address will not be published. Required fields are marked *