3Chip Info

Visit the 3 Chip Forum to post 3chip related messages or questions.


Sakman's new code that includes GI line 18 code in 20Mhz Turbo code for the Scenix is done. There is a .hex file and a .asm file.

Phil's updated Rev7T1D2 code for PIC16F84A-20 and Canton 4.2 is here. The newer version corrects a timing error. This code is for SA split-sync with auto-invert based on the presence of the split-sync. The Parallax include file is necessary to compile it with MPASM.

Sakman's post describing his Piu board with 20 Mhz Scenix and modifications to the edge detectors can be foundhere. He also gives programming tips with hardware and software for new version Scenix chips.

Dan's new revision of the Experimental board is now available here

Chriscov has some scope images that show the relationship of the NED and PED to the sync and some interesting split sync images.

Here is the Giln18 code ported for the PIC16F84A by Dan. Here is the hex file. It has not been tested, so let us know how it works. I believe it's for NTSC only.

Dan's new Experimental design with the in circuit programmer needs to be tested. Here's the zip for downloading. Includes Protel99, Traxmaker, PDF's, Bill of materials,etc. Please give him some feedback.

  General Information

This page is being updated to include newer designs, codes and ideas. If you have anything to add or correct, please post it on the message board, Thanks.

The 3chip is a cable TV descrambler that works on the baseband video.  It does not work with RF frequencies or cable in, cable out, or antenna in jacks.  It uses the baseband video which is the video coming out of the Video out jack of a VCR.  This jack is usually an RCA jack or phono plug.  It is NOT an "F" connector, but is sometimes a BNC connector on professional equipment.  The decoder will work on most scrambling schemes that suppress the sync and dc shift it up to the middle of the video signal instead of the bottom of the video signal.  It will not work on systems where the sync pulses are completely missing, like CableCrypt.  There is code that will auto-invert the picture based on information obtained from line 18 of the video. Inverted pictures are negatives of a normal picture with whites appearing black and blacks appearing white.  Inverted does not mean the picture is upside down.  If your video looks like a negative, then you will need to invert it. Piu's designs include an audio decoder. If the audio on your system is not there on scrambled channels, then you will need to build a separate audio decoder or build one of Piu's designs to decode the scrambled audio.  The original 3chip was designed for NTSC video which is used in the U.S.   PAL versions  are available for Europe and South America.  The 3chip uses a Scenix SX-18, SX-28, PIC16C54, PIC16C56 or PIC16F84A microprocessor to lock onto the scrambled video and determine when to reinsert the corrected horizontal sync pulses and vertical blanking interval (VBI).  The microprocessor must be programmed with code so that it will accept the inputs and send the proper outputs to decode the video.

  Choosing a design

The design that you build should be determined by the scrambling scheme that your cable system uses.

- If your system uses suppressed sync with no video inversion and no audio scrambling. Then try Canton rev3 with Rev7t1a code with a PIC16C54JW or 20Mhz turbo code with a Scenix SX18.

- If your system uses GI/Jerrold tri-mode attenuation with random inversion, then try Piu rev 1.0, Dan's Piu layout or Canton 99 with giln18 code with a PIC16C56 processor or PIC16F84A if you can keep it cool.

- If your system uses Tocom with inversion, then check with the discussion board. I'm not sure which code works, if any.

- If your system uses Zenith with inversion, then use Canton rev3 or Dave's Magicboxes layout and Rev3 code.

- If your system uses audio scrambling, then use Piu rev1.0 with giln18 code.

- If you don't know what your system uses, then try the Piu rev1.0 or Dan's layout of Piu 1.0 or Piu's 1.0


Piu rev 1.5

This board uses a large burst detector to decode the data at line 18 for GI/Jerrold systems and apply the correct amount of gain to the color burst amp and control the invert of the video. It also has an audio decoder. This board corrects some mistakes in the rev 1.0 board and has other small changes. Use giln18 code and make sure the source code has the correct amp code un-remed. There is no layout yet, only a schematic.

Dan's experimental and experimental ver 1.2

A new experimental board using Piu's original v1.0 design has been layed out by Dan. The board uses the SX18 micro at 50MHz (resonator), has built in programmer, and a data port. Use the original 50 Mhz code or XP's cleaned up version. This board is completely experimental and has not been tested yet. Post questions, results, etc.. on the board.

Dan's layout of Piu rev 1.0

PCB is in TraxMaker 3 format, Q3 polarity fixed, BC548 & BC558 transistors replaced with 2N3904 & 2N3906 , Three more 0.1uF bypass capacitors added, standardized component values (no more 100k capacitors -> 100nF), Changed variable capacitor to 7.5mm diameter TechAmerica version, Added hole to optionally ground the crystal case to reduce EMI. Use giln18 code.

Piu rev 1.0

This board uses a large burst detector to decode the data at line 18 for GI/Jerrold systems and apply the correct amount of gain to the color burst amp and control the invert of the video. It also has an audio decoder. This board has Q3 drawn in backwards in the layout and uses BC548 and BC558 transistors which have a reverse footprint than the 2N3904 and 2N3906. Be very careful during assembly that the transistors go in correctly. style="mso-spacerun: yes">  Pre-built boards are available from Tommy McGoo. Use Giln18 code and make sure the source code has the correct amp code un-remed.

I have been building a Piu rev1.0 board from Tommy McGoo. Here are some photos showing how the transistors should be oriented and the diode in the oscillator section. I used 2N390x type transistors, reverse for BC type. I also added an LED in place of the burst transistors.

Output Stage

Oscillator Stage


Canton 99

This board has a large burst detector to decode line 18 data for GI/Jerrold systems and has invert control and color burst correction. style="mso-spacerun: yes"> It has an output for an audio decoder but does not have one built on the board. An external audio decoder must be used. Use giln18 code and make sure the source code has the correct amp code un-remed. style="mso-spacerun: yes">  This design needs 10k resistors added to the base circuit of Q9 and Q10. Do this by lifting the center leg of the transistor out of the hole and putting one end of the 10k resistor in the hole and solder the other end to the base leg of the transistor. Damage to the transistor or the PIC I/O ports may occur if this is not done.

Canton rev3

This board works great for decoding suppressed sync and for manual inversion of the video. It has an adjustable burst corrector, input and output pots, and clamp level pot. It does not have an audio decoder and will not automatically invert the video for systems with random invert. It does not auto-detect multi-mode attenuation. Use Rev7t1a code for the LED. For

Dave2 Magicboxes

This is Dave's version of the original Magicboxes design with single transistor input and output stages and manual inversion only with no audio decode. Use Rev7t1a code and modify it for the loss-of-lock LED. There are no adjustments(except the varicap) on this board and this makes troubleshooting easier.



Check out Dan's Quick & Dirty 3 Chip. It explains how to etch your own board using mylar. Give us some feedback so we know how it compares to other methods.

Tommy McGoo has Piu 1.0 boards available. These quality boards are professionally made and he is making them available at his cost.

There are many versions of the 3chip board and many versions of programming code that go in the PIC.   The LED was a later addition and will only work with Rev7t1a code.  The parts used are all available from  Digi-Key.   Use a 20Mhz series crystal(not parallel) in the oscillator.  A series crystal will not have a capacitance specified, so if the crystal you are thinking of getting has a load capacitance in the specs, it is the wrong crystal.  For the 50Mhz Scenix, use a 50Mhz osc module or the resonator from Parallax.  To build the 3chip, you will need to be able to buy all the parts, etch or buy your own circuit board and assemble the parts on the board with a soldering iron.  The parts list for each board is usually included with the download files for that board.  If you have built your own circuit boards before, this project should be fairly easy.  If you haven't built boards before, then this will be a challenging and fun learning experience.  Help is always available at the Message Board and information about particular installations can be obtained at the Installation Message Board.  Download the files for the board and code that you want to use. If it is in the Protel format, then you can use the 30 day free trial from their site to print out the layout and schematic. There are GIF and PDF files for some of the designs if you don't want to use Protel. There are many  methods of etching a printed circuit board.  The easiest would be to clean a printed circuit board with steel wool and then draw the traces from the layout on the board with a Sharpie pen and fingernail polish.  Check it 3 times and etch it once.  Etch the board with a warm solution of Ferric Chloride (Radio Shack) until all the unwanted copper is removed from the board while agitating the solution gently.  After the board is etched, rinse it thoroughly in water and remove the ink and fingernail polish with acetone or fingernail polish remover.  Drill the holes in the board with drill bits available from Mouser:

5876-409-52 #52 drill bit .063"
5876-409-66 #66 drill bit .033"

or various sizes, part number starts with 5876-409-XX. These can be fitted into the Dremmel-type tool and used by hand, or for the smaller sizes, there is a drill press assembly that they sell for mounting the drill onto. Most of the time, I will drill the holes first and then draw the traces and etch.  It's a matter of personal preference.  Insert the parts in the holes from the component side (the side without the copper traces) according to the board layout, paying particular attention to the orientation of the diodes, transistors and electrolytic capacitors.  Solder the parts in with a soldering iron made for electronic work using a fine enough tip to solder 1 pin at a time.  Cut the leads off  with side cutters and inspect the board for solder bridges, incomplete etching or parts where the etchant got through the ink.  Most mistakes are made here with bad etching or solder bridges or wrong part values so check this very carefully.  I always use sockets for the IC's so they can be removed and replaced without soldering.  The sockets are not on the parts list.  The jumpers on the board are berg jumpers that can be removed from old computer boards.  The invert jumper should be in to start and the burst jumper (if you have one) should be toward the edge of the board. When this is all done, it is time to program the PIC.

  Programming the PIC

To program the PIC, you need a programmer that will program PIC16C54.  There are many programmers that will do that, but only one that I know of that you can build yourself and has free software.  That is the programmer designed by David Tait.  There are two basic types of programmers.  One type uses hex code with a .hex extension and the other uses hex files with a .obj extension. Download the 3chip code file type that is specified for your programmer. I recommend always using a PIC16C54JW which can be erased with an ultraviolet lamp and reprogrammed. The PIC16C54XT is rated for 4Mhz but has no problem running at 20Mhz.  The JW PIC can be programmed with any type oscillator, but I recommend using the HS osc type for the JW PIC.  The Rev7 and Rev7a code are written with the PIC osc set for the XT osc as the default. The Rev7t1a and Rev7t1a_mp code is written with the HS osc set as the default. For a PIC16C54/XT, use the XT osc type, and for the PIC16C54HS, use the HS osc type.  The method of programming the PIC oscillator mode should be understood before ANY programming is done to avoid wasting a PIC. The programming software that comes with your programmer should have a method to change the type of oscillator after the code file is loaded and before the PIC is programmed. The method that is used is different with each programmer software. The XT and HS types of PICs are pre-programmed for osc type from the factory. These types can only be successfully re-programmed in a limited fashion. Unprogrammed bits in the PIC are 'SET' to a 1, therefore when a PIC is cleaned (EPROM type) or new, the memory/configuration bits are all set . When programming the PIC, bits can only be cleared. The bits in the configuration word for the various clock modes are shown as follows:
















Note that the RC type of OTP (One Time Programmable) can be programmed to any mode. Because both bits are set to begin with, you can clear either or both when programming. If you attempt to program the HS mode into a XT OTP, you effectively clear the lower bit. As the upper bit is cleared at the factory, you now have a bit pattern of 0 0, resulting in the PIC being programmed for LP mode. LP, being for Low Power, will not function at all in this application. Although the JW version is twice the cost, it easily pays for itself after one OTP is programmed incorrectly, or if a modified version of the code comes up and you want to reprogram your PIC for newer code.  Remember, use the HS osc type for JW and HS PICs and the XT osc type for XT PICs.  Do not try to program a XT PIC with a HS osc or try to program rev7t1a code into a XT pic without changing the source code to XT and recompiling.  You will end up with a useless PIC if you do so.


This Scenix info is old and may not be accurate for new versions of the Scenix chip. style="mso-spacerun: yes">  I will be updating it as I have time.

If you would like to use the Scenix processor instead of the PIC, then you will need to buy or make a programmer.  You can buy the SX-Key or SX-Blitz from Parallax or make one of the free programmers available on the WEB.  jpb's version of the Steele programmer, Dave2's version of Sxprog from SX-Point, and the Fluffy programmer are a few of the programmers out there.  The sx50v1.asm code is compiled with Mpasm using the following command line parameters:
                          mpasm sx50turbo.asm /e+ /l+ /x- /w0 /c- /m+ /rdec /p16c58a

This is 50 Mhz code for the 3chip and will require the use of a Clock Osc Module.  CTX256-ND, CTX176-ND and CTX121-ND from Digi-Key will all work.  The 50Mhz resonator from Parallax may work but has not been tested.  You will need to remove ALL of the oscillator parts in the existing 20Mhz section and solder the module directly to the bottom of the circuit board on the SX pins.  Osc out goes to Pin 16, ground pin goes to ground and 5v goes to +5v.  If your module has a output enable pin, it goes to 5v also.  Leave pin 15 and 17 of the SX floating.

If you want to try the 20 Mhz code then program the SX chip with the same command line parameters and modify the osc circuit.  Replace the 10k resistor from the varicap to ground with a jumper and replace the 120pf cap with a 15pf cap.  The sx osc circuit is different than the PIC and will be intermittent without these mods.


There are many ways to install the 3chip that depend on what make and model VCR or cable box it will go in.  These are general instructions and will change depending on your equipment.  The 3chip is normally installed in a VCR at the output of the IF chip.  The IF chip can usually be found in the tuner can at the rear of the VCR with the 'F' connector for Cable In sticking out the back of the VCR.  The tuner can is usually about 1.5" x 3" x .75" in size and has metal covers.  If you remove the cover, the IF chip is usually the IC furthest away from the 'F' connector.  You can identify it because there is usually a 3-legged 4.5mhz ceramic filter in the vicinity.  Get the number off the chip and get the datasheet for the chip by doing a search on the web or asking on the Installations Board.  The video in of the 3chip is usually taken from the video out pin of the IF chip by removing the capacitor at the output and wiring it into the input of the 3chip.  The output of the 3chip goes to where the capacitor used to go.  Sometimes there is a wire from the output of the IF and you can cut that and insert the 3chip there.  Sometimes it can be inserted at the input to the modulator.  The video path from the IF chip must be interrupted and the 3chip inserted in the path.  Specific instructions can usually be found at the Installations Message Board.  The 3chip can also be installed at the Video Output jack(RCA type) of the VCR and inserted into the Video In jack of the TV if it has one.  Many older TV's do not have a Video In jack and the 3chip will need to be installed in the VCR or cable box.  Do not modify or install the 3chip in a cable box that you do not own or that belongs to the cable company.   Cable converters  are available on the WEB for this purpose.  The TV-85/v is reported to be an excellent choice.  After the 3chip is installed, the AGC cap at the AGC filter pin of the IF chip should be changed to 47uf or 100uf.  Refer to the data sheet for your IF chip to find the AGC filter pin on your IF chip.


  1. Visually inspect the trace side of the board with a magnifying glass one last time for small beads of solder that may have fallen where they should not be, and for traces to be sure they are not shorted. Then inspect the component side of the board, especially all the parts that are polarized to be sure they are inserted in the proper direction.
  2. Use an ohmeter. Most importantly do 2 checks on the power.  First, at the input power pins to be sure they are not shorted.  Second, at the output of the regulator to ground to be sure it is not shorted. Then check continuity from the output pin of the regulator to one of the sockets to make sure continuity does exist and that solder joints at the regulator are good.
  3. Leave the IC's out of their sockets and turn the power on.  Check the voltage at the input of the 7805 regulator and confirm that it is about +12v.  Check the power at the output of the 7805 regulator and confirm that it is +5v.  Turn off power to the 3chip and install the IC's.  Turn on power to the 3chip and check that the output of the 7805 regulator is still +5v.  Test the 3chip on an unscrambled channel at the low end of the tuner, channel 2 or 3 if those are normal channels.  Do not test on a channel that the cable company has inserted for menus, program guides, coming attractions or community events.  If you have the LED, it should light briefly and then go out.  The LED will light when the 3chip is NOT locked on the video and indicate that something is wrong.  Set all the pots to the middle of their range.  The input gain pot should be set for around 240 ohms if you have an ohmmeter.  You should get a picture regardless if the LED is lit or not.  If the LED does not go out, then slowly turn the varicap and take the tuning tool away from the varicap to see if it goes out.  If not, keep tuning the cap slowly until it goes out and then try to center it in the working range.  When the LED goes out, then tune the pots for the best picture on the normal channel.  If the picture is inverted, remove the invert jumper.  Switch to a scrambled channel and tune the pots for the best picture again.  It is normal for there to be a slight variation in brightness and contrast between scrambled channels and unscrambled channels.  Try to tune for a compromise between all channels for the best picture or tune for best on scrambled channels and turn the VCR off for normal channels.  If there is no picture or the decoder is not working, download the  Troubleshooting Guide  and follow the steps there to correct the problem.


Those interested in experimenting with the code that goes in the PIC, here is a brief description of the code itself and methods to modify it. There are two types of code for the PIC. One type uses hex files with a .hex extension and are compiled with MPASM from source code files with a .asm extension.  The other type uses hex files with a .obj extension that are compiled with SPASM from source code files with a .src extension.   SPASM  and  MPASM are available for free on the WEB.  You can inspect, modify and experiment with the source code using Windows Notepad or other text editor and compile with Mpasm or Spasm depending on your programmer and then program your chip following the instructions that came with your programmer. If you want to change the default Osc type in the code so you won't have to change it at programming time, then change the device config line in the code. These device configuration lines were taken from rev7 which was made for the PIC16C54XT.  This is at the beginning of the code and is contained in a line that looks like this:

DEVICE PIC16C54,XT_OSC,WDT_ON   for .src code and this:
 __CONFIG        (_CP_OFF & _WDT_ON & _XT_OSC)   for .asm code

 You can find the settings for Mpasm here. Most of the code is commented and is self-explanatory. The Magicboxes Theory page is here.