Skip to content

Releases: FredericM88/linuxcnc-sim

linuxcnc-sim v0.1.2

Choose a tag to compare

@FredericM88 FredericM88 released this 04 Oct 18:15

What's changed

This release improves LinuxCNC compatibility testing and updates the Phase 3 example to exercise a more realistic milling-machine homing configuration.

LinuxCNC compatibility

  • Detect the actual LinuxCNC HAL API used by the Stepper-Ninja build tests instead of assuming it from the LinuxCNC version or build mode.
  • Verified compatibility with LinuxCNC 2.9.10 (HAL API 0) and LinuxCNC 2.10.0-pre2 (HAL API 1).

Phase 3 machine configuration

The example machine now uses a more realistic 600 × 400 × 200 mm travel:

  • X: 0 .. 600 mm
  • Y: 0 .. 400 mm
  • Z: -200 .. 0 mm

X and Y home toward their minimum switches.

Z now homes upward toward its maximum switch, approaching it from below. The virtual physical switches are located 1 mm outside the normal soft travel.

Additional tests cover:

  • positive-direction Z max-switch triggering
  • switch hysteresis and release
  • physical switch positions
  • HOME_OFFSET consistency
  • homing directions and velocities
  • HAL input mappings

Validation

Full simulator test suite: 91/91 tests passed

The updated Phase 3 configuration was also manually tested with LinuxCNC 2.10.0-pre2.

Z successfully homes upward to the physical switch at +1 mm, then returns to G53 Z0.

A subsequent move:

G53 G0 X10 Y10 Z-5

produced exactly:

X =  4000 steps = 10.000 mm
Y =  4000 steps = 10.000 mm
Z = -2000 steps = -5.000 mm

No communication, checksum, timing, overflow, or packet-ID errors were observed.

linuxcnc-sim v0.1.1

Choose a tag to compare

@FredericM88 FredericM88 released this 03 Oct 17:14

This release adds LinuxCNC 2.10 HAL API compatibility for the pinned
Stepper-Ninja Board-0 UDP interface while retaining LinuxCNC 2.9 support.

Highlights

  • Added compatibility with the LinuxCNC 2.10 HAL API.
  • Retained LinuxCNC 2.9 compatibility and the existing 32-bit integer-pin semantics.
  • Added support for building a loadable stepgen-ninja.so against:
    • an installed LinuxCNC development environment, or
    • a configured LinuxCNC Run-In-Place (RIP) source tree.
  • Unconfigured LinuxCNC source trees can still be used for compile-only API validation.
  • Added compatibility, parity, source-preparation and build-mode regression tests.
  • No changes were made to the simulator wire protocol, motion/material implementation, or frozen material references.

LinuxCNC 2.10 validation

Runtime validation was performed with:

  • LinuxCNC 2.10.0~pre2
  • HAL API 1
  • POSIX/uspace realtime
  • pinned Stepper-Ninja Board-0 UDP profile

The compatibility module was tested end-to-end with LinuxCNC and the simulator,
including module loading, homing, machine motion, virtual probe input and
persistent material removal.

The new configured-RIP CMake build path was also tested separately by building
a fresh stepgen-ninja.so, loading that exact artifact under LinuxCNC 2.10,
homing the machine and verifying bidirectional UDP communication and exact
X/Y/Z motion.

Scope

This release does not claim validation of every LinuxCNC 2.10 build,
realtime backend or Stepper-Ninja hardware variant.

The existing upstream checksum/connected-reference issue remains known
and is not fixed in this release.

linuxcnc-sim v0.1.0

Choose a tag to compare

@FredericM88 FredericM88 released this 03 Oct 12:24

linuxcnc-sim is an early experimental standalone CNC machine simulator for
LinuxCNC. It emulates motion hardware behind LinuxCNC instead of independently
interpreting G-code. LinuxCNC remains responsible for interpretation, trajectory
planning, coordinate systems, offsets and compensation.

Highlights

  • Four simulated step axes and configurable scales through the original
    Stepper-Ninja HAL/UDP interface.
  • Virtual digital inputs, limit switches and LinuxCNC homing interaction,
    plus a configurable point/plane probe input.
  • Interactive console, motion recording and CSV export.
  • OpenGL visualization, machine-space workpiece placement and sparse voxel stock.
  • Persistent flat-end material removal with continuous sweeps and exact batching.
  • Simulator INI configuration, CLI overrides and startup configuration inspection.

Current limitations

Experimental development software; not a machine safety system.

Geometry is millimetre-based with a flat-end cutter only. There is currently no
geometric stock probing, toolsetter, spindle/holder simulation, general collision
detection, or rotary material transform.

Performance and voxel resolution are workload-dependent; this is not a hard-real-time
or CAD-exact machining guarantee.

Stepper-Ninja

Stepper-Ninja, by Zsolt Viola, provides the existing HAL driver and protocol used
as the current interface. linuxcnc-sim does not claim authorship of that code.

This choice does not require a later physical CNC machine to use Stepper-Ninja
hardware. Other adapters are possible future work.

linuxcnc-sim is MIT-licensed; the bundled Stepper-Ninja files preserve their
separate original MIT license and attribution.

See the README, configuration guide and release validation documentation for
installation, configuration and validation details.