Aleratec Auto Publisher LS
| General Info | |
|---|---|
| Release Year | 2007 |
| Manufacturer | Aleratec |
| Device Category | Storage |
| Condition | Working |
| Technical Specifications | |
| Software Environment | Windows XP |
| Storage Interface | USB Type-B |
| Power Requirements | |
| Power Connector | IEC C13/C14 Socket |
| QR Code | |
A three drive 200 disc capacity CD drive robot. Intended for disc duplication for medium volume publishing on CDs or DVDs. Uses a single USB type B connector with an internal hub to connect to a serial adapter and three IDE adapters.
The device was only ever intended to be use with Droppix Recorder XE, specifically a copy provided with the machine that comes with a custom driver for interfacing with the disc robot. The communication interface cannot be configured through the software as it auto detects the robot serial interface and the Lite-On brand drives through the USB adapters.
Internally the device uses a standard ATX PSU.
Examples
| Example Info |
|---|
Serial Commands
The serial interface operated at 9600 baud, 8 bits, even parity, 1 stop bit. The DTR line must be held low during the entire operation.
Commands use a prefix+config setup to send data with the commands. The end with a linefeed.
Drive and Hopper IDs start from 1.
Drives are numbered 1,2,3 starting from the top to the bottom.
Bins are numbered 1,2,3,5 starting from the front to the rear. The post under the drive trays is bin 5.
Samples
Initialization - Post Calibration
This command sequence is run by the original software when initializing the robot after it has been setup.
C08D9n1
C08D9n2
C02D01
Robot Test
This is the post-calibration test that the robot does to ensure the positioning is correct for all bins and drives.
C10D01N0005
C01D01
C02D02
C01D01
C01D02
C03D01N0001
C02D02
C04D01N0003
C02D01
Set Calibration Value - C09
The original software sets all possible configuration values on first boot. It afterwards re-sends the properly calibrated configuration values which overrides the defaults.
You can find a list of all config commands here: https://github.com/AkBKukU/pyDiscRip/blob/web/handler/controller/AutoPublisherLS.py#L75
C09D10N### - Drive Angle
Position the arm can drop the disc into the drive trays
Provided as offset from rotation home
My value: -125
C09D11N### - Bin 1 Angle
Provided as offset from rotation home
My value: 637
C09D12N### - Bin 2 Angle
Provided as offset from rotation home
My value: 1356
C09D13N### - Bin 3 Angle
Provided as offset from rotation home
My value: 2106
C09D15N### - Bin 5 Angle
Provided as offset from rotation home
My value: -140
C09D20N### - Lowest position
Provided as offset from top
My value: 1832
C09D21N### - Drive 1 Height
Provided as offset from top
My value: 575
C09D22N### - Drive 2 Height
Provided as offset from top
C09D23N### - Drive 3 Height
Provided as offset from top
C09D67N### - "Short Tray" Tray Slide
An amount to slowly move disc in from the side to avoid running into the lip of a drive that extends over the tray.
Provided as offset from top
Default: 50
Get Calibration Value - C08
Move Arm - C07
Moves are started and then stopped. You do not "step" motion is controlled by time.
Move Stop - C07D0
Must be issued after any other move command before running into the end of range of motion
Move Up - C07D1
Move Down - C07D2
Move Clockwise - C07D3
Move Counter-Clockwise - C07D4
Quickly Move Up - C07D11
Quickly Move Down - C07D12
Quickly Move Clockwise - C07D13
Quickly Move Counter-Clockwise - C07D14
Response
| Test | Sent | Received |
|---|---|---|
| C07D2 Without Disc | C07D2
|
S05C07E00I00010111O11111111
|
| C07D2 With Disc | C07D2
|
S05C07E00I01010111O11111111
|
Clear Drive - C10
Checks if there is a disc in the drive and if there is moves it to specified hopper. Used as an initializing step to ensure all drives are in a known, empty, state. Example use case shows putting unexpected discs on the 5th bin spindle.
C10 differs from the C4 unload by pausing when holding the disc away from the drives to give time for the tray to close.
Clear Load? - C11
This command exists as a mirror to C10 presumably but does not appear to have a functional different from the C3 load. It will load a disc as expected though.
| Command | Drive Delimiter | Drive ID | Hopper Delimiter | Hopper |
|---|---|---|---|---|
| C10 | D | 01 | N | 0005 |
Response
| Test | Sent | Received |
|---|---|---|
| C10 Without Disc | C10D02N0005
|
S08C10E13I00010111O11111111
|
| C10 With Disc | C10D02N0005
|
S04C10E00I00110111O11111111
|
Load - C3
This will take a disc from a provided bin and put it in the provided drive
| Command | Drive Delimiter | Drive ID | Hopper Delimiter | Hopper |
|---|---|---|---|---|
| C3 | D | 01 | N | 0001 |
| Test | Sent | Received | Note |
|---|---|---|---|
| C3 Without Disc | C03D02N0001
|
S08C03E12I00000111O11111111
|
Detect error/empty-bin by looking for E12 in the output. |
| C3 With Disc | C03D02N0001
|
S04C03E00I00010111O11111111
|
Unload - C4
This will take a disc from a provided drive and put it in the provided bin
| Command | Drive Delimiter | Drive ID | Hopper Delimiter | Hopper |
|---|---|---|---|---|
| C4 | D | 01 | N | 0001 |
Motor Control - C05
Disable Arm Steppers - C05D00
Turns off stepper motors which allows manually moving the arm.
Enable Arm Steppers - C05D01
Turns on stepper motors which prevents manually moving the arm.
Enable Multi-step Commands - C05D02
Allows multi-step commands to work. These include C3, C4, C10, C11.
Disc Clamp Control - C06
Release Disc - C06D00
Releases the solenoid holding the disc clamp
Grab Disc - C06D01
Activates the solenoid to engage the disc clamp
NOTE: It seems that any command starting with C06 that doesn't end with D00 is treated the same and will release the disc.
Clear Calibration - C01D00
Wipes all calibration data. Sent before calibration data by original software. Also prevents responding to other commands.
Clear Alarm - C01D01
If a previous command ended with an error or alert this will clear the status and allow more commands. Failing to send this command after an alarm will prevent the robot from responding to other commands.
Emergency Stop - C01D02
Cancels current command and stops arm. Appears to also need home position recalibrated after.
Longer commands like C3, C4, & C10 will send updates about the movement status as responses like T10D1. These can be used to interrupt a longer command at a specific point.
End Calibration - C01D03
It's unclear what this does, but it is sent after sending calibration data.
It seems like it re-enables thee ability to send more commands but only if cal data was sent. All commands will error after sending this without cal data even if you send the clear alarm. It also activates the disc clamp if no cal data was sent.
Home X & Y - C02D01
Moves arm over drive trays to home position without checking sensor for end stop
Home Y - C02D02
Home arm height
Home X - C02D03
Home arm rotation
Move Arm To Drive Angle - C02D04
Moves arm rotation to the calibrated position of the drive angle
Move Arm Clear of Drives - C02D05
Moves arm rotation clear of the drives to a fixed position away from the drive tray. This is likely the position the end-stop sensor for rotation stops detecting the arm.
Possible aliases: C02D14, C02D30
Move to Bin 1 Calibration Position - C02D11
Move to Bin 2 Calibration Position - C02D12
Move to Bin 3 Calibration Position - C02D13
Move to Bin 5 Calibration Position - C02D15
Move to Drive 1 Height Calibration Position - C02D31
Position of first drive tray
Possible aliases: C02D38
Move to Drive 2 Position - C02D32
Position of second drive tray
Move to Drive 3 Position - C02D33
Position of third drive tray
Possible aliases: C02D34, C02D35
Move to below home ? - C02D36 & C02D37
Responses
Initialization
PARAM01D4 - No clue
PARAM02D1 - Probably means ready for calibration
PARAM02D3 - Could mean already has calibration
Status Codes
S01C01E00I11111000O11111111 - Probably something is bad wrong
I######## Section Universal Values
| ? | Disc Touch Sensor | Vertical Home Sensor | Rotation Home Sensor | ? | ? | ? | ? |
|---|---|---|---|---|---|---|---|
| 0 = No Disc
1 = Disc Found |
0 = Not Home
1 = Above Home |
0 = Not Home
1 = Home-ish |
|||||
| Likely offset AngleRoboticArm calibration data |