Jump to content

mark_mcdade1

Members
  • Posts

    2
  • Joined

  • Last visited

Everything posted by mark_mcdade1

  1. <p>I just bought a Jobo ATL-1000 and wanted to be able to change program parameters like you can with an ATL-1500. I took the control panel eprom out (27c256-12), copied it and began looking at the code. Omer Hecht of Catlabs was very generous in helping me find information on the ATL hardware. After some examination, I was able to understand the contents of the chip and reprogram it without much difficulty. This post documents the operation of the chip so others can modify their systems. The usual disclaimers apply - I can't take any responsibility for bad things that happen if you reprogram your machine and it gets damaged or doesn't work. Don't try this unless you have a solid understanding of microprocessors, eproms and hardware control. Absolutely don't reprogram your original chip - copy the data from it and use that as a starting point for programming another chip. Additionally, my understanding of the architecture of the ATL-1000 is incomplete and still growing - maybe others in this community can correct my mistakes and add details and share them. Unfortunately, I must add that I have a full time day job so I can't spend a huge amount of time with this but I'll be glad to answer questions through this forum (I also happen to love photography and actually plan to process a bunch of film in the ATL!).</p> <p>You cannot make an ATL-1000 into an ATL-1500 by changing the contents of the chip. Within some limits, you will be able to change the preset programs to meet your needs. One of the primary limits is that the first 8 programs are set at 100 degrees F. processing temperature, the next 7 are at 75 F. and the last (normally used for cleaning) is at room temperature. I think you are stuck with that. Also, the architecture of the control panel does not lend itself to 'on-the-fly' reprogramming like the 1500; you have to burn a new eprom with new data. I did realize by accident that you can pretty easily double the total number of programs from 16 to 32. When I started experimenting, I only had 512k byte chips available instead of the original 256's. They have the same number of pins and I put the same data in both the top and bottom half of the double-size chip and it works fine. In the future, I'll wire a switch to pin 1 of the chip (with pin 1 out of the socket) and by selectively taking the pin to ground or +5v., I'll be able to select whether the machine sees data set one or data set two.<br> <br />So, here's what I found -<br> <br />The data from the chip is in 16 obvious blocks, each of which corresponds to one of the processing programs, 1-16. I expected to see cpu instructions in the chip but when I examined the data, it looks like, well, data. After some study, I figured out that the processor in the ATL-1000/1500 is a National Instruments COP-8 which contains its own internal prom where the microprocessor code lives (BTW, that begs the question of figuring out how to back that up). The microprocessor's internal code appears to act as a virtual machine (maybe implemented as a state machine?) which executes the bytes from the eprom. At ATL startup, the cpu does some housekeeping tasks like making sure the water is up to temperature and then it reads the program selector dial. It then jumps to the portion of the eprom with the data for the selected process (for example, if you've set '16/clean', it goes to the first byte of the 16th data set in the eprom). Each 'program' in the eprom is given a fixed 2048 bytes (800h), located one after another. </p> <p>Here's where things start to get interesting. It turns out that each byte is a tiny instruction which is executed and then followed by a pause of about 2.2 seconds, after which the processor fetches another byte and repeats until it sees a hex E0 which is the 'end of program' instruction. Basically, when film processing is running, the cpu just acts as an electrical switch mechanism and timer, turning things on and off per the instruction byte and then waiting a couple of seconds before fetching and executing the next one. The 2.2 second per byte number is somewhat inexact and is based on timing from the ATL instruction book, examining the original data and timing the actual machine. Reading the COP-8 architecture data indicates that the timer interrupt produces something nearer 2.097 seconds so there is likely some invisible latency and setup time involved.</p> <p>The data (instruction) bytes are encoded as follows (bits numbered 7-0, left to right):<br> bits 7-5 hold the process step number (or bottle number) - step 0 is pre-wet and 1-6 are bottles<br> bit 4=1 sets 'rinse' for a process step (the rinse light comes on - maybe other things happen???)<br> bit 3=1 opens the water inlet valve to fill the tank with water for rinsing<br> bit 2=1 turns on the air pump to send chemicals from the selected bottle (bits 7-5) to the drum<br> bit 1=1 stops drum rotation and picks up the drum for draining<br> bit 0 - ??? - this is used in Jobo's data stream, typically at the end of a step, but it isn't clear what it does</p> <p>In general, bits 4-0 are set to zero while film is just being rotated during processing. They are set to 1 for the amount of time (# of identical bytes = seconds/2.2) required to perform a given task such as chemical transfer from bottle to drum. So, the way the system works is that each 2.2 seconds of operation is encoded using a data byte, per above, and the process reads data until it sees a hexadecimal E0 instruction and stops. This leads us to another small programming limitation - you can only get enough bytes in 2k of eprom to time about 75 minutes at 2.2 seconds/byte - not really a big problem and, I believe, one that's shared with the 1500.</p> <p>If you modify the programs, you need to pay attention to the times that are required to fill and drain things and you should think about whether timing starts when solution first enters the tank or after it's all there, etc. You can easily use the original program as a guide in these areas. So far, my only experiment has been to change the cleaning program from 6 bottles to 3 (like in the ATL-1500) and that worked perfectly.<br> <br />Please let me know if you are able to add to this knowledge and if you are able to apply it successfully.<br> Mark</p>
×
×
  • Create New...