Jump to content

MBProgramma: hardware synth patch programmer (MBNG variant with a defined hardware set)

Recommended Posts

Hola folks,

Jojjelito and myself are currently collaborating on a bigger MIDIboxNG project, that should help facilitate patch programming for all those synth users, that are unhappy with the bad/minimalistic user interfaces of their rack and keyboard synths, especially when programming new patches. This project was planned for years and never took shape...

But, thanks to TK., MIDIboxNG came to the rescue!

Its codebase has all of the needed functionality integrated in a very generic way, allowing to do so many things!

So... why this project, additionally?

We thought, for the common usecase of programming patches for (multiple) complex synth engines, it would be nice to have the option to build a MBNG with a standardized component list, a predesigned frontpanel and to have a helpful display layout, with the option to add additional hardware modules (like a joystick vector mixer) later on. So, "MBProgramma" is basically just a name to identify a MIDIboxNG with the hardware properties listed below.

The idea of presenting a standardized project yields some benefits:
a) most important: we can share synth configurations among other users - they will work on all MBProgrammas without config file changes - if someone is brave enough to build that FS1r configuration, all other owners will benefit from the effort
b) newcomers can focus on building a proven setup, which saves time, as they do not have to design everything from scratch.
c) we can document and learn from mistakes along the way, so that other people can avoid them :-)
d) maybe we can contribute back to MBNG, if TK. accepts some code fragments, like the bitmap graphics loader, or so.

e) we can write specialized code for specific hardware, in this case some graphics routines for the 128x64px OLEDs - or something synth-programmer specific...

The current hardware requirements for a MBProgramma are as follows:
a) a STM32F4 core
b) one DOUTx4 digital out module
c) four of fairlightiiis LRE8x2 LEDring Modules (ideally equipped with pushable encoders for parameter input acceleration)
d) twenty-four SSD1306 compatible 128x64px OLEDs
e) a SCS-based menu section, which allows to switch patches (aka switch through programmable synth configurations) and change banks (64 encoders are not nearly enough for the complex synths)
f) all is housed below an affordable acrylics frontpanel in MBSEQV4L-style (all boards may be mounted on a wooden construction base, but maybe someone is willing to design a full case?). We will provide the panel file download for formulor/ponoko, when the panel has arrived and has been tested :-).
g) an optional analog extension box, allowing for joystick vector input, pot-fader input and analog pedal sockets.

Basically, the Programma is a MBNG with four 8x2 LEDring boards and a SCS and maaany displays. We present a novel way of mounting/using the OLEDs to label the encoders and have added some minor code patches to add some extra bling :-)

Our tests have shown, that it is next to impossible to use a few banked LEDring boards without proper labels. The displays are mounted on the encoder boards and they support graphical labels, that are directly read from SD-card (and are editable directly in photoshop, without use of a file converter), so we can have a lot of different banks with nice graphics :smile:

The project has just started and will be a long ongoing project, also, all those synthesizer programmer configurations will have to be written - we will use this thread to upload pictures and configurations along the way. Feedback is also very welcome! :-)



Jojjelito has agreed to do much of the documentation work ;-), so i´ll just chime in from time to time to post pictures and give some free bad advice! :-)

Many greets,

Edited by Hawkeye
  • Like 2
Link to post
Share on other sites
  • Replies 148
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Hola folks, Jojjelito and myself are currently collaborating on a bigger MIDIboxNG project, that should help facilitate patch programming for all those synth users, that are unhappy with the bad/min

like that very much.... when i think of my waldorf pulse+ (V1) - and its Pot-Matrix userinterface -and its 64 (?) patches limitation.   do you plan a rack version or a desktop? - i am in for a rackm

Meanwhile:       I'll post the layout as soon as the new PCBs are tested.

Posted Images

Thanks! :-)


This first version is a desktop version, but it can be easily expanded into rack format - Fairlightiiis LEDring-PCB size fits both worlds! :)

Will upload the panel definition file soon, so, if you are interested, you can enlarge it a bit and add rackmount screw slots.

Also, the postman just brought the first manufactured frontpanel and it seems to fit :-), will upload some pictures later on!


Many greets and have a great day!


Link to post
Share on other sites

Well, this thing uses a few of the existing LEDring PCBs by Fairlightiii so I guess it could be racked if you really wanted to in your case. However, the PCBs are almost a wee bit too tall to fit in a 2U rack as they are 85.54mm tall. 2x44.5mm leaves very little margin, but you might be able to pull it it off. Peter has prototyped, and I'm in slow progress building it, a tabletop version. However, MIDIbox is modular, so you can mount these guys any way you see fit.

I was going to leave it be until a bit later, but as times go by I'll start adding documentation to this thread, i.e what did we use, how is it interconnected, why did we build something instead of buying a controller, can you build me one for a school project...

I'll start with something weird: Why Programma? Nobody knows fer sure :smile: Peter came up with it and it sounds like Brit slang for programmer. Then I realized that it's also the name of a really cool, classic programmable desktop calculator made by Olivetti c:a 1964. In a way it was a general computer and it was ahead of its time. I'm not sure this will be as groundbreaking, but it's as good a name as any :smile:

OK, a few remarks before the questions start:

The photo above shows an OLED that's twisted in a diamond shape. Why is that?

  • Well, the OLED sits on a carrier PCB. I don't want to buy unbonded OLEDs and have to use special connectors. There's no room for the carrier PCB unless rotated. If this is offensive to your tastes, you can either move the OLEDs around as you like and sandwich them between the LEDring boards, but we like them to point out 4 different parameters. You could also re-spin the LED ring PCBs so that there's more room between the encoders and fab them at OSHpark or some similar place.
Why don't you use 16mm encoders?
  • Because we found smaller and cheap encoders with switches! You gotta love switches!
Why so many OLEDs? Those are expensive!
  • Because OLEDS! I like this programmer to be fairly interactive and to clearly show which control does what. Since MIDIbox supports hooking up a bunch of these why not? I want a nice box. If I only wanted cheap and something that does the job without fuss, I already have a BCR2000.
Can you list components and where you got all of them?
  • Yeah, later. I need to consult my PayPal and Ebay history, old PMs and such. Compiling all of that isn't something I'm going to do while at the office.
OK, I'll be back. Toodles!


Edited by jojjelito
Link to post
Share on other sites

Great project!

BTW: using OLEDs is the cheapest way to add displays to the project in my opinion. I have a vendor on aliexpress who sells them pretty cheap. I ended up with less than 5€ per piece. I won't get a 16x2 Display for that price and OLEDs are even nicer. But there are several versions out there of this OLED. They may have different connectors / pinnings. Pay attention to that.


Is it planned to add the LRE-Boards to Tim's PCB shop? Otherwise it would be hard to rebuild those device.


Anyway: Keep up the good work! :-)

Link to post
Share on other sites

Thanks, yes, those SSD1306 OLEDs are fantastic, very sci-fi looking! :-)

Jojjelito's post will give hints where to obtain them - they need to be connected in 4-wire mode (the cheap I2C-only displays are not sufficient).

Fairlightiii should decide, what to do regarding the LRE-boards - Maybe he is up for another batch run? We will need some time to finish this properly, anyways! :-)


Meanwhile, the 50% smoked acrylics panel has arrived from Formulor. It is shaded enough to hide the OLED wiring cable spaghetti, but transparent enough to let them LEDs and OLEDs shine through with enough brightness! :-)






Many greets and enjoy!

Edited by Hawkeye
Link to post
Share on other sites

Thanks kristal=!


And many thanks for the knobbery deliveries! :-D


I´ve added a pic of the reflectiveness of the material, with mah favourite framed gurl in the blurred background, hope you like it! :-)



latigid on: Should be possible! You could use four of the OLEDs as oscilloscopes for the scope monitors and use the lower part as a standard SCS for the MBCV interface (There will be a section of an additinal four non-45° tilted OLEDs left of the SCS menu, the Programma will use it for envelope display, if we manage to code that - you could use it for the scopes).


Many greets,


Edited by Hawkeye
Link to post
Share on other sites
And many thanks for the knobbery deliveries! :-D

You're welcome. The first time I see a design with unlit knobs that looks slick. I guess I have to set up a big knob bulk in next months if folks want to copy your project. Had no time with the case bulks and bothering Albs with petty 15ish knob orders didn't seem right.

Link to post
Share on other sites

Thanks, Shuriken! :-) There will be 64 encoders, but you´re right, i´ve only got 32 running now, gotta solder :smile:


latigid on/sneakthief: I have not sighted the code yet, but maybe, if somebody is desparate enough, one might expand MBCV to drive a few label displays, also? They don´t need high update speed or processing power as "dumb labels", so they could probably be driven from a few out pins on the DOUT serial chain. This leaves the oscilloscope displays directly connected to J10B for update speed! Only when changing a patch or changing an encoder mapping bank, the labels need to be updated, and if the oscs stutter then, it would be probably ok... but that is for another thread :-)


To anyone interested, i´ve attached the current formulor/ponoko frontpanel plans, the whole panel (with only one sidepiece) costs only around 40€, and it uses the maximum size (384x384mm) to the last millimeter :-) - It holds four 8x2 LRE boards and the menu system - you need to construct a (wooden) board carrier for yourself at the moment, but that is not soo difficult.


Many greets,




Edited by Hawkeye
Link to post
Share on other sites

Well, when I got those I had this crazy, vague idea about a Nord Lead/Nord Modular-inspired control surface... Unfortunately, the rest is just work :frantics: I don't know if there will be more bulks, if the LRE boards will be available through Smash, or if the fab them yourself option will be available. Most data has been published as far as I know. PM Fairlightiii maybe?

Link to post
Share on other sites

Some parts:
OLEDs - we opted for something with a full set of pins, there are cheaper alternatives with reduced number of pins, i.e. SPI only. Those might save you some dollars.


Encoders are Alps EC12, 24 detents with switch:

Green LEDs:

Knobs: Alps, ask kristal= :smile:
LED resistors: 47R


For the SCS part:
6pcs standard MBSEQ tactile switches, TL-1100. If you're posh you can use Marquart, Digitast, ...
6pcs standard MBSEQ tactile switch caps :smile:


ULN drivers are used with the LEDs of the LRE boards.

Edited by jojjelito
Link to post
Share on other sites

Haha, yeah. It would make a killer MBsid 3, wouldn't it? You could also re-target it and make an Ambika with LED rings and some OLED parameter display action for instance.


Those displays are just the ticket, but lacking a carrier PCB you might have to get a connector for that foil cable. That connector is likely to be a fine-pitch SMD so it's not that easy to work with. The fact that the seller advocates soldering the FPC onto the PCB... You have to do that right and there's a risk it becomes a brittle point of failure. OK, I know that's how it's bonded to the carrier PCB, but that's done with machines and probably inspected under a microscope. It's not a DIY-friendly solution. 


I get bad memories from the Chroma Polaris foil overlay  :brr:

Link to post
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.

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.


  • Create New...