Skip to content

Pan arm electronicsLink

Pan motorLink

We replaced the original z-axis stepper motor by an hollow shaft stepper motor from stepperonline 23HS18-2004H. Full specifications can be accessed here.

Wiring of 23HS18-2004H:

A+ A- B+ B-
red red/white green/white green

The original motor was KL23H251-28-4AP from Automation Technology. Full specifications can be accessed here.

Wiring of KL23H251-28-4AP:

Phase A+ A- B+ B-
Pin A C B D
Color white red green black

Thus, the re-wiring looks like this:

  • X-Carve white wire -> HS stepper red wire
  • X-Carve red wire -> HS stepper red/white wire
  • X-Carve green wire -> HS stepper green/white wire
  • X-Carve black wire -> HS stepper green wire

Incremental rotary encoderLink

The encoder has 4096 steps and this is too fine for the arduino to see. From our tests, it seems very stable at 360.

Change the steps resolutionLink

  • get the AMT Cable & the AMT Viewpoint Programming Cable (parts 16 & 17 from the BOM list)
  • load the ATM Viewpoint software (Windows only)
  • set the resolution to 360.
  • make sure you then align the 0 again after you change resolution.

If that does not work:

  • Drink a beer
  • Try again
  • Repeat as necessary.

Testing with an ArduinoLink

WiringLink

To test the encoder with an Arduino UNO, wire the encoder a follows:

  • Encoder Pin 12 Z+ (blue) -> Arduino Pin 11
  • Encoder Pin 13 Z- (blue & white) -> Arduino GND
  • Encoder Pin 04 GND (green & Brown) -> Arduino GND
  • Encoder Pin 06 +5V (red) -> Arduino +5

You can also wire two switches to PIN9 & GND and to PIN10 and GND of the UNO. It is also possible to wire just one switch and swap PINs during the homing procedure, but beware of shortcuts.

TestingLink

To test the encoder, we recommend to use the serial monitor of the Arduino IDE as you can manually select Both NL & CR as EOL.

  1. Pull the Arduino script libromi/firmware/Oquam/Oquam.ino from the encoder_z branch of the libromi repository.
  2. Then build / upload, refers to the detailed flashing instructions.
  3. Using the serial monitor of the Arduino IDE, deactivate the X & Y axes (disables axes 0 & 1, and enables 2) by sending:
    #h[-1,-1,2]:xxxx
    
  4. Then test the homing procedure for the theta axis by sending:
    #H:xxxx
    
    While the board is waiting for homing, turn the encoder, once you hit the 0 you will see a "homing complete" message.
  5. Now, let's try to home all axis. So activate all of them with:
    #h[0,1,2]:xxxx
    
  6. Then test the homing procedure for all axes by sending:
    #H:xxxx
    
    While the board is waiting for homing, press the X switch, then the Y switch and finally turn the encoder. When you release the switches you will see a "homing complete" message. Again, with the encoder, once you hit the 0 you will see a "homing complete" message.

Important

The RomiSerial expect both "newline" (NL) AND "carriage return" (CR)! So you have to select Both NL & CR instead of the default Newline in the serial monitor of the Arduino IDE.

X-Carve controllerLink

WiringLink

Simply wire the rotary encoder Z+/Z- pins to the red/black Z-limit wires:

  • Encoder Pin 12 Z+ (blue w/ white stripe) -> red Z-limit wire of the X-Carve controller (PIN12, not PIN11 as with grblShield!)
  • Encoder Pin 13 Z- (white w/ blue stripe) -> black Z-limit wire of the X-Carve controller
  • Encoder Pin 04 GND (green w/ red strip) -> black wire (-) of the 24/5V DC converter
  • Encoder Pin 06 +5V (red w/ green stripe) -> red wire (+) of the 24/5V DC converter

TestLink

With the Oquam firmware flashed on the X-Controller (instructions here) and the correct wiring:

  1. Open the Arduino IDE
  2. Plug the USB from the X-Controller to your computer
  3. Select the right USB port (assume ttyUSB0)
  4. Open the serial monitor of the Arduino IDE, select Both NL & CR, send:
    #h[0,1,2]:xxxx
    #H:xxxx
    
    The X-Carve should home X & Y axes, then you turn the encoder and when it hits home it should stop the homing process.