Milling machine update VSD -> IONI



I’ve been using VSD drives for some years now with my CNC-milling machine, and thought to upgrade to IONI finally.

My VSD setup had one ATX PC-case just for a custom PSU, which I had made with three 620 VA toroid transformers. No need to say that it weighted a lot. Also, I never had the time to make any kind of enclosure, so the drives were in the open to garher dust with rather random wiring.

My design goals were to minimize the space requirements, recycle as much as possible from the previous setup, but at the same time update as muc as possible so that I don’t have to do any updates in any near future. A bit contradicting goals, but everything turned out rather well.

Originally I thought to recycle my old Mesa 7i43 parallel interface card, and designed the case for that. Also, I specified the case maximum width so, that it would fit in one rack shelf with a Shuttle mini-pc next to it. However, I realized the existence of Mesa 7i93, the ethernet equal of the 7i43. Not adding too much to the costs, I though to upgrade the interface to ethernet, as all pc’s have that connector. That would also make sure, that I can always update the pc if necessary, and there’s no lack of compatibility to the interface. And as a sort of bonus, I could recycle much of the break out board of my old Mesa 7i43 to have the required features.

The firmware for the 7i93 is a custom to enable 2 layer BOB.

I recycle much from my old break out board for the 7i43, and the new BOB ended up having:

  • 4 servo channels, PWM and incremental encoder inputs (velocity mode just rocks!)
  • Isolated PWM -> 0…10V analog signal to VFD
  • Isolated FOR(wards) and fault signals to VFD
  • 1 Mesa SmartSerial port just in case I want more IO or the pendant addon card
  • 1 RS485 port just in case at some point there’s ModBus option for hostmot2 (to control VFD digitally)
  • 9 extra IO, because that much was still available
  • e-stop and common fault from IONICUBE electrically wired to stop VFD (both PWM and FOR)

Encoder signals need signal splitting wires, which are somewhat ugly, but work. And the hole for the parallel port goes to the 9 IO, so no big loss there (I had already printed the part for all connectors). And the SmartSerial port I can drill later, there should be enough space in the front panel for that.

At that time I was unable to find any decent used Shuttle’s, but there was one HP ProDesk mini i5 available. 8G RAM and a SSD never hurts to keep latency down. Plus the size of that thing is perfectly small!

So, from taking three shelves I ended up using a bit over half. And the pc got upgraded from Core2 to i5, although the servo loop was reduced from 2.5 kHz “down” to 2kHz, as the ethernet has much more jitter. The i5 had some ± 6us jittes to the servo loop, but the ethernet doesn’t work that well.

My mill runs well with one SDR, and one 24V 60W DIN rail PSU for IONICUBE, which also supplies the 7i93 and the BOB. Minimum wiring and no hassle whatsoever. Two 24V fans cool the case, one directly blowing to the IONI’s, and the second cooling the PSU’s.

This project was also a good learning experience for 3d printing, and I fell in love with knurled nuts. Cheap’o’s from ebay, but they work. Although some 3d printed threads also worked like charm.

Old pile’o’drives: (ATX PSU underneath)

New case:

The hole under the pc is intended for a 30cm VGA cable so that all connectors are in the front panel. Also, the D25 for the 9 IO is not soldered as I’m not likely to need that soon.

The Linuxcnc Axis GUI is pretty much finalized, and compared to the old config, I can now init and hard home directly from linuxcnc. Semi manual, but much better than my old setup! :smiley:

Final dimensions approx. 225x302x200 (WxLxH).

The design was quick’n’dirty, and much could be improved. However, it works well, and I’m more than satisfied.


Well done, Esa, a lot neater than old build :slight_smile:

This might inspire me to start electrical side for my CNC mill, it is taking me to long, haha.

Well done though, very neat!