Download
Order
Versandkosten
Zahlungsarten
Lieferzeit
Kundeninfo
Datenschutz
Impressum

Technical information Mini-DIN connector used by Estlcam hardware:

No limit or warranty! Use at your own risk!


The Mini-DIN connector is a hybrid with 2 modes of operation:
  • Mode 1 / direct hardware connection:
    • 2 digital and 2 analog inputs for direct connection of switches and potentiometers...
    • Is e.g. used by the CNC Control Panel...

  • Mode 2 / serial interface:
    • I2C bus + 2 encoder inputs...
    • Button, potentiometer- and joystick states are transmitted by serial I2C protocol...
    • Handwheel encoder signals are sent directly to the controller by 2 dedicated pins...
    • Is e.g. used by the CNC Handwheel Pendant...



Description Mode 1:


Pinout:
  • Pin 1: GND
  • Pin 2: Momentary switch CNC program start / stop
  • Pin 3: +5V
  • Pin 4: Potentiometer feed override
  • Pin 5: Momentary switch spindle start / stop
  • Pin 6: Potentiometer speed override
It is possible to hook up switches, LEDs and potentiometers in a DIY fashion - but:
  • The CNC Control Panel contains an ESD protection circuit (Nexperia IP4220CZ6) to prevent electrostatic discharges from getting through to the CNC controller and causing damage there...
  • This part is also included in the schematic above...
  • Unfortunately it is tiny and hard to use in DIY applications...
  • It can be omitted and things will usually still work fine - but a certain risk remains...
  • But it is really important to only use plastic knobs for potentiometers with metal axes or body. Otherwise the risk of discharges finding a way through to the CNC controller is significant...



Description Mode 2:

Pinout:
  • Pin 1: GND
  • Pin 2: SDA / Serial Data
  • Pin 3: +5V
  • Pin 4: Encoder A
  • Pin 5: SCL / Serial Clock
  • Pin 6: Encoder B
TWI / I2C data transfer from controller to CNC handwheel pendant:
  • Each data frame consists of 9 bytes:
    • Byte 1 = Command respectively mode the pendant should execute.
    • Byte 2-9 = Data (remnant from the past without function - just receive and ignore).
  • Valid commands for byte 1 are:
    • 1: Regular transmission of pendant data.
    • 3: Call for identification: The pendant must answer with "Handrad 0001" - otherwise the CNC controller will not accept it.
    • 4: Challenge: remnant of a past copy protection. The pendant must answer with hexadecimal "3B59E82AE9B1BED800000000" - otherwise at least older Estlcam versions will not accept it.
    • 5: Serial number Atmega328PB: the pendant should transmit the serial number of the chip (10 Byte + 2 Bytes "0" to complete the data frame), but completely made up data is also OK.
  • The command respectively mode remains active until a new command is issued. If e.g. the command to identify is received the pendant must answer with the identification message until it explicitly receives a different command.
TWI / I2C data transfer from CNC handwheel pendant to controller:
  • Each data frame consists of 15 bytes:
    • Bytes 1-12 = Data
    • Byte 13 = Mode / this byte must always represent the currently executed command respectively mode.
    • Byte 14 = Frame / with each transmission this byte must be increased by 1. If this byte is not counting anymore the controller assumes that there is an issue with the pendant, stops all movement and tries to reset communication.
    • Byte 15 = Checksum / Frames with incorrect checksum are rejected to prevent unintentional actions.
Checksum calculation:
  • Set checksum to 0.
  • Perform XOR operation for bytes 1 to 14 and increase the checksum after each XOR by 1.
    • Checksum = 0
    • Checksum XOR Byte 1
    • Checksum = Checksum +1
    • Checksum XOR Byte 2
    • Checksum = Checksum +1
    • Checksum XOR Byte 3
    • Checksum = Checksum +1
    • and so on...
Data frame mode 1:
  • Byte 1: 255 (legacy - must return 255 - otherwise it may cause issues!)
  • Byte 2:
    • Bit 0 = CNC program start / stop button (1 = pressed / 0 = not pressed)
    • Bit 1 = spindle start / stop button (1 = pressed / 0 = not pressed)
    • Bit 2 = 1 (otherwise it may cause issues!)
    • Bit 3 = "OK" button (1 = pressed / 0 = not pressed)
    • Bit 4 to 7 = 1 (otherwise it may cause issues!
  • Byte 3: Low Byte feed override potentiometer
  • Byte 4: High Byte feed override potentiometer
  • Byte 5: Low Byte speed override potentiometer
  • Byte 6: High Byte speed override potentiometer
  • Byte 7: Low Byte X Joystick
  • Byte 8: High Byte X Joystick
  • Byte 9: Low Byte Y Joystick
  • Byte 10: High Byte Y Joystick
  • Byte 11: Low Byte Z Joystick
  • Byte 12: High Byte Z Joystick
  • Byte 13: 1 (Mode)
  • Byte 14: Frame (always counting through from 0-255)
  • Byte 15: Checksum (see checksum calculation)
  • Potentiometer and joystick values are 16 bit unsigned integer going all the way from 0 to 65535.
Data frame mode 3:
  • Byte 1-12: "Handrad 0001"
  • Byte 13: 3 (Mode)
  • Byte 14: Frame (always counting through from 0-255)
  • Byte 15: Checksum (see checksum calculation)
Data frame mode 4:
  • Byte 1-12: Hexadecimal "3B59E82AE9B1BED800000000"
  • Byte 13: 4 (Mode)
  • Byte 14: Frame (always counting through from 0-255)
  • Byte 15: Checksum (see checksum calculation)
Data frame mode 5:
  • Byte 1-10: Serial number AVR chip
  • Byte 11-12: Fill with "0"
  • Byte 13: 5 (Mode)
  • Byte 14: Frame (always counting through from 0-255)
  • Byte 15: Checksum (see checksum calculation)

Christian Knüll / Heidelbergerstr. 6 / 74746 Höpfingen / Deutschland / christian@estlcam.de