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.

CodeSmart

Quote from: meo_udon on February 14, 2017, 09:25:04 PM
Good news! Protocol is a MIDI*2.

Great work. Finally my initial thread question got answered.
Now it's just a matter of finding out the MIDI commands used.
Thank you  ;D
But I got more gear than I need...and I like it!

vtgearhead

The foot controller functions are a strict subset of those available in sysex.  It would be odd if the command syntax was different.

meo_udon:  Can you document the various buttons on the controller so we can tell for sure?

meo_udon

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

meo_udon

#28


I test with arduino.

Byte 5 SW
Byte 7 checksum

GuitarBuilder

"There's no-one left alive, it must be a draw"  Peter Gabriel 1973

melodisk

Would it be possible to use other midi footcontroller and make a midi to stereo jack cable, and send midi commands into the katana ga-fc jack in.

vtgearhead

In terms of hardware protocol, definitely not MIDI.  However, based on the analyzer trace the software protocol might well be.  I wish meo_udon would update us on his progress.

CodeSmart

I've been looking for the schematics of one of the Boss amps having a jack for this foot controller. No luck. Anybody got it? Elantric?
But I got more gear than I need...and I like it!

vtgearhead

If you find the schematic, please let us know where.  I haven't seen one.

Meo_udon seems to be taking a break from the forum, but I'm wondering if the communication protocol isn't just asynchronous serial data (as from UART).  My little TechTools logic analyzer can directly decipher a number of serial protocols.  But, unfortunately I do not have a GA-FC.  Sweetwater expects them in April some time.

gumtown

#34
From the data capture, the transport protocol looks like 8 bit resolution PWM, rather than serial bit data.


the data protocol looks like Roland proprietary sysx command communication, such as the Tone Studio editors use.

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

vtgearhead

Yes, and I'm betting the sysex protocol on the pedal jack matches the corresponding commands accepted on USB (or 5-pin MIDI).

Elantric

#36
QuoteMIDI ooutput port, though it is only populated on the Katana head


Actually The Katana Head only has one 5 pin DIN MIDI INPUT , no  5 pin DIN MIDI Output jack

5 pin DIN MIDI INPUT is for supporting an external MIDI Footcontroller

meo_udon

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.


Sent from my iPhone using Tapatalk

gumtown

Quote from: meo_udon on March 27, 2017, 07:25:06 PM
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.


Sent from my iPhone using Tapatalk
Nobody has said they don't believe you, there is not enough information.
Would you could be kind to share with us what you have found?
what are the commands sent for each switch action?
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

meo_udon

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);
}

gumtown

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

vtgearhead

Quote from: meo_udon on March 27, 2017, 07:25:06 PM
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.

Hero?  No, not really.  I know enough to be dangerous most of the time and correct somewhat less frequently.

What is the signaling rate on the pedal jack?  31.5 kHz (MIDI rate)?  It would make sense for Roland to use MIDI signaling on a non-isolated connection since they already have the decode logic on the board.  If this is the case it suggests a simple, cheap way to bring 5-pin MIDI to the combo amps without internal modification.


sixeight

Quote from: meo_udon on March 27, 2017, 07:25:06 PM
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.

How do you connect this to the uart on the Arduino? Half duplex suggests that it is the same line used for both sending and receiving.

meo_udon


meo_udon

Quote from: sixeight on March 28, 2017, 07:40:10 AM
How do you connect this to the uart on the Arduino? Half duplex suggests that it is the same line used for both sending and receiving.

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.

meo_udon

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

CodeSmart

Quote from: meo_udon on March 28, 2017, 09:03:38 AM
On KATANA no have short circuit protection for GA-FC socket. Be careful. Don't pull or push jack while power on.

Thank you friend meo_udon very much. Your input is very much appreciated among us.
All your knowledge is very good.
Thanks  :)
But I got more gear than I need...and I like it!

vtgearhead

Quote from: meo_udon on March 28, 2017, 08:55:02 AM
I say MIDI x2. 62500 Hz.

Easy enough to do with a RaspberryPi.  There's plenty of information on setting the port to non-standard baud rates.

Bad news is that my idea for a simple and cheap 5-pin MIDI adapter sort of depended on it using 31.5 kHz. I'll pickup a GA-FC as soon as I can find one and start playing around.

And, yes, I imagine the foot controller jack does not have industrial strength isolation.  Thanks for all the information and warnings, meo_udon.


meo_udon

Cable -> arduino
Gnd -> gnd
Ring -> 5V
Tip -> TX0

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);
}

sixeight

QuoteBad news is that my idea for a simple and cheap 5-pin MIDI adapter sort of depended on it using 31.5 kHz. I'll pickup a GA-FC as soon as I can find one and start playing around.

It is quite easy to build a convertor around a Teensy LC. The Teensy LC has three serial ports and it relatively cheap.

The RPi should be able to do it as well. I have already worked out the details in the VCbridge code for the VController on how to change the baud rate to midi clock. Just double the numbers and it should work for the GA-FC...

https://github.com/sixeight7/VCbridge