Skip to main content
.NETFramework4.8net8.0net9.0net10.0.NETStandard2.0

Core motion-control abstractions and helpers for linear and peristaltic pumps, gantries, etc.

Published
Aug 6, 2025
1y ago
Total Downloads
2.0K
2,009

Install

dotnet add package MotionControlBase --version 1.3.0
ProductVersions
.NET
net10.0net8.0net9.0
.NET Standard
netstandard2.0
Other
.NETFramework4.8

README

MotionControlBase

MotionControlBase is a .NET library providing core abstractions and helpers for motion control devices—such as linear actuators, gantries, peristaltic pumps, and syringe pumps.


Features

  • Interfaces for:

    • Linear movement (ILinearMovement, HGantry implementations)
    • Pump control (IPump, ISyringe)
    • Peristaltic pump (PeristalticPump)
    • Motor abstraction (IMotor, IStoppableMotor)
  • Unit conversion helpers (mm ↔ motor steps, µL ↔ steps)

  • Stop‑channel support with configurable modes

  • Motion profiling: acceleration, speed, deceleration, trapezoidal/triangular profiles

  • Cross‑platform: usable in .NET 8, .NET 9, .NET 10, .NET Framework 4.8, and .NET Standard 2.0


Installation

Install via NuGet:

dotnet add package MotionControlBase

Or via the Package Manager Console:

Install-Package MotionControlBase

Quick Start

using Essy.LinearMovements;
using Essy.Motor;

// 1. Create your motor (IMotor or IStoppableMotor)
IStoppableMotor motor = new MyStepperMotor();

// 2. Instantiate a LinearMovement (e.g. gantry or slide)
var gantry = new HGantry(motorA: motor, motorB: motor, distancePerRotation: 5.0);

gantry.Powered = true;
gantry.SetPosition(0, 0);

gantry.MoveToPosition(x: 10, y: 20, acceleration: 50, speed: 100, deceleration: 50);

Console.WriteLine($"Current position: ({gantry.XPos:F2}, {gantry.YPos:F2}) mm");
using Essy.Pump;
using Essy.PeristalticPump;

IMotor pumpMotor = new MyPumpMotor();
var pump = new PeristalticPump(pumpMotor, volumePerRotation: 100.0);

pump.StartAspirating(volume: 200.0, speed: 50.0);
pump.WaitForPumpActionToComplete();
Console.WriteLine("Aspirated 200 µL");

API Overview

  • Essy.Motor

    • IMotor, IStoppableMotor interfaces
    • MotorStopChannel, MotorStopChannelMode, exceptions
  • Essy.LinearMovements

    • ILinearMovement, HGantry, LinearMovement
    • LinearStopChannel
  • Essy.Pump

    • IPump, ISyringe
  • Essy.PeristalticPump

    • PeristalticPump, PeristalticPumpException
  • Essy.CrankedSyringe

    • CrankedSyringe

License

This project is licensed under the MIT License. See LICENSE for details.


Happy motion controlling!

Changes from Previous Version

v1.2.0v1.3.0
Added Frameworks
net9.0net10.0

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 5 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.