• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

controling 400 electro magnets with linux

Not open for further replies.


New Member

i need to control a 20x20 field of small electro magnets with linux. every magnet should be controllable individually, but just on and off.

is it possible to use the serial port for this amount of devices?
how can i control them without building special hardware for the pc?

because i'm a little enoyed to put together 400 small electro magnets, are there any standart parts (magnetmatrix) available?

every advice is welcome.

ps: sorry that this post was originally placed in the robotics section.


I dont know of any standard parts, but a simple approach might be to use a micro to receive your serial data. Since you want only on/off, at 9600 baud (relatively slow), you could update the entire array in about 50ms.

Using a serial port, my approach would be to use a series of 74XX595 latches so that they could be loaded simulataneously. Those would drive the base of a power transistor to switch the coils. The micro is basically to convert the serial data to the mapping of rows and columns in your matrix.

For instance, I would probably divide the array into a series of 25 4x4 blocks. Each block is then controlled by a pair of bytes which I would use a serial latch to setup. Then with hopefully a spare port on the micro you can control a pair of 4:16 decoders that will then tell the proper latches to load the data. You might need some buffers to drive that kind of fan-out but it seems that it would be fairly straightforward and would allow you to refresh the entire matrix 20x/second or with smarter software you could select which blocks to activate.


New Member
Try thinking 3 dimensional. Arrange your magnets in a cube fashion and select them on 3 axis, x,y, & z. You could use 3, 4x16 decoder chips off the parallel port to get the selects. Wire first chip to bits 0-3, second chip to bits 4-7, and third chip to control register bits. Each magnet driver would require a 3 input "and" gate wired to decoder outputs with a unique x,y,z drive to select it. You can select more than 400 (16^3) in this fashion but you cannot do multiple relays without some extra hardware to lock/hold them up.
Not open for further replies.

EE World Online Articles