PCI simplified

Even though PCI is really common it usually doesn’t see experimentation by amateurs because of its high performance nature. ChaN decided to build a system to demonstrate that PCI is within the reach of hobbyists. He does this with just 1 GAL, 2 identity comparators, and 4 latches. To pull this off a couple design rules have to be violated. For example: There is no configuration register so the target address has to be set with DIP switches. Something you would never see in real life. ChaN has been posting electronics projects for quite a few years and his site is well worth further investigation.

Post navigation

31 thoughts on “PCI simplified”

Perhaps I’m just an idiot, but what *is* it? OK, he made a PCI card which is really cool and certainly demonstrates his l337 ub3r electrical engineering 5ki11z, but what does said PCI card do? Someone please clue me in.

Once you have a PCI card that has a register that can be read from and written to, you can do anything. Simply replace the latches with your favorite FPGA, interface to another microprocessor or dsp, and you are set. You could set up an array of FPGAs on a pci card to create a hardware based password cracker. FPGAs have been used in the past to do this. You could interface the FPGA to optical relays that control 110V relays, for turning on and off 110V outlets. You could add ADCs to read temperatures, voltages, pressure, humidity, etc etc. You could add a DAC to make your own sound card or function generator.

This is fantastic! There are loads of possible applications for this kind of hack.

*Hackers, if you had the money, skill, and time to create your own custom PCI card, what would you have it do?*

I envision one that holds RAM DIMMs and uses them as a ram disk to speed up the swap file. It could incorporate lithium polymer batteries that could hold the volatile information if power were to unexpectedly go out and the system did not have the time to back up the ram disk to hard disk.

A custom PCI board could come in handy for testing other hacks. I recall a certain serial dongle in my uni’s projects lab that had 18 kajillion leads and proprietary software that was used to record and display digital waveforms for testing logic circuits. It was almost certainly ridiculously expensive, but I bet you could do it as a PCI hack for significantly less.

Although, actually, pretty much any hack that involves computer I/O could be redone as a PCI board.

A good example that comes to mind was a feature we had considered but dropped for a project I worked on in said lab. We wanted to record wind speed and direction, but all the commercial wind gauges we could afford served up analog signals and all the digital interfaces were too expensive. A PCI hack could have been devised to convert the analog signals from a cheap wind gauge into digital signals and feed them to our project software.

Well… most projects I can think of to do with PCI could also be done with serial/USB connections. Just the PCI way saves having to build a robust enclosure, since your PC is now your enclosure for all but the actual sensor. Which is helpful in its own way, of course.

I guess the real question is can anyone think of a PCI project that *couldn’t* be done on USB?

By far, the worst case of Engrish I have ever seen. “The PCI seems to be thought that it cannot be touch in the hand of amateurs due to the high performance of the PCI.”
I would make a PC diagnostics tool (possibly with LCD readout and battery on-board) as a PCI project.

PCI bus is for high speed data comm and it’s a hell to implement… if you want to activate relays please use serial or paralel ports or even a USB/serial converter to do so… don’t use a cannon to kill a fly!

Being a case modder, I’d love to use something based on this which could simply switch relays (or actually transistors would be better) and see if switches were switched on/off. That in itself would be very nice, because with the software that you’d surely have to make for it, you could totally automate your case (or a robot if you wanted to). Only problem would be figuring out how to write software that could communicate with it. Also to even build those simple features I described is way above my head.

how about a fan/cold cathode controller that has as many outputs as you want. power can come from Pci and if you need more juice, from molex connetors. you could write routines for it to run or control it from a gui console. you could sprinkle temperature sensors through the case and set up temp thresholds for the fans so they automatically vary themselves with load, just like the controllers on the motherboard. you could set up cooling zones so if one zone becomes hotter than another, just those fans kick into action and rectify the situation.
for lighting you could have optical sensors that determine how dark it is and vary the intensity of the light based on that.

the problem with these suggestions is that the PCI interface (i know thats redundant)is completely unnecesary. Yuo could just grad the power from a spar molex connector and make yur own simple circuit with a microcontroller and some sensors. You’d only need the PCI to work in conjunction with software, and it seems like a lot of people wouldn’t want to get into that.

Yeah, nice thing. But the problem is, the PCI specifications are completely closed out to the public. Well, general public that is. You have to become a member of the pci-sig group in order to legally access all the PCI documentation, and the annual fee is $3000 a year.

It’s responses like #1 that confuse the hell out of me. We apparently live in a world where “ultra leet” speak is more important than knowledge. The last time I checked, being a “hacker” wasn’t a status symbol. It was one persons desire to understand the secrets and inner workings behind closed doors.

For the record, the knowledge of how a PCI card works is MUCH more important than WHAT it can do for you. It’s what YOU can MAKE it do. So, a “hack” is something YOU do to the computer to produce results. Custom results. You make it behave in a way you want it to behave. And, if the feeling of playing God with your computer isn’t enough to rock your ultra leet socks off…

I believe Nintendo has a user friendly interface. Please, go play Mario Sunshine and smile.

It’s responses like #1 that confuse the hell out of me. We apparently live in a world where “ultra leet” speak is more important than knowledge. The last time I checked, being a “hacker” wasn’t a status symbol. It was one persons desire to understand the secrets and inner workings behind closed doors.

For the record, the knowledge of how a PCI card works is MUCH more important than WHAT it can do for you. It’s what YOU can MAKE it do. So, a “hack” is something YOU do to the computer to produce results. Custom results. You make it behave in a way you want it to behave. And, if the feeling of playing God with your computer isn’t enough to rock your ultra leet socks off…

I believe Nintendo has a user friendly interface. Please, go play Mario Sunshine and smile.

I think it’s pretty neat even though it does not implament an auto configureation registor.
It could be useful in allowing one to hook up an LCD or relay box to a legacy free machine esp a macintosh as they have no parallel ports new world ones even lack general serial IO and only have USB and 1394.
Yes one can use a usb interface box but these do cost $130 a copy and they sometimes only come with a windows only driver and may have poor documentation making it difficult to write a new driver.
As on the PCI bus specs they have been loose in public for sometime pinouts and bus timings are publicly avilible so ignore pixel’s remarks and have fun.

very nice ideas. But has anyone have already more information about how to build your own pci, i’m very interested due to a project on school where i need a very fast interface to the pc, and i saw this topic and well if anyone knows how to read and write to a PCI device this would be a very nice solution. (Maybe some kind of schemtics or software?) I hope you guys can help me, i also searched very much on the internet but didn’t find anything to help, only some timing schemetics.

“You have to become a member of the pci-sig group in order to legally access all the PCI documentation, and the annual fee is $3000 a year.”
Or you can order the PCI 3.0 spec as a non-member at $1000:http://www.pcisig.com/specifications/order_form

some one should make a template kind of thing so that people can expirement with the card and not have to solder any thing together th use it unless the want to. I for one want to make a custom sound card that sounds like the 1981 PC speakers they useed to put in IBMs. good times, good times…