One affordable solution would seam to be a multiple RS485 network with AVR slave relay nodes being accessed by a PC application. You can have your own unique protocol, or use AvrCo existing MODBUS or SLIP slave protocol implementations. MODBUS RTU is faster then MODBUS ASCII but it is binary so making master pc application is a little harder (Delphi MODBUS libraries exist to help you on this one). Although MODBUS RTU slave would fit in any AVR MEGA with 16KB flash I would recommend some 32KB model to avoid surprises in case of future expansion. SLIP protocol is more modest on flash usage but someone else should be more competent to say more about it. Since we are talking RS485, USB support in AVR is totally irrelevant. AVRs with a single COM port are enough since with half duplex RS485 network, single master and each node having unique ID, only one node will reply at a time. On pc side all you need is one or more USB<>RS485 converters that add RS485 as a COM port to your computer. MOXA makes few models. RS485 supports up to total of 127 nodes (including repeaters) on a cable with up to 1200m in total length. After each 32 nodes you must put a repeater. After each 1200m you also must put a repeater. There can be a maximum of 9 repeaters. These rules force you to use 2 RS485 networks (if you are ready to live with a 2*127-NumberOfRepeaters node limitation) or even 3 RS485 networks if you want full capacity of 255 nodes as in your request. This is easy to achieve since you can use multi wire single cable that holds 2 (or 3) RS485 networks. So in a simpler 2 RS485 networks config you would have a PC with 2 USB<>RS485 convertors, and up to 124 AVR nodes with up to 3 repeaters on each RS485 channel, which means that a maximum of AVR nodes with 2 RS485 networks would be 2*124=248. AVR nodes would need a power supply, termination if they are last node in RS485 network, and a way to have a unique address ID (you can hard code it into each node, or use DIP switches for unique IDs). I would personally make 124 green relay boxes, 124 blue relay boxes, 3 green repeater boxes, 3 blue repeater boxes, 2 USB<>RS485 convertors, and 2 terminator endings. Each box would have 1 input and 1 output multi wire cable, with green boxes connecting to RS485 net number 1 (and just passing through wiring of net number 2), and blue boxes connecting to RS485 net number 2 (and just passing through wiring of net number 1). All AVR boxes would have the same MODBUS RTU firmware, with unique ID read from eeprom and printed on the box. That way users would just need to connect node boxes with appropriate cables, terminate last nodes, connect power, and follow simple rules when to put repeaters. PC application then calls one by one both RS485 network nodes in it's initialization, and enables their visualization and control.