MIDIbox Forum: From newbie to wizard: Max's PG-300/MB synth programmer project - MIDIbox Forum

Jump to content

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

From newbie to wizard: Max's PG-300/MB synth programmer project Rate Topic: -----

#1 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 28 December 2008 - 11:42

A few weeks ago I decided to take the plunge and build my very first Midibox. I have a very nice Roland Alpha Juno 1 synth, which has a great sound engine but a lousy user interface. Roland made a programmer for this synth as well, the PG-300. But those are hard to come by, ugly, and ridiculously expensive for something with a bunch of flimsy faders.

So I've decided to to the logical thing for any self respecting geek: Do it yourself.

This isn't going to be a quick project. I have four small kids who demand most of my free time. Keeping that in mind I'll probably be progressing rather slowly, so I thought keeping a build blog only makes sense: I can document what I do and keeping my work public I'll have additional incentive not to stop for too long... ;)

This project will have four main phases:
  • Learn the Midibox platform. (1st half of 2009)
  • Aquire and build the final hardware on the electronic level. (2nd half of 2009)
  • Make the custom software, and iron out any hardware bugs. (1st half of 2010)
  • Have a panel made, build a case, finish the project and properly document everything. (2st half of 2010)


As you can see I'm setting a very loose schedule. I'm a bit of a perfectionist, and I'd rather do this slowly and well than quickly and poorly. As this thread grows I'll probably start distilling it into a companion Wiki page.

On the skills side I have a lot to learn. I'm a programmer and software architect by trade, so software design I'm familiar with. I have no C experience. I know how to solder, but have mainly soldered audio cables in my home studio so far. I'm currently reading K&R's C Programming Language and The Art of Electronics to get my C and electronics basics in order. I can warmly recommend both books.


My first step is to learn the Midibox platform. In order to do that I'm setting up a development environment, consisting of a core module, a DIN module, an AIN module and an LCD. I've ordered these from Mike's shop, and aquired some associated stuff locally. (I'm physically in Finland.)

Today I'll be starting on the core. Step one is to get the core built and the LCD talking to it. I'll be posting my progress (with pictures) later today.

#2 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 28 December 2008 - 15:29

I have officially started work on my MIDIbox! :)

I've set up a flickr set with all images I'll be posting. All images will be in that set at a nice big resolution. I'm not posting the full resolution images in this thread, so if you want a closer look keep that in mind.

First things first: I took some unboxing photos when Mike's parts arrived a while back. I'm attatching the ones relating to the core module, as that's what I'm starting with...

Mikes parts came in a neat little package, here just opened:
Posted Image

This is the core pcb:
Posted Image

And here are the core module parts:
Posted Image
Some people have previously voiced concern about the lack on anti-static packaging. I hope this won't be a problem for me.


So anyway, I got right down to business following the soldering guide at ucapps.de. Here's my first ever MIDIbox soldering joint:
Posted Image
There's a bit of excess solder, still getting used to a new soldering iron an new solder... :)

More stuff going in...
Posted Image

Bridges, sockets and that one hard-to-fit resistor are done:
Posted Image


Finally a shot of my virgin socket soldering skills:
Posted Image
Photogeek comment: I like how the short macro focal length works out in this one. :)


I'm all excited know. That's sure to change once I realize I've botched something... I'll probably have a chance to do another update later today.

#3 User is offline   bugfight 

  • MIDIbox Guru
  • PipPipPipPip
  • Group: Frequent Writer
  • Posts: 786
  • Joined: 22-July 03
  • Locationarlington, tx usa

Posted 28 December 2008 - 17:19

i think you are probably overestimating the difficulty of your project.
tk has made it very easy to put together custom interfaces, and you don't need to know mios in detail to do so.  mios has a lot of features that will be hidden or irrelevant in this usage.  i think it's important to play around a bit before you get too perfectionistic about your first control panel, my first midibox projects fell by the wayside this way.  of course, it's also possible to go too far the other way...

just go for it.  once you've built a core and hooked up a few controls you will see.

my devalued $0.02 

#4 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 28 December 2008 - 17:38

Quote

i think you are probably overestimating the difficulty of your project.


You mean because I estimated a lot of time to get stuff done? Maybe so... Then again I don't have a lot of time to work on this once things return to normal around here (wife and kids away until newyear's).

I don't think this is a very difficult project. The difficulty comes from doing it it a few random hours a month, usually late at night. Having time to work on something all day like today is the exception that justifies the rule for me. ;)

Quote

just go for it.  once you've built a core and hooked up a few controls you will see.


And I am. :) But I still want the end result to be as good as possible, given the time and money I will spend on this project.


What you said about MIOS hiding a lot of the nitty gritty for me is true. But I'm the kind of guy who might take time to read the MIOS sources just to understand what's going on under the hood better. ;)

#5 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 28 December 2008 - 22:17

It seems fortune smiles upon me today. The core is completed, and I've successfully (AFAIK) uploaded MIOS. :)

Apart from a weird wiring issue when hooking up power everything just worked. Even MIDI IO in Java on my Ubuntu box performed flawlessly.


Resistors and diodes soldered:
Posted Image
I had to get creative with R2, otherwise J4 wouldn't have fit on the board...

Caps and transistors added:
Posted Image
Took me a while to figure out which of the small caps went where... tricky with ambiguous markings on those little buggers. ;)

The completed core:
Posted Image

And finally hooking everything up:
Posted Image


I would have loved to get the LCD wired up tonight as well, but that will have to wait... Hopefully the day after tomorrow if all goes well.


Some clarification on my approach to this project:

I don't think of this as a technically very difficult project. Like bugfight said TK has made it very simple to hook up stuff through various modules and get results quickly. But that doesn't cover the art of user interface design. One of the main goals with this project is making playing with my Alpha Juno as much fun as possible. That calls for the best possible UI. That's the difficult part, and also why I'm not going to hurry.

I'll probably spend a lot of time in the prototyping stage to get a good feel for what works. I want to try out both pots and encoders. I think I'll be using pots, and a single encoder to tweak values. I might use faders, but not so sure about those... I don't know if I want my box to be able to receive a patch and hold all parameters in memory, so that you could call up a patch on the synth, send it to the programmer, and tweak it further. This becomes tricky if you have stateful UI components like pots. But if I were to use encoders only I'd have to have led rings if I want visual feedback... Or encoders with a built in switch to call up the parameter value on the LCD.

I guess I'm saying I'm a bit of a meticulous planner... I like to make detailed plans before taking action. That's the timesink for me. ;)

But I'm also a very patient man. It's not an issue for me if it'll really take two years until this project is complete.

#6 User is offline   nebula 

  • MIDIbox Guru
  • PipPipPipPip
  • View gallery
  • Group: Members
  • Posts: 846
  • Joined: 23-May 03
  • LocationCanada

Posted 29 December 2008 - 05:34

Well it's an issue for me!  ;) (just kidding)

FWIW I find the hardest part of any DIY electronic project to be enclosures and panels.  You are going to need to determine the route you want to go:  board-mount or panel-mount pots/encoders/switches.  Both techniques have their pros and cons.

You're documenting this really well so far.  It's looking good!

#7 User is offline   stryd_one 

  • MIDIbox Guru
  • PipPipPipPip
  • Group: Frequent Writer
  • Posts: 8,850
  • Joined: 25-February 03
  • LocationMelbourne, Victoria, Australia

Posted 29 December 2008 - 09:30

Neb and Buggy are both spot-on there.

Good blog mate :)

and yeh, this shot is great!! :

Quote

Posted Image
Photogeek comment: I like how the short macro focal length works out in this one. :)


And I just noticed... if you haven't soldered before, then you're a natural. Maybe a -tiny- bit more heat and tin, to get them to volcano up a bit, but really good.

#8 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 29 December 2008 - 13:40

Thanks for the encouraging comments on the documenting / blog! :)

Quote

I find the hardest part of any DIY electronic project to be enclosures and panels.  You are going to need to determine the route you want to go:  board-mount or panel-mount pots/encoders/switches.  Both techniques have their pros and cons.


I've been thinking a lot about how to mount stuff. I'd like to have the look of the box reflect my Alpha Juno somehow, but not sure in what sense yet. I'll probably be drawing a lot of panel options once I know what hardware I want to use. I already have one panel draft in the works. I've found I can export postscript from Inkscape and convert it to HPGL with pstoedit, to import into Front Panel Designer. That means I can do nice little line drawings of stuff like waveforms etc. and have Schaeffer engrave them right into the panel.

The only thing I think I know about the UI part is that I want to build the box so that it will have the panel mounted at an angle standing behind the Alpha Juno, resulting in a Minimoog-style approach. This is both because I like the idea and because it would take up more space than I can afford if it were to lay flat on a table.


Quote

And I just noticed... if you haven't soldered before, then you're a natural. Maybe a -tiny- bit more heat and tin, to get them to volcano up a bit, but really good.


Like I said I have soldered, but almost exclusively cables. Nothing this small really... Fortunately even the el-cheapo soldering iron I borrowed from work seems to be doing the job nicely. My soldering gun I use for cables is useless for something like this, the tip on that thing is huge! ;)


#9 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 30 December 2008 - 12:37

OK... Partially just documenting some links for myself here, but I hope to get the LCD connected tonight and did some research:

The pinout of my Nanox LCD, http://www.mikrocont...ANOX_NDM162.pdf seems to be the standard pinout for 16x2's so everything is OK there. (Backlight in a different place but that shouldn't be a problem...)

The LCD wiki page ( http://www.midibox.o...doku.php?id=lcd ) linked Jim Henry's excellent wiring guide:
http://www.midibox.o...x_lcd_cable.pdf

And finally the pinout on the core's side: http://ucapps.de/mbhp/mbhp_lcd.pdf

That should be all info I'll be needing.



#10 User is offline   stryd_one 

  • MIDIbox Guru
  • PipPipPipPip
  • Group: Frequent Writer
  • Posts: 8,850
  • Joined: 25-February 03
  • LocationMelbourne, Victoria, Australia

Posted 30 December 2008 - 15:51

Quote

OK... Partially just documenting some links for myself here


Good stuff man. I'm sure this will be a useful guide for those who follow you :)

#11 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 30 December 2008 - 20:04

Darn... I only had time to partially finish the LCD cable tonight. Too much other stuff to do I'm afraid, and I won't be at home until thursday, so I'll officially have to wait until next year until I'll get any further. It seems it was wise to put all the relevant links in one place, as I couldn't get it all done in one sitting.

I'll post pics and stuff like I have so far once I get the cable done and hopefully the LCD working! :)

(I keep wondering how hard that thing is to fry... ;) )

#12 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 14 January 2009 - 22:15

So... Not dead yet. Haven't gotten bored, given up, any of that.


Real Life hit me. Hard.


I had a bit of a cold since Christmas, which got worse, and worse... By the time I went on a can't-miss-it business trip mid last week I came to the conclusion that I'd lost the battle, and spent the rest of the week on sick leave. Now I'm finally more or less OK, but there's a bunch of household-related stuff that's cropped up since xmas and has to be taken care of before I can get back to work on my project.

It's all quite frustrating really, but that's what you get for starting a project like this having four kindergarten-aged kids. ;) Fortunately I love the little bastards enough not to take it out on them... :)


So... With any luck I should be able to get back to work soon!

#13 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 17 January 2009 - 23:03

Finally, progress! :D

This is going to be a long post. For people who haven't followed this thread... There is a flickr set with all the images at a higher resolution here:



So anyway, last time I got something done I partially finished the LCD cable. I'll just post my progress with pics as I have so far.

I had bought 40 pole wide colored ribbon cable, the wider variety was cheaper per wire. ;)

First I cut my needed 16-wide piece:
Posted Image

Then I built the ribbon cable connector... These are pretty self-explanatory:
Posted Image

Posted Image

Posted Image

I have a nice little mini-vice, so getting even pressure was trivial. For some reason my strain-relief refused to fit, but the connector seems solid enough anyhow.


Then started I cutting and separating, as per Jim's guide:
Posted Image

Posted Image

I found that the best way to get the wires separated was to gently stroke the blade along the groove a few times on both sides. After that they came apart really nicely. Cutting through the groove didn't work so well, it was a lot harder to guide the knife properly.

I presoldered all the pads:
Posted Image
(Presoldered the wires too.)

The first ones were a little iffy... going right to left. ;)
Posted Image

Halfway there...
Posted Image


For the leftmost wires, I measured and marked each one separately. (Note the black mark.)
Posted Image

Having cut and stripped the wire I routed it through the hole:
http://farm4.static.flickr.com/3337/3203937519_75a058ae18.jpg

The soldering part was simply applying the iron where the wire entered the hole, heating both the wire and the pad, and applying some more solder. Having both wire and pad presoldered really helps.

The result:
http://farm4.static.flickr.com/3347/3203939613_a3ed716913.jpg

It's not that pretty, but the wire has support through the and partially from the pad too. The joints seem to be firm enough.

The LCD backlight pads were at the far end of the board:
http://farm4.static.flickr.com/3368/3204789206_407ee6ae62.jpg
(Or so I thought... ;))

All done!
http://farm4.static.flickr.com/3268/3204791734_266f64972c.jpg
(While perfecting my wire separation technique I managed to partially strip #6 of insulation, hence the mending. ;))

I double checked my wiring, connected the LCD to the core, and powered up:
http://farm4.static.flickr.com/3519/3204794764_4d3f2ae60b.jpg


Yay, it works! :)


...waaait a minute...


No backlight?


Hmm...
http://farm4.static.flickr.com/3300/3204796406_f99f25f62c.jpg

These pads were on the front side of the board. The pads I soldered my backlight wires to were on the opposite side. I was pretty sure there was some back-to-front connection... and was wrong. There were no vias or anything.

So of course I had to verify that the wires had to go straight to the front...

So first two extra wires:
http://farm4.static.flickr.com/3080/3203951347_3c0a05a7d6.jpg

And then some manual testing:
http://farm4.static.flickr.com/3403/3203953525_acfed5434b.jpg


And there was light.


So I cleaned up my little kludge:
http://farm4.static.flickr.com/3471/3203958251_04b27a5375.jpg

True success at last:
http://farm4.static.flickr.com/3311/3204803880_a52e56600b.jpg


The next step is probably building the DIN module... Hoping to find the time in the next few weeks. (I can't really do more than one or two sessions a week, to keep the WAF (Wife Acceptance Factor) of this project under control. ;)


Now when the LCD is connected, the 7805 gets pretty friggin hot. Under 100 degrees C, but I'd say it's at 50 C at least. Is this normal? Should I attach a heatsink just in case?

#14 User is offline   stryd_one 

  • MIDIbox Guru
  • PipPipPipPip
  • Group: Frequent Writer
  • Posts: 8,850
  • Joined: 25-February 03
  • LocationMelbourne, Victoria, Australia

Posted 18 January 2009 - 05:18

Great doco Max.

Quote

And there was light.


And the Max saw that it was Good.
:D

#15 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 21 January 2009 - 20:59

Haven't gotten any further on the hardware side as of yet, but I thought I'd share some of my plans concept- and software-wise.

There are 36 editable parameters in an Alpha Juno Patch. My plan is to have a pot/encoder for each parameter which is a large range, and a button for all on/off or smaller range parameters. Buttons would cycle the smaller ranges. Editing any parameter would bring it up on the screen. Next to the screen I want a nice big encoder (the beta dial? ;)) to tweak the currently selected parameter.

These are the parameters and the way I think I'll be grouping them into sections:
(Sysex specs are here for reference: http://www.vintagesy...sex.shtml#ajuno )

DCO section
  • DCO Wave Pulse (0..3)
  • DCO Wave Saw (0..5)
  • DCO Wave Sub (0..5)
  • DCO Range (0=4', 1=8', 2=16', 3=32')
  • DCO Sub Level (0..3)
  • DCO Noise (0..3)
  • DCO Env. Mode (0=Normal, 1=Inverted, 2=Normal-Dynamic, 3=Inv.-Dynamic)
  • DCO LFO Mod. (0..7F)
  • DCO ENV Mod. (0..7F)
  • DCO After Mod. (0..7F)
  • DCO PWM Depth (0..7F)
  • DCO PWM Rate (0..7F) 0 = Pulse Width Manual 1..7F = PW LFO Rate
  • Bender Range (0..C)


VCF section
  • VCF Cutoff (0..7F)
  • VCF Resonance (0..7F)
  • VCF LFO Mod. (0..7F)
  • VCF ENV Mod. (0..7F)
  • VCF Key Follow (0..7F)
  • VCF Aftertouch (0..7F)
  • HPF Cutoff (0..3)
  • VCF Env. Mode (0=Normal, 1=Inverted, 2=Normal-Dynamic, 3=Dynamic)


VCA section
  • VCA Env. Mode (0=Normal, 1=Gate, 2=Normal-Dynamic, 3=Gate-Dynamic)
  • VCA Level (0..7F)
  • VCA Aftertouch (0..7F)


ENV section
  • ENV T1 (0..7F) Attack Time
  • ENV L1 (0..7F) Attack Level
  • ENV T2 (0..7F) Break Time
  • ENV L2 (0..7F) Break Level
  • ENV T3 (0..7F) Decay Time
  • ENV L3 (0..7F) Sustain Level
  • ENV T4 (0..7F) Release Time
  • ENV Key Follow (0..7F)


LFO section
  • Chorus Switch (0=Off, 1=On)
  • Chorus Rate (0..7F)


LFO section
  • LFO Rate (0..7F)
  • LFO Delay (0..7F)


The above are in no particular order.

In addition I'll be adding a few other features. I'll probably need some general config ui stuff to handle changing the MIDI channel at least. (Do I need a bankstick for non-volatile storage, or can I use the PIC's own flash?)

I'd also like to include a patch randomization feature, with options to lock some parameters and randomize others. Say I wanted a short and punchy sound. I could set a short envelope, lock that and lock pitch modulation of the DCO, and randomize until I had something I liked to tweak further.

The jury's pretty much still out on pots vs. encoders. I'm leaning towards pots, but then I'd have an issue if I want to be able to receive and tweak a patch. But I could solve it by having the pot keep the value intact until hitting the current setting. Encoders would provide instant incremental changes, but without led rings you can't really get an at-a-glance look at the state. And there would be sooo many led rings... ;) (Quick non-verified count says over 20 range controls are needed.)

I'm not sure I want any faders. For the envelope maybe. Not sure at all. :)

So... That's where I'm at. I've been doing some drawing on the panel layout in Inkscape, and when I find the time to do something more complete I'll be posting drafts. Ideas and feedback are very welcome, I hope I won't be the only one to build a PG-300 clone. There are a lot of Alpha Junos and MKS-50s out there! :)

#16 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 25 January 2009 - 23:01

Work is slowly progressing on the DIN module, 15 minutes here, 30 minutes there... I have all the top-side bridges, and having soldered two of the bottom ones I realized that they use the same hole as the shift register chips. Next up: Desoldering. ;)

Will probably finish the DIN next weekend, if all goes to plan.


Any input on the 7805 getting hot by the way? The search terms "7805 hot" didn't seem to do me an awful lot of good. I'm feeding 9 volts to the core, that should be within spec, right?

#17 User is offline   Futureman 

  • MIDIbox Guru
  • PipPipPipPip
  • Group: Members
  • Posts: 570
  • Joined: 24-March 08
  • LocationSydney , Australia

Posted 25 January 2009 - 23:31

9v AC (into the core) or 9v DC ?

9v AC into the full wave rectifier ( x 1.41) minus the drop in the silicon diodes of the rectifier ( - 0.6v ) = 12 v DC (Or there abouts) feeding into the regulator

If it was 9v DC = about 8.4 volts DC feeding into the regulator.

Typically, a normal 7805 needs about 7-8 volts DC for it to work.. the excess is turnt into heat.

Does the regulator get too hot to touch? If so, you might need to attach a heatsink to it.. They are rated to about 100 deg C. (I would never ever want mine to run that hot.. it'll heat everything around it.)

If it gets blindingly hot, then you will probably eventually damage the regulator. - I'd be checking for faults etc.. disconnect the individual boards (DIN / DOUTS / LCD's) one by one to see where it's happening.

Regards
Mike




#18 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 25 January 2009 - 23:49

I'm feeding the 7805 9V DC.

Right now I only have a core and an LCD. With just the core it runs nice and cool, attach the LCD and it goes too hot to touch. (I do know it's under a 100 C.)

The LCD is from Mike's, but I don't have specs on how much the backlight draws. (The datasheet I've googled only refers to the data pinout.) I don't think I have any errors on the core, as it works fine and the 7805 stays cool without LCD. The LCD works, so I'm at a loss as to what could be wrong there.

I did leave the core and LCD on for over an hour, and no magic smoke came out of any components... Seems the 7805 just gets hot, so maybe I'll just heatsink it and not worry unless something malfunctions. ;)

#19 User is offline   Gioxannes 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 45
  • Joined: 14-January 09
  • LocationGreece

Posted 01 March 2009 - 07:04

No, there must be something wrong in the LCD PCB. Do you have the possibility to measure the Amp consumption on the feeding line? Preferably between the core and the LCD print.

#20 User is offline   Max Romantschuk 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 114
  • Joined: 06-December 08
  • LocationFinland

Posted 09 March 2009 - 21:35

Baby steps... I'm not dead yet but Real Life got hold of me for a while and good too.

I finally got the desoldering job done on the DIN tonight. Gotta read up on the docs and put it all back into active memory so I can hopefully get some more done soon. :)

Quote

No, there must be something wrong in the LCD PCB. Do you have the possibility to measure the Amp consumption on the feeding line? Preferably between the core and the LCD print.


I should be able to do that, have to look into that as well.

Share this topic:


  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users