Zscript ("zed-script", and formerly Zcode) is a simple text-based command/response system, designed to make it easy to control microcontrollers (MCUs) over various communications protocols, eg ethernet, serial ports or I2C. It is loosely inspired by G-code, the control language used by many automated machine tools.
Pre-alpha! We're still putting it together.
Instructions are here: Where-to-get-Zscript
-
Simple syntax - requests and responses are designed to be reasonably straightforward to use and understand, for both human- and computer-generated commands.
# Set pin 4 to HIGH, and receive Status response OK to confirm sent> Z42 P4 V1 recv> !S
-
Client libraries, in Java (and Python, to come) - generated from declarative modules.
-
Small, efficient and configurable - you can remove features and modules so you don't pay for what you don't use.
-
Device addressing - Zscript commands can be tunnelled from one device to another over serial, I2C etc.
-
Portable - implemented on ARMs and Arduinos, with PICs to come soon.
-
Interactive - simple REPL (read-eval-print-loop) supported.
Zscript makes it really easy to try out your hardware, and then control it from another computer. This helps with:
-
Interactive experimentation and prototyping:
- you can try out talking over buses or reading/setting pins while you get everything right.
-
Service-based approach:
- define custom operations as commands in user-defined modules, and treat them as hardware services invoked by a command system. It's RPC for hardware.
-
Testing:
- you can capture command sequences as scripted tests, and run them for conformance / regression testing.