Converting The Digitech XP - Part 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

ADDITIONAL INFO

Below, you’ll find the presets for each of the XP modes;

XP100 (Italics indicates expression controls)

Volume effects Whammy effects

 01 - Volume Pedal -  13 - Up 1 Octave - pitch shift


volume  14 - Up 2 Octaves - pitch
 Wah shift
 15 - Up 2nd - pitch shift
 02 - Original Cry  16 - Down 2nd - pitch shift
Wah - wah frequency  17 - Down 4th - pitch shift
 03 - Cry Wah 2 - wah  18 - Down 1 Octave - pitch
frequency shift
 04 - Dark & Deep -  19 - Down 2 Octaves - pitch
wah frequency shift
 05 - Sweet Spot 1 -  20 - Down 6 Octaves - pitch
wah frequency shift
 06 - Sweet Spot 2 -  Harmony
wah frequency
 Auto Wah effects  21 - Down 1 Octave, Up 1 Octave - harmony pitch
 22 - Down 4th, Down 3rd -
 07 - Original Cry harmony pitch
Auto - sensitivity  23 - Up 5th, Up 6th -
 08 - Envelope Filter - harmony pitch
sensitivity  24 - Up 4th, Up 5th -
 09 - Brass Attack - harmony pitch
sensitivity  25 - Up minor 3rd, Up major
 10 - Original Cry 3rd - harmony pitch
Auto - attack time  26 - Up 2nd, Up 3rd -
 11 - Envelope Filter - harmony pitch
attack time  27 - Down 4th, Up 5th -
 12 - Brass Attack - harmony pitch
attack time  28 - Up 5th, Up 1 Octave -
harmony pitch
 Detune effects

 29 - Detuner - detune
amount

34
XP200

Program Type Program Name Exp. Pedal Controls


1 Rotary Spkr Rotary 1 Slow / Fast Rotor / Horn Speed
2 Rotary Spkr Rotary 1 Brake / Fast Rotor / Horn Speed
3 Rotary Spkr Rotary 2 Slow / Fast Rotor / Horn Speed
4 Rotary Spkr Rotary 2 Brake / Fast Rotor / Horn Speed
5 Rotary Spkr Rotary 3 Slow / Fast Rotor / Horn Speed
6 Rotary Spkr Rotary 4 Brake / Fast Rotor / Horn Speed

11 Chorus 2 Voice Shallow Chorus Level


12 Chorus 2 Voice Medium Chorus Level
13 Chorus 2 Voice Deep Chorus Level
14 Chorus 4 Voice Shallow Chorus Level
15 Chorus 4 Voice Medium Chorus Level
16 Chorus 4 Voice Deep Chorus Level

21 Flanger Shallow Flange Level


22 Flanger Medium Flange Level
23 Flanger Deep Flange Level
24 Flanger Manual 1 Flange Sweep
25 Flanger Manual 2 Flange Sweep
26 Flanger Triggered Trigger Sensitivity

31 Phaser Shallow Phaser Level


32 Phaser Medium Phaser Level
33 Phaser Deep Phaser Level
34 Phaser Manual 1 Phaser Sweep
35 Phaser Manual 2 Phaser Sweep
36 Phaser Triggered Trigger Sensitivity

41 Vibrato Vibrato 1 Intensity


42 Vibrato Vibrato 2 Intensity
43 Vibrato Vibrato 3 Intensity
44 Vibrato Vibrato 4 Intensity
45 Vibrato Vibrato 5 Speed
46 Vibrato Vibrato 6 Speed

51 Tremelo Shallow Tremelo Speed


52 Tremelo Deep Tremelo Speed
53 Auto Pan Narrow Panner Speed
54 Auto Pan Wide Panner Speed
55 Panner Manual Left / Right Pan

61 Volume Volume Pedal Volume

35
XP300

36
XP400

37
ADDENDUM

THE XP-ALL+ MOD


(This mod may be applied to any XP model)

In this section I’ll discuss the XP-ALL+. Like the XP-ALL, the “+” uses a different method to
house all four XP series pedals under one hood. Also, it offers the advantage of restoring the
original stereo dry signal to the right channel in XP-100 mode.

Some of the work required is covered in the XP-ALL document, but the difference here is that
we will not be stacking EPROM’s. Instead, we will be using a single 27C1001 EPROM. This
EPROM is a 1 Meg EPROM, thus has four times the memory that the 27C256 offers. The trick
here is that we are able to store all four programs on one chip, and then through some creative
switching, boot the desired program.

There are, of course, some pros and cons. The pro’s; no chip stacking, the board wiring is a bit
simpler, and it just looks neater. The con’s; we need to make an adapter for the EPROM, and
the programming requires either some experience with a hex editor, or for the less talented (like
your’s truly), there is a small app that we can use to compile the code for use in the 27C1001.
Personally, I like the XP-ALL+ mod. I find it makes for a neater build, and can be easily adapter
to any XP series pedal.

First, we’ll start with a bit of…

HISTORY
I happened upon the idea of the “all on one chip” idea, purely by accident. As a matter of fact, I
found the “theoretical” idea on a Camaro I-ROC site. It was a document that discussed the
method of programming the ECM (Electronic Control Module) of high performance cars (in this
case the Chevy Camaro), and how it would be possible to switch between programs. This way,
a driver would have a choice of say, everyday economical engine performance, or Saturday at
the drag strip performance. In the document (attached at the end of this addendum), the author
goes into detail on how the memory is structured in the 27C128 (the original Camaro chip), and
the similarity of the structure in the 27C1001, which is eight times bigger.

In a nutshell, although it was all theoretical, it all made perfect sense for this application. The
only thing that worried me some was the switching scheme (I suck at binary), but I figured that
in the grand scheme of things… blip on the radar. Full steam ahead!

38
THE THEORY
So what we have here is the 27C1001, an EPROM that has four times the capacity of the XP’s
27C256. Although the IROC ZONE document (Annex 1) discusses the 27C010, the 27C1001 is
more or less the same chip.

In crude layman’s terms, when the processor of the XP boots up, it gets the program info from
the EPROM, and then executes it. What the document shows us is that the info on the EPROM
is organized into blocks of 4000 hex. With this in mind, we can use the A14, A15, and A16 pins
on the 27C1001 to trick the processor into retrieving the program info that we need.

So, blocks of 4000 hex, gives us 8 blocks to work with. These blocks are;

0000 – 3FFF

4000 – 7FFF

8000 – BFFF

C000 – FFFF

10000 – 13FFF

14000 – 17FFF

18000 – 18FFF

1D000 – 1FFF0

Using three switches to set the 27C1001 pins A14/A15/A16 either LO (0 or Ground), or HI (1 or
+5vdc), we can manipulate which data will be presented to the processor. The switching order
is as follows;

A14 A15 A16 SECTION

0 0 0 0000 – 3FFF
0 0 1 4000 – 7FFF
0 1 0 8000 – BFFF
1 0 0 C000 – FFFF
1 0 1 10000 – 13FFF
1 1 0 14000 – 17FFF
1 1 1 18000 – 18FFF
0 1 1 1D000 – 1FFF0

With this in mind, we now need to organize the four XP programs on the 27C1001 in a manner
that each program will be at the top of one of these sections.

39
The above chart splits the 1 Meg of memory into 8 blocks, reflecting the organization of eight
128K blocks of 27C128’s. Since the XP uses 27C256 EPROM’s, we can group it into four, 256K
blocks. In this case, the start address of each program will be;

XP-100 code starts at – 0000

XP-200 code starts at – 8000

XP-300 code starts at – 10000

XP-400 code starts at – 18000

If you’re using a hex editor, you can simply copy/paste the .bin code file, starting each string of
code at the number stated above. Or, if you’re lazy (like me), you can use John Dixon’s “Z32
Binapp” application. It’s a nifty little program for our application here. Plug up to four .bin files
into the app, in the order you want them, and the app will assemble them into one .bin file, with
each string of hex evenly spaced. The app outputs a .bin file that will be ready to use with your
chip burner.

Once we have our new .bin file assembled, you can burn it to your 27C1001. Now we’ll move on
to the …

MATERIALS
You’ll need the following parts for the XP-ALL+ conversion;

- All material listed on page 17 , EXCEPT

Replace the 27C256’s with one (1) 27C1001

- Double sided perf board with thru holes (NOT PADS), or Vero board.
- One (1) 32 pin socket.
- Two (2) rows of 14 header pins.
- Three (3) 4.7K / .25w resistors.
- One (1) ALPS SRRN 243 series, 6P4T rotary switch.
- One (1) Omron G5V micro relay
- Four (4) 3mm LED’s and panel mount sockets, w/ four 1K resistors (optional)

Insofar as all the other components are concerned, you will need to populate the XP board, as
outlined in the XP-ALL document. The only difference is the EPROM, rotary switch, and IC
sockets.

40
EPROM ADAPTER
Ah yes, the adapter. Why do we need an adapter? Easy, the 27C256 EPROM has 28 pins, and
the 27C1001 has 32. Here is the lay of the land for each chip;

41
And the 27C1001 chip:

As you can see, we have four more pins. But, for the most part, the majority of the pin functions
are shared between the two chips. We just need to transfer the right pins to the right places, and
tap into the pins that we need for the program switching. For this, we need to make an adapter
board.

The adapter board can be made with either perf board, or vero (strip board). But a word of
warning though; if you’re planning on using perf board, its HIGHLY RECOMMENDED THAT
YOU USE DOUBLE SIDED PERF BOARD, THAT USES THRU HOLES, NOT PADS. Do not
use the normal type with simple pads. You’ll need to solder on both sides of the board, and thru
holes ensure continuity between both sides of the board. Vero will work as well, although the
board will be slightly bigger. It will still fit into the unit without any problem though. Here is a
picture of the material I used;

42
Perf board, header pins, 32 pin socket, EPROM, and relay (more on the relay later).

43
44
(Above) Double sided perf board, with thru holes. (Notices thru holes provide continuity to both
sides of the board)

45
Here are the layouts for both versions (components moved out of the way for clarity);

With components in place;

46
47
Alternately, you may also order a PCB adapter board, designed by Marmaliser. They are
available at OSH Park. This is what it looks like;

Top Bottom

The boards may be ordered from OSH Park. The link to the page is;

https://oshpark.com/shared_projects/G6FmIKkl

48
With our materials assembled, we can now assemble our adapter. With perf, the worst part of
the job is the soldering. Beading the solder can be tedious, but with patience, you should be
able to get a result like this.

49
50
If you’re not comfortable with perf, then by all means, go with vero. Just pay attention to the
tracks, cuts, and jumpers.

THE RELAY
As for the relay, it’s an Omron G5V micro relay. It’s coil operates on 5vdc, and we are using the
Normally Open (N.O.) contact. This relay is used to regain the stereo output in XP-100 mode. In
the original XP-ALL version (or any XP-100 converted to 200, 300, or 400 operation), we lost
the right (dry) side. This was due to the addition of the Q10 JFET, and removal of the R30
jumper for the 200/300/400 stereo modes. With the relay, we will be energizing it in XP-100
mode, and closing the R30 jumper circuit. This will bypass the Q30 JFET, and return the right
side dry signal. Use of the Omron model is not mandatory here. Any micro relay will do, as long
as it fits the foot print provided on the adapter layouts. I only mention the Omron because it’s
what I used, and it works. There are plenty of other similar relays that will do the same job. As
always, Google is your friend.

51
PREPARING YOU XP FOR THE MOD

OK, we have our XP pedal, our EPROM is programmed, and our adapter board is made. Insofar
as installing the adapter is concerned, you have two options; use a 28 pin socket on the main
board, and plug your adapter into it. Or, solder your header pins directly to the main board.
Either will work, and it’s a personal choice. I opted for door #2, making it a permanent fixture.

A couple of pictures (shown plugged into the 28 pin socket);

52
53
Soldered directly to the main board (notice it sits lower).

The 27C1001 chip is socketed, either way. So, if anything ever happens to it, you can still
remove it, and replace it easily.

OK, on to the….

WIRING

Now that our adapter board is mounted, we’re on the home stretch. Wiring in this case is a bit
different from the XP-ALL version. Since we are now using one IC to house all the programs, we
don’t require doing any “Internal/External” memory switching anymore. This gets rid of the
tedious “Must have the proper grounding point for the switching to work” issue that we ran into,
in the initial XP-ALL mods.

54
The ALPS switch that I’m using for the XP-ALL+ mod, is for all intents and purposes, the cat’s
ass! It does everything I need it to do, plus giving me the option to add LED’s for mode
indication. It’s Bad Ass. It’s basically two 3P4T switches, stacked, one on top of the other. Yet,
it’s height is low enough to fit under the cover, without any interference whatsoever.

Picture of the switch;

A thing of beauty. OK, let’s move on to the wiring.

The poles are organized as such;

55
Here is the schematic for the wiring;

I divided the upper and lower sections of the switch. One section (Deck 1), is wired to handle
the program switching duties. The other (Deck 2), handles rebooting, stereo relay switching, and
LED’s duty.

The wiring involves; 5vdc supply voltage, grounding, the two contact wires from the relay to the
R30 contact points, MC34064P (reset transistor), and the LED’s (if you wish to install them. The
R30 wiring is a bit touchy, because I was unable to find any thru holes on the main board that I
could use as good solder points for the wire ends. This meant surface soldering the wires to the
points where the SMD resistor was. No mechanically sound, by any stretch of the imagination.
But, I decided to use hot glue as an anchor between the wires, and the jack just above them.
This should solidify things fairly well, preventing the wires from breaking the solder joint
mechanically.

56
Picture of the jumper wires, from the relay, to where R30 was;

As I mentioned before, try to attach the wires securely, in some fashion, to prevent them from
moving around. I used hot glue, between them and the jack above them (glue not shown).

57
As for the 5VDC supply, this comes directly from the regulator. I found a thru hole on the main
board to solder my wire to (wire to the right, trace leading to + of C58);

Ground supply for the program switching, and LED grounding, comes from the wire on the
adapter board which connects to pin 16 of the 27C1001. If you look at the layouts of the
adapter, this wire is Vss. You may use it for all connection points requiring Ground on the switch
wiring. In the same picture, you can also see how the MC34064P has been rewired. Basically,
carefully desolder the transistor, bend the middle leg up, solder your wires (leg, and middle
hole), heatshrink the leg solder, and reinstall the transistor. Connect the wires to the appropriate
terminals on the rotary switch (see wiring diagram).

As for the LED’s, that’s pretty straight forward. Use the 5vdc feed from the regulator, and the
Vss ground that you’re using for the program switching. I used 3mm LED’s, with 1K resistors.
With the switch installed, and the wiring done, and all your wiring is done, it should look
something similar to this;

58
59
60
Once it’s all buttoned up, a final outside view;

As mentioned on page 33, don’t forget to perform the factory calibration. That will zero
everything, and ensure that all settings work properly.

IMPORTANT NOTE ON SAVING “USER” PRESETS.

At the time of writing, experiments using the User presets aspect of the unit have proved
unreliable. Although that after a factory reset, each mode holds different preset numbers,
changing these numbers, seems to cause the numbers in other modes to shift. Worse, using
patch numbers that do not exist in other modes may lead to;

- C5 or C7 errors,

- indication of numbers that don’t exist in a particular mode, resulting in the possibility of no
sound from the unit,

- or, possible lock up of the unit in a particular mode, necessitating a factory reset.

So, for now, other than living with the numbers provided in each mode by the factory reset,
refrain from using the User presets, or you may safely program all modes with the same
number, AS LONG AS THOSE NUMBERS ARE SHARED BY ALL MODES!

61
ADDITIONAL INFO

All .bin files for the XP modes may be downloaded from here (four files in one .zip file);

http://www.aronnelson.com/gallery/main.php?g2_view=core.DownloadItem&g2_itemId=47736&
g2_GALLERYSID=63f2821e003b5c0726e3f0bd4eca194d

The combined 27C1001 program may be downloaded here (compressed .zip file);

http://www.aronnelson.com/gallery/main.php?g2_view=core.DownloadItem&g2_itemId=48409&
g2_GALLERYSID=63f2821e003b5c0726e3f0bd4eca194d

The Z32 Binapp program may be downloaded here (compressed .zip file);

http://www.aronnelson.com/gallery/main.php?g2_view=core.DownloadItem&g2_itemId=48406&
g2_GALLERYSID=63f2821e003b5c0726e3f0bd4eca194d

All XP schematics are here (compressed .zip file);

http://www.aronnelson.com/gallery/main.php?g2_view=core.DownloadItem&g2_itemId=47739&
g2_GALLERYSID=63f2821e003b5c0726e3f0bd4eca194d

HAPPY MODDING!!

62
ANNEX 1
Article on 27C010 programming and multi-booting.

Courtesy of Allan Reinike / IROC-ZONE website.

http://www.iroczone.com/2009/10/understanding-how-the-code-switching-eprom-circuit-
works/

Understanding how the “code switching” EPROM circuit


works
Filed under: Articles,ECM and PROM Programming,ECM Monitoring & Programming,Projects — on @
9:30 pm
projepromsw01.htm

For this article, we will use the 128K EPROM (27C128 used in the 1986 to 1989 IROC-Zs with the 1227165 ECMs) as the
basis for our discussion. This purpose of this article is to educate those on a little bit of binary and hexadecimal background,
in order to understand what’s going on.

Binary numbers consist of 1’s and 0’s only. 1 = 1, 2=10, 3=11, 4=100, 5=101 and so on. Here’s a simple charted example of

one byte (8 bits) of data to explain better:

128 8 64 4 32 2 16 1 8 4 2 1

1 0 1 0 1 0 1 1

A B

The binary number 10101011 equals 171 in decimal. How did we do this? We took the number 10101011 and entered the
bits into the numbered chart (Going from right to left, start from 1 and double the value as you go left. 1, 2, 4, 8, etc. as
shown on the top row.) Then, wherever this is a 1 bit, add that number represented, then the next 1 bit and so on. So we

added 128+32+8+2+1 to equal 171.

What is 171 in hexadecimal? Well, let’s leave it as binary. Hexadecimal is a 16 number base system. You would count 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, etc. Take the right side of the chart above. Add the 1’s together (8+2+1) =
11 in decimal, but B in hexadecimal. Remember …9, A, B, C …represents 11 in decimal. We would then do the same on the
left side, but here’s the trick. Use the SAME numbering convention as if you’re starting over on this section. You would not
use 128, 64, 32, 16. Use 8, 4, 2, 1 again. Add the 1’s together (8+2) = 10 in decimal, but A in hexadecimal.

So 171 = 10101011 in binary = AB in hexadecimal. Yes, we could always use the scientific calculator in Windows, sure, but
in order to understand how this code switching works, take the time and convert some numbers to binary and hexadecimal.

Then VERIFY with calculator to see if you’re correct.

Let’s discuss the 128K EPROM chip, otherwise known as the 27C128 or equivalent. This chip holds 16384 address points
with 1 byte of data each. 1 byte equals 8 bits of data (binary numbers equal 1 bit of data), multiplied by 16384, you get
131072 bits (or 128K bits) of total memory. Remember the 16384 address points. The hexadecimal value of 16384 is 4000h
(we will use h to signify that we are talking about a hexadecimal number). On an EPROM chip, this would be addresses
0000h to 3FFFh.

63
There are 14 address lines in the 128K EPROM chip. A0-A13. Go ahead, figure that one out! Addressing is done via binary.
Take the address lines and lets chart it out…

A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1

3 F F F

If all of the address lines were set to 1, you would reach the last byte of the EPROM memory at 3FFFh. If you wanted to
access the byte at 2000h, the address lines would look like this:

A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

1 0 0 0 0 0 0 0 0 0 0 0 0 0

2 0 0 0

A13 would be the only address line set to 1 to access address 2000h.

Now the good part. Switching of the code on a larger EPROM (or EEPROM) chip. Let’s use the 32-pin 27C010 chip, which
is a 1-megabit chip. We could fit 8 times the code on a 1-megabit chip of the 128K bit chip. For this example, we’ll go ahead
and put the same 128K code in the different sections of the 27C010 chip. Code from 0000h to 3FFFh of the 27C128 would
fit in 0000h to 3FFFh, 4000h to 7FFFh, 8000h to BFFFh, C000h to FFFFh, 10000h to 13FFFh and so on. But how would we
access the different “sections” of the larger chip? How would the ECM know? It doesn’t. We’re going to “fool” the ECM into
thinking it’s accessing the same data via it’s addressing scheme. By manipulating the upper addresses (A14-A16 on the
27C010) manually, we can set the address to different (4000h at a time) sections via a switch of some sort. Let’s see how
this works … well, first off, the 27C010 uses 17 address lines (A0-A16)

A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

65536 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 4 0 0 0

Since the 27C128 chip only has 14 address lines, Setting A14 to A16 to ‘0’ would accomplish the same feat. ECM wants to
access 0000h, it would get 0000h. Theoretically, with an adapter, you could use a 27C010 chip and as long as the needed
data resides at 0000h to 3FFFh, everything would be fine.

With a switch, we’re going to set A14 to ‘1’. What does this do? Changes the address dramatically. If the ECM is wanting to
access 0000h and we set the A14 address bit to 1, the ECM would get data in the 4000h to 7FFFh section of the EPROM
chip. Why? Do the math … as above. Set the A16 to A14 address section to ‘2.’ Which would be 010 (Looking at A16, A15
and A14 bits only). That would set the address to 8000h. Set the A16 to A14 address to ‘3’, which would be 011. This sets
A15 and A14 to ‘1.’ That hexadecimal number is adding 8+4 (see the section – sections will ALWAYS be in 4’s, regardless
of where the “extra” addressing lines are). This would set the address to C000h.

What’s next? Setting A16 to ‘1’ and A15 to A14 to ‘0’ again would set the A16-A14 switch to a 100 binary numbering of ‘4.’
But wait, it’s a ‘new’ section. Yep, but that doesn’t matter to the ECM. The ECM still wants 0000h remember? So lets do this.
Setting A16 to ‘1’ and the rest of the address lines to ‘0’ would result in a hexadecimal address of 10000h. Confusing? Well,
look at address 8000h. In this numbering scheme, with A16 set to ‘0,’ it’s the same as calling it 08000h. Just to make it more
understandable I suppose.

Keep going with it and you’ll see that no matter how you manipulate the bits for address lines A16 to A14, you are accessing
data in the exact same spot, in 4000h address sections at a time. By setting the “extra” address lines to 111 via the
switching, we would access address 1C000h to 1FFFFh. Looking at the datasheet for the 27C010, we’re right on target. It

64
stores data between 00000h to 1FFFFh. Perfect. That’s 131,071 address points with 8 bits each, equals 1,048,568 bits or 1
mega-bit.

So you see, we are controlling where the ECM goes. On the 1227165 ECM, it addresses 0000h to 3FFFh and that’s all it
does. By manipulating the address lines A16 to A14, what we’re doing is changing the address line values on the CHIP, not
the ECM. So if the ECM is looking for data at 0200h and we set the A16 to A14 switches from a 000 to 001, the ECM would
get the data from 4200h. As setting the bit to ‘1’ on A14 tells the CHIP that you want data from 4200h … whereas the ECM
still thinks it’s data from 0200h. We hope this is understandable.

Okay, brain, how do we do this in the real world … here’s where some electronics skills come into play, but someone has
already done the work for you. No, I cannot take credit for it, but I understand completely how it works. This schematic was
obtained from DYI-EFI file repository. After looking over it, decided, this is a good idea. The switching of address lines A16
to A14 will consist of switches (3) and resistors (3). Simple.

Take a look at the above figure. This is a simple switching circuit, attached to A14. With the switch in the OPEN position, the
A14 pin would receive Vcc (or +5V) and would set that address bit to ‘1.’ Closing the switch would pull Vcc to Ground,
resulting on no voltage to the A14 pin and would result in setting that address bit to ‘0.’ Remember, CLOSING the switch
would set it to ‘0’, opening to ‘1.’

If we wanted to “reverse” the switching to make “more sense,” we could use an inverter between the pin and switch. Most
common and readily available inverter is the 7404 Hex Inverter chip, which is a 14-pin dip chip that consists of 6 inverters
that we can use.

Here’s a simple diagram showing the use of an inverter:

With the switch in the open position (off), the result out of the inverter, to pin A14, would be ‘0’ or low. With the switch in the
closed position (on), the result of out of the inverter, to pin A14, would be ‘1’ or high.

The choice is yours. If using the type of DIP switch that when the switch is in the UP position is OFF, perhaps the diagram
without the inverter would be the best choice. The ‘piano’ type DIP switch is most common for this. Using a binary number
counter switch, the use of the inverter would be recommended.

Here’s a draft diagram of a completed circuit schematic. Keep in mind, I only connected the Data and Address lines in the
diagram. You would still connect OE to OE, CE to CE and PGM (WE) to PGM.

65
Keep in mind that Vss is Ground. Notice the switches, 1-3, are set up 1-3 and not 3-1. It all depends how you want to design
the circuit. If using DIP switches, you may want to reverse the switches as 3-2-1. That way, setting the switches to OFF-
OFF-ON would equal 1, OFF-ON-OFF would equal 2, and so on. But then again, OFF-OFF-OFF would set A14-A16 to high
or ‘1.’ Since we’re not using an inverter in this circuit, you have to think opposite. Setting them all to ON, would set all of
them to ‘0.’ It is probably a little confusing, but not hard to get used to I suppose.

For the following diagram, I installed an inverter:

I used the same switch order, 1-2-3. Perhaps, it would be better to go ahead and set these to 3-2-1. In this circuit, you need
to connect CE to CE, OE to OE and PGM to PGM (or WE to PGM – same thing) as well. I just wanted to show you the
schematic of connecting the address and data pins as well as Vcc and Vss (Ground). In the above circuit, all switches to off
is 000 (not 111 as in the diagram above this one).

66
Again, leaving the switch off, would leave a high level on the collector pin of the 7404 hex inverter chip. The inverter would,
in fact, invert the signal, from a high to a low (0 volts). Seeming, that if my switch is OFF, I would want to have a low signal
to the pin it’s affecting. This is optional. Whatever you do, make sure you’re on track with what and how you are doing it.

This is 100% theory and has NOT been tested. I plan on testing this very soon. It has been claimed that you can switch
programs on the fly. WE recommend that you do not switch on the fly. Switching during the middle of data retrieval can be
very harmful to your engine. Let’s say you switch, right when the ECM as looking for a particular value for spark advance.
It’s supposed to be 20* but since you switched the program right in the middle, the data got corrupted and it receives the
value to advance 50* instead! I’m not saying it will happen, I just believe it’s highly probable. Pull over, shut off the car,
switch the program, start it back up. Better safe than sorry.

Allan Reinike

67

You might also like