How to correctly document a PCB: Difference between revisions
mNo edit summary |
mNo edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
PCBs (Printed Circuit Boards) are the source and the goal of the whole MAME project. | PCBs (Printed Circuit Boards) are the source and the goal of the whole MAME project. | ||
They are the goal, because emulating their | They are the goal, because emulating their behavior and their working mechanism is what MAME does. | ||
They are the source, because every information in a MAME driver comes directly from them; and because the driver itself is a "virtual" PCB, mimicking the real one. | They are the source, because every information in a MAME driver comes directly from them; and because the driver itself is a "virtual" PCB, mimicking the real one. | ||
Line 8: | Line 8: | ||
''1) [[Taking pictures and other medias|taking pictures]]'' | ''1) [[Taking pictures and other medias|taking pictures]]'' | ||
''2) [[Dumping roms|dumping ROMs]]'' | ''2) [[Dumping roms|dumping ROMs]]'' | ||
''3) writing documentation'' | ''3) writing documentation''. | ||
Each of the 3 steps will have a separate article in the near future, detailing everything that is needed to know; for the moment let's just have a quick look at them. | Each of the 3 steps will have a separate article in the near future, detailing everything that is needed to know; for the moment let's just have a quick look at them. | ||
Line 15: | Line 15: | ||
With a digital camera you should take pictures of the whole PCB, both front (component) and back (solder) side. If the PCB consists of different boards packed one over the other, separate them and take pictures individually. If you can connect the PCB to a cabinet or to a test rig, do it; and take pictures of the game at boot up, at title screen, at intro and attract mode, and during game as well. | With a digital camera you should take pictures of the whole PCB, both front (component) and back (solder) side. If the PCB consists of different boards packed one over the other, separate them and take pictures individually. If you can connect the PCB to a cabinet or to a test rig, do it; and take pictures of the game at boot up, at title screen, at intro and attract mode, and during game as well. | ||
If your camera is capable of recording videos, film some seconds of the game during title / attract mode and in game. This task is needed if your PCB is particularly rare and good videos of the game are not available; filming kof2k is usually not needed ;) | If your camera is capable of recording videos, film some seconds of the game during title / attract mode and in game. This task is needed if your PCB is particularly rare and good videos of the game are not available; filming kof2k is usually not needed ;) | ||
Same goes for game sound recordings, they could be needed by MAMEDevs if your game is rare or with a discrete sound board or unusual custom sound chip. A game generating sounds out of | Same goes for game sound recordings, they could be needed by MAMEDevs if your game is rare or with a discrete sound board or unusual custom sound chip. A game generating sounds out of an AY-3-8910 usually doesn't require any recording. | ||
2) '''[[Dumping roms|Dumping ROMs]]''' is somewhat considered the "cool" part of the documenting process; it isn't. It's a long and tedious task requiring dedicated equipment, extreme accuracy, electronics background and a forgiving better-half | 2) '''[[Dumping roms|Dumping ROMs]]''' is somewhat considered the "cool" part of the documenting process; it isn't. It's a long and tedious task requiring dedicated equipment, extreme accuracy, electronics background and a forgiving better-half! ;) | ||
The minimum equipment required is an "EPROM programmer": that is a dedicated hardware and software appliance, where you will put the EPROMs extracted from the PCB and "read" them. The software will then save the content in a file on your PC. Obviously an EPROM programmer capable of reading 10.000+ different kind of chips is better | The minimum equipment required is an "EPROM programmer": that is a dedicated hardware and software appliance, where you will put the EPROMs extracted from the PCB and "read" them. The software will then save the content in a file on your PC. Obviously, an EPROM programmer capable of reading 10.000+ different kind of chips is better than one reading only some hundreds; and the cost for it will be proportional. | ||
You will probably also need one or more soldering irons, | You will probably also need one or more soldering irons, a hot air reworking station, some desoldering tools, pliers, screwdrivers, chip removers, etc. | ||
You will need to dump EVERYTHING that is dumpable on the PCB, so it will be PROMs, EPROMs, EEPROMs, maskROMs, flashROMs, PLDs, PALs, GALs, and everything else which contains a memory like MCUs and the like. | You will need to dump EVERYTHING that is dumpable on the PCB, so it will be PROMs, EPROMs, EEPROMs, maskROMs, flashROMs, PLDs, PALs, GALs, and everything else which contains a memory like MCUs and the like. | ||
You will need to dump every single chip a minimum of 3 times (possibly with different current/voltage levels) | You will need to dump every single chip a minimum of 3 times (possibly with different current/voltage levels) and compare the 3 reads to check if they match. If they don't you will have to figure out why, solve the problem and read them 3 times again. | ||
You will need to compare the files you dumped with already known files and check if there is any match. | You will need to compare the files you dumped with already known files and check if there is any match. | ||
3) '''Writing documentation''' is the last task for you, and it's even more tedious than dumping. | 3) '''Writing documentation''' is the last task for you, and it's even more tedious than dumping. | ||
All important parts of the PCB need to be listed | All important parts of the PCB need to be listed and their function explained. Worth documenting in particular are the frequencies of the crystal or ceramic oscillators, whose values are essential for determining proper timings and are all too frequently obscured by glare on photos. | ||
Also the pictures you took in step 1 must be listed, as well as files you dumped in step 2. | Also, the pictures you took in step 1 must be listed, as well as files you dumped in step 2. | ||
A meaningful description of the PCB is extremely important for MAMEDevs, they will only have it as a guide while coding a driver, so the more accurate you are the more likely there will be a working driver sooner or later. | A meaningful description of the PCB is extremely important for MAMEDevs, they will only have it as a guide while coding a driver, so the more accurate you are the more likely there will be a working driver sooner or later. | ||
Isn't documenting PCBs tedious? Well, it's also extremely satisfactory and ego-building; when you correctly document a PCB, and in a few days you have it emulated in MAME, you can proudly pat yourself on the shoulder: a piece of the arcade games history has been preserved for the future, and you were a part of it! | Isn't documenting PCBs tedious? Well, it's also extremely satisfactory and ego-building; when you correctly document a PCB, and in a few days you have it emulated in MAME, you can proudly pat yourself on the shoulder: a piece of the arcade games history has been preserved for the future, and you were a part of it! |
Latest revision as of 18:34, 11 July 2019
PCBs (Printed Circuit Boards) are the source and the goal of the whole MAME project. They are the goal, because emulating their behavior and their working mechanism is what MAME does. They are the source, because every information in a MAME driver comes directly from them; and because the driver itself is a "virtual" PCB, mimicking the real one.
We'll focus therefore on how to correctly extract information from a PCB, and how to organize them in such a way that this information will be useful to MAMEDevs when they'll code a driver.
Documenting a PCB is a 3 step job: 1) taking pictures 2) dumping ROMs 3) writing documentation.
Each of the 3 steps will have a separate article in the near future, detailing everything that is needed to know; for the moment let's just have a quick look at them.
1) Taking pictures and other media (like recording sounds and filming videos) is usually the first and easiest thing you can do with a PCB; no special expertise is needed for this task, just a little bit of patience and care. With a digital camera you should take pictures of the whole PCB, both front (component) and back (solder) side. If the PCB consists of different boards packed one over the other, separate them and take pictures individually. If you can connect the PCB to a cabinet or to a test rig, do it; and take pictures of the game at boot up, at title screen, at intro and attract mode, and during game as well. If your camera is capable of recording videos, film some seconds of the game during title / attract mode and in game. This task is needed if your PCB is particularly rare and good videos of the game are not available; filming kof2k is usually not needed ;) Same goes for game sound recordings, they could be needed by MAMEDevs if your game is rare or with a discrete sound board or unusual custom sound chip. A game generating sounds out of an AY-3-8910 usually doesn't require any recording.
2) Dumping ROMs is somewhat considered the "cool" part of the documenting process; it isn't. It's a long and tedious task requiring dedicated equipment, extreme accuracy, electronics background and a forgiving better-half! ;) The minimum equipment required is an "EPROM programmer": that is a dedicated hardware and software appliance, where you will put the EPROMs extracted from the PCB and "read" them. The software will then save the content in a file on your PC. Obviously, an EPROM programmer capable of reading 10.000+ different kind of chips is better than one reading only some hundreds; and the cost for it will be proportional. You will probably also need one or more soldering irons, a hot air reworking station, some desoldering tools, pliers, screwdrivers, chip removers, etc. You will need to dump EVERYTHING that is dumpable on the PCB, so it will be PROMs, EPROMs, EEPROMs, maskROMs, flashROMs, PLDs, PALs, GALs, and everything else which contains a memory like MCUs and the like. You will need to dump every single chip a minimum of 3 times (possibly with different current/voltage levels) and compare the 3 reads to check if they match. If they don't you will have to figure out why, solve the problem and read them 3 times again. You will need to compare the files you dumped with already known files and check if there is any match.
3) Writing documentation is the last task for you, and it's even more tedious than dumping. All important parts of the PCB need to be listed and their function explained. Worth documenting in particular are the frequencies of the crystal or ceramic oscillators, whose values are essential for determining proper timings and are all too frequently obscured by glare on photos. Also, the pictures you took in step 1 must be listed, as well as files you dumped in step 2. A meaningful description of the PCB is extremely important for MAMEDevs, they will only have it as a guide while coding a driver, so the more accurate you are the more likely there will be a working driver sooner or later.
Isn't documenting PCBs tedious? Well, it's also extremely satisfactory and ego-building; when you correctly document a PCB, and in a few days you have it emulated in MAME, you can proudly pat yourself on the shoulder: a piece of the arcade games history has been preserved for the future, and you were a part of it!