Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 2.88 KB

README.md

File metadata and controls

57 lines (39 loc) · 2.88 KB

rioctrl- a modular hardware for riocore

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)

Current state of the hardware design

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.

Pretty images

rioctrl-controller

rioctrl-controller

rioctrl-stepdir4

rioctrl-stepdir4

rioctrl-quadenc4

rioctrl-quadenc4

rioctrl-shiftio

rioctrl-shiftio

breakouts/lichuan-lc10

breakouts/lichuan-lc10

breakouts/rj45-screw-terminals

breakouts/rj45-screw-terminals

build.py

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.

License

The hardware designs in this repository are licensed under CERN Open Hardware Licence Version 2 - Strongly Reciprocal.