We show how federating wiki enables a new paradigm for instrument control, data collection, interpretation and open publication. Txtzyme provides a model for programmable instrumentation with client and server-side plugins supporting it.
Teensy USB Development Board website
See 22 Things Txtzyme Websocket Plugins for a screencast of this demo.
See OSCON H/W Demo for the event invitation and my proposal that followed.
We use the Teensy 2.0 and Teensy 2.0++ USB Development Boards available from PJRC. webpage
The Teensy uses an 8-bit Atmel AVR with on-chip USB support. This is superior to Arduino because the serial communication over USB is intrinsically flow-controlled.
Txtzyme is a small interpreter written in C++ building on example code distributed by PJRC. webpage
The interpreter's instruction dispatching consists of a single switch statement decoding 30 one-letter commands in 100 lines of code. github
Txtzyme exposes resources of the microcontroller without committing the flash memory to any specific application. The Txtzyme v command reports what version of AVR is executing the interpreter. See Txtzyme Plugin
Piezoelectric speaker response as captured on a digital sampling oscilloscope.
The federated wiki server delivers json formatted wiki pages and accepts incremental edits from the sole owner of the site. See JSON Schema
The Txtzyme server-side plugin waits for websocket connects from any number of clients then provides a duplex stream relay between microcontroller and web browser. github
The federated wiki single-web-page application fetches json formatted wiki pages as cross-origin resources (CORS). Each paragraph specifies the type of markup used by that paragraph. See About Txtzyme Plugin
The markup distinguishes upper-case words to be evaluated by the client and the remaining text to be forwarded through the server to the hardware's Txtzyme interpreter.
The first word on a line identifies an event. The remaining words and characters describe how to handle that event. For example, FOO signals the event FOO, while FOO/43 signals FOO with the parameter 43.
David Turnbull shows radio prototype at DorkbotPDX, May 2012.
Hardware instrumentation and control applications are as diverse as wiki itself. We take special interest where collaborative and/or social development can bring unique value to an endeavor.
At OSCON we will be showing Teensy/Txtzyme as a stand-in for real-time, low-latency, programmable control of hardware resources. See More Txtzyme Examples
Devices gain much of their value from the software that defines them. See Software Defined Radio
Small, inexpensive or remote applications benefit from the simplicity of serving json. See Wikiduino
Communities working with large datasets or specialized research codes can benefit from the share-as-we-go wiki methodology. See Wiki Research Laboratory
This work was founded to provide open-data addressing the information needs of a sustainable supply chain and with full recognition of the cross-purposes that often confound such sharing. See The Science of Sustainable Supply Chains
We bring wiki and data together. We show a complete path from instrumentation to visualization. But more importantly, we show how this can support a loose federation of interests not easily supported by any other web technology. See Chorus of Voices