mandag 25. mai 2015

Free the PG-200!




Around three years ago, in april 2012, I decoded the PG-200 protocol. Using a Saleae logic probe I took a closer look at what happened while using the PG-200, and built a device that converts MIDI CC messages into PG-200 commands. This device, the MPG-200, also receives and transmits MIDI note messages, making it possible to completely control the JX-3P using MIDI.

To my knowledge, at the time I started the project only two other devices existed that could do this - the KiwiTechnics JX-3P upgrade and Patch Editor and the Organix Midi upgrade kit. These both require extensive modification of the JX-3P. Later, Mode machines made a PG-200 clone called the DT-200. I have yet to see the PG-200 protocol fully documented anywhere, but I may have missed something as I have not searched the web lately.

As a tiny gift to the synth community in honor of my daughter's birth, I now release all the information I have gathered. This document is based on the data found in the JX-3P/PG-200 service manual as well as a lot of work done by myself. Feel free to use it in any way you see fit, but I would be really happy if you acknowledged my contribution.

The complete protocol description can be found at http://www.xonik.no/mpg-200/pg-200/pg-200.html

9 kommentarer:

  1. Excellent job. I'm working in a similar project and it's very important to me your info..
    Thanks..

    SvarSlett
  2. Svar
    1. Fixed! Do you have any info in your project or anything else interesting?

      Slett
  3. Hi Joakim,

    I've been wanting to do something like this for a while with my JX-3P, but I'm not interested in the full Kiwi Mod (don't need most of the features). Is this product still available? Can it be used in conjunction with the PG-200?

    Thanks,
    Jon

    SvarSlett
    Svar
    1. Hi Jon! The product is available, in fact I am still looking for someone to beta test it.

      It can unfortunately not be used with the PG-200 connected. There are a few shortcomings (because of the way an unmodified JX-3P works) that mean that while you can both play notes and send cc messages through midi using the MPG-200, you cannot to both at the same time. Automatic switching between them is added but the switching time is not instant.

      You CAN use the mpg-200 to control all CC params while using the keyboard to play. Check out Gotchas on http://www.xonik.no/mpg-200/pg-200/pg-200.html for details

      If you want to reach me, my email is myfirstname @ mylastname.no (and my name is joakim tysseng). I'll be happy to tell you more about the MPG-200 and how it works.

      Slett
  4. Hey!
    Excellent job! Still the only place on the google-span that describes the PG-200 message format. I am starting a project based on an Arduino with the same functionality: getting CC messages (from a midi controller) to the 6pin output, in which I will make extensive use of your findings.
    I have built several midi devices with Arduino, so the input is not a problem. I have found an arduino-include to send the 9bit serial messages. The only issue is.. how to link them together.
    I will, by the way, not be using it to control a JX-3 but the GR-700 guitar synth, which houses the same boards.
    Thanks again!
    Patrick.

    SvarSlett
    Svar
    1. Hi Patrick, Nice to hear about Your Project! Making a midi-to-pg converter should be very straight forward. The MPG-200 is only complex because it is able to do both midi and pg out, which means it needs a bit of intelligence. The GR-700 has been on my list of synths I want for a really long time, it would be cool to hear more about Your Project in the future!

      Slett
  5. Great work
    I am interested in the hardware. Is it available? What does it cost? I do not need the midi connector and would like to have the PIC preprogrammed.
    I believe I'm aware of the limitations (note/CC messages not together)
    Best regards Kees Kooijman

    SvarSlett
  6. Hey there,

    I've been reading your posts in an attempt to reverse engineer my own PG-200 clone for my JX-3P using an Arduino Uno. I have a few more in-depth questions that maybe you could help me with, as I don't have my own PG-200 to use as an example (for example, how precise the bitrate needs to be). Let me know if you are able to help with this :)

    SvarSlett