-
Notifications
You must be signed in to change notification settings - Fork 298
Configuring Version 0.99
The configuration and settings documentation on this page is for firmware version 0.99. FV 0.99 is currently in edge-100 branch undergoing testing. We are pretty comfortable with its functionality and stability, but have a few more functions to install and test before it's promoted to the edge branch. After a soak time in edge it will be promoted to the master branch.
The version number can be found as the fv variable in the startup JSON message, or by typing $fv. Version 0.99 encompasses builds 100.00 and later.
If you have an older firmware version:
- Configuring System Groups
- Configuring Motors
- Configuring Axes
- Configuring General Purpose IO (not yet written)
- Configuring General Purpose IO (TEMPORARY LINK)
- Configuring Other Groups
- Configuring Actions and Reports
- Configuring 3D Printing Extensions
- Examples show relaxed JSON input. e.g.
{fv:n}
. Strict JSON is also accepted in all cases, e.g.{"fv":null}
- Multi-level JSON is shown in its parent/child form, e.g.
{x:{vm:...}}
. The flat forms are also supported:{xvm:...}
- CMD means some command - aka the "name" of the name/value pair. CMDs are case insensitive.
- Underscore "_" means some numeric value
- "abcd" means some string value
- Motor examples use Motor 1, but any motor active for your platform is OK
- Axis examples use X axis, but any axis is OK unless otherwise noted
- All examples are in millimeter units
A note about units
- All data entry and display occurs in the prevailing units set in the Gcode mode. Set G20 for inches, G21 for mm. Query {unit:n} or $unit to find out where you are (G20=0, G21=1)
- Units entered in one system are correctly preserved and do not need to be re-entered or adjusted if the Gcode units mode changes.
- The Gcode default units setting
{gun:_}
sets the units the system "comes up in" during power-on or reset. So changing GUN will not change your units until you reset. Note: PROGRAM END (M2, M30) does not change the units.
All configuration commands are available using JSON mode, which is the preferred access method if you are writing a UI or controller. Most commands are also available in Text Mode. The few commands that are available from only one or the other are noted, as are any commands the behave differently depending on the mode. The rough equivalence is:
JSON | Text | Description |
---|---|---|
{"cmd":null} |
$cmd |
Read value for command "CMD" in strict JSON mode |
{cmd:n} |
$cmd |
Read value in relaxed JSON mode |
{"cmd":123.4} |
$cmd=123.4 |
Set value to 123.4 in strict JSON mode |
{cmd:123.4} |
$cmd=123.4 |
Set value in relaxed JSON mode |
{xvm:50000} |
$xvm=50000 |
Set X max velocity to 50000 as an example |
You can also use JSON to read an entire object - examples for motor and axis:
{1:n} {"r":{"1":{"ma":0,"sa":1.8,"tr":36.576,"mi":8,"su":43.74453,"po":0,"pm":0,"pl":0.45}},"f":[1,0,6]} {x:n} {"r":{"x":{"am":1,"vm":40000,"fr":40000,"tn":0,"tm":420,"jm":5000,"jh":20000,"hi":1,"hd":0,"sv":3000,"lv":100,"lb":4,"zb":2}},"f":[1,0,6]}
A command in JSON mode returns a response like the one below. The {} object contains the result, which in this case is a blank JSON object because we sent a Gcode command G0 X10
and have set JSON verbosity to not report back in this case ({jv:3}
, for example):
{"r":{},"f":[1,0,7]}
The footer is an array of 3 elements:
- (1) Footer revision
- (2) Status code - Short version: status=0 is OK, everything else is an exception.
- (3) RX buffer info (explained later)
- Note: The checksum that used to be in the footer has been removed as no-one was using it.
Getting Started Pages
- Home
- What is g2core?
- Who uses g2core?
- Jerk-Controlled Motion
- Getting Started with g2core
- Connecting to g2core
- Configuring g2core
- Flashing g2core
- Troubleshooting
Reference Pages
- Gcodes
- Mcodes
- Text Mode
- JSON Communications
- GPIO Digital IO
- Alarms & Exceptions
- Power Management
- Coordinate Systems
- Status Reports
- Status Codes
- G2 Communications
- Tool Offsets and Selection
- Probing
- Feedhold, Resume, Job Kill
- Marlin Compatibility
- 9 Axis UVW Operation
- gQuintic Specs
Discussion Topics
- Roadmap
- GPIO for 1.X Releases
- Toolheads
- Raster Streaming Prototol
- g2core REST Interface
- Gcode Parsing
- G2 3DP Dialect
- Consensus Gcode
- Digital DRO
- Overview of Motion Processing
Developer Pages
- Development & Contribution
- Branching and Release - DRAFT
- Getting Started with g2core Development
- Project Structure & Motate
- Compiling G2
- OSX w/Xcode
- OSX/Linux Command Line
- Windows10 w/AtmelStudio7
- Debugging G2 on OSX
- Board and Machine Profiles
- Arduino Due Pinout
- Arduino DUE External Interfaces
- Diagnostics
- Debugging w/Motate Pins
- Development Troubleshooting
- g2core Communications
- Git Procedures
- Windows 10 / VMware 8 Issues
- Dual Endpoint USB Internals
- G2core License
- VSCode Setup
- Compatibility Axioms
- Wiki History