Could I have some opinions please. This sounds complicated at first glance but I'm sure there's a chip that'll help me out I've a job to look at that requires several, possibly a dozen, modules to hang off a PC com port. The PC holds 20-byte packets, which are complete messages in themselves. It has to look for a module that's not busy and send it a packet. The PIC in the module performs a small calculation and then returns the result back to the PC. BUT before it returns the result it has to wait maybe several seconds before doing so. This is because another external device has to do something the module will refer to. This means I can't perform the whole operation in sequence with each module before moving on to the next. In other words, 10 packets may be thrown out to 10 modules but each module will take an indeterminate time to return the result to the PC. A new packet might be available to send to this free module immediately, but if there isn't then this module will have to be ear-marked as free for the next available packet Each module can be assigned an ID number as part of the packet so the PC will recognise where a returned result came from. All of the modules will be together physically as plug-ins on a motherboard, which has one short cable to the PC 1:1 comms between a PIC and a PC I can manage, but what would be the most efficient way of fanning out a PC port to several devices ? I'm looking at either 19k or even 56k but speed isn't critical, particularly with such small finite packets. What I'd like to know is more about how to create a system that can be polled for an available module. Modules may be added or removed so the system has to be somewhat flexible. There can be no inter-connectivity between modules. Cost is especially critical - I'm stumping up for the prototype !!! But it's a shared venture and I daresay I'll be re-imbursed one day Which protocol would be most suitable ? What glue could I use between the PICs and the PC to indicate that a module is busy and/or is ready to send its result ? Is there a way to poll, for example, a Busy pin or would the PC have to re-communicate with each module to find out if it's still busy or free for a new packet TIA __________________________________________ Even if you're on the right track, you'll get run over if you just sit there -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.