almost independent grbl driver for node

Usage no npm install needed!

<script type="module">
  import gerbilCnc from '';



almost independent grbl driver for node

docs | repo| npm

I wouldn't use this right now because the API is going to be super duper unstable for the next few weeks at least.

Basic Usage

Install via npm npm i gerbil-cnc, probably won't work with older nodes cause I tend to use a lot of ES6 type stuff.

import gerbilCnc from 'gerbil-cnc'

let gerbil = gerbilCnc('/dev/ttyACM0')

gerbil.machineReady.then(() => gerbil.writeLine('$I')).then(console.log)
> [VER:1.1h.20190724:]


gerbil-cnc aims to be a fully featured, batteries-included driver for Grbl. Once instantiated most of the magic happens in the cmds namespace, which provides a high level promise-based api for directly calling many of Grbl's functions; and stream streaming interface using the Grbl character counting protocol.

Once instantiated gerbil-cnc will provide all relevant functions and endpoints regardless of the status of the physical hardware. They will simply throw errors if you attempt to use them. gerbil-cnc will also attempt to reconnect every second by default if the serial link drops. Configurable using the autoReconnect property in options.

The functions directly in the instantiated gerbil namespace are mostly for internal use but are exported anyway for when you just need to get something done and want to pay the price later.

Notably we have writeRaw and onEveryLine which are essentially thin shims over serialport.write() and serialport.on('data', ...). You can use these to do whatever the fuck you want, but beware that the higher level api assumes you're not simultaneously using writeRaw and if you do it might cause wonky things to happen.

I only test against Grbl 1.1h but most things should be compatible with older versions, and the lower level API will probably work with things that aren't Grbl at all since it's just a thin wrapper over serialport