Katana - Roland GA-FC Foot controller communication

Started by CodeSmart, January 18, 2017, 08:42:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

vtgearhead

Yes, that will certainly work.  But, I'm hoping the pedal connector drives the same circuit as the opto-isolator behind a MIDI plug would.  If it can understand 31.5 kHz serial protocol than a 5-pin to 1/4" adapter involves about 4 components.  Meo_udon mentions 62.5 kHz, but I cannot understand why Roland would have done that when they already had a base circuit setup for 31.5 kHz.   I expected something like this:

MIDI Connector ---> opto-isolator --->
                                                        OR Gate ---> UART ---> Control logic        |
1/4" Pedal Plug -------------------------->

The GA-FC is pure unobtainium at the moment, but as soon as I get my hands on one I'll have this figured out.

admin

#51
QuoteThe GA-FC is pure unobtainium at the moment, but as soon as I get my hands on one I'll have this figured out.

supposed to ship April 5 here:
https://www.amazon.com/gp/offer-listing/B008E0ZS0K/ref=dp_olp_new_mbc?ie=UTF8&condition=new

I find them used by checking the typical sites Reverb, TGP, Ebay, Guitar Center used - when they pop up for sale they go fast.

folks forget this same GA-FC is used by GA-112, GA-212, Cube-40GX, Cube-80GX, Blues Cube Artist, and Katana 100 watt models. Any buyer seeking any of these amps is seeking or selling a GA-FC (new / used)


Id be looking at the VG-99 schematic
https://www.vguitarforums.com/smf/index.php?action=dlattach;topic=28.0;attach=965
- I bet the TRS interface for GA-FC is a variation on the RRC2 - ( which uses RJ-45 connection = CAT5 8 pins)  and feed the common UART on the CPU - however now they have a half duplex one wire bidirectional arrangement for GA-FC foot controller using  1/4" TRS cable

Tip  =  Data
Ring =  5VDC
Sleeve = Ground


However the data for GA-FC is bidirectional on one wire  - i.e.  you can change the current AMP Channel on the Katana amp ( CH1, CH2, CH3, CH4), and the GA-FC follows and stays in sync.

sixeight

Quote- I bet the TRS interface for GA-FC is a variation on the RRC2 - ( which uses RJ-45 connection = CAT5 8 pins)

RRC2 does midi in and out at normal MIDI speed. And it has separate pin pairs for midi in and midi out. Not much to learn here. An RRC2 to midi connector would require just the connectors and no extra components. The VG99 already has an optocoupler in place for the RRC2 midi in pins.

RRC2 does accept the same MIDI commands as the regular and usb midi ports do, though there is some extra sysex information being send, which is undocumented in the VG99 midi specification.

vtgearhead

Bi-directional.  Hmm.  I2C and other one-wire standards have a protocol for this.  But plain old serial communication?   Maybe some type of collision detection and backoff.  Or maybe I'm overthinking the entire thing.

sixeight

Quote from: snhirsch on March 30, 2017, 10:10:22 AM
Bi-directional.  Hmm.  I2C and other one-wire standards have a protocol for this.  But plain old serial communication?   Maybe some type of collision detection and backoff.  Or maybe I'm overthinking the entire thing.

I have been googling "uart duplex". Maybe something like this:



Though a solution of Roland is usually more elaborate than this.

admin

#55
reference

https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/258461

Quote

Communicate through uart ports(TXD/RXD) with a single wire.Is this possible

In reply to Andy Neil:

I have a crude hardware interface circuit for half-duplex One-Wire UART to UART connection as shown here. 


Both Tx and Rx are assumed to be active low. If Tx is from an open collector or open drain, the diode is not needed. This interface is prone to ground noise and RF interference.  It can also be very slow due the stray capacitance of the wire.

A fairly robust software protocol is as follows:

Both sides are normally in a watch-request-state (see below for details of how a request is made).

If a request from the other side is detected, the detecting side enters a receive-data-state. It stays in this state until there is no more data from the other side.  That condition is detected by a prearranged Rx timeout or by a prearranged special EOT byte appended to the end of data bytes. Either way, the side exits the receive-data-state and goes back to watch-request-state.

While both sides are in the watch-request-state, if either side wants to transmit data, it has to (a) make sure the other side is not sending a request, (b) send a 2-byte request of its own, and (c) receive the loop-back echo of that 2-byte request.  I suggest that one side uses 0xFF, 0xFF while the other side uses 0xFE, 0xFF as the said 2-byte request.

If the correct loop-back bytes are received, it indicates that there was no collision on the One-Wire interface and the side that makes the request goes into transmit-data-state. When all data bytes are transmitted, it uses either one of the aforementioned methods to end this transmit-data-state and goes back to watch-request-state.


QuoteThough a solution of Roland is usually more elaborate than this.

Absolutely!

sixeight

#56
QuoteWhile both sides are in the watch-request-state, if either side wants to transmit data, it has to (a) make sure the other side is not sending a request, (b) send a 2-byte request of its own, and (c) receive the loop-back echo of that 2-byte request.  I suggest that one side uses 0xFF, 0xFF while the other side uses 0xFE, 0xFF as the said 2-byte request.

There is probably no watch state data exchange going on, but it might. I would expect data to be send on pressing a switch and the Katana responds quickly with an updated LED state. If the data goes fast enough, there is no need for a mutual data exchange before sending. That might be the reason they doubled the MIDI speed. It may also mean there is a limited midi data set on this connection to avoid collisions.

All speculation though...

meo_udon

#57
If you look at the my picture. You sould be found. Do not guess. Sorry for my english languege. I am Thai.


Sent from my iPhone using Tapatalk
------------

vtgearhead

Unfortunately, I can learn nothing from your video.  I understand the language barrier, but code and schematics are sort of universal.  Would you consider posting a schematic of your interface?



Elantric

#60
Read all excellent Posts by: meo_udon here:
https://www.vguitarforums.com/smf/index.php?action=profile;area=showposts;u=21573

I'use Katana 100 112. I saw pcb behind GA-FC jack. Tip is bi-direction with 2 opto coupler. Ring is 5V supply. If any body can capture signal on tip for baudrate or some commands. I think I can know protocol.

If you think I2C. Where is power supply for GA-FC. And I2C not use for long range. The ring pin can drive more than 200ma. Not posible to CLK pin.

Good news. System firmware between Katana100 and KatanaHead are same. And I saw midi pin on Kanata100/112 pcb. I plan to test midi transfer on my amp.

I'm not take a photo but only opto-coupler and some resistor miss. If I open it again I will take a photo for you.
Next plan. I plan to use my mcu in my amp and use GA-FC jack to communication to it. Direct push switch by pc817.

Midi port on KTN-100/112
Some part opto and R under pcb.

My GA-FC come to Thailand now. If I got it. I will capture signal for you.

Miss 1 opto and 3 R same components as GA-FC port.

Good news! Protocol is a MIDI*2.


I have map every bytes already. So easy. I'm completed with arduino.
It is not I2C.

GA-FC delay only lamps. 3Hz update time but every switch are realtime. I check from my GA-FC signal and I watch TAP switch.

Why everybody do not believe me? It half duplex UART with midi protocol like.
snhirsch you are only hero another are not. I work with midi since 1985. I cloned MPU-401 in 1990. GA-FC only 20 mins to hacked.


I say MIDI x2. 62500 Hz.


You can switching floating logic by software or use open corrector logic together. I put TX and RX for test but for long cable I use with opto same as MIDI interface. You can see circuit at the bottom of KATANA PCB nearly GA-FC socket.


On KATANA no have short circuit protection for GA-FC socket. Be careful. Don't pull or push jack while power on.

Cable -> arduino

GA-FC 1/4" plug TRS connections:

Tip -> TX0 ( data )
Ring -> 5VDC (Power)
Sleeve -> Gnd



char a, b;

void setup() {
  //  Set MIDI baud rate:
  Serial.begin(62500);

  delay(1070);
  Serial.write(0xf0);
  Serial.write(0x0);
  Serial.write(0x0);
  Serial.write(0x56);
  Serial.write(0x7f);
  Serial.write(0x2b);
  Serial.write(0xf7);
 
  delay(7);
  Serial.write(0xf0);
  Serial.write(0x0);
  Serial.write(0x0);
  Serial.write(0x7f);
  Serial.write(0x7f);
  Serial.write(0x02);
  Serial.write(0xf7);
  delay(300);
 
}

void loop()
{
  char  ch, sum;
 
  if (!a)
  {
    b++;
    if (b == 4)
      b = 5;
    if (b > 5)
      b = 0;

    ch = 1 << b;
    sum = 0x80-ch;
    sum += 2;
    sum &= 0x7f;
   
    Serial.write(0xf0);
    Serial.write(0x0);
    Serial.write(0x0);
    Serial.write(0x7f);
    Serial.write(0x7f);
    Serial.write(ch);
    Serial.write(0x0);
    Serial.write(sum);
    Serial.write(0xf7);
   
  }
  else
  {
    Serial.write(0xf0);
    Serial.write(0x0);
    Serial.write(0x0);
    Serial.write(0x7f);
    Serial.write(0x7f);
    Serial.write(0x0);
    Serial.write(0x0);
    Serial.write(0x02);
    Serial.write(0xf7);
  }
 
  pinMode(1, INPUT); 
  delay(10);
  pinMode(1, OUTPUT); 

  a++;
  a &= 0x03;     
  delay(330);
}



If you look at the my picture. You sould be found. Do not guess. Sorry for my english languege. I am Thai.



vtgearhead

I think this:

QuoteGA-FC delay only lamps. 3Hz update time but every switch are realtime. I check from my GA-FC signal and I watch TAP switch.

is discussing bi-directional communication, but I'm just not able to parse it.  Is he saying it listens for LED control commands from the amp every 1/3 sec? 

Elantric

#62
Quotes discussing bi-directional communication, but I'm just not able to parse it.  Is he saying it listens for LED control commands from the amp every 1/3 sec?

That was in response to a question: "How sluggish is the Katana Amp switching?"
https://www.vguitarforums.com/smf/index.php?topic=20322.msg146552#msg146552

his reply

QuoteGA-FC delay only lamps. 3Hz update time but every {GA-FC} Foot switch {press with a foot,  the Katana Amp channel changes occur in } realtime. I check from my GA-FC signal and I watch TAP switch.

meo_udon

Last 6 bytes are talk from Katana. They have status lamps byte. When you touch any switch or volume Gafc force send data to katana. But if idle state is 3Hz .


Sent from my iPhone using Tapatalk

vtgearhead

Let me play back what I think I understand: The pedal is always in listen state at idle, which is how it responds to panel changes on the amp.  When you step on a footswitch, the pedal goes active only long enough to send the message, then drops back to idle.  After receiving a command, the amp waits three clock periods before returning an LED control message to ensure the pedal is listening again.



sixeight

#65
Quote from: snhirsch on March 31, 2017, 05:09:03 AM
Let me play back what I think I understand: The pedal is always in listen state at idle, which is how it responds to panel changes on the amp.  When you step on a footswitch, the pedal goes active only long enough to send the message, then drops back to idle.  After receiving a command, the amp waits three clock periods before returning an LED control message to ensure the pedal is listening again.

When I look at the MIDI sysex picture, there are two messages. My guess is the first message (F0 00 00 7F 7F 20 00 62 F7) is the message send by the pedal. Is the seconds message (F0 00 00 20 60 F7) the response from the Katana  or is it also sent from the pedal?

The numbers before F7 (62 and 60 hexadecimal) are checksum bytes.

An interesting experiment would be to send other commands from the Katana sysex document and see if the Katana responds or not. Then we know if there is a limited instruction set on this connection or not...

vtgearhead

Quote from: sixeight on March 31, 2017, 08:22:09 AM
When I look at the MIDI sysex picture, there are two messages. My guess is the first message (F0 00 00 7F 7F 20 00 62 F7) is the message send by the pedal. Is the seconds message (F0 00 00 20 60 F7) the response from the Katana  or is it also sent from the pedal?

Meo_udon is saying that second message is amp response (LED control)

Quote
An interesting experiment would be to send other commands from the Katana sysex document and see if the Katana responds or not. Then we know if there is a limited instruction set on this connection or not...

I'd be amazed if the pedal interface port didn't understand the entire command set.  Why would they go to the expense of a separate data path?  My bet is it ties into the MIDI in/out path in an arrangement similar to the little ASCII diagram I posted above.

I believe the GA-FC output driver is active only for long enough to send a message and goes into Hi-Z (tri-state) immediately after.  Simply connecting a serial output to the amp is probably not a good idea.  On a RaspberryPi, one could use an additional control line to gate a driver.  Would require a little bit of hardware hacking, but not too bad.

sixeight

QuoteI'd be amazed if the pedal interface port didn't understand the entire command set.  Why would they go to the expense of a separate data path?  My bet is it ties into the MIDI in/out path in an arrangement similar to the little ASCII diagram I posted above.

I think there is a reasonable chance it does have a limited set. When the Katana is switched to editor mode it starts sending lots of sysex data. Because of the half duplex connection it may miss a button press when in editor mode. The easiest solution I see is to disable that uart from all editor related communication.

This uart already runs at a modified baud rate. So we are certain it is a different uart from the midi uart. I it really can go either way.

Elantric

#68
QuoteWhen the Katana is switched to editor mode it starts sending lots of sysex data

Over USB  - which is the only connection option for the Boss Tone Studio for Katana Editor

Of course we can assume the  5 pin MIDI IN( Katana Head) and the GA-FC TRS connection  use a common serial UART on the Katana pSOC CPU , while the USB is a separate data communication path to the Katana's CPU   

sixeight

#69
Quote from: Elantric on March 31, 2017, 10:23:23 AM
Over USB  - which is the only connection option for the Boss Tone Studio for Katana Editor

The VG99 is able to send this data over serial MIDI and RRC2 as well.

QuoteOf course we can assume the  5 pin MIDI IN( Katana Head) and the GA-FC TRS connection  use a common serial UART on the Katana pSOC CPU , while the USB is a separate data communication path to the Katana's CPU   

Maybe meo_udon is willing to do a test for us. Maybe Steve can come up with a good sysex string to test this. I cannot verify anything as I do not have the Katana. But it is fun to join in this discussion...

vtgearhead

I always love to speculate about vendor design choices.  Occasionally I'm correct, but I learn much more from the cases where I'm not.  I won't have time for a couple of weeks to breadboard a tri-state driver to talk with the GA-FC plug.  Still don't think it's a good idea to tie a TTL output directly to it if data comes out of the port as well.

Basic transmission scheme:


  • Put driver in output state
  • Transmit MIDI string
  • Put driver back in Hi-Z state

gumtown

Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

vtgearhead


admin

#73
Quote
The GA-FC is pure unobtainium at the moment, but as soon as I get my hands on one I'll have this figured out.



https://www.amazon.com/Roland-GA-FC-Controller-GA-112-GA-212/dp/B008E0ZS0K


https://8thstreet.com/Product/Get/68422/roland-ga-fc-foot-controller-for-ga-112-ga-212-and-cubes

vtgearhead