Cloning a Line 6 Floorboard ::)

Started by Carlos Best, April 04, 2009, 06:04:08 PM

Previous topic - Next topic

Carlos Best

Hi guys! (and gals, been a long time since I don't post anything)

My name is Carlos Best. I'm from Argentina.
Recently I bough an old  POD 2.0 wich uses de old line 6 pedalboard system (Floorboard or FB4)

Wich I have in mind is trying to clone one of those pedalboards.
Two reasons:
1st: Availability: It's a discontinued product
2nd: Price. My POD cost roughly 100uss. Don't want to spend more than 100uss in a pedalboard   :icon_biggrin:

RESEARCH FIRST:
I have found a VERY useful article wich analyzes the floorboard circuit.
http://www.harmonicappliances.com/floorboard/floorboard.html
(It's down so I'm gonna reproduce it below. Credits to the author)

Also found some things here
http://www.diystompboxes.com/smfforum/index.php?topic=36555.0

The idea of the resistor ladder was from here:
http://groups.google.com/group/rec.music.makers.builders/browse_thread/thread/a9e6b84d8d42bd07/028f3019a3f15901#028f3019a3f15901


Quote
Connections
The POD & Floor Board use standard "Category 5" network cables for connection. The connectors on these cables (and the receptacles in the POD and Floor Board) are known as RJ-45s. They're just like standard phone jacks, but with 8 pins.
The pin numbering I'll use for RJ-type jacks starts at 1 and goes from left to right looking into the receptacle (the female socket on the POD or Floor Board) with the locking tab slot on the bottom, like the diagram on the right. "Standard" or not, that's the numbering I'll be using here.
I'll be referring to the various signals from the POD's point of view. The switches and pedals are inputs, and the LEDs are an output.

Signals
The diagram on the right shows the connections at the RJ-45 receptacles in the POD and the Floor Board. The three inputs to the POD (the two pedals and the switches) are all analog, but the LED output is digital.
The two pedal inputs are implemented using LEDs and phototransistors, with a shaded plastic strip moving between them as you move the pedal. The output of each phototransistor drives a 2N4401 transistor, and the output of the 2N4401s is the input to the POD. When connected to an operating POD, I've measured voltage levels on the pedal inputs from 0.25V to 4.1V. On my unit the two pedals don't have exactly the same range (one only goes down to about 0.4V).
The POD has some very strange (to me, anyway) circuitry on its inputs that I assume are for protection of the POD, so I've also looked at the Floor Board independently. When it's connected to a 5V supply (no POD) with 10k pull-ups on the Wah and Volume lines, the voltage range is a little lower (0.2V to 3.7V).
The switches are implemented as a resistor ladder. Each switch taps the series of resistors at a different point, making a variable voltage divider. The resistances are arranged so that some combinations of multiple switches are also detectable (see below). The POD appears to have the equivalent of a 1k pull-up on the Switches line.
The LEDs are controlled by a series of digital pulses whose lengths determine the on/off outputs of four shift registers connected to the three 7-segment LEDs and the various single-purpose indicators.

Switch Input Details
As mentioned above, the switches are connected to some kind of resistor ladder. The table below gives both the input voltages measured at the POD and the resistances from the Switches pin to ground with the Floor Board disconnected from the POD.



LED Output Details
The LEDs line carries a series of pulses whose widths determines the states of the various LEDs in the Floor Board. The POD always sends 32 pulses per update, which refreshes all four of the shift registers that latch the states of all the LEDs. The pulses are routed through a 7414 inverter that uses the pulse width to generate the clock and data signals needed by the 74HC595 shift registers.
Long pulses (3µs high, 3µs low) turn LEDs off and short pulses (1µs high, 5µs low) turn LEDs on. The POD keeps the line low between transmissions. Generally, the POD only shifts out the LED pulses when there is a change in the LEDs, but if any of the LEDs is blinking they're updated every 120ms or so.
The four bytes of LED states are sent MSB (bit 7) first. I will call them D0, D1, D2 and D3, with D0 being the first byte sent. I'll use D0.n to indicate an individual bit in D0, where the value of n ranges from 0 (LSB) to 7 (MSB).



The picture to the right of the table shows which segments correspond to which bits.
The "pointer" LEDs are the ones off to the left of the Distortion and Bank Down labels that tell you whether you're the POD is using the Floor Board in Effect On/Off or Channel Select mode. The question marks about the Wah LED will be resolved the next time I can borrow a digital scope from work for a day or two – I forgot about the Wah LED when I first looked at it...

Unknowns
I don't really understand the circuitry just inside the POD. There are diodes that appear to be intended to protect the POD against voltage spikes, and there is a pull-up effect that seems to be equivalent to 10-15K on the pedals and 1k on the switches.

Unfortunately it doesn't have any schems.
So here's the complicated part. Reverse engineering from theory to circuits :D

Thats what I did by now:


With the resistances table in the article I made a resistor ladder and simulated it with Electronic WorkBench.
After I made sure that the resistances and the voltages where more or less the same than those in the table I bought the components and voila. Everything worked ok. I had used a pot for the last resistor. That value is very important for the thing to work ok.
The only problem I had is the odd values of resistors. In the schem is specified the values I had used in series to achieve certain values.


Carlos Best

Now I have a problem with reading the LEDS

According to the article
QuoteThe pulses are routed through a 7414 inverter that uses the pulse width to generate the clock and data signals needed by the 74HC595 shift registers

I had bought a 7414 and four 74HC595 shift registers (3 for the 7 segments Led Display and 1 for the rest of the single purpose indicators)

Now I need a clue in how to wire the 7414 Schmitt-Trigger inverters to get the data and the clock signals.
Don't know much about digital logic :p

Thata how I breadboarded the 74HC595s
http://arduino.cc/en/Tutorial/ShiftOut

In that tutorial the Registers need 3 inputs (data, clock and clock latch)
Aside from splitting data and clock signals from only one wire :D
what do I have to conect to the clack latch pins?

Thank guys!

OnLyTNT

Hello,

I own POD2.0 too and that's what I' ve been looking for months. Floorboard is damn expensive, so I would like to build one. But I don't get the drawing you have given above. Where to place switches and what do they do? I guess switches are to be placed between the points which indicate functions like tap tempo, channel select, wah on/off etc.. and ground, and simple micro switches can do the job? I mean that kind of switches:

What kind of switches are needed? I would be very grateful if you put a much clear drawing.

Thank you...

Carlos Best

Hi OnlyTNT

You got it.
The switches are momentary normal open. Those tactile switches are perfect except that you must need an actuator if you dont't wanna use them only one time :D
One end to the terminal in the schematic an the other to ground.
With that setup you got all the buttons the floorboard has. ;)

Yo make the resistor ladder, one end goes to pin 6 of the RJ45 (the one who reads the switches) and the other to pin 3 (ground)
Shorting the resistor ladder to ground in those points makes the POD change.

Any clues about the inverters and registers?

OnLyTNT

Hello again,

Thanks for the tips, I perfectly got it. Those micro buttons/switches are used in non true bypass pedals you know, I have some of them. They have done their job well so far, for a low budget floorboard I think they are best choice. At least, they can be used in test stage.

I'm working on the logic puzzle  :icon_lol: but hit the wall like you with 7414 thing. I have a solution and will try that soon, I'll inform you about it.

Carlos Best

Hi TNT...

Seems we are the ones interested in tha project.  ;D

When I read the document I thought that the thing must goes like this more or less

Quote

That figure shows a 555 timer circuit which generates clock pulses whose frequency can be varied by changing the setting of VRl. The clock pulses produced by this circuit are sharp enough to be suitable for CMOS digital circuits, but a TTL buffer circuit is needed if TTL circuits are to be driven. Using a Schmitt buffer, such as one part of the Hex Inverter 7414, will ensure that the output pulses have short rise and fall times and are able to drive 10 input circuits.

Just replace the net of the 555 with the "LED" pin of the pod.

That would fix the clock part of the problem, we need to figure the data line.
Maybe the data is the unprocesed "Led" pin. Just conecting the raw output of that pin to the data pins on the registers would do tha trick


OnLyTNT

Hi,

I've been playing with Proteus simulator and so far gotten nothing :P. Shift registers are easy to implement with separated data and clock lines but I can't figure out 7414's job. The explanation is not clear enough for me on the web site where floorboard's secrets are revealed.

You need to synchronize both transmitter and receiver in data transmitting applications afaik. That's why external/independent clock generator may fail in the future sometime. Also, you don't need 555 to generate clock impulses, the schmitt trigger can do the job on his own (with some extra components of course). Lets say external clock generator works properly, why do we need hex schmitt trigger inverters?

"The pulses are routed through a 7414 inverter that uses the pulse width to generate the clock and data signals needed by the 74HC595 shift registers."

I think POD's signal ouput for leds has modulated data and should be demodulated with 7414 but how?


Carlos Best

Quote from: OnLyTNT on April 05, 2009, 11:02:55 AM
You need to synchronize both transmitter and receiver in data transmitting applications afaik. That's why external/independent clock generator may fail in the future sometime. Also, you don't need 555 to generate clock impulses, the schmitt trigger can do the job on his own (with some extra components of course). Lets say external clock generator works properly, why do we need hex schmitt trigger inverters?

"The pulses are routed through a 7414 inverter that uses the pulse width to generate the clock and data signals needed by the 74HC595 shift registers."

I think POD's signal ouput for leds has modulated data and should be demodulated with 7414 but how?



It's clear that external clock generation with discrete components was not the idea. I just posted the schem cause maybe the only thing we need to get the clock signal is to invert the output of the pod with the 7414

Quote from: OnLyTNT on April 05, 2009, 11:02:55 AM
I think POD's signal ouput for leds has modulated data and should be demodulated with 7414 but how?

Thats THE clue to this mistery. How to demod the signal

GURUS ADVICE REQUIRED!  ;D

OnLyTNT

I wonder if there are some extra components around 7414. With only schmitt inverters, it seems there is no way to extract data and clock signals from the original wave form or I'm not that smart :P. I wish we could see the circuit board...

Carlos Best

#9
Seems we're stuck here.

Need more info from an elevated mind or pics of the real thing

I wish i could change the title of the topic to something more explicative on whats happening inside  :icon_confused:

slacker

#10
I can see how this could work, but I'm not sure how you would actually do it.

The four 74HC595s are probably connected in series to make one 32 bit shift register, with all the clock pins connected together. Line 5 from the connector would then be connected to the serial input of the first 74HC595, possibly with some of the 7414 to buffer the signal.

This next bit is what I'm not completely sure about, but I'll try and explain. If you look at the data given for the pulses you've got one that is on for 3us out of 6 and one that is on for 1us out of 6. If you sampled this data 2us after the pulse started the 3us pulse would give you a 1 and the 1us pulse would give you a 0, which you could then load into the shift register.
To do this you need to somehow generate a high going edge or pulse 2us after the original pulse starts. In theory you could do this by connecting line 5 to a one shot pulse generator made out of some of the 7414 gates like shown here. If you then fed the output of the one shot to the clock pins of the 74HC595s that would load either a 1 or a 0 into the register depending on the length of the original pulse.
I don't know if you could accurately generate a 2us pulse doing this though. I can't see how else it can be done though unless there's some part of the puzzle missing. Maybe there's some more circuitry that provides the clock pulses synced to the data line in some way.

Carlos Best

#11
Thanks Slater!!!

Thats a begining. I'll read the article you posted and tell you if I arrive to something.

I have the thing breadboarded with all the register in series. Like the article I posted before.

So i'll give it a shot

Carlos Best

Slacker!

I tried what you suggested.

I connected the output of the POD and buffered that with one of the inverters. Thats my clock signal

Then I used the one shot circuit that appears in the links you suggested. I used the one that has the 100k res to ground (i used a pot and a 2.2uf polarized cap)

Then moving the pot makes the leds blink to the rythm of the tap tempo! I used the last shift register, the one that has the single purpose indicators.

unfortunately thats to the only thing to they respond.

I think we are in the correct way. But don't know were to continue :d

i asked in another forum if they could post some pics of the interior of the floorboard or the fb4 (wich I think its the same without the led displays)  Lets see what happens...


OnLyTNT

Here what is in my mind:

You need to split incoming signal into two line, each line has a circuit of course. First circuit has a rising edge detector with a pulse generator following (3 us pulse width), that's clock signal. Rising edge of incoming pulse triggers the first circuit and registers will have 3 us clock signal. Second line needs to be just inverted, that is our data signal. When pulse has 3 ms width, clock will be logic 1 (clock doesn't care pulse width) but the second line is inverted and you will read logic 0 in the input of shift register. When output of POD has 1 ms width, again clock will be 1 for 3 us. Here comes the trick; since we got our clock signal fixed at 3 us, you will read logic 1 after 1 us at the input and the register can have logic 1 at the same time with the clock in 2 us... That's why I asked if 7414 has extra components. The problem is I couldn't make the first circuit work with the simulator :p.

I think slacker is talking about something similar or the same thing.

Btw, you need to connect SHCP and STCP to each other on each register (pins 11 and 12) if you don't.

slacker

#14
Quote from: OnLyTNT on April 06, 2009, 10:37:40 PM
I think slacker is talking about something similar or the same thing.

Yeah, we're both saying basically the same thing. You somehow need to generate a pulse that will clock the shift register at the point where the original signal will give either a 1 or a 0 depending on the original pulse width.

Carlos Best

#15
Could anyone put some circuits illustrating what you want me to do :D

Basically need a "rising edge detector with a pulse generator following (3us)"  :icon_mrgreen:

I don't know anything about digital logic... :(

Anyway I'm trying to trade something for a used FB4 to copy the register circuits. So.. lets try with this and learn something in the way... or lets wait for the real thing

Carlos Best

#16
Well Guyss

Thanks to a friend In Spain I got some pictures of the guts of a FB4

So, here they are



I did the tracing Already so here it is. have a look and tell me what going on that circuit





Verified. It works like a charm :D

Carlos Best

#17
x

trixdropd

So you figured it out!! great for you!!

Carlos Best

Thanks Man!!

I 've been playing with the circuit all the afternoon.

But there's some work to do already.

PROBLEM 1:

The circuit only lights the 4 leds of the presets and the one that corresponds to the tap tempo. the other are dead
That using 1 register (the one in the schem)
I tried to connect the other 3 registers and nothing happened. Maybe I made the connections wrong
That circuit woun't be usefull for cloning the full floorboard.
Think the inverte circuit only processes the data for one register.

PROBLEM 2:
I think there are some wrong values in the circuit cause sometimes when you turn on the pod, the leds don't light until I touch with my fingers the cap or the 470ohm res in the data line
Also when i went into manual mode and then go back into preset mode the leds die until I touch the circuit again.

Any help would be VERY apreciated.