Optidrive E3 VFD

Hi all, anyone with any experienced in setting up an Optidrive E3 VFD with the onefinity?

There seemed to be a limited pool of experience using the Optidrive E3 VFD within our forum members (ok, none from what I can see). @BryanHunt tried to help me, thank you Bryan. It isn’t easy without having the VFD in front of you to test.

I got it working, so if anyone else is interested, here is what worked for me.

I purchased a VFD & a 2.2kw spindle from 3dtek - I went this route as they are UK based and I like to shop local if I can in case I have questions.

VFD: Optidrive E3 from Invertek (240V version)
Spindle: 2.2kw air-cooled

This was easy enough as 3DTEK provided some good instructions online and the Optidrive manual(s) (User Manual, Advance User Manual) are pretty good. The only downside is that 3dtek’s set-up does not use MODUS RTU for communication between the controller (using the Onefinity Breakout board) and the VFD (using an RJ45 (Ethernet cable) connector). The gotcha for me here is noting that I had to add a switch between the VFDs +24vdc terminal and digital input 1 and switch it on. I could have jumped between the two terminals but I used a switch just in case I need to use it.

This was a real fiddle and hack. I got the following to work.


  • P-08 – Motor Rated Current: Nameplate current rating (printed on spindle motor)
  • P-07 – Motor Rated Voltage: Nameplate voltage (printed on spindle) - in my case 220V
  • P-09 – Motor Rated Frequency: Nameplate frequency: 400 Hz (NOTE: Ensure this reads on your VFD 400.0, not 40.0)
  • P-14 – Extended Access: 201
  • P-12 – Primary Command Source: 3 (RTU MODBUS)
  • P-15 – Digital Input Function Select: 0
  • P-10 - Max Nameplate RPM: 24000
  • P-30 – Start Mode: Auto-0 (note that you get two random answers on the display when exiting this parameter, I ignore them as instructed - I think I know what they mean)
  • P-51 – Motor Control Mode: 1 (V/f mode)
  • P-12 - 3 (Modbus Network Control (uses internal Accel and Decel ramps))
  • P-36 - Serial Communications Index1 (drive address = 1), Index2 (Baud rate 9.6), Index3 (watchdog timeout - communication loss protection. I set to 0 to disable)

Check that P-01 reads 24000

Onefinity Controller

  • connect-write → Address: 0, Value: 1
  • stop-write → Address: 1, Value: 0
  • freq-signed-read → Address: 6
  • max-freq-fixed → 4000 (note: optidrive provides a 1dp therefore 400.0 hz is 4000)
  • freq-signed-set → Address: 1

tool-reversed → not checked
max-spin → 24000
tool-enabled-mode → disabled
tool-direction-mode → disabled

bus-id → 1 (see VFD config)
baud → 9600 (see VFD config)
parity → None

I hope this helps should you need it


The above configurations still work. But I have version 2 of the settings that provide some protection against the VFD being in STOP mode and/or the connection between the onefinity controller and the VFD dropping (a scenario could be that the control cable between the Onefinity Controller and the VFD disconnects such that the Controller commences a program without the Spindle being in operation.

Changes to Onefinity Controller:

  • status-read → Address: 0. This will send regular communication to the VFD “Drive Control Command” in register 1 (0 in our case as there is one digit difference between all VFD registers and the Onefinity Controller addresses (presumably one is 0 -based and the other is 1-based). This change supports the VFD controller parameter change P-36, Index 3 in Purpose 3 below

Changes to VFD Parameters

Purpose 1: Check to see if the motor is enabled

If it is enabled, the Relay across terminals 10 & 11 goes from “Normally Open” to “Normally Closed”. P-18 to 0 which is “Motor Enabled”. The other setting options are active when the VFD indicates “Stop” Which is not good enough as the controller is unable to communicate to the VFD in this state.

Purpose 2: Check to see if output frequency is less than minimum

Set P-25 to 6 to output a digital signal when the frequency is less than the value set by P-19. Set P-19 to 25 (25% or less of max frequency). That is, activated then the spindle isn’t spinning at min RPM (6000 rpm, this was guessed from the forums. I am waiting to hear back from 3DTEK about the minimum RPM for the spindle they supplied me)

Purpose 3: Poll to see if the RJ45 / Controller is connected and./or the controller is sending a valid RTU signal (ie “tool-type” has been set correctly in the Onefinity Controller Tool tab:

Set P-36 Index 3 - to 3 and set a value of 1000 (others are available). This is will capture when a signal (a command write to register 1 (or 0 in our case when using the Onefinity / Buildbotics controller) is not received from the controller to the VFD within 1 second (ie a disconnect). This will cause the VFD drive to “STOP”. It automatically goes to run when the RJ45 cable to the controlled is reconnected. Make sure the controller is always sending the VFD a signal used I set Onefinity Controller configuration “status-read” a read command to Register 1 (or 0 in our case when using the Onefinity / Buildbotics controller (see above)

Purpose 4: Ability to Reset the VFD from “STOP”

Set P-15 to 5. This allows digital input on terminal 3 to be connected to the “Normally-Open” push switch that is used to create a momentary Open rising edge signal that signals “START” drive according to the setting 5 for P-15 (see the diagrams in the manual)

Wiring Changes

  • Normally Open push button switch across terminals 1 and 3 to allow resetting of “STOP” drive status and enable the drive. Supported by parameter change P-15 in Purpose 4 above

  • Light or sound output device across terminals 10 and 11 to take advantage of the parameter changes Purpose 1 above.

  • Light or sound output device across terminals 8 and 9 to take advantage of the parameters changes described in Purpose 2 above

I hope this makes sense