apparat_20_construction_blog
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
apparat_20_construction_blog [2006/07/21 20:28] – Seppoman | apparat_20_construction_blog [2007/11/17 16:15] (current) – moved images to local smashtv | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== The Becoming of the " | + | ==== " |
(" | (" | ||
Line 11: | Line 11: | ||
== Telephone == | == Telephone == | ||
- | I really wanted a " | + | I really wanted a " |
- | {{http://www.seppoman.de/ | + | |
+ | {{seppoman:phone1.jpg}} | ||
== Vocoder == | == Vocoder == | ||
- | The vocoder has to be as small as possible. Mostly, vocoding is found in (at least) 9.5" FX units. Standalone vocoders (like the MAM VF11 or DIY versions) are normally analogue and even bigger units. Then I found the Alesis Metavox - it´s the smallest (14 x 8 cm) and also cheapest vocoder existing (got it for 30 EUR new). Most of its functions are not really useful for music, all around the internal oscillator/ | + | The vocoder has to be as small as possible. Mostly, vocoding is found in (at least) 9.5" FX units. Standalone vocoders (like the MAM VF11 or DIY versions) are normally analogue and even bigger units. Then I found the Alesis Metavox - it´s the smallest (14 x 8 cm) and also cheapest vocoder existing (got it for 30 EUR new). Most of its functions are not really useful for music, all around the internal oscillator/ |
- | {{http://www.seppoman.de/ | + | |
+ | {{seppoman:alesis1.jpg}} | ||
== Synthesizer == | == Synthesizer == | ||
Line 26: | Line 28: | ||
My central objective is that the finished Apparat 20 should just look as much as possible like an ordinary phone. So there won´t be a display or any additional CS elements for the MBFM. Up to 20 patches will be selected via the normal dial keys (1..0, and you can select two " | My central objective is that the finished Apparat 20 should just look as much as possible like an ordinary phone. So there won´t be a display or any additional CS elements for the MBFM. Up to 20 patches will be selected via the normal dial keys (1..0, and you can select two " | ||
- | The vocoder has only one single parameter to modify when external mode is selected (Siblance, i.e. how much high frequency of the original signal will bleed thru, i.e. consonants). The corresponding pot will be mounted hidden beneath the pickup. The pickup | + | The vocoder has only one single parameter to modify when external mode is selected (Siblance, i.e. how much high frequency of the original signal will bleed thru, i.e. consonants). The corresponding pot will be mounted hidden beneath the handset. Picking up the handset |
=== Build Blog === | === Build Blog === | ||
Line 32: | Line 34: | ||
== the phone == | == the phone == | ||
- | This is what the phone looks like inside - you can see there' | + | This is what the phone looks like inside - you can see there' |
- | {{http:// | + | |
- | After throwing everything out, I examined the keyboard to find out how to use it.\\ | + | {{seppoman:phone2.jpg}} |
- | {{http://www.seppoman.de/ | + | |
- | Under the control board there is a simple 4x3 button matrix (without diodes - but that's no problem, | + | After throwing everything out, I examined |
- | {{http:// | + | |
- | Because the contacts for the # and * buttons were not connected, I had to solder a few thin wires and I rewired the connector:\\ | + | {{seppoman: |
- | {{http:// | + | |
- | {{http:// | + | Under the control board there is a simple 4x3 button matrix (without diodes - but that's no problem, it won't be necessary to press more than one button at the same time). |
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | Because the contacts for the # and * buttons were not connected, I had to solder a few thin wires and I rewired the connector: | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | {{seppoman: | ||
There' | There' | ||
I built a simple Core module with most of the connectors and the PSU section left out - the phone will be powered from the nice +5V, +/-12V PSU I bought cheaply from Pollin last year, so there' | I built a simple Core module with most of the connectors and the PSU section left out - the phone will be powered from the nice +5V, +/-12V PSU I bought cheaply from Pollin last year, so there' | ||
- | The keypad matrix is connected to J5. There are 10k PullDown resistors where the three columns are connected. The OPL3 board wires were a bit tricky - the pin order is swapped because of the board being mounted heads-down.\\ | + | The keypad matrix is connected to J5. There are 10k PullDown resistors where the three columns are connected. The OPL3 board wires were a bit tricky - the pin order is swapped because of the board being mounted heads-down. |
- | {{http:// | + | |
- | {{http:// | + | {{seppoman: |
- | {{http:// | + | |
+ | {{seppoman: | ||
+ | |||
+ | {{seppoman: | ||
== Software changes for the matrix keyboard == | == Software changes for the matrix keyboard == | ||
Line 58: | Line 68: | ||
There are a few preparations necessary: First, I defined the two variables MATRIX_BUTTON and MATRIX_LAYER. Then at the end of USER_Init (main.asm) I inserted this: | There are a few preparations necessary: First, I defined the two variables MATRIX_BUTTON and MATRIX_LAYER. Then at the end of USER_Init (main.asm) I inserted this: | ||
- | < | + | < |
;; ------- prepare scan matrix -------------------------------------- | ;; ------- prepare scan matrix -------------------------------------- | ||
Line 66: | Line 76: | ||
;; Initialize J5 (PORTA 0..3,5 output, PORTE 0..2 input) | ;; Initialize J5 (PORTA 0..3,5 output, PORTE 0..2 input) | ||
- | bcf TRISA, 0 ; Pin RA.0 = output | + | bcf TRISA, 0 ; Pin RA.0 = output |
- | bcf TRISA, 1 ; Pin RA.1 = output | + | bcf TRISA, 1 ; Pin RA.1 = output |
- | bcf TRISA, 2 ; Pin RA.2 = output | + | bcf TRISA, 2 ; Pin RA.2 = output |
- | bcf TRISA, 3 ; Pin RA.3 = output | + | bcf TRISA, 3 ; Pin RA.3 = output |
- | bcf TRISA, 5 ; Pin RA.5 = output | + | bcf TRISA, 5 ; Pin RA.5 = output |
- | bsf TRISE, 0 ; Pin RE.0 = input | + | bsf TRISE, 0 ; Pin RE.0 = input |
- | bsf TRISE, 1 ; Pin RE.1 = input | + | bsf TRISE, 1 ; Pin RE.1 = input |
- | bsf TRISE, 2 ; Pin RE.2 = input | + | bsf TRISE, 2 ; Pin RE.2 = input |
;; set initial state | ;; set initial state | ||
Line 94: | Line 104: | ||
The scanning is done in cs_menu_timer.inc. The following code is inserted at the beginning of the CS_MENU_TIMER function:\\ | The scanning is done in cs_menu_timer.inc. The following code is inserted at the beginning of the CS_MENU_TIMER function:\\ | ||
- | < | + | < |
CS_MENU_TIMER | CS_MENU_TIMER | ||
Line 137: | Line 147: | ||
Here MATRIX_BUTTON is set to a value greater 0 while a key is pressed. The result is then processed at the end of each USER_TICK in the main.asm: | Here MATRIX_BUTTON is set to a value greater 0 while a key is pressed. The result is then processed at the end of each USER_TICK in the main.asm: | ||
- | < | + | < |
;; --------------- Program Change on key press ------------------------------ | ;; --------------- Program Change on key press ------------------------------ | ||
movlw 0x00 ;; Button pressed? | movlw 0x00 ;; Button pressed? | ||
Line 179: | Line 189: | ||
There will be some more coding necessary for the vocoder (the MB has to toggle one vocoder button 4 times on startup to select external mode, and the telephone hook has to toggle the bypass " | There will be some more coding necessary for the vocoder (the MB has to toggle one vocoder button 4 times on startup to select external mode, and the telephone hook has to toggle the bypass " | ||
- | I milled away most of the mounting posts in the phone, like this:\\ | + | I milled away most of the mounting posts in the phone. All jacks and the OPL3 board were installed and the wiring for power and MIDI was done: |
- | {{http:// | + | |
- | All jacks and the OPL3 board were installed and the wiring for power and MIDI was done:\\ | + | {{seppoman: |
- | {{http:// | + | |
- | As the keypad descends towards the front, I laid all larger parts (mainly the electrolytics) flat on the boards. The clearance between the boards is quite narrow but sufficient not to fear any shorts etc.\\ | + | As the keypad descends towards the front, I laid all larger parts (mainly the electrolytics) flat on the boards. The clearance between the boards is quite narrow but sufficient not to fear any shorts etc. |
- | {{http:// | + | |
- | {{http://www.seppoman.de/ | + | {{seppoman:phone9.jpg}} |
+ | |||
+ | {{seppoman:phone10.jpg}} | ||
Now, the phone contains a fully functional MBFM 8-) | Now, the phone contains a fully functional MBFM 8-) | ||
Line 194: | Line 203: | ||
== Modifying the Metavox == | == Modifying the Metavox == | ||
- | After disassembling the Metavox, I found out that there are two boards inside this tiny unit. The lower one has all the jacks and pots mounted and contains the PSU, the DSP and analog cirquits. The upper one has the buttons, LEDs and a small Philips MicroController. I will mount them above each other like in the original unit, but they consume | + | After disassembling the Metavox, I found out that there are two boards inside this tiny unit. The lower one has all the jacks and pots mounted and contains the PSU, the DSP and analog cirquits. The upper one has the buttons, LEDs and a small Philips MicroController. I will mount them above each other like in the original unit, but I want them to consume |
- | {{http:// | + | |
+ | {{seppoman: | ||
+ | |||
+ | The Metavox originally runs from a 9V AC wall wart, but the MBFM PSU delivers only 5V and +/-12V. So I followed the power traces - the 9V AC is divided in +9V and -9V DC via two diodes and there' | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | This is the lower board mounted and connected to the audio in/out jacks. Again, the capacitors are laid flat. | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | The second board connected. Behind the keypad there' | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | The pot and jacks seen from behind: | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | === Chapter 2 (Sept 5, 2006) === | ||
+ | |||
+ | == the handset == | ||
+ | |||
+ | The vocoder needs a decent microphone with crisp high frequency response, so the original handset mic is to be replaced. I bought an electret capsule with good specs at Conrad. Then I searched the net for simple mic pre schematics. I came up with [[http://www.epanorama.net/ | ||
+ | |||
+ | First I just put a piece of foam with a hole for the capsule into the handset, but the problem is that with such a small capsule in it, the handset makes a very hollow-sounding cave and is very sensitive to feedback. Glueing the capsule directly behind the grid is also no good because the mic gets very susceptible to pops and breath. So I took the plastic ring that held the original capsule. I laid it onto a baking paper and filled it with hot glue. After cooling down I got a plain surface that could be mounted easily with 2-3 mm distance to the grid. I drilled a hole into the glue and fixed the capsule with a little more of hot glue. Voila: | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | == the bypass == | ||
+ | |||
+ | The audio jacks are all wired so that you can insert other sources to the vocoder. | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | I found out that it´s a bit difficult to use the built-in vocoder bypass. The debouncing of the buttons is not very good on the alesis, so it happens quite often that you switch the bypass on and off again with one button press. When used "the normal way", this is no big problem because you check the bypass LED anyway. But triggering this button from the core module it could happen that the pickup and the bypass state get " | ||
+ | So I decided to do it in the analogue domain by using a 4053 chip. This is a 3x SPDT (dual throw) chip for analogue signals, similar to the 1x8 chip 4051 used in the MBHP AIN module. One problem with this chip is that it doesn´t work with +/-12 V. The standard 74hc4053 (e.g. from TI) takes only 5V but I happened to have left over a few max4053 ICs from Maxim from my last sample order. They have better specs and can take +/- 8V supply. So I ordered a pair of 78l08/79l08 regulators and built a little +/- 8V supply for the max4053. You can see it in the next photo on the left side. The original pickup switch applies 5V or ground to two of the control pins so that the 4053 switches between vocoder and direct synth out (this is the yellow and purple wires on the outboard). The bypass works quite well with only a very silent cracking sound (when switching). | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | == the speaker == | ||
+ | |||
+ | I thought it would be nice and trashy if the phone could make sound on its own, so I searched for a simple amplifier cirquit. I found [[http:// | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | and the whole amp/bypass board in its current state: | ||
+ | |||
+ | {{seppoman: | ||
+ | |||
+ | everything connected: | ||
+ | |||
+ | {{seppoman: | ||
- | The Metavox originally runs from a 9V AC wall wart, but the MBFM PSU delivers only 5V and +/-12V. So I followed the power traces - the 9V AC is divided in +9V and -9V DC via two diodes and there' | + | {{seppoman:phone15.jpg}} |
- | {{http://www.seppoman.de/ | + | |
+ | To be continued 8-) | ||
apparat_20_construction_blog.1153513728.txt.gz · Last modified: 2006/10/15 09:35 (external edit)