Editing IONICUBE connectors and pinouts

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help page.

Latest revision Your text
Line 1: Line 1:
==IONICUBE connectors==
+
==Front connectors==
;X1
+
{{picturebox|Ionicubelayout.png|caption=Connector layout and naming}}
:Dual port RJ45 connector with [[SimpleMotion V2]] interface. For pinout, see[[SimpleMotion V2 port]].
+
{{picturebox|Ioni motoroutouts per drive.png|caption=Power and feedback ports of X, Y, Z and A axis}}
;X2
+
{{picturebox|Ionicubemotorconnectors.png|caption=Names of power and feedback ports. I.e. X9A means upper floor connector of X9 and X9B the lower floor of X9.}}
:6 pin wire terminal for logic voltage supply, [[Safe torque off]] input, analog output and relay driver outputs.
+
;X3
+
:Two pin wire terminal for [[HV DC bus]] supply.
+
;X4
+
:Main control and [[setpoint]] signal port consisting Enable input signal, Fault output signal, [[pulse and direction]]/[[quadrature]]/[[PWM]] setpoint inputs and digital outputs for home switch status. X4 is directly wired to conform most common parallel port style pulse & direction CNC controllers.
+
;X5
+
:Second control and [[setpoint]] signal port. This port consists analog setpoint signal inputs and additional digital I/O.
+
;X6
+
:These are the [[feedback devices|feedback device]] connector for X (lower) and Y (upper) axis motors
+
;X7
+
:These are the power and holding brake output connector for X (lower) and Y (upper) axis motors
+
;X8
+
:These are the [[feedback devices|feedback device]] connector for Z (lower) and A (upper) axis motors
+
;X9
+
:These are the power and holding brake output connector for Z (lower) and A (upper) axis motors
+
;X10
+
:A connector for an optional external [[regenerative resistor]]. IONICUBE has on-board regenerative resistor that is sufficient for most installations.
+
;IONI_X, IONI_Y, IONI_Z, IONI_A
+
:Card-edge connectors for IONI drives
+
{{damage|Before inserting or removing IONI drives from IONICUBE, remove all power from it and discharge it's capacitors. To discharge remaining energy (~voltage) from capacitors, short circuit GND to HV+ by a conductor and measure that there is no DC voltage left between GND and HV+ terminals. Even few volts left to [[HV DC bus]] is known to cause permanent damage to IONICUBE when drives are plugged.}}
+
 
+
==Front side connectors==
+
Front side connectors consist X6, X7, X8 and X9. These connectors are the interface towards motors (motor power and [[feedback devices]]).
+
{{picturebox|Ionicubelayout.png|caption=Connector layout and naming. View from top of the board.}}
+
 
+
{{picturebox|Ionicube revision 3 layout.png|caption=IONICUBE revision 3 PCB layout. USB connector X11 and Switch S1 to replace the jumper header.}}
+
 
+
{{picturebox|Ioni motoroutouts per drive.png|caption=Power and feedback ports of X, Y, Z and A axis. View from plug side of the board.}}
+
 
+
 
+
{{picturebox|Ionicubemotorconnectors.png|caption=Names of power and feedback ports. I.e. X9A means upper floor connector of X9 and X9B the lower floor of X9. View from plug side of the board.}}
+
 
===Legend===
 
===Legend===
 
{| class="wikitable"
 
{| class="wikitable"
Line 39: Line 8:
 
! Color
 
! Color
 
|-
 
|-
| class="powpin" |Supply pin
+
| class="powpin"|Supply pin
 
|-
 
|-
| class="inpin" |Input pin
+
| class="inpin"|Input pin
 
|-
 
|-
| class="outpin" |Output pin
+
| class="outpin"|Output pin
 
|}
 
|}
===X7 and X9 pinout===
+
===X7 and X9===
These are the power output and holding brake output connector for motors
+
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
!  Pin number !! Signal name !! AC/BLDC motor  !! Brush DC motor !! Stepping motor
+
!  Pin number !! Signal name !! Usage
 
|-
 
|-
| 1 || class="powpin" | GND|| colspan="3" | Ground for cable shield and an optional motor holding brake coil
+
| 1 ||class="powpin"| GND|| Ground for cable shield and an optional motor holding brake coil
 
|-
 
|-
| 2|| class="outpin" |PHASE1 ||U (some motors R)||Armature +||Coil A.1
+
| 2|| class="outpin"|PHASE1 || Motor phase 1
 
|-
 
|-
| 3|| class="outpin" |PHASE2 ||V (some motors S)||Armature -||Coil A.2
+
| 3|| class="outpin"|PHASE2 || Motor phase 2
 
|-
 
|-
| 4|| class="outpin" |PHASE3 ||W (some motors T)||Armature -||Coil B.1
+
| 4|| class="outpin"|PHASE3 || Motor phase 3
 
|-
 
|-
| 5|| class="outpin" |PHASE4 || Not connected||Armature +||Coil B.2
+
| 5|| class="outpin"|PHASE4 || Motor phase 4
 
|-
 
|-
| 6|| class="outpin" |BRAKE || colspan="3" |Optional 24V motor holding brake coil
+
| 6|| class="outpin"|BRAKE || 24V motor holding brake coil drive
 +
|}
 +
===X6 and X8===
 +
{| class="wikitable"
 +
|-
 +
! Pin # !! Pin name !! Electrical type (in most feedback device modes) || Alternate electrical type (in some feedback device modes) || Connection with various feedback devices
 +
|-
 +
| Shell||class="powpin"|GND|| colspan=2 |Earth/case  || Feedback cable shield
 +
|-
 +
| 1||class="inpin"|HALL_W|| colspan=2 |Digital input W ||  Hall sensor input, phase W
 +
|-
 +
| 2||class="inpin"|HALL_V|| colspan=2 |Digital input V  ||Hall sensor input, phase V
 +
|-
 +
| 3||class="inpin"|HALL_U|| colspan=2 |Digital input U || Hall sensor input, phase U
 +
|-
 +
| 4||class="powpin"|GND||colspan=2 |Encoder supply ground
 +
|-
 +
| 5||class="inpin"|B-||Differential input B-|| Analog input B+||rowspan=2|Quadrature encoder (B channel)/SinCos/serial encoder/resolver input
 +
|-
 +
| 6||class="inpin"|B+||Differential input B+|| Analog input B-
 +
|-
 +
| 7||class="inpin"|A-||Differential input A-|| Analog input A-||rowspan=2|Quadrature encoder (A channel)/SinCos/serial encoder/resolver input
 +
|-
 +
| 8||class="inpin"|A+||Differential input A+|| Analog input A+
 +
|-
 +
| 9|| class="powpin"|5V_OUT||colspan=2 |Encoder supply 5V output  || rowspan=2|Encoder power supply
 +
|-
 +
| 10|| class="powpin"|GND ||colspan=2 |Encoder supply ground
 +
|-
 +
| 11|| class="inpin"|GPI3||colspan=2|Axis negative direction end limit switch (optional)|| Connect normally closed (NC) limit switch between this pin and GND pin
 +
|-
 +
| 12|| class="inpin"|GPI2||colspan=2|Axis positive direction end limit switch (optional)|| Connect normally closed (NC) limit switch between this pin and GND pin
 +
|-
 +
| 13|| class="inpin"|GPI1||colspan=2|Axis home switch switch (optional)|| Connect normally closed (NC) limit switch between this pin and GND pin
 +
|-
 +
| 14|| class="inpin"|C-||colspan=2 |Differential input C- ||rowspan=2|Quadrature encoder index channel (Z channel)/serial encoder input
 +
|-
 +
| 15||class="inpin"| C+||colspan=2 |Differential input C+
 
|}
 
|}
====Motor & brake wiring schematics====
 
<gallery widths="300px" heights="190px">
 
File:Ionicube mot ac.png|Wiring of three phase AC servo motor. Brake is optional.
 
File:Ionicube mot dc.png|Wiring of Brush-DC servo motor. Brake is optional.
 
File:Ionicube mot step.png|Wiring of two phase stepping motor. Brake can be fitted like in the other examples. Also 6 and 8 wire motors can be wired (the two drive coils connect always to the same PHASE outputs).
 
</gallery>
 
{{tip|An easy way to verify correctness of two phase '''stepper''' connection: unplug the 6 pin connector and then measure resistance between phases 1-2 and 3-4. Multimeter should show the same resistance for both cases (typically 0.1 - 5 ohms). Also when measuring between phases 1-3, 1-4, 2-3 and 2-4, the multimeter should indicate open circuit.}}
 
 
===X6 and X8 pinout===
 
X6 and X8 are the [[feedback devices|feedback device]] connectors of motors
 
{{EncoderPinoutD15}}
 
{{info|Especially with long encoder cables, it might be necessary to add encoder line termination resistors, see [[Terminating differential encoder lines]].}}
 
 
====Examples of feedback device and switch wiring====
 
====Examples of feedback device and switch wiring====
 
<gallery widths="180px" heights="180px">
 
<gallery widths="180px" heights="180px">
Line 90: Line 83:
 
{{tip|Feedback devices with [[differential signaling]] may use varying naming schemes of signal pairs. For example differential signal X (which contains two electrical wires) may be denoted as: X+ and X-, or X and \X or X and {{overline|X}}. In this Wiki we mark them X+ and X-. Some Fanuc encoders have quadrature signals named as PCA, /PCA, PCB, /PCB, PCZ and /PCZ which are equivalent to A, B and Z signal pairs.}}
 
{{tip|Feedback devices with [[differential signaling]] may use varying naming schemes of signal pairs. For example differential signal X (which contains two electrical wires) may be denoted as: X+ and X-, or X and \X or X and {{overline|X}}. In this Wiki we mark them X+ and X-. Some Fanuc encoders have quadrature signals named as PCA, /PCA, PCB, /PCB, PCZ and /PCZ which are equivalent to A, B and Z signal pairs.}}
  
==Back side connectors==
+
==Back connectors==
 
+
 
{{picturebox|Ionicube x2345.png|caption=A closeup of X2, X3, X4 and X5}}
 
{{picturebox|Ionicube x2345.png|caption=A closeup of X2, X3, X4 and X5}}
  
{{damage|Never connect an Ethernet to X1. While it uses similar connector and cabling, it is electrically incompatible with Ethernet. Devices may be permanently damaged by mixing Ethernet and SimpleMotion V2.}}
+
===X2===
{{damage|Do now wire SimpleMotion V2 ports with [http://en.wikipedia.org/wiki/Ethernet_crossover_cable crossover RJ45 cables (see details)]. Always use straight/non-crossover patch cables. If unsure about what is the type of your RJ45 cable, don't use it.}}
+
 
+
===X2 pinout===
+
X2 is 6 pin wire terminal for logic voltage supply, [[Safe torque off]] input, analog output and relay driver outputs.
+
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
!  Pin number !! Signal name !! Usage
 
!  Pin number !! Signal name !! Usage
 
|-
 
|-
| 1 || class="powpin" | GND|| Ground
+
| 1 ||class="powpin"| GND|| Ground
 
|-
 
|-
| 2|| class="powpin" |24V || 24V logic supply
+
| 2|| class="powpin"|24V || 24V logic supply
 
|-
 
|-
| 3|| class="inpin" |STO || Safe torque off input (this pin also available in X1, as defined in [[SimpleMotion V2 port]]
+
| 3|| class="inpin"|STO || Safe torque off input (this pin also available in X1, as defined in [[SimpleMotion V2 port]]
 
|-
 
|-
| 4|| class="outpin" | VFD || 0-12V analog output where voltage level is proportional to [[PWM]] duty cycle on pin PWM on X4. PWM frequency must be between 100 and 10000 Hz.
+
| 4||class="outpin"| VFD || 0-12V analog output where voltage level is proportional to [[PWM]] duty cycle on pin PWM on X4. PWM frequency must be between 100 and 10000 Hz.
 
|-
 
|-
| 5|| class="outpin" |RL1 || Relay coil driver output 1. When RLIN1 on X4 is logic high, RL1 is pulled to GND by an open collector circuit. When RLIN1 is low, RL1 is floating (max 24V). When connecting a relay that has 24VDC coil between RL1 and supplied 24V, no external free-wheeling diode is needed. Output current rating is max 500 mA.
+
| 5|| class="outpin"|RL1 || Relay coil driver output 1. When RLIN1 on X4 is logic high, RL1 is pulled to GND by an open collector circuit. When RLIN1 is low, RL1 is floating (max 24V).
 
|-
 
|-
| 6|| class="outpin" |RL2 || Relay coil driver output 2. When RLIN2 on X4 is logic high, RL2 is pulled to GND by an open collector circuit. When RLIN1 is low, RL2 is floating (max 24V). When connecting a relay that has 24VDC coil between RL2 and supplied 24V, no external free-wheeling diode is needed. Output current rating is max 500 mA.
+
| 6|| class="outpin"|RL2 || Relay coil driver output 2. When RLIN2 on X4 is logic high, RL2 is pulled to GND by an open collector circuit. When RLIN1 is low, RL2 is floating (max 24V).
 
|}
 
|}
 
+
===X3===
===X3 pinout===
+
X3 is two pin wire terminal for [[HV DC bus]] supply.
+
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
!  Pin number !! Signal name !! Usage
 
!  Pin number !! Signal name !! Usage
 
|-
 
|-
| 1 || class="powpin" | GND|| Ground
+
| 1 ||class="powpin"| GND|| Ground
 
|-
 
|-
| 2|| class="powpin" |HV+ || Motor power supply, [[HV DC bus]] (see IONI drive voltage range spec)
+
| 2|| class="powpin"|HV+ || Motor power supply, [[HV DC bus]] (see IONI drive voltage range spec)
 
|}
 
|}
See also:
 
*[[IONI power supply schemes]]
 
*[[Estimating power need of motor drive system]]
 
{{info|If using switching power supply (SMPS) as motor power supply, external rectifier diodes are needed to protect the power supplies. See See [[IONI power supply schemes]].}}
 
  
===X4 pinout===
+
===X4===
X4 is main control and [[setpoint]] signal port consisting Enable input signal, Fault output signal, [[pulse and direction]]/[[quadrature]]/[[PWM]] setpoint inputs and digital outputs for home switch status. X4 is directly wired to conform most common parallel port style pulse & direction CNC controllers.
+
 
{| class="wikitable"
 
{| class="wikitable"
 
! Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
! Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
| rowspan="14" class="tableseparator" |
+
|rowspan=14 class="tableseparator"|
 
!Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
!Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
|-
 
|-
| 1||1|| class="inpin" |ENABLE |||Enable all axis (with or without chargepump)||2||14|| class="inpin" |PWM||[[PWM]] input for VFD analog output
+
| 1||1||class="inpin"|ENABLE |||Enable all axis (with or without chargepump)||2||14||class="inpin"|PWM||[[PWM]] input for VFD analog output
 
|-
 
|-
| 3||2|| class="inpin" |HSIN1_X||Pulse/step input X||4||15|| class="outpin" |GPO4_A||Limit switch output A
+
| 3||2||class="inpin"|HSIN1_X||Direction input X||4||15||class="outpin"|GPO4_A||Limit switch output A
 
|-
 
|-
| 5||3|| class="inpin" |HSIN2_X||Direction input X||6||16|| class="inpin" |RLIN1||Controls RL1 state
+
| 5||3||class="inpin"|HSIN2_X||Pulse/step input X||6||16||class="inpin"|RLIN1||Controls RL1 state
 
|-
 
|-
| 7||4|| class="inpin" |HSIN1_Y||Pulse/step input Y||8||17|| class="inpin" |RLIN2||Controls RL2 state
+
| 7||4||class="inpin"|HSIN1_Y||Direction input Y||8||17||class="inpin"|RLIN2||Controls RL2 state
 
|-
 
|-
| 9||5|| class="inpin" |HSIN2_Y||Direction input Y||10||18|| class="powpin" |GND|| rowspan="8" |Ground
+
| 9||5||class="inpin"|HSIN2_Y||Pulse/step input Y||10||18||class="powpin"|GND||rowspan=8|Ground
 
|-
 
|-
| 11||6|| class="inpin" |HSIN1_Z||Pulse/step input Z||12||19|| class="powpin" |GND
+
| 11||6||class="inpin"|HSIN1_Z||Direction input Z||12||19||class="powpin"|GND
 
|-
 
|-
| 13||7|| class="inpin" |HSIN2_Z||Direction input Z||14||20|| class="powpin" |GND
+
| 13||7||class="inpin"|HSIN2_Z||Pulse/step input A||14||20||class="powpin"|GND
 
|-
 
|-
| 15||8|| class="inpin" |HSIN1_A||Pulse/step input A||16||21|| class="powpin" |GND
+
| 15||8||class="inpin"|HSIN1_A||Direction input A||16||21||class="powpin"|GND
 
|-
 
|-
| 17||9|| class="inpin" |HSIN2_A||Direction input A||18||22|| class="powpin" |GND
+
| 17||9||class="inpin"|HSIN2_A||Pulse/step input A||18||22||class="powpin"|GND
 
|-
 
|-
| 19||10|| class="outpin" |STOP_OUT||Fault on any axis or E-stop (active low). Note: this is IONI's GPO3 signals connected in parallel between all axis / [https://en.wikipedia.org/wiki/Wired_logic_connection wired-or configuration].||20||23|| class="powpin" |GND
+
| 19||10||class="outpin"|STOP_OUT||Fault on any axis or E-stop (active low)||20||23||class="powpin"|GND
 
|-
 
|-
| 21||11|| class="outpin" |GPO4_X||Limit switch output X||22||24|| class="powpin" |GND
+
| 21||11||class="outpin"|GPO4_X||Limit switch output X||22||24||class="powpin"|GND
 
|-
 
|-
| 23||12|| class="outpin" |GPO4_Y||Limit switch output Y||24||25|| class="powpin" |GND
+
| 23||12||class="outpin"|GPO4_Y||Limit switch output Y||24||25||class="powpin"|GND
 
|-
 
|-
| 25||13|| class="outpin" |GPO4_Z||Limit switch output Z||26||N/A||Not connected||
+
| 25||13||class="outpin"|GPO4_Z||Limit switch output Z||26||N/A||Not connected||
|-
+
| Pin layout || colspan=8 | [[File:26_pin_header_pinout.png|frameless|500x500px]]
+
 
|}
 
|}
{{damage|Connect only to 3.3V or 5V logic circuits go any GPI, GPO and HSIN pins. Most of X4 & X5 pins are directly routed to IONI drive pins and [[IONI connector pinout|IONI electrical ratings]] apply.}}
 
 
====Alternative setpoint signals====
 
{{Template:IONI setpoint signals}}
 
  
===X5 pinout===
+
===X5===
X5 is a second control and [[setpoint]] signal port in addition to X4. This port consists analog setpoint signal inputs and additional digital I/O.
+
 
{| class="wikitable"
 
{| class="wikitable"
 
! Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
! Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
| rowspan="14" class="tableseparator" |
+
|rowspan=14 class="tableseparator"|
 
!Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
!Pin number in header!!Pin number in D25 cable!!Signal name!!Typical usage
 
|-
 
|-
| 1||1|| class="powpin" |GND||||2||14|| class="powpin" |+5V_OUT||5V supply from IONICUBE ^2
+
| 1||1||class="powpin"|GND||||2||14||class="powpin"|+5V_OUT||5V supply from IONICUBE ^2
 
|-
 
|-
| 3||2|| class="inpin" |ANAIN-_X||+/-10V analog input X||4||15|| class="inpin" |ANAIN+_X||+/-10V analog input X
+
| 3||2||class="inpin"|ANAIN-_X||+/-10V analog input X||4||15||class="inpin"|ANAIN+_X||+/-10V analog input X
 
|-
 
|-
| 5||3|| class="inpin" |ANAIN-_Y||+/-10V analog input Y||6||16|| class="inpin" |ANAIN+_Y||+/-10V analog input Y
+
| 5||3||class="inpin"|ANAIN-_Y||+/-10V analog input Y||6||16||class="inpin"|ANAIN+_Y||+/-10V analog input Y
 
|-
 
|-
| 7||4|| class="inpin" |ANAIN-_Z||+/-10V analog input Z||8||17|| class="inpin" |ANAIN+_Z||+/-10V analog input Z
+
| 7||4||class="inpin"|ANAIN-_Z||+/-10V analog input Z||8||17||class="inpin"|ANAIN+_Z||+/-10V analog input Z
 
|-
 
|-
| 9||5|| class="inpin" |ANAIN-_A||+/-10V analog input A||10||18|| class="inpin" |ANAIN+_A||+/-10V analog input A
+
| 9||5||class="inpin"|ANAIN-_A||+/-10V analog input A||10||18||class="inpin"|ANAIN+_A||+/-10V analog input A
 
|-
 
|-
| 11||6|| class="outpin" |GPO1_X|| rowspan="8" |For pin function, refer to [[IONI connector pinout]] ||12||19|| class="inpin" |GPI4_X|| rowspan="8" |For pin function, refer to [[IONI connector pinout]]
+
| 11||6||class="outpin"|GPO1_X||rowspan=8|For pin function, refer to [[IONI connector pinout]] ||12||19||class="inpin"|GPI4_X||rowspan=8|For pin function, refer to [[IONI connector pinout]]
 
|-
 
|-
| 13||7|| class="outpin" |GPO1_Y  ||14||20|| class="inpin" |GPI4_Y
+
| 13||7||class="outpin"|GPO1_Y  ||14||20||class="inpin"|GPI4_Y
 
|-
 
|-
| 15||8|| class="outpin" |GPO1_Z ||16||21|| class="inpin" |GPI4_Z
+
| 15||8||class="outpin"|GPO1_Z ||16||21||class="inpin"|GPI4_Z
 
|-
 
|-
| 17||9|| class="outpin" |GPO1_A ||18||22|| class="inpin" |GPI4_A
+
| 17||9||class="outpin"|GPO1_A ||18||22||class="inpin"|GPI4_A
 
|-
 
|-
| 19||10|| class="outpin" |GPO5_X ||20||23|| class="inpin" |GPI5_X
+
| 19||10||class="outpin"|GPO5_X ||20||23||class="inpin"|GPI5_X
 
|-
 
|-
| 21||11|| class="outpin" |GPO5_Y ||22||24|| class="inpin" |GPI5_Y
+
| 21||11||class="outpin"|GPO5_Y ||22||24||class="inpin"|GPI5_Y
 
|-
 
|-
| 23||12|| class="outpin" |GPO5_Z ||24||25|| class="inpin" |GPI5_Z
+
| 23||12||class="outpin"|GPO5_Z ||24||25||class="inpin"|GPI5_Z
 
|-
 
|-
| 25||13|| class="outpin" |GPO5_A ||26||N/A|| class="inpin" |GPI5_A
+
| 25||13||class="outpin"|GPO5_A ||26||N/A||class="inpin"|GPI5_A
|-
+
| Pin layout || colspan=8 | [[File:26_pin_header_pinout.png|frameless|500x500px]]
+
|}
+
  
== Application example ==
 
Follwing image shows typical installation schemes for pulse/direction controlled systems, typically found in PC CNC applications.<gallery widths="180px" heights="180px">
 
File:ionicube stepdir.png|A typical connection with parallel port style CNC controller such as [[Mach3]]/[[Mach4]]/[[LinuxCNC]]. A 26 pin ribbon cable may be directly connected to PC parallel port or to equivalent pinout step/dir generator such as [[SmoothStepper]].
 
</gallery>
 
  
[[Category:IONI_user_guide]]
+
|}
[[Category:IONICUBE]]
+

Please note that all contributions to Granite Devices Knowledge Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Granite Devices Knowledge Wiki:Copyrights for details). Do not submit copyrighted work without permission!

Select categories:

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)