Replacing the encoder on a JV-2080
Part I: Context
I recently purchased a Roland JV-2080 synthesizer locally, and found
its "value" knob had lost its precision. This knob is the primary tool
one uses when programming new sounds or editing existing sounds, so
it's important that it works properly. When turning the knob one
increment to the right, the synthesizer would think the knob had been
turned six or ten increments to the right. When turning the knob one
increment to the left, the synthesizer would think the knob had been
turned two or three increments to the left.
Figure 1. An animation showing the poor precision of the original encoder
on my JV-2080.
This of course was a problem, and I took it upon myself to solve it.
I started by doing some research into the JV-2080 to see if there were
other people complaining about this problem online, and if those people
had found a solution. There were some promising solutions that involved
opening the encoder behind the knob and cleaning it, but I was most
intrigued and impressed with
what I found on the "mitxela" website here [link retrieved on
Part II: My work
There was no reason that I could see to reinvent the wheel with this,
so to speak. The replacement project on the mitxela site is already
very elegant. What I thought was - "how can I improve on it?" To that
end I decided to create a small custom PCBA in lieu of the protoboard
assembly documented in the link above. The schematic of the PCBA I
designed is virtually identical to what mitxela used, but with some
places to put resistors in case the encoder replacement siphoned too
much current from the JV-2080 electronics.
Figure 2. A schematic of the encoder replacement PCBA
The physical layout is fairly simple, with most traces fitting on one
Figure 3. The layout of the replacement encoder PCBA. Note that the
copper ground fills are hidden here to so that the traces are more
Having finished the design, I ordered the PCBs from a prototyping
shop (like OshPark) as well as the parts to be soldered to the PCB.
Everything showed up at my doorstep a few weeks later and I then
soldered it all together. The next step was to flash mitxela's code
onto the microcontroller...
Part III: Flashing the ATTiny13A
I initially ran into some difficulties running the makefile provided
by mitxela for
their github project
. The code would not compile on my computer,
but mitxela added a pre-compiled hex binary that worked fine with the
proper avrdude command:
avrdude -P /dev/tty.usbmodem14201 -c avrisp -b19200 -p t13a -U hfuse:w:0xFF:m -U lfuse:w:0x73:m -U flash:w:sc.hex:i -B50
Note that your avrdude command may look slightly different depending
on what programmer you use. In my case, I used an Arduino Uno board
with the in-system programmer sketch loaded. After flashing the
microcontroller, all that was left was the physical installation and
Part IV: Physical installation and test
The installation of the replacement encoder board was straightforward;
the only difficult was relocating the connector from the original
encoder PCBA onto my new one. The original connector uses a simple
direct wire-to-board scheme, but with very thin plastic in the
connector body and the wire retention clips. In the end, patience and
persistence won out and I was able to relocate the connector
successfully. Truthfully, it was not necessary to "save" the original
connector in this way - it would have been completely fine to simply
solder the original encoder board's cable directly to my replacement
All that was left was to close the thing up and give it a test!
Figure 4. An animation showing the action of the new encoder assembly on my JV-2080.
Part V: Closing and disclaimer
The good news here is not just that I have a much happier old piece
of technology, but that anyone with a similarly old Roland synthesizer
could build and install this themselves with a free afternoon, a steady
hand, a soldering iron, and the means to flash an ATTiny13A
microcontroller. If this describes someone like yourself, then you can
get all of the documentation needed for the PCBA via this
the pre-compiled binary for the ATTiny13A from this github link
As a quick disclaimer, this project has only been tested on Roland's
JV-1080 and JV-2080 synthesizers. It's possible that the project will
work to replace other encoders in Roland instruments of the same series,
but these applications are untested. That all said, enjoy!