rioctrl is modular open source CNC controller hardware for riocore.
It consists of a main FPGA controller board which has 6 slots for various input/output modules.
At this time, the following modules have been designed:
- rioctrl-controller: Lattice ECP5 based controller board
- rioctrl-stepdir4: 4 axis step/dir output interface
- rioctrl-quadenc4: 4 axis quadrature encoder (ABZ) input
- rioctrl-shifio: 16 digital inputs, 16 digital outputs (PNP)
- breakouts/lichuan-lc10: breakout board that allows connecting Lichuan LC10 series servo to stepdir4 and quadenc4 module (via off-the-shelf RJ45 cables)
- breakouts/rj45-screw-terminals: breakout board from RJ45 cable to screw terminals
- breakouts/ditron-dc11-encoder: breakout board from RJ45 cable to Ditron DC11 glass scale optical encoder (DB9)
The following hardware has been built and tested to be working:
- rioctrl-controller v1.0: minor rework was needed (remove a diode, rotate Y1 by 90 degrees). Fixed in v1.1.
- rioctrl-stepdir4 v1.0: electrically working, mechanically a connector was offset by 4 mm, fixed in v1.1.
- rioctrl-shiftio: working as designed.
- rioctrl-quadencz: working as designed (with the caveat that it's only compatible with differential/RS422 encoders).
- breakouts/ditron-dc11-encoder: working as designed, tested with Ditron DC11 encoder with RS422 output option.
- breakouts/rj45-screw-terminals: working as designed.
- breakouts/lichuan-lc10: step/dir/enable working as designed, GPIOs not tested yet.
There is a build.py
script that publishes outputs to each module outputs
directory. It uses <module>/version
file to
determine the current version, which should be updated accordingly.
For 3D renders of the boards, kicad-nightly package is needed, as the currently stable kicad version does not have board rendering functionality available from command line.
The hardware designs in this repository are licensed under CERN Open Hardware Licence Version 2 - Strongly Reciprocal.