Home

27c801 EPROM Programmer Project

This project is based on EPROMr 2.0, (C) Copyright 1998 Lewin A.R.W. Edwards. Lewin A.R.W. Edwards can be contacted at sysadm@zws.com, http://www.zws.com, or by telephone at (+61) 412 809805

Upgrade your Samsung 709 firmware at your leisure, for less than £15!

Overview - Tools - Schematic - Parts List - Construction - Testing - Operation - Firmware Installation - Links

Download the software for this burner - samsung.zip

Updated! 24/1/01: Added link to Mindwarped's great new EPROM programmer message board - here.

Updated! 4/1/01: HSG has produced an excellent diagram showing all of the Veroboard connections. It's in Microsoft Word format - download it.

Updated! 23/12/00: New Samsung instruction manual site created. Try here for Samsung DVD player manuals.

Updated! 23/12/00: New Samsung firmware mirror site created. Get the latest 3.32 firmware from here - thanks to Manticore for dumping it. Enter firmware site.

Updated! 22/11/00: Phil Grant (Gadjet) has designed a superb PCB for this project. See http://www.gadjet.co.uk.

Updated! Keith Clark's excellent FirmTWEAK program allows you to change the default logos and fonts in your Samsung player's firmware. Grab it from the 709online download site.


Overview, by Mike Gordon

The objective of this project was to produce a simple and cheap EPROM burner that could be used to upgrade or change the firmware of a Samsung 709 (or equivalent) DVD player. The firmware is stored in an 8MBit (1 MByte) EPROM, a SGS-Thomson 27c801 32-pin device.

I was familiar with Lewin Edwards' EPROMr2 project, a parallel port EPROM burner controlled by software running under DOS. The burner did not have support for the 27c801, however, so I set about modifying the burner and software in order to support this device. For the purposes of this tutorial, I decided to produce a simplified version of the burner and software exclusive to the 27c801 EPROM. The burner is built on Veroboard and can be constructed very cheaply - typically less than £15 for all of the parts. Read on...

 

Tools (and other things) you'll need

 

Schematic

Here's the schematic (circuit diagram) for the burner you're going to build. If you don't understand what the symbols mean, don't worry! I'll go through the construction stages step by step.

 

Parts List

Note: I've specified a standard socket for the EPROM, Maplin KW69A, to keep the cost of the burner down. A 32-pin ZIF socket, such as Maplin JK75S, will add around £10 to the cost of your burner but will greatly simplify inserting and removing EPROMs. You could always build the burner with a standard socket, then plug a ZIF socket into it at a later date if you want!

Component

Qty.

Maplin Code

Maplin Price (ea.)

Total Price

Strip Board, 39 strips x 62 holes 1 JP50E 1.95 1.95
BC547 Transistor (Q1) 1 QQ14Q 0.06 0.06
BC557 Transistor (Q2) 1 QQ16S 0.07 0.07
16V 4.7uF Tantalum Capacitor (C2) 1 WW64U 0.25 0.25
35V 470uF Electrolytic Capacitor (C1) 1 VH47B 0.37 0.37
50V 0.1uF Ceramic Disc Capacitor 3 BX03D 0.12 0.36
SIL Resistor 47k ohm (R2 - 9) (parallel with 100k to give 33k) 1 RA31J 0.14 0.14
SIL Resistor 100k ohm (R2 - 9) (parallel with 47k to give 33k) 1 RA32K 0.14 0.14
Metal Film Resistor 33k ohm (R10, 12) 2 M33K 0.06 0.12
Metal Film Resistor 82k ohm (R11) 1 M82K 0.06 0.06
Metal Film Resistor 240 ohm (R1) 1 M240R 0.06 0.06
10k ohm horizontal linear preset (VR1) 1 UH03D 0.18 0.18
LM317 variable voltage regulator (IC1) 1 RA87U 0.42 0.42
7805 +5 volt regulator (IC2) 1 AV16S 0.67 0.67
4040 12 bit binary counter IC (IC3, 4) 2 QW27E 0.84 1.68
16 pin DIL IC socket (for the 4040s) 2 BL19V 0.16 0.32
32 pin DIL IC socket (for the EPROM) (IC5) 1 KW69A 0.59 0.59
2.1mm power connector 1 RK37S 0.42 0.42
25 Pin D-type plug connector (CN1) 1 FG68Y 0.98 0.98
Total (excluding VAT)       8.84
Total (including VAT)       10.39

The parts list is for the burner itself and does not include a mains adaptor. Any universal plug-pack unregulated supply with 12 volt selectable output will do - these are typically available from market stalls and cheapie Poundstretcher type shops for around £4, as well as from your local friendly electrical retailer for a slightly larger sum!

Another necessity is a parallel port extension cable for actually connecting up the burner - this will have a 25 pin plug on the PC end, and a 25 pin socket on the other end. If you have a flatbed scanner which connects to the parallel port, chances are you already have such a cable - if not, it shouldn't cost more than a few pounds from a computer shop or computer fair. I have had some reading/burning problems with long cables - make sure the cable is less than a metre long. Anything longer and you could run into difficulties.

You'll also want to buy a blank 27c801 EPROM to program with firmware code - there's already one in your 709, of course, but you don't want to erase that until you're sure your burner works! Maplins have these at £9.99, code AX58N. An equivalent EPROM is the 27c080, manufactured by Atmel - I have not tested this but it should work just the same. Data sheets for both these EPROMs are here if you're interested.

For the PC, you'll need at least a 386 with 4 Megabytes of RAM, running MS-DOS (or equivalent), Windows 95, Windows 98, or OS/2. To read and write EPROMs, the parallel port should support one of the bi-directional protocols - look for EPP or similar in your BIOS setup, and make sure it's enabled. If your parallel port doesn't have bi-directional capability, you may find that you can't read EPROMs, although burning should work fine.

 

Construction

These are the parts you should have:

  1. Veroboard

  2. SIL Resistors

  3. IC Sockets

  4. Transistors

  5. Metal Film Resistors

  6. ICs (4040 Counters)

  7. Horizontal Linear Preset (variable resistor)

  8. Connectors

  9. Voltage Regulators

  10. Capacitors

Now to construct the burner, step by step.

 

Step One - Cutting And Marking The Veroboard

The EPROM burner is constructed on Veroboard, a thin SRBP or fibreglass board with holes 0.1 inch apart, and copper tracks linking the holes in rows on one side of the board. This allows circuit connections to be made quickly and easily. From now on I'll refer to the track side of the board, which is the side of the board with the copper tracks, and the component side, which is the blank side on which the electronic components are mounted. (In the photo above, the board is shown component side up.)

Before we can begin using the Veroboard we need to cut it to the appropriate size. We also need to mark the holes and tracks with numbers and letters so we know where we are to mount the components.

The burner is to be built on a piece of board 39 tracks wide, with 30 holes per track. Count 30 holes down in the direction of the tracks then score the Veroboard across at right angles to the tracks, using a Stanley knife and ruler. (See picture). Break the board at this point. (Careful now!) If you've scored the board properly you should get a clean break.

The next thing to do is lay the board down on a piece of paper, track side up. Trace all around the board using a pencil, and mark the positions of the tracks using letters, and the positions of the holes using numbers. Assuming the tracks are running in a vertical direction, start at the top right corner and label the tracks A to Z from right to left. You've run out of letters, so use the designation AA to AM for the remaining tracks. Now, starting in the top right hand corner, label the holes from 1 to 30 down the right hand side of the board. Look at this picture to see how it's done - the markings must be exactly in the positions shown.

Now TURN THE BOARD OVER so the component side is facing up, as in this picture. This gives us a reference for the co-ordinates of each hole on the board, and I will be referring constantly to this throughout the guide. To read off the correct hole, just put the board back on the paper again and line up the markings, making sure the board is COMPONENT SIDE UP and that the orientation is the same each time. For example, the hole at the top right hand side of the board in this picture is 1A, the one to the left of it is 1B and the one below it is 2A.

 

Step Two - Building The Power Supply

Now we can start adding some components. We'll start with the power supply. As mentioned previously, the burner is powered by a 12v universal unregulated mains adaptor; the supply from this has to be smoothed and regulated before it can be fed to the ICs on board the burner. We'll also add the transistors which switch the programming voltage on and off.

C1 on the schematic is a 470uF (470 microfarad) electrolytic capacitor. The output of the mains adaptor is likely to be somewhat rough, so we add this capacitor to smooth it out. It looks something like this:

Electrolytic capacitors are polarised - that means they have a positive and a negative lead, and must be connected the right way round. The negative lead is slightly shorter than the positive, and is usually marked by a series of minus signs down the side of the capacitor body. The positive lead is sometimes identified by a plus sign, but it's usually unmarked.

You need to solder the positive lead of the capacitor into hole 7D, and the negative lead into 7B. Push the leads all the way in, so the capacitor sits flush with the component side of the board. Bend the leads outward slightly so the capacitor stays in place. Solder both leads on the track side and trim the excess with your wire cutters. Here's the finished result -

Now we can add some more components. Next to go on are the voltage regulators; a 5 volt regulator, 7805, and a variable regulator, LM317. This picture shows what they look like, along with the lead designations. Note that the regulators in this picture look different - the 7805 is in a P1d package, while the 317 is in a smaller TO92s package. You might come across a 317 regulator in a P1e package which looks similar to the 7805 in the picture; the pin designation is the same as for the TO92s package, however, and for this design it doesn't matter which you use.

For the 7805, Pin 1 goes to 13D, Pin 2 to 12B, and Pin 3 to 11C. You'll need to bend the pins a little so they reach the holes.

For the LM317, Pin 1 goes to 15F, Pin 2 to 15E and Pin 3 to 15D.

C2 on the schematic is a 4.7uF tantalum capacitor - basically a miniature electrolytic capacitor, so it is polarised. The positive lead is indicated by a stripe, dot or plus sign on the capacitor, as shown below.

Connect the positive lead to 16C, and the negative lead to 14B.

Next, two resistors - a 240 ohm, R1, and an 82k (82,000) ohm resistor, R11. Here's the resistor markings and what they mean.

Connect the 82k resistor between 23E and 27F, and the 240 ohm resistor between 14E and 10F. Resistors aren't directional; it doesn't matter which way round they go.

The next component is a 10k ohm variable resistor, also known as a trimpot or preset, VR1. This is what it looks like.

The control in the centre of the trimpot is adjusted using a small screwdriver and is used to determine the resistance between pins 1 and 2 and/or pins 2 and 3. We will adjust the trimpot later in order to set the programming voltage, but don't worry about it for now.

Pin 1 goes to 19B, 2 goes to 18F, and 3 to 20F. The trimpot should be a perfect fit, i.e. you shouldn't need to bend the pins.

The final two components in this section are bipolar transistors. Q1 is an NPN transistor, BC547. Q2 is a PNP transistor, BC557. This picture shows the pin designations.

For Q1 (BC547), connect the emitter to 29E, base to 27C, and collector to 28F. For Q2 (BC557), connect the emitter to 22E, base to 22F, collector to 22G. These transistors switch the programming voltage on and off, so it's important they're connected correctly. I'll explain more about this in the Testing section.

The final thing we need to do in this section is cut some tracks using the track cutter mentioned earlier. You need to cut the following holes: 19F, 21F and 24E. Place the cutter (or drill bit) in the appropriate hole on the track side, apply light pressure and rotate clockwise until the copper all around the hole has been removed. (The idea is to break the circuit connection at this point, so make sure all the copper is gone on both sides of the hole.)

That's it! Now onto the next step.

 

Step Three - The Logic Section

The logic section consists primarily of the 4040 ICs, the EPROM socket, and the (many!) connections between them. We'll start by soldering on the two 16 pin IC sockets, for the 4040 counter chips. This picture shows the pin designation. Note that the sockets are symmetrical (they will go either way round), so a notch or indentation is present at one end of the socket to show which way it's supposed to go. A corresponding notch is present on the chips themselves.

Why use a socket? Why not just solder the 4040s directly to the board? The 4040 chips use CMOS (Complementary Metal Oxide Semiconductor) logic which is very vulnerable to static electricity, so it's best to handle the chips as little as possible. Also, if you heat up the chips too much with your soldering iron it could damage them. So we solder a socket to the board instead, and insert the chips into them at the very last stage of assembly.

The first 4040 is IC3, the low address generator. Basically the 4040s output a value which points to a particular location (address) within the EPROM. This value starts at zero and increments by one every time it receives a clock signal from the parallel port. This allows us to read or write the data inside each memory location in the EPROM, via the EPROM's data lines which are connected to the PC via the parallel port. A single 4040 IC can only count up to 4095 (FFF in hexadecimal); we need two of them to cover the full address range of the EPROM. (FFFFF in the case of the 27c801, giving us 1048576 bytes or 1 Megabyte.)

Anyway, align the socket so that pin 1 goes to 10J, and pin 16 goes to 13J. Solder all the pins.

The second 4040 is IC4, the high address generator. Pin 1 of this goes to 19J, Pin 16 to 22J.

Now take out your track cutter and cut the following holes: the 8 holes from 11J through 11Q, 8 holes from 20J through 20Q, 8 holes from 16J through 16Q; 24 holes in all.

We'll leave the 32-pin EPROM socket for now, because we need to route wires under it. (Well, we don't have to, but it looks neater if we do!) Bear in mind when routing wires that the EPROM socket will eventually be situated such that Pin 1 goes to 13U and Pin 32 goes to 19U, so don't let any wires cross the points where the pins go in.

33k ohm resistors are used as pull down resistors on the data lines. We can implement this using two SIL resistors, a 44k ohm and a 100k ohm, in parallel - this is a lot less hassle than using discrete metal film or carbon resistors. SIL resistors consist of 8 resistors in a single package with a common ground. The common (Pin 1) is marked with a spot on the case, as shown below.

The resistor in the picture is the 100k ohm, by the way. Since the two resistors are paralleled anyway it doesn't matter which goes where. Put in one of the resistors so that Pin 1 goes to 8AJ and Pin 9 to 8AB. Put in the other resistor so that Pin 1 goes to 9AJ and Pin 9 to 9AB.

Get out your wire cutters and strippers, and solder wire links between the following pairs of holes:

30B and 30S

29C and 29R

29S and 29AK

8Q and 8S

17Q and 17S

14J and 13R

23J and 22R

18U and 18R

14AJ and 14S - keep this straight and flush with the board.

29G and 29AC

Solder a 33k ohm resistor between 28AK and 28AC. See the resistor colour coding diagram further up the page.

Now to add the final three capacitors. These are 0.1uF ceramic capacitors, for decoupling, and look like this.

They are non-polarised so it doesn't matter which way round you put them. Solder one between 9Q and 7R, another between 18Q and 16R, and the third between 20U and 20S.

Now we'll add the data lines - some more wire links.

7AB to 20AJ

7AC to 20AI

7AD to 20AH

7AE to 20AG

7AF to 20AF

Then cut tracks at 10AB, 10AC, 10AD, 10AE, 10AF.

We can add some of the address lines and other lines now. Wire links:

15T to 15O

18N to 15W

29N to 29AE

14Q to 11AF

9P to 11AE

9O to 11AD

7N to 11AC

7L to 11AB

8K to 11AA

7M to 12Z

14M to 12Y

14N to 20Z

14L to 20AA

14K to 20AD

23Q to 14X

18P to 20Y

18O to 20X

18L to 14V

18K to 20W

18M to 20V

23M to 14U

8J to 20AB

28T to 28O

24P to 9J

Now solder on the 32 pin EPROM socket, so pin 1 goes to 13U and pin 32 goes to 19U.

Cut tracks at holes: 16U through 16AJ inclusive. (16 holes in all.)

Connect the last 33k ohm resistor between 26E and 26A.

That's it for this step: this picture shows the story so far!

 

Step Four - Connecting The Connectors

The final stage involves connecting up the power and parallel connectors and gluing them to the board. This picture shows the pin numbering for the parallel connector. Use wire links to connect them to the appropriate holes on the board, as follows:

Pin 1 to 15P

Pin 2 to 5AG

Pin 3 to 5AH

Pin 4 to 5AI

Pin 5 to 5AB

Pin 6 to 5AC

Pin 7 to 5AD

Pin 8 to 5AE

Pin 9 to 5AF

Pin 14 to 4T

Pin 16 to 4A

Pin 18 to 5AJ

This is the pin designation for the power connector:

Use wire links to connect the positive (+) lead to 5D, and the negative (-) lead to 5B.

Now use glue to mount the connectors at the top edge of the board, with the actual connectors themselves facing backwards. Mount them upside down so that the pins are sticking up in the air. Allow the glue to dry.

Now you need to be very careful - touch a grounded point (such as a radiator) or wear an anti static wrist strap. Don't wear nylon clothing as this can hold a static charge. (These precautions apply to handling EPROMs as well.) Carefully remove each 4040 IC from its protective packaging and insert them into the sockets on the board. Make sure the notch on the chip lines up with the notch on the socket. (Obviously it does not matter which chip goes in which socket, as they are both the same!) Now your burner is built and you're ready to test it out! See a picture of the finished article.

 

Testing

Before you do anything with it, visually inspect the burner for shorted or crossed wires, bad solder joints and solder trails (solder running between tracks on the board). Double check the connections against those listed above. (Your multi-meter will be useful here.) Correct any immediately obvious problems before you go any further!

Connect your burner to the PC's parallel port. The cable should be connected directly to the PC and not daisy-chained through a scanner or similar device.

Plug the mains adaptor into your burner. If it's a "universal" type, with multiple plugs in a "cross" formation, the plug to use is the larger of the barrel type connectors. Make sure the voltage is set (to 12 volts), and that the polarity is set correctly (this is very important - you could damage your burner if it's set incorrectly). The polarity should be set so that the inner of the connector is positive, and the outer part negative (use your multimeter to verify this before you connect it to your burner).

Now download the software for this burner, and use pkunzip or similar to extract the files into a directory on your hard drive. Boot into DOS (or open a DOS box in Windows - make sure nothing else is running if you do this), and cd to the directory where you've put the files. Execute the program as follows:

eprom -d -pxxx

where xxx is the port address of your parallel port. In 99% of cases the port address is the default (378 hex) unless you've had a reason to change it, so if you don't know the port address, just type

eprom -d

and you should be fine. You can normally find out your parallel port address from BIOS setup, or Windows Control Panel. (Note that if your port address differs from 378, you must use the -p switch as above each time you run the software.)

The -d switch tells the program to start up in Diagnostic mode, giving the following display:

Now you can use your multimeter to test voltages at various points. The negative lead of the meter should be attached to a grounded point, such as the metal tag of the 7805 regulator (NOT the LM317!), and the positive lead used as a test probe.

I'll now explain what to do for each step of the diagnostic test procedure. After you've done each step, press a key to move on to the next stage.

First the program asks you to test the voltage on the clock line of the low order 4040 chip, and on the reset lines of both chips. HIGH in this case means (more or less) five volts; LOW means 0 volts. So measure the voltage at pins 10 and 11 of IC3, and at pin 11 of IC4 (remember IC4 is in front of IC3, in case you can't remember which is which), and make sure they are at 5 volts.

Press a key to move on to the next stage. The program is now telling you that the reset lines should be at LOW (0 volts), the clock should still be at high. So make sure that pin 11 of both 4040s is 0 volts, and pin 10 of IC3 is at 5 volts.

Next: the program asks you to measure the Q outputs of both counters, which are the address lines in our burner. All should be LOW. So make sure that pins 1, 2, 3, 4, 5, 6, 7, 9, 12, 13, 14, and 15 of both chips are at 0 volts.

Next, you're asked to measure the voltage at pin 24 of the EPROM socket. This should be at 0 volts (switched off). If it's not, stop now and check you've wired the two transistors correctly. This is a common mistake and one which could potentially corrupt any EPROM you wish to read!

Now you're asked to calibrate the programming voltage. Measure the voltage at pin 24 of the EPROM socket again and adjust VR1 (the trimpot) with a small screwdriver until it measures 12.75 volts. Don't worry about not being accurate; anything between 12.5 and 13 volts is fine according to the data sheet.

Next you have to measure the programming voltage (pin 24) again; it should now be switched off (0 volts). You're also asked to measure Q1 of the low order 4040; this is pin 9 of IC3. This should be high (5 volts).

For the next stage you're asked to measure the Q outputs of both 4040s again: that's pins 1 to 7, 9, and 12 to 15 of both chips. Q1 (pin 9) of IC4 should now be high; all the rest of the pins you've measured should be low.

There is a final stage which involves incrementing the counter bit by bit and testing the corresponding Q outputs. You can press ESC and return to this later if you're having problems.

If any of the results above weren't as expected, you should unplug your burner and check connections thoroughly. Test for short circuits using your multimeter. Inspect carefully for bad solder joints and incorrect wiring (again, use your multimeter for this).

If all is well, you should be ready to start burning! If you have any major unsurmountable problems, give me a mail and I'll see what I can do.

 

Operation

Reading a chip

This involves reading the contents of an EPROM and saving it to a file. To do this, you should execute the program as follows:

eprom mychip.bin

Replace myfile.bin with a filename of your choice. Don't forget to add the -p switch if you need to; see the previous section for more details. (For a full list of switches, parameters and what they do, run the program without any parameters.)

You'll be prompted to insert a chip. Put the chip into the burner; ensure the pins are correctly aligned and the notch is facing to the right (the same way as the notches on the 4040 ICs). Next press a key to begin reading.

The reading process will take ten minutes or so. (You'll see a counter incrementing from 0 to 100000 in hex.) The contents of the chip will then be written to a file with the filename you specified. You should remove the chip immediately after the program exits; use an IC extraction tool for this, or the blade of a screwdriver (be careful not to short out any pins!) Of course, if you opted for a ZIF socket, the task is greatly simplified; just lift the lever and remove the chip!

 

Writing a chip

The first thing to do is to check that the blank EPROM you wish to write is in fact blank! Execute the program with the -b switch.

eprom -b

This will read the chip and ensure it's blank. (If it isn't, you will need to erase it.)

Now to write the chip. First boot into DOS mode (don't try to write a chip in a DOS box in Windows!!!) and execute as follows:

eprom -w mychip.bin

This will burn the file mychip.bin to the chip - obviously you should replace this filename with the file you wish to burn; this could be a firmware file downloaded from 709 Online, for example. Insert the chip when prompted, and press a key to begin the write process. (The counter will increment from 0 to 100000 in hex.) This will take around twenty minutes.

After the process has finished, the program will read the chip back in again to verify it against the original file. If all goes well you can remove the chip at this stage and use it! However you may get a number of errors. If this occurs, then run the write process again, without removing the chip. You should get fewer errors this time, or none at all. Repeat until you get no errors. (I've always found it to work first time.)

 

Erasing a chip

This is beyond the scope of this article; erasing an EPROM requires exposing it to ultra-violet light. See my EPROM eraser article linked from my main page.

 

Firmware Installation

Unplug your Samsung 709 and remove the 5 screws from the case - one at each side, and three at the back. The cover should then be lifted up at the back, and slid backwards to remove it. This is what you should see - I've highlighted the location of the EPROM.

Location of the EPROM chip inside the 709 player

 

The 27c801 EPROM itself

Remove the EPROM using an IC extraction tool, or very carefully lever the chip out using a small screwdriver. It should come out easily. Replace the chip with the new one, making sure the notch is facing towards the back, and the pins are correctly lined up with their respective holes. Push the chip fully home. Now replace the cover and screws, plug in and switch on. Note that if you've hacked the machine using an Aiwa or One For All remote or similar, the multi region capability will be retained - you shouldn't need to hack the player again when you change the firmware.

 

Links

709 Online - the world's finest website devoted to the Samsung 709! Forum, chat, FAQ and more.
Try this link instead, if the above doesn't work.

Samsung DVD Player Firmware - get firmware binaries for use with your EPROM programmer.

709 Online Firmware - more firmware binaries, and Keith Clark's FirmTweak utility.

EPROM Programmer Discussion Forum - discuss issues related to EPROMs and programmers.

Data sheets for 27c801 and 27c080 EPROMs.

Get Samsung DVD player instruction manuals here.

 

This page maintained by Mike Gordon. Last updated 24th January 2001.

DISCLAIMER: The information on this page is true to the best of my knowledge, but I make no guarantees, etc, etc. I accept no responsibility for any harm which may occur as a result of using this device to burn the firmware for a life-support machine, a nuclear submarine, or the first manned mission to Mars. Opening up your Samsung 709 will invalidate your guarantee, and will probably make your hair fall out too. Don't say I didn't warn you.