Saturday, January 23, 2010

Maybe a data entry knob for Poly 61?

I have been looking for a reason to learn PIC programming for a while. But, with my Matrix 1000 editor project, a PIC really does not have much contribute with compared to the LPC2103 ARM7.
However, a few nights ago I was thinking that it might be nice with a data entry knob on the Korg Poly 61, similar to the alpha dial on the alpha junos.
Perhaps a suitable job for a PIC?

I've been looking at the schematics a bit and it seems like (as usual) the buttons are scanned by addressing them with some address decoding logic and then the data bus checks which buttons are pressed.

So, the plan is to buy a PIC programmer and some PICs, learn how to program them and then try to implement the actual data entry knob.
I'll be using a rotary encoder (endless knob) for data entry. I don't really know a lot about PICs but the plan for the design is something like this:
  • Connect the address line to an interrupt pin on the PIC
  • Connect two pins on the PIC to the data bus side of the buttons
  • Connect the rotary encoder to two pins of the PIC


Now since I haven't really investigated the function of the buttons, the rotary encoder or the PIC, I can't really say that I know what I'm doing :)
Anyway, I imagine it would work something like this:


The rotary encoder sends pulses with a phase difference depending on which way the knob is turned. So, what I could do is set the pins connected to the Poly 61 keys to inputs to make them high impedance so I won't mess up the data bus.
Then the PIC will keep scanning the encoder inputs (or use interrupts) and keep track of which way it's being turned. When I get a signal on the address select line I will change the pins connected to the Poly 61 keys to outputs and if there was any input on the encoder since last time, change the outputs accordingly to simulate that one or the other button is being pressed.

I'm a bit nervous about what'll happen if I press the actual buttons at the same time though. Maybe I need to add some diodes or something, perhaps cut the address lines to the buttons or maybe use a larger PIC so I can connect the buttons to it instead, making both the buttons and the encoder possible to use simultaneously.

We'll see. Anyway, first I'll have to start by getting the programmer and PICs and learn how to use them :)

No comments:

Post a Comment