Jump to content

Yamaha Electone FX-20 --> master controller!


Sauraen
 Share

Recommended Posts

gallery_10357_291_450760.jpg

 
So I have a friend who's a pastor in a house church. A couple years ago, I suggested to him that he look on Craigslist for an organ for his church (living room), since he was just using a cheap keyboard, and often people will list organs for cheap (or free) if you can get the monster out of their house. He's a professional home improvement contractor, so that kind of moving is not difficult for him. After several adventures, we found a guy who was willing to donate his near-mint Yamaha Electone FX-20 to the church, and we moved it in. I had a lot of fun with it!
 
Now the pastor's family is moving to Ireland, and getting rid of their house... and they need to get rid of the organ. However, I can neither fit an organ in my house (I'm an engineering grad student living with other students), nor can I get the organ from his house to mine (~800 km away). However, he has a friend who wants to turn the organ cabinet into a writing desk... so I get all the guts! I'm on my way to visit the city he lives in, and I have a couple days to carefully dismantle the organ and ship all the parts back home. I already built a wooden keyboard stand with (the photos there are not up to date), and I will modify it to hold the manuals and the organ's electronics. For now, I will hook an external audio output to my mixer and monitors, instead of using the original (quite nice) integrated speakers.
 
The Electone FX-20 has 2.5 manuals (all with velocity and aftertouch) and pedals, a large control panel (including motorfaders on all sliders, and drawbars for the Hammond-like section), a basically-uncountable number of operators of FM synthesis (around 50 voices and 200+ operators), and an auto rhythm/accompaniment section, all made with the best 1983 technology. However, it doesn't have MIDI output, pitch bend, mod wheel, octave buttons for the main manuals, etc. So a custom controller is necessary!
 
I have gotten the information I needed from http://tsstech.org/electronics/fxmidi.html (especially http://tsstech.org/electronics/fxtechinfo.html ), and from the service manual for the FX-20 which I was able to order from Yamaha for $16. Based on the project here, I've designed a board which "sniffs" the manual and panel interfaces from the organ's own controller, and spits out MIDI messages corresponding. I decided not to use mios32, because all of the timing has to be synchronized to the organ, the panel SPI has to operate in slave mode, and I need very many I/O pins to scan the matrix interface to the manuals (a shift register scheme would likely not be fast enough). I settled on an Atmel ATxmega128A1 on the mikroXMEGA development board, for the number of I/O pins, the relatively low price, no SMT soldering, and the fact that I've used the Atmel ATmega series (similar) in school. Programming will be with Atmel Studio via JTAG with a AVR JTAGICE MK II that I was able to obtain. I decided on assembler for fast speed and ease of configuring multiple hardware/software interrupts--no FreeRTOS here!
 
Features:

  • Follows the FX-20's controller scanning the manuals and pedals. Reads break and make contacts, measures velocity. This involves 13 hardware interrupts for the matrix rows, and then reading about 30 column lines in after each row selection.
  • Uses SPI to scan my custom pedalboard (pictured above), actually using a MBHP_DIO module. In same scan cycle, also scans custom pedal chord buttons I designed (not pictured, proprietary information! ;) )
  • Pretends to be the FX-20's pedalboard to the FX-20; outputs the corresponding pedal signals on the pedal interface to the FX-20 based on what it has read from my pedalboard.
  • Follows the FX-20's near-SPI panel interface. Sniffs both DIN (button, slider states) and DOUT (LED, motorfader commands) on a single slave SPI channel with a digital multiplexer selecting which signals are being read. Same SPI interface also scans drawbars (non-motorized faders for the organ section, which are on a separate hardware serial chain). All the sliders in the organ (motorized or not) are actually 8- or 16-position switches masquerading as slide pots, so there's no ADCs or noise issues.
  • Sniffs the analog inputs in the organ: expression pedal and the three manuals' aftertouch signals.
  • Five MIDI output channels (this chip has up to 8 UARTs!): one buffered and connected to 4 MIDI ports, the other four connected to one port each. The individual ones are the outputs from the three manuals and pedals individually, and the four together are outputs from the whole organ (the manuals on different channels).
  • Sustain pedal switch input.
  • Custom controls PCB: for each manual and pedals, whether sustain pedal and expression pedal apply to them; an extra slider to control a configurable CC; a button to set up what channels things are on; and buttons to set up what CC each slider on the front panel corresponds to, and what program change each button on the front panel corresponds to. Includes 2.5 digit LED display, and designed to look like the organ's interface.
  • A custom-designed pair of controls for pitch and mod wheel for each manual. No pictures, proprietary design! (I would have just put up the design, but an engineer friend of mine says it might be patentable...)
Edited by Sauraen
Link to comment
Share on other sites

  • 2 weeks later...

Mechanical assembly mostly complete (as you can see from the photo above), I've been plugging in the wiring harness... Hopefully I will get some sound out of it soon! There are no significant electrical modifications so far, other than leaving out the amplifier and its PSU and all the speakers.

 

A friend suggested I install LED strips on the organ... I have some spare I/Os that I can hook to PWM channels, he he!

Link to comment
Share on other sites

gallery_10357_291_434483.jpg

 

It works! This is just the organ as it was before I took it apart and shipped it, minus the amp, speakers, and amp PSU. Also, most of the motorfaders no longer work, though some do; I thought they all worked before I shipped it, but maybe not. Based on the front panel design (from the schematic), it doesn't seem likely that any mistake I made would have messed up the motorfaders, so maybe it's just age and old belts.

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

gallery_10357_291_327475.jpg

 

My custom processor board is up and running, and connected to the organ's main serial bus. It's just flashing LEDs for now, but hopefully soon it will be converting manual scan data into MIDI messages.

 

As you can see, this is not a MIDIbox; it contains no MIDIbox code. The processor is an Atmel ATXmega128A1 (32MHz)--the top of the 8-bit line. No MIDIbox MCU had enough I/O pins for the manual scan, and reading them with shift registers might not be fast enough.

Edited by Sauraen
Link to comment
Share on other sites

Seriously cool!

 

BTW - if you or someone else need to do this again, here's a board a friend of mine made that uses the 144 pin STM32F407.

 

It has the pads for an SD card reader (connected to the SDIO peripheral - tested sustained reads at 10 mb/s!), USB, and an SRAM chip. You could just not put in the SRAM and have quite a few more GPIO pins, it's all broken out on pinheaders. As an added bonus, unlike the Discovery boards, the GPIOs are laid out in order here, so no hunting around to connect consecutive GPIOs!

 

There's no MIOS port, but it's basically the same as the Discovery just with the bigger chip and without the external audio stuff, should be easy to adapt. We had a couple made and assembled them by hand and I've used it for a few non-permanent things, and it works fine.

 

Kicad files here:

 

https://github.com/knielsen/pcb_stm32f4_sram

Link to comment
Share on other sites

  • 2 weeks later...
here's a board a friend of mine made that uses the 144 pin STM32F407

 

Thanks for the suggestion, but that wouldn't be appropriate for my design. I don't need USB or uSD, the fanciest thing going on internally is single MIDI packets! The breakout board I used was $25 and also had the GPIOs in consecutive order; the board I made under that was single-layer and milled by a friend for very low cost. Also, since I wanted to use assembler, I don't know ARM, only AVR (and MIPS ;) ).

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

The Electone saves on memory cards which are a 2kb SRAM with backup battery. I had some 512kb SRAMs lying around, so I decided to make a custom memory unit that would allow the user to select one of 256 "banks" (upper address bits) and show the organ the other address and data pins. The memory is backed up with a supercapacitor instead of a battery, so every time the organ is turned on it recharges. With the exception of the supercapacitor, all the other parts used here were spare parts or salvaged, I didn't buy anything!

It was a great idea in theory, but not so much in practice--the bank-selection circuit works, but the organ shows an error when trying to read or write. Guess I'll troubleshoot it later.

Edited by Sauraen
Link to comment
Share on other sites

  • 2 weeks later...
  • 5 years later...

What you did with the FX-20 was wonderful, disassemble and modify everything, the sound of it itself is horrible, except for Hammond's drawer and some other things. It was a pleasure to see that white elephant dismounted, congratulations. The music you played is amazing too. Congrats. You must be aquarius sign, because you are living 100 years from this day on.

I was wondering if you can help me put a midi system on a 25-pedal board, like the Hammond. I've seen it on the internet and found several companies that want a fortune in the little system, since that I live in a country where my money is worth nothing. Can you help me find an easier and cheaper alternative, or when can I find the most cheaper price having quality. I'm waiting this for 20 years and I found you.

Thanks a lot dude. Cheer.

Edited by epweste
Link to comment
Share on other sites

  • 3 years later...

Hi, my name is Stephan Fuelling. My church has an FX-20 with an MDR-1 3" floppy drive. The floppies are slowly failing, there is music on from an organist that passed away a few years ago. I am in the process of conserving the recordings by downloading the data from the MDR-1 to an SD card. I have successfully interfaced the MDR-1 and just today was able to load down a 25 minute recording. I used a Kingst Logic Analyzer, 16-bit, to first understand the data structure and the handshaking. Then I interfaced it with an Arduino Mega 2560, since I needed a complete 8-bit port to interface with the MDR-1. I simulated the Yamaha clock output with a 555 timer but in the final design I want a more stable clock. I plan to build a customized 'shield' for the Arduino, with a DB-15 jack so it can be connected to the MDR-1 or the organ.

Just to let you know...

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...