Professional Documents
Culture Documents
TSP140 Ardac Elite Cctalk Product Manual v1.0 PDF
TSP140 Ardac Elite Cctalk Product Manual v1.0 PDF
0 – October 2008
This document is the copyright of Money Controls Ltd and may not be reproduced in part or in total by any means, electronic or
otherwise, without the written permission of Money Controls Ltd. Money Controls Ltd does not accept liability for any errors or omissions
contained within this document. Money Controls Ltd shall not incur any penalties arising out of the adherence to, interpretation of, or
reliance on, this standard. Money Controls Ltd will provide full support for this product when used as described within this document.
Use in applications not covered or outside the scope of this document may not be supported. Money Controls Ltd. reserves the right to
amend, improve or change the product referred to within this document or the document itself at any time.
Revision History
Issue Date Comments
0.1 04-01-07 Draft release
0.2 19-04-07 Mode control mask definition for ‘Modify bill operating mode’
0.3 26-07-07 Firmware revision string format defined above 9.99 – see header 241
0.4 07-08-07 Header 89, ‘Clear audit data’, returns ACK not an ASCII string.
0.5 06-09-07 Added section ‘Inhibit Operation’
Added section ‘Credit Poll Timeout’
0.6 24-10-07 New build code identifiers ( header 192 )
0.7 02-11-07 Note added that coupon credit code is 255 / Updated Event Code Table
0.8 01-02-08 Support for event codes 0,4 and 0,5 added
0.9 10-03-08 Updated Event Code Table & Fault Code Table with latest supported codes
1.0 24-10-08 Added section on Note Table Programming Procedure
Added section on Firmware Programming Procedure
Added reference to DIP switch inhibits
Contents
1. Introduction ................................................................................................................................................. 5
2. General ....................................................................................................................................................... 5
3. USB Operation............................................................................................................................................ 5
1. Introduction
This document describes the ccTalk protocol implementation on Ardac Elite. Not all aspects of the
protocol are covered – reference should be made to the ccTalk generic specification which was at
issue 4.5 at the time of this publication. The generic specification explains the historical context and
the packet structuring of ccTalk in great detail.
For a copy of the latest ccTalk generic specification, visit the following web site…
http://www.cctalk.org/
2. General
Ardac Elite implements ccTalk on 3 interface ports.
i.e. 921,600 baud, USB via FTDI hardware, +12V supply, +5V data, supply sink, USB connector, slave device, 8-bit
checksum, no encryption, minor release 5, major release 4
This connection provides a fast diagnostic port using ccTalk over USB. Approx 1Mbps.
i.e. 921,600 baud, USB via FTDI hardware, +12V supply, +5V data, supply sink, USB connector, slave device, 8-bit
checksum, no encryption, minor release 5, major release 4
This connection provides a fast machine interface using ccTalk over USB. Approx 1Mbps.
i.e. 9600 baud, open-collector, +12V supply, +5V data, supply sink, connector type 5, slave device, 8-bit checksum, no
encryption, minor release 5, major release 4
This connection provides a multi-drop ccTalk interface at 9600 baud compatible with a wide range
of coin acceptors and payout devices. Ardac Elite may be daisy-chained with these other devices.
If 16-bit CRC checksums and encryption are required for additional security then specify this option
when ordering.
3. USB Operation
ccTalk has been implemented over USB using hardware interface chips provided by FTDI. Host
software can talk to Ardac Elite through a virtual COM port ( VCOM ) or directly through an API.
Drivers can be obtained royalty-free for most operating systems from the manufacturer’s web site.
Note that drivers are usually provided on CD when ordering support equipment from Money
Controls.
4. Inhibit Operation
When Ardac Elite powers-up or is reset, the individual note inhibits are read from EEPROM. The
default condition is that all 64 notes are enabled. However, no note acceptance is possible until the
master inhibit flag is cleared with header 228, ‘Modify master inhibit status’.
If a note is disabled in EEPROM then the note will appear inhibited when using header 230,
‘Request inhibit status’. However, if you attempt to enable it using header 231, ‘Modify inhibit
status’, this will appear to work but when you read the inhibits back the inhibit status of that note
will not have changed. In other words, EEPROM inhibits acts as master overrides. A factory or
macro disabled note cannot be re-enabled by the host machine.
It is also possible to enable DIP switch inhibits on Ardac Elite for ccTalk. Again, these act as master
inhibits and override any ccTalk settings.
When using ccTalk over USB there is no need for address resolution as USB uses hubs to logically
separate peripherals from one another. Each USB connection is to a single peripheral and in this
case where a virtual COM port is created, each peripheral enumerates as a new COM port in the
host operating system. The ccTalk destination address must still be provided and must still match
the peripheral but it isn’t actually used to direct a message packet to one peripheral out of many as
this is done at the connection level. When using ccTalk on a multi-drop interface then the ‘Address
poll’ command can still be used.
[ power-up status ]
0 – initialising
255 – power-up & self-calibration completed
12 character string.
? = single letter core firmware identifier :
C = ccTalk protocol
N = IGT Netplex protocol
U = IGT USB Class protocol
3 = JCM ID003 protocol
A = AGI USB protocol
[ control ]
B0 – Ready line
B1 |
B2 | Status LED ( red = 01, green = 10, yellow = 11 )
B3 – UV & Barcode LEDs
Set bit to 1 to switch on output line. Output lines are operated for 500ms.
[ flag indicators ]
B0 – rear clear ( microswitch non-return hook, 1 = obstructed )
B1 – stacker present ( inverted polarity, 0 = present )
B2 – stacker home (inverted polarity, 0 = home )
[ opto states 1 ]
B0 – front left pos
B1 – front right pos
B2 – validation note present ( based on TAOS sensor readings )
B3 – rear clear ( microswitch non-return hook )
B4 – rear note present ( head exit sensor )
B5 – string sensor
[ opto states 2 ]
B0 – barcode receiver 1
B1 – barcode receiver 2
B2 – barcode receiver 3
For debugging use only. Use header 159 to return credits and errors via event polling.
[ control ]
B0 – Ready line
B1 |
B2 | Status LED ( red = 01, green = 10, yellow = 11 )
B3 – UV & Barcode LEDs
See the Fault Code Table for a list of possible fault codes.
Bit Mask:
[ inhibit 1 ] MSB = Bill 8 / LSB = Bill 1
[ inhibit 2 ] MSB = Bill 16 / LSB = Bill 9
[ inhibit 3 ] MSB = Bill 24 / LSB = Bill 17
[ inhibit 4 ] MSB = Bill 32 / LSB = Bill 25
[ inhibit 5 ] MSB = Bill 40 / LSB = Bill 33
[ inhibit 6 ] MSB = Bill 48 / LSB = Bill 41
[ inhibit 7 ] MSB = Bill 56 / LSB = Bill 49
[ inhibit 8 ] MSB = Bill 64 / LSB = Bill 57
Using the bit mask, any combination of 64 bills can be inhibited or enabled.
The master inhibit status can be set by the host machine or the bill validator itself. If the bill
validator self-inhibits then event code [ 0 ] is placed on the event stack.
Returns the combined value of the ‘Life accept counter’ plus ‘Life reject counter’ in EEPROM.
This is the total number of notes inserted into the bill validator, regardless of denomination.
Returns the value of the ‘Life accept counter’ in EEPROM. This is the total number of accepted
notes, regardless of denomination.
This command calculates a CRC32 checksum for the entire core firmware. The note tables have
their own individual checksums so updating currency tables does not change this 32-bit value.
Supported.
Supported.
Returned strings :
Standard – standard build with single-sided barcode reader ( older models )
STD00001 – standard build with single-sided barcode reader ( down-stack configuration )
STD00002 – standard build with double-sided barcode reader ( up-stack & down-stack )
Address in ROM No
Address in RAM No
Address in EEPROM Yes
Address via Connector No
Address via Links No
Address via Switch No
Serial address volatile No
Serial address permanent Yes
See the Event Code Table for a list of possible event codes.
Note that the event counter wraps from 255 to 1. An event counter of zero indicates power-up or
reset.
Note also that a credit code of 255 is reserved for a coupon or ticket.
Supported.
Note that header 158, Modify bill id, is not supported for security reasons.
e.g.
[ 100 ] [ 0 ] [ 2 ] – scaling factor 100 and 2 decimal places
[ 0 ] [ 0 ] [ 0 ] – country code not recognised
Supported.
The Ardac Elite operates with a stacker and escrow according to the following rules.
[ lamp no. ]
1 = bezel lamps
[ lamp control ]
0 = automatic
1 = off
2 = on
Returns the number of accepted notes of the given bill type ( i.e. denomination ).
These counters are stored in EEPROM.
[ error type ]
1 – Life Reject Counter
2 – Validation Reject Counter
3 – Handling Reject Counter
4 – Transport Reject Counter
5 – Tamper Reject Counter
6 – DIP Switch Inhibit Counter
7 – Host Inhibit Counter
8 – Host Reject Counter
9 – Jam Counter
Returns the total number of errors of the given error type number. These counters are stored in
EEPROM.
This data is also available using the ‘Read input lines’ command.
Voltages are measured with a 10-bit A/D referenced to 3.3V. Data is returned as an unsigned
integer.
0 Æ 0.0V
1023 Æ 3.3V
[ error code ]
254 - stacker fault
255 - stacker not fitted
[ motor mask ]
B0 - transport motor ( 0 = motor off, 1 =motor on )
B1 - stacker motor
[ direction flags ]
B0 - transport motor ( 0 = backwards, 1 = forwards )
B1 - stacker motor
[ speed ]
0 - default speed ( PWM controlled to ensure 1ms tach time )
1 to 255 - relative speed number. 1 = slowest, 255 = fastest.
If no country code is supplied then the global table revision is returned as stored in the header of the
note table file. If a country code is supplied then the revision of the first note in the note table with a
matching country code is returned :- which may be different to other notes within that country.
If the revision number of an unsupported country code is requested then the string ‘Unknown’ is
returned.
Supported.
Supported.
If the last barcode was not valid then no data is returned. ACK only.
The host machine can read the barcode data after receiving a [ 0 ] [ 20 ] event code, ‘Barcode
detected’, when polling with header 159, ‘Read buffered bill events’.
Returns the 10 character string in the note table e.g. ‘EU\001’. Right padded with spaces.
Image data is transferred block by block. Each block consists of 204 bytes. There are 75 blocks for
a greyscale image and 225 blocks for a colour image. It is up to the host software to request the
correct number of blocks.
Greyscale images are encoded 1 byte per pixel. A value of 0 represents black and 255 white.
Colour images are encoded 3 bytes per pixel. Pixels are sent in RGB triples. First a [ Red ] byte then
a [ Green ] byte then a [ Blue ] bye. So each block of 204 bytes contains the data for 68 pixels.
The image is transferred to the display device from the serial receive buffer column by column.
Each column consists of 102 pixels. There are 150 columns in total for both greyscale and colour
images.
The display mapping order for the serial receive buffer is as follows…
Returns…
[ ccTalk level ] = 1
[ major revision ] = 4
[ minor revision ] = 5
[ rx bytes ignored ] always returns zero as the receive buffer is deep enough to hold the maximum
ccTalk packet size.
After an ACK is returned, if the stacker is attached then a couple of stacker cycles are executed
which may take 8s. The host software should not send another command for 10s after the reset
command is sent to ensure the device has completed initialisation and is ready for other commands.
If ccTalk protocol encryption is enabled then it must be left enabled for note table programming.
General format of TX data is [ block ] [ line ] [ data 1 ] [ data 2 ]… [ data N ] where N <= 128
TX data : [ 0 ] [ 0 ] [ 1 ] [ 0 ] [ 0 ]
RX data : ACK
Wait up to 2s for reply
Block 0, line 0 begins the upload sequence with [ data 1 ] = 1, [ data 2 ] = 0 and [ data 3 ] = 0
Loop until all the file data is sent. The last line may contain less than 128 bytes of data.
A NAK is returned if the table file does not have the correct format.
In this example…
AEC = Ardac Elite ccTalk core
F1 = Flash 1 module
V1101 = Version 11.01 ( core 11 )
It is possible to combine the firmware with a note table and program the entire file as firmware. In
this case the file size is 248K ( 253,952 bytes ).
The data inside each file is in binary format. The entire file must transferred to Elite, 128 bytes at a
time. No modifications to the data must be made.
If ccTalk protocol encryption is enabled then it must be left enabled for firmware programming.
Format of TX data is [ block ] [ line ] [ data 1 ] [ data 2 ]… [ data N ] where N <= 128
Loop until all the file data is sent. The last line may contain less than 128 bytes of data.