Willie Wortel


Hacking the dacal DC300

Why?

A colleague of mine has two of these dacal systems:

Because of the lousy software to control these things,
he asked me if I could hack them and create an application so that
he can control them with PHP and a database.

The solution

The application runs in the system notification area and functions as a TCP/IP server.
To debug the app, I simply let the program listen at port 23:



It support the commands:
"scan" to show a list with devices their ID and an index number,
"pos" to control the disc at a certain position,

e.g. pos 5:20 opens or closes (depending on the current status) position 20 of device 5.
The picture above shows index 5 because it was defined in the .ini file.
The normal application can only handle up to five devices.
But if I can implement multiple device support, why would I limit it to five?
Therefore my application can support up to twenty devices which can easily expanded to more.

The php part

Internals

Some people still are experiencing problems with programming USB, so does this manufacturer. Controlling the position is done in a strange way. Normally a USB device has a couple of string descriptors which says what device it is ,
who the manufacturer is etc. There is not quite a limit to the number of string descriptor. What the manufacturer did , was giving each position it's own string descriptor. All descriptors are saying "ACK", when one of these descriptors is requested, the firmware notices which descriptor is requested and the corresponding position is selected and the string is send to the host. Since the string holds "ACK", the host software receives a sort of acknowledge.
The most likely method would be to send sort of command to the device, but this was propably to diffucult, so this funny method has been used.




Register your domain name and build your site at UNI.CC Valid HTML 4.01 Transitional