Mach4 motion plugin for Granite Devices drives

Today Granite Devices turns 11 years! Our team of 8 people thank all our community members for making this journey so awesome!

In the other news, we have just released the first open beta version of Mach4 Granite Devices motion control plugin. All CNC users out here, welcome to test it with your IONI, ARGON and soon to be released ATOMI drives! Grab a free Mac4 plug-in download from our Wiki.Mach4 pluginShortly put, the plug-in makes it possible to control drives straight from PC USB port. No middle-hardware or step pulse generators needed.

If you try it, drop a comment below, or at our community forum thread here.

Argon servo drive firmware 2.1 adds SinCos encoder support

The just released Argon servo drive firmware version 2.1.0 adds support for encoders with analog Sin/Cos outputs. Drive allows selecting interpolation factors of 16, 64 and 256 for such encoder. This means that an sin/cos encoder with 1000 lines per revolution, would give resolution equivalent of 256*1000 lines. In addition to this, normal quadrature decoder 4x gain applies on top of that, meaning that 1000 line encoder will yield total resolution of 1024000 counts per revolution.

The FW upgrade contains also many other improvements based on the user feedback that we have received. For full list & download, see firmware page at wiki.

Firmware Monday!

We have released new firmware files for Argon and Ioni today. Also Granity has been updated.

Argon V2.0.0 beta 4

All reported bugs have been addressed. Beta 4 is a release candidate and it will become official 2.0 if no further problems are found. Once tested, please send feedback about it (email or comment here, also please tell which control mode you are using: torque, velocity or position). Or give vote on the poll on the right sidebar. Get the firmware from here.

Ioni V1.3.0

This update includes lots of changes since the last release. For full change log and downloads, see this wiki page. Feedback is very welcome.

Granity 1.9

The latest Granity includes support for the Ioni V1.3.0 as well as some improvements. Starting from this release, it includes also Linux version!

Argon firmware 1.4.2 released

While we’re finalizing the Argon firmware 2.0 for official release, we have brought several of the 2.0’s fixes and improvements to the current official firmware version 1.4.2. Get it from the wiki!

Standard firmware version

  • Fixes & adjustments:
    • Added additional protection interlocks for drive’s internal in-rush limiter (reliability improvement)
    • Reduce sensitivity of resolver feedback device no-signal failure (fault location code 890101)
    • Increased upper limit of HV DC bus supply (parameter FOV increased)
    • Effectiveness of regenerative resistor improved
    • Speed of Phasing a.k.a. phase search increased
    • Current setpoint during Phasing a.k.a. phase search reduced to reduce unnecessary motor heating during power-on

Racing simulator special version

  • Additional changes to simulator wheel special version:
    • Eliminate Phasing a.k.a. phase search error in 110-120 VAC power networks
    • Duty cycle limit parameter (6110) now has 200% scale in 110-120 VAC power networks to have equal effect compared to 220-240 VAC networks

For those who don’t know yet, Argon is being used in many professional racing simulator systems. For introduction, see the comparison below:


Argon stock status announcement

Dear Granite Devices customers, we have temporarily ran out of Argon servo drives recently due to increased popularity (great!) and unfavorable variations in the production time (not so cool) occurring at the same time. A longer than usual production lead time is caused by limited stock availability of certain third party electric components. We have to wait until beginning of August to receive new 300 pcs delivery of Argon drives.

However, we have kept back a small number of Argons for emergency needs. If you need one very urgently and absolutely can’t wait for the delayed delivery, contact us by email at sales (at) Those who have ordered the drive before the outage and are waiting over the unexpected delay will receive a 100 euro discount/refund per drive as compensation. Discounted orders are the ones made between the dates 13.6 and 25.6.

To reduce greatly the chance of outages in the future, we are starting to stock the most critical components in order reduce lead time variations.

Meanwhile all IONI series products are in stock and shipping normally. If you wish to change your order from ARGON to IONI, or make other changes to your order, please drop us email.

SinCos encoder support

Last days we have been working on supporting SinCos encoders. SinCos encoder is exactly like standard incremental encoder, except it has sinusoidal analog outputs instead of digital quadrature waveforms.

SinCos encoder signals vs digital incremental encoder signals

SinCos encoder signals vs digital incremental encoder signals

The beauty of this is that the analog waveform can provide infinite position resolution when the phase angle of signals are calculated. The latest prototype firmware of IONI Pro now supports SinCos interpolation which increases the resolution that we would get from digital counting by the factor of 16, 64 or 256 times. I.e. a 1000 pulse (or cycle) per revolution analog encoder with 256X interpolation yields resolution equal to 256 000 quadrature pulses per revolution (PPR) or 1 024 000 counts/per revolution (actual position resolution of motor).

SinCos encoder interpolation: the first graph shows position counter in digital mode, the middle shows interpolated angle from sine and cosine signals and the last image shows the combination of these two.

SinCos encoder interpolation: the first graph shows position counter in digital mode, the middle shows interpolated angle from sine and cosine signals and the last image shows the combination of these two to form the high resolution position count.

Very high resolution helps especially to make motion smoother, quieter and stiffer. The initial tests show amazing smooth performance of the motor in velocity and position modes. There was no dithering or groaning noise from the motor and at same time the motor position holding stiffness was jaw dropping. It felt like the motor was physically jammed as the eye, hand or ear can’t notice any movement.

Maximizing the bandwidth of Torque Control

The latest achievement in IONI servo drive development was the maximization of torque control bandwidth. IONI actuates motor by a 20 kHz pulse width modulated (PWM) power output which essentially means switching the supply voltage between 0V and supply voltage (HV+) very fast causing the desired current to flow in the motor coils. Drive samples coil currents once at every PWM cycle and also re-calculates the PWM duty cycles on every cycle.

Last couple of we have spent perfecting the torque controller speed without sacrificing the dynamic range or smoothness. Bandwidth of controller is dictated by two factors: update rate and delay. Update rate was already at maximum (every cycle) but previously the delay was one full PWM cycle (50 µs). By optimizing code enough, drive is able to complete torque control calculations within half PWM cycle (<25 µs) which shortens the delay by 25 µs.

High bandwidth torque control timing diagram. Torque controller has the highest bandwidth when update rate is at maximum and delay at minimum.

High bandwidth torque control timing diagram demonstrating half PWM cycle delay and full PWM frequency update rate. Torque controller has the highest bandwidth when the update rate is at the maximum and delay at the minimum.

Ok, 25 µs doesn’t sound much. But it actually is more notable than it first seems. This change yields 30-50% boost in torque control bandwidth which can be seen sharper change of torque without causing any overshoot. This allows us to set position and velocity control gains higher without losing stability. In the end, the result is more stable and more stiff servo motor.

Torque controller step response with one PWM cycle torque control delay (top) and half PWM cycle delay ( bot). Notice the overshoot caused by the additional delay.

Torque controller step response with one PWM cycle torque control delay (top) and half PWM cycle delay (bot) without changing torque controller gains. Notice the overshoot caused by the additional delay. The overshoot can be cured by lowering torque control gains, but that also reduces bandwidth.

Never seen servo motor so stiff :)

Granity gets better

While we develop IONI, we are also developing Granity setup software. Yesterday’s little innovation was to add visual aids for displaying the reason why drive is not in active state.

Granity status page now visualizes the reason why drive is idling

No more guesswork! Status page now tells the reason why drive is idling.