Thursday, September 08, 2005

Front panel mock-up

As I mentioned I've been busy working on the front panel. The first fruits of this labour are now starting to show. Below is a screen grab from Schaeffer AG's Front Panel Designer program. You might need to zoom in to get a better look.

This has been laid out with all the original controls. I still need to add the power switch and indicator lamp as well as any other controls I might need such as MIDI channel settings. The biggest concern is getting everything to fit both in relation to each other on the panel and in relation to the internals of the case at the back of the panel. Rather than just send the deisgn off to Schaeffer and hope I'd got it right I printed out a simplified version of the design and pasted onto piece of card of the right dimensions. You can see the results below.

At this stage just the switch banks are fitted. I have also laid out a design for the reverse of the panel. Schaeffer will fit either threaded bolts or bushes to the panel so I've postioned cavities on the reverse of the panel for these so that the switch and pot assemblies can be mounted without anything showing on the front. This design was also printed out and pasted to the back of the card. I then punched holes through so I could check that everything matched up. You can see the holes more clearly in the close-up below.

So were there any problems? Firstly I was bit concerned about the holes for the switches. They seem big enough but cardboard is a bit more forgivving that 4mm aluminium so I may open these up by another millimetre on both dimensions just to be on the safe side. Secondly and more seriously I'd made an error of measurement for the height of the switch banks at the rear...

As you can see the top bank of switches protrude above the level of the case. The lid will hit the top of the PCB. I think the the error was partly bad measuring but also a miscalculation of the usable area of the front panel. The panel protrudes above and below the level of the case and it's obviously wider so there's only a window on the panel which is usable. Becasue the switches bank up at such a steep angle I should have moved them down by around 10mm. There's barely 10mm between the bottom of the top switches and the top of the bottom switches. In order to allow a little wriggle room I really need to move the bottom row down. But is there room? In fact there are a few mm available if I cut a strip off the front of the base board. This means I can move the bottom row down by 5mm and the top row by 10mm leaving a good few mil' spare at the top. It's going to be tight, but it should work. I'll need to do a new mock-up to check it over but it that should be it.

Overall it's gone quite well. The basic dimensions are good and apart needing to move everyting down it fits into the case.

Next time I promise a solution to the MIDI channel control issue and a finished front-panel design.

Monday, July 18, 2005

Re-comencement & front-panel design

Well, it been a long time since I've made an update and whilst there hasn't been much progress there has been some.

Back in March I was stating to try and choose the PIC and I had to make a decision about the method for selecting the MIDI channel. Clearly Omni mode is useless in a set-up with a few different MIDI instruments. Also, I didn't want to have a fixed channel as this too can cause complications. So I was trying to decide how best to make the channel selectable - would I have a rotary switch or a pushbutton and LED display arrangement. There was problems with both and I decided I needed to see what space was left on the front panel. I also wanted to get the mock-up front panel in place so that I could fix the PCBs in place.

I had decided to get an aluminium panel cut and engraved by Schaeffer (http://www.schaeffer-ag.de ) and so I set about laying out the panel using their excellent free program. I soon ran into problems though.

In order to produce a pleasing and profesional looking final panel I don't want to put screws through the front panel. Nor do I want to fix pots to the front panel. The correct way to do this is to have a sub-panel behind the front-panel with all the controls fixed to that and then the frontpanel is kept clear for all the text and markers. Schaeffer can fix bushes (clinch nuts) to the rear of the panel so I can fit the sub-panel(s) to the back of front panel. Great! Let's designing.

If you look at the pictures below you can see that the pot's are already fitted to sub-panels. This is how the SS30 was built and is another reason to go with the sub-panel idea. When I sat down to try and lay-out the front panel I had to ensure that the holes for the pots were kept in line with these sub-panels. Also the position of the bushes has to be lined up with the fixing holes. This was starting to get tricky as the positions had to be relative to each other. On top of this the space on the front panel is tight if I want to use the orignal chunky tablet switches so the placement of the sub panels and switches needed some fine tuning. I needed templates for the sub-panels that I could move around and line up. This a bit of stretch for Schaeffer's Front Panel Designer (FPD) program so I decided design templates for the subpanels in AutoCAD and then I could slide everything around till it fitted. Luckily my partner is a dab hand at AutoCAD and she had me up and running in no time.

It took some time but eventually I had all the SS30 sub-panels and switches placed. I could then take the co-ordinates of all the holes from AutoCAD and transfer them to FPD. Finally I put all the text and marker engravings on the design too, using teh original SS30 panel as a guide.

So this is where I've got to. I'd like to post up an image of the panel but I need to do a screen grab as you can't print to file or anything like that in FPD. Eventually I'll put up the screen grab and a link to the actual FPD file.

That all took me a couple of months but I've done nothing for the last two months owing to other things taking priority.

Next : I need to get a print out of the design from FPD then paste that onto a piece of MDF. I can then drill and cut all the holes to a) check the measurmenets and b) have a mock-up that I can use until I take the plunge and get the real panel made.

But what about the MIDI channel control? Is what room is there? Well, I'm 90% sure that I'm going to for a push-button and LED arrangement but I need to check whether the PIC has Non-volatile that can remeber the setting. If not, then it'll have to be some sort of mechanical switch.

Tuesday, March 22, 2005

The interface nitty-gritty

Okay, I'm a bit bored of all this mechanics talk. I'm still working on the case, but I thought I'd talk about the interface for a change.

To recap, the aim of the inteface is to provide a MIDI in port that will take note on/off and velocity data messages on a specified channel and not only individually switch the keys of the SS30 on and off but also individually set their amplitude from the velocity data.

I have found from experimenting that if instead of simply shorting the key inputs to ground (as with the original keyboard) place a 10K potentiometer between the input and ground you set the loudness of the note played by that key. I'd suspected this was the case previously as the volume of the keys across the keyboard wasn't uniform and I'd put this down to the dirty contacts creating an impedance where there should have been a zero ohm contact.

So, if I can set a resistance across the key inputs from a combination of the note on/off and velocity data then I'll have a velocity sensitive MIDI interface for the SS30!

There are severals way to do this but I think they boil down to these two:

1) Use a DAC to set the gate voltage to a JFET acting an amplifier with gain between 0 and 1
2) Use a dedicated digital potenetiometer.

So which is better? The dedicted digital potenetiometers can be found in packages containing 6 pot's each. They would ceratinly make wiring easy and would keep the number of components low. I will err on the side of simplicity and persue these for now. If they become unworkable I may have to switch to the DAC-FETs solution.

So how am I to get the right MIDI data to these digital pots? I need a microcontoller to decode the MIDI data and then drive the pots and the simplest and most popular solutiuon with other people doing this kind of task is the range of 8-bit micros from Microchip Technology known as PICs (Programmable IC's) . I'm not going to say much more about them now but I will want one with an SPI (Serial Peripheral Interface) bus to drive the digital pot's.

Time for some maths! Hooray!

MIDI is transmitted at 31250 baud (31250 bits/s). Which means each bit's period is 1/31250 = 32us. Messages are transmitted in 10 bit packets with 8 data bits plus start and stop bits. So the message period is 320us.

Typical clock rate of a higher-end PIC is 40MHz (e.g. 18F458). This gives a clock period of 25 ns but a 100ns instruction cycle period with some assembler instructions (e.g. goto) taking 2 instruction cycles.

The SPI bus on a 40MHz PIC has a max clock rate (for 40MHz device) of 10Mbps. Which is 100ns per bit.

So what? Well, part of the key to this design is going to be the time avalibale to set a key after receiving a MIDI note message. The time avaliable would be 32us without a UART module in the PIC. Without a UART the program will have to be available every 32us to read the next bit but with a UART it only needs to read every byte which will arrive at the message rate of 320us.

320us is time to carry out 320 x 10e-6 / 100 x 10e-9 = 3200 single assmebler instructions or transmit as many bits on the SPI bus which should be plenty of time to decode the bytes and when neccessary update the digital pots for the 49 keys.

Analogue Devices make a 6 pot device, the AD5206 . The 5206 takes 11 data bits on the SPI bus, 3 to select the pot and 8 to set the postion of the wiper. So each pot is randomally accessable giving a fast access time. 9 of these could be used in parallel with a 4-16 line decoder selecting which device the data is for. This would give a write time in the region of a few micro seconds. With 9 AD5206’s daisy-chained (which might be easier to wire up) over 99 instructions would be needed per write but we're still well within the 3200 available.

But the PIC can only output a whole byte at a time so 11 bits will be tricky to manage.

The Maxim have a 6 pot packege DS1806 which clocks in 48 bits to set up the 6 pots. This equates to 4.8 us per device or 43.2 us for 9 devices in series which is still comfortably within the 320us. Good.

The only issue with the Ds1806 packge is that the resistance is linear and there are only 64 steps. If the key inputs respond in a logarithmic fashion, which I would expect, then I would have to re-scale the input velocity logarithmically. This can be done but as there are only 64 steps this may make the response a bit 'grainy'. The AD5206 is better in this respect as it has 256 steps but there remains the problem of writing 11 bits on the SPI bus.

An approximate log scale can be made from the linear taper by adding a resistor between the the wiper and ground as shown here. The flaw in this approach is that the 'pad' resistor is present even when the potentiometer is at zero ohms. More work needs to be done to see if this can be made to work.

That's enough for now...

Monday, March 14, 2005

Vinatge Synth Explorer & More Case Notes

Well, my comments have been added to the Vintage Synth Explorer site and perhaps even more excitingly this blog has been linked from that page. So, thanks to the guys over at VSE.

I've now ordered all the screws, nuts, washers and pillars I think I'll need to get the PCBs mounted. I've cut a piece of MDF for the base so all I'll need to do now is get the drill out. Previously I mentioned the four bushes fitted to the sides of the case. I postulated that they were for mounting something inside but if I'd read the data-sheet properly I would have seen that they are actually for fitting support rails to the sides of the case. Not to worry though as you can screw right through to the bushes and I can still use then for supports if I need to.

The next problem is wiring. You can see from the pictures that the wiring is something to behold and it's all been carefully tied into bunches with lengths of cotton. The looms were obviously laid out in the best arrangement for the keyboard case but now they're just making life difficult as I have a eleven PCBs all tied together and then all the front panel controls. All the moving about of boards and the years I've been fiddling with them have put a lot of stress on the wires and quite a few have come free. So in an effort to wrest control I've started to cut all the cotton ties and when I come to start fitting the PCBs to the base-board I'll undertake some resoldering and maybe desoldering and reattaching of various parts. Also, I think I'll disconnect all the front panel controls and get those wires loose until I'm ready with the temporary front panel.

I haven't thought much about the power supply lately (still need to consider the needs of the interface at some point) but once it's fitted into the case I'm going to have to put some sort of guard over the mains side of things. It'll probably just be some sort of cardboard box but I need something so that I can get my hands into the case when it's on and stay alive. I also need to get an RCD (Residual Current Device) to be on the safe side.

Thursday, March 10, 2005

SS30 on the web

I haven't looked for any SS30 stuff on the web for while and there's a couples of nuggets I've unearthed.

Firstly a discussion over on http://elists.resynthesize.com/analogue-heaven/2003/05/ threw this up...

From: Michael E. Caloroso ( [EMAIL REMOVED] )Date: May 7, 2003Subject: Re: [AH] yamaha SS30Jim Black wrote:
> Someone told me they were never available in the states - only sold
> in Canada and Europe. Considering their hybrid synth's came out at
> about the same time over here - that makes sense.
My guess is it was more that the SS30's ensemble FX was too close to the
patent ARP and Solina had on the ensemble FX used in their string
machines. They skirted the US patent system by restricting distribution.
This happens a lot in many industries.

This lack of distribution in the U.S. may explains why the SS30 has remained relatively obscure.

Secondly there is now an entry for the SS30 at http://www.vintagesynth.org . I've already had word about putting it down as 4-voice polyphonic so we'll see if they change it. I've since noticed that they've also said there's no filter. Well the brilliance control could be considered a filter so I might mention that too.

Wednesday, March 09, 2005

PCB mounting

Here's a picture of the case!

I'm now worried I won't be able to get all the original switches to fit on the front panel.
I'm planning to make a mocked up front panel in MDF to see if it will all fit using the original switches.

So, now I have a case it's on to the mundane but vexed question of how I mount the PCBs in the case. I originally though about mount the PCBs vertically (along the long edges) as they were in the orignal case but the wiring terminals scattered around the edges make this difficult. So instead I'll stack the boards in horizontal layers. This still leaves one problem.

The case has a completely blank base (apart from an earthing point) so there's nowhere to fix anything to it without drilling through. If I drill though the base any nuts or bolts used to fasten into it will stand proud of the base and ultimately scrape the lid of whatever the case is resting on top of. As eth base is only 0.9 mm thick counter sunck screws won't pass muster here either.

I could drill holes and then fit bushes (AKA clinch nuts). These are nuts that are stamped into sheet metal and basically give you something to screew your bolts into. RS do bags of 50 for around £3.50 part number 827-625. Or they sell a 'nutsert' kit for abot £7.50 which has 100 pillars with threaded stubs which are also stamped into sheet metal like the bushes. You get a tool with kit too. This is a bit of scary option though and I'd rather not drill 30 or more holes into the base of my unit espescially when I'm a) not that experieced at metal work and b) new bases are expensive.

Fortunately the case already has bushes fitted on the inside of the side panels. There are two on each side about 1-2 cm above the base. You can just see the front two in the picture. I'm guessing that these are fitted for the purpose of mounting your own base plate and at present this is what intend to do. I can use a piece of MDF, around 5mm thick and then attach it to the side bushes with angle brackets. The MDF is easy and safe to drill and cut and I can fit counter sunk M3 bolts from the underside to fit M3 PCB pillars to on the top.

This is the next task then. I have to cut a piece of MDF to size and calculate how many nuts, bolts, washers, lock-washers, pcb-pillars I need and of what sizes. I also need to determine what size nuts the side bushes take and find suitable angle brakets to fix the MDF to the side bushes with.

The Case

At last another post and it's good news - I have a 19" chassis case.

After failing to find one of the right size from any of the usual suppliers (RS, Farnell etc) I got in touch with APW www.apw.com. Farnell stock their cases but not in the 450 deep version which I need to fit all those long (over 30cm) Generator boards with room to spare. APW put me on to their distibutors, Surtech http://www.surtechdist.co.uk were happy to ship me a single case for the pricley sum of £66.92. No exactly cheap but I don't intend to skimp too much on this project and will probably spend as much again on the front panel and internal fixings.

You can see the technical details of the case here but I'll post soem pictures when I get around to it.

I ordered the case sans front-panel as I intend to get the panel made by Schaffer - http://www.schaeffer-ag.de. More on them later.