Vintage Rotary Phone MIDI Controller – Part 6

In this final (for now) post, I’m just tidying up the circuit and using a Pro Mini to embed all the electronics I need into a nice small box.

This builds on the previous parts in this series.

  • Part 1 – Understanding the telephone hardware and interfacing to an Arduino.
  • Part 2 – Decoding the rotary dial from the Arduino.
  • Part 3 – Rotary phone MIDI note controller.
  • Part 4 – Rotary phone MIDI program change.
  • Part 5 – Rotary phone MIDI random note sequencer.
  • Part 6 – Rotary phone to MIDI adaptor.
  • Part 7 – Rotary phone multi-mode applications.

IMG_5956

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

If you are new to Arduino, see the Getting Started pages.

Parts list

  • Arduino 5V Pro Mini (as I’m soldering it in, I’m using a cheap clone)
  • “GPO” or “BT” original 746 rotary telephone
  • Scrap ADSL filter
  • 120kΩ resistor
  • 2x 220Ω resistors
  • Chassis mount 5-pin DIN socket
  • RJ11 telephone cable (cut in half) – this is the “handset” cable or possibly a “modem” cable
  • USB cable (cut in half)
  • MIDI sound module

The Circuit

RotaryPhoneProMini-Sch_schem

Once again I’ve used a stripped down ADSL filter pcb (for details, see part 1).  The idea is to use the modem socket as the power input (more on that in a moment) and to fix a 5-pin MIDI socket to the casing connected to the Pro Mini.  The telephone itself will continue to be plugged into the BT style phone socket.

RotaryPhoneProMini_bb

Note that there are two types of Pro Mini – a 3V3/8MHz one and a 5V/16MHz one.  I’m using the 5V one here.  I’m also using the simple MIDI out circuit – just two resistors and the MIDI DIN socket.

In this first photo you can see how I’ve cut out a space for the MIDI DIN socket and soldered together the following:

  • Completed the links on the pcb as shown above.
  • 120kΩ resistor as shown above.
  • Pro Mini 5V and GND.
  • Pro Mini D2.
  • 220Ω resistor from 5V.
  • Black wire from GND.

IMG_5952

Then I added in the 5-pin MIDI DIN socket and soldered up the following connections:

  • Other end of the 220Ω from 5V on the pcb to pin 4 of the MIDI socket.
  • Other end of the black GND wire to pin 2 of the MIDI socket.
  • The other 220Ω resistor between TX on the Pro Mini and pin 5 of the MIDI socket.

IMG_5953

The idea is to power it from a USB power supply via the RJ11 connector that would be used to plug in the ADSL modem.  I’m powering it from a USB power supply to VCC.  So I’ve taken an old BT plug to RJ11 plug cable and cut it in half; and a USB power cable cut in half; and wired them as follows:

  • 5V – RJ11 pin 3 – phone red cable -> USB red cable – 5V
  • GND – RJ11 pin 4 – green cable -> USB black cable – GND

If you are doing something similar, you’ll have to work out the pinouts to cable colours for your own cables too and check everything with a multimeter before plugging anything in!

IMG_5954

Here are a few photos of everything connected together!

IMG_5957

The Code

I’ve just used the same code from part 3.  Programming the Pro Mini isn’t particularly easy.  To start with you need a programmer as the Pro Mini doesn’t have a USB connection.  But it is possible to programme it “in situ” once everything is in place, but obviously before the lid of the box is assembled.

Find it on GitHub here.

Closing Thoughts

This is now a really neat box.  It just needs power from a USB power supply and then you can plug in the telephone and a MIDI device and it “just works”.

There are a number of further possibilities though:

  • Alternative software applications of course.
  • Some external means of choosing a MIDI channel.
  • It would be nice to have a means of connecting to the programming header to update the code.
  • It would also be nice to have several different applications loaded that can be chosen somehow too.

One thing I’ve wondered about is defining a “MIDI protocol” for the unit.  Perhaps the pulses could trigger a specific MIDI code (maybe a clock signal), then digits specify a specific set of notes, and the cradle for the phone a particular MIDI control parameter.

This could mean that the unit itself wouldn’t need programming as such for different applications, but it also means it won’t be directly controlling an off-the-shelf synth either – whatever receives the MIDI would need to itself be programmable to fit with the control scheme defined.

Kevin

IMG_5958

Leave a comment