7
\$\begingroup\$

I have an old controller card from a pc which had to control some stepper engines. But there are several problems with it:

  • The pc isn't working anymore, and I have no access to the program which controlled the card because of a hard disk failure;
  • I have no manuals at the moment for the devices which has been controlled, because it is custom made.

But after the circuit consists only of 8 ICs and 6 capacitors and every wire on the pcb is shown clearly, I want to try to reverse-engineer the card, because we want to use the controlled devices again.

Thus, my idea how to solve the problem is:

  • Use eagle to draw the board and the devices;
  • Simulate it;
  • Try to figure out what happens if I play around with the input.

Is this a useful approach? If no, what can I do else?

Problem with this is that there are two programmable ICs on this board (P8255A), and I do not have the internal programming. Thus my second question is: Is there a possibility to get the programming of these ICs out?

Edit: What I may have not completely stated is that I am not able to simply get the datasheet for the stepper motors, there is still a controller between the stepper motors and my card, and all the stepper motors are built into a spectrometer where I have no access to...

Edit 2: Some Images:
Front:

Back:

\$\endgroup\$
6
  • 1
    \$\begingroup\$ Interesting. Some photos would be nice. \$\endgroup\$
    – Dzarda
    Commented Sep 5, 2014 at 13:45
  • \$\begingroup\$ Do you want to do that, too? Or just for fun? But I can provide them soon. \$\endgroup\$
    – arc_lupus
    Commented Sep 5, 2014 at 13:47
  • \$\begingroup\$ To be honest, just for fun :) \$\endgroup\$
    – Dzarda
    Commented Sep 5, 2014 at 13:58
  • 1
    \$\begingroup\$ @Dzarda: Done, images are added \$\endgroup\$
    – arc_lupus
    Commented Sep 5, 2014 at 17:48
  • 4
    \$\begingroup\$ Did you not have backups? Why on earth did you not have backups! Fix that first!!!! \$\endgroup\$ Commented Sep 5, 2014 at 21:25

5 Answers 5

4
\$\begingroup\$

The P8255A has no internal program storage- any "programming" is done externally, so you don't need to worry about that- the program in the PC is where the configuration is done.

As far as reverse engineering an old card like that, it should be possible. If it's an edge-connector ISA card, it won't be particularly cheap to have a new card made. You might be breaking some copyright rules by using the software with your own card, but I'll let you investigate that (non-technical) issue. There used to be perf board available with an ISA edge connector pattern on it. With only 8 ICs it could easily be wired up with magnet wire on a perf board in an hour or three, but it would be easy to miss something and have a heck of a time troubleshooting it.

Edit:

On your board they didn't bother getting either solder mask or gold plating on the edge connector contacts. Pretty infra-dig but I guess it worked for a while. Even gold flash would be better.

Here's the Vector prototyping board #4613-1, Digikey still has 15 in stock (but they'll not be re-ordering).

\$\endgroup\$
2
  • \$\begingroup\$ I have no copyright issues (as I assume), everything was done at our working group here in university... \$\endgroup\$
    – arc_lupus
    Commented Sep 5, 2014 at 13:45
  • 1
    \$\begingroup\$ Vector 4613-3 ISA prototyping board for much less money than Digikey. More than 10 in stock. \$\endgroup\$ Commented Sep 6, 2014 at 17:22
3
\$\begingroup\$

Get the data-sheets for the stepper motors and start from scratch with a new hardware interface and software.

I say this because your hard disk is dead and therefore you cannot possibly ever know the subtleties that the PC card did when driving the motors. The P8255A is a programmable peripheral interface and takes commands from the software running on the PC and, like i said you don't know how this works.

\$\endgroup\$
4
  • \$\begingroup\$ See my explanation, this way is not suitable for me (even if it would be an easier approach...) \$\endgroup\$
    – arc_lupus
    Commented Sep 5, 2014 at 14:09
  • \$\begingroup\$ You said, in your question "I have no manuals at the moment for the devices which has been controlled" - are you now saying that you will never get the manuals? \$\endgroup\$
    – Andy aka
    Commented Sep 5, 2014 at 14:36
  • \$\begingroup\$ I will get them as soon as the constructor has been returned to the university, but that is no fixed date... \$\endgroup\$
    – arc_lupus
    Commented Sep 5, 2014 at 15:54
  • \$\begingroup\$ Update: My last controller burned up, now I will start from scratch and do my own... \$\endgroup\$
    – arc_lupus
    Commented Aug 6, 2015 at 18:25
3
\$\begingroup\$

The 'interesting' part that's worth your time starts at whatever that cable leads to and comes back to this board, connecting to the haywired 7407 and 40 pin DIP. Is there something attached to the socket connector as well?

Start with a block diagram. One box for each IC, with a sense of the interconnections. Get data sheets for the ICs and paste the IC diagrams in a working area (physical or digital) and sketch in the connections. The closer you get to the gold fingers, the less detail you want. That part is something you buy.

The board is semi-custom- the 7407 below one 40 pin DIP is in a "prototyping area". You'll want an accurate schematic for where every wire in the cable goes to, and then what those spots do. The whole prototyping area. Once you've got that, you can start looking for another commercial product that will support the same interface to the same 40 pin DIP (P8255?)

Don't reverse engineer the rest of the board. That's reinventing the whitewall tire. No value. It provides bus interface to the 40 pin DIP. The cabling and 7407 tell you what the DIP is doing. Software to set and operate the thing will be defined by what signals go up the cable.

"Simulation" is sorta-CSI-on-TV stuff - there is something that looks like it, but that's not where the real work is done.

added next day: I don't have 'comment' privileges yet.. apparently!

Thank you! Its nice to feel useful. A quick Google search for "XT Peripheral 8255" produces pictures of a number of other boards with similar chip collections, one of which has a prototyping area: http://www.pci8255.net/windows-2.htm. There's a link to an 8255 data sheet there too, tutorial stuff.

The catalog from the same company http://www.pci8255.net/catalog.htm includes a stepper motor controller and software is available for Windows and Linux.

Search "pci 8255" and you'll find press releases from 2001 and products available now in the $200 and under range. Looks like getting an 8255 on that bus isn't a problem. Next question: Is that the bus you want to be on? You might want USB, or whatever is most popular in commodity PCs that come to market tomorrow.

Search "stepper motor" and your choice of bus, you may find a complete solution. But you'll need a complete sketch of that cable and interconnect to the 8255 in any event. And through the interface card to the motors.

\$\endgroup\$
0
2
\$\begingroup\$

Since you say that there is another controller between the PC card and the stepper motors, I think I would try to determine the protocol required to control that other controller, and determine the best way, using current technology, to talk to that controller.

\$\endgroup\$
1
\$\begingroup\$

Your approach seem to be useful. Drawing schematic is the first step in reverse engineering. Hewever, just a simulation does not help much in investigation of right stimuli. You'll need to decipher schematic and understand how it works with your own brain.

'Programmable' in P8255A does not mean it is preprogrmmed on factory. It is programmed by the driver on every startup. Datasheet will give you idea, how it is (should be) done. Programming of 8255 is quite straightforward: there's a set of four registers, three are directly mapped to ports A, B, C IO pins, and one controls mode of operation. I suppose that stepper motor drivers are directly connected to port's (A, B, C) pins. So bits in port registers would just turn on/off corresponding coils.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.