Txtzyme Plugin

The Txtzyme plugin extends the available markup in federated wiki to include generalized instrument control of devices attached to wiki servers.

As is the convention for plugins, the markup uses upper-case words to have special meaning. Most of our words are about events. See Plugin Lifecycle


Some events are invoked automatically, typically by the clock, or other events present in the federated wiki client-side environment. This example is from the stimulus and acquisition in Txtzyme Oscilloscope.


This markup says to invoke PULSE then SAMPLE every second. The SECOND event comes from the browser's real-time clock.

PULSE 4d 1o 150u 0oi SAMPLE 50{11sp 100u}

This markup says how to PULSE and SAMPLE by specifying the single-character instructions to be executed by the AVR microcontroller.

To PLUSE select pin 4 of port d, output 1, wait 150 microseconds, output 0, then return the pin to high impedance input.

To SAMPLE repeat 50 times, sample ADC channel 11, print the result, wait 100 microseconds, then resume the loop.


We envision this work as representative of a new paradigm of open science and engineering. The approach has much to offer.

It offers intrinsic sharing of work in progress, especially methods, as captured in instrument specific markup.

It offers low-latency between the device, its control computer, and the client-side ad-hoc development environment.

It offers separation of concerns through multiple levels of simple, event-oriented, interpreters.

We've demonstrated these features in screencasts and conference videos. See New Works

We've applied to demonstrate our work at the 2014 O'Reilly open-source conference in Portland, Oregon. See OSCON H/W Demo