Skip to content

susanw1/zscript

Repository files navigation

ZscriptLogo-1

Java Build Codecov CodeFactor Javadoc License: MIT


What Is It?

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.

Project Status

Pre-alpha! We're still putting it together.

Where do I get it?

Instructions are here: Where-to-get-Zscript

What's so special?
  • 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
    
  • Modular and extensible

  • 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.

Purpose

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.

Links:

About

Command interface processor for embedded devices

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published