Jump to content

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


Hawkeye

Recommended Posts

 Already it's gonna be a bit of a nightmare to try and arrange the LRE8x2, 4xGLCDs, 20x2CLCD, buttons and an encoder to the same panel height. It may even call for a single PCB akin to the Wilba SEQ.

 

As far as I know it's not possible to mix up different display-types in an application.

 

I'm right now in designing a new board. The board has different parts. There is a "base-PCB" which contains the encoder and also the shiftregisters for DIN. Than there is another PCB which is stacked on those encoders. This contains the LEDs (0805 SMD LED) and also the SR for DOUT as well as the ULN. All SMD. 

Each PCB handles 8 encoders and not 16 like in the LRE. So there would be enough space between two modules to add LCDs... but I'm open for suggestions.

 

BTW: If I have this running it would be quite easy to change it into a 1x4 module.

Link to comment
Share on other sites

As far as I know it's not possible to mix up different display-types in an application.

 

For sure, the mixed LCDs represent a special case for MBCV.

 

Just to keep on topic: the main issue with the GLCDs is that there's no good way to panel mount them (AFAIK). Encoders could be panel mounted if needed but we might need to come up with a solution to have everything on the same PCB. If there was a long carrier board with 45 degree mounting for the GLCDs there would need to be a way to fix it at the bottom. This wouldn't be a problem with your 8x1 boards as you say.

Link to comment
Share on other sites

There are indeed OLEDs that have four mounting holes. I have a bunch of them here. 

But why should everything on the same PCB? That makes the layout extremly difficult and time consuming.

 

Anyway: I will spend some thoughts on this. 

Edited by FantomXR
Link to comment
Share on other sites

Thanks for your ideas and thoughts!

 

FantomXR: regarding the picture - i am still mounting the final OLEDs, will post a video, after that is complete - for now, there is only the demo video (Alpha Juno) with the 10 OLEDs running as displays, but i've now got all missing 14 displays here and will work on it soon. I've created a new panel for the Moog LP/SP synths, that will employ the full area with all encoders and 16 label displays. Also, I and jojjelito will likely continue on the road with this hardware set, because it took some time to build it and imho the displays fit extremely well between the encoders - it "just" needs 7 enamelled copper wires to each display. Time-wise it does not need longer than soldering in the 256 LEDs into one LRE8x2 board... Therefore, it is ok for me, but i can totally understand, if it looks scary for someone building this :-).

 

From the software support side, it would be optimal, if someone would be able to create a 8x2 board, with four oleds mounted diagonally in between, so that everyone can use the suggested Programma layout :-). I know, this is probably a dream! :smile: That's why I suggest to make the label display loader code a bit more flexible, so that other OLED configurations (and encoder boards) can be supported. On the software side, it is not easily possible to mix different display types - it also makes not soo much sense, as the 128x64px OLEDs are great resolution-wise - you can use many of them, if you need more room.

 

Latigid on: If someone would design an encoder board with only 4x2 encoders, we will have the problem of output shift register multiplexing, for a bigger box, we would end up with just too many shift register ICs (and smaller LED matrices than 16x16). SmashTV had some thoughts on this process already, but it is a difficult and very time-intensive design. Maybe a 4x4 (horizontal/vertical) encoder/ledring configuration would be cheaper in the PCB manufacturing process? The 16x16 matrix LED multiplexing works well for me (with ULNs) and is really bright, even with green LEDs behind smoked (~50% light intensity reduction) transparent acrylics.

 

As a conclusion, the Programma will continue on the proposed hardware basis, well knowing, that it is next to impossible to get new MBLRE8x2 boards. While we wait for someone to step forward and design a nice integrated e.g. 8x2 or 4x4 encoder + ledrings + 4 OLED board (with published Gerber-files for reproduction for later users). When that happens, I'll try to support it and will try to make at least the label display loading code working on it.

 

Many greets and have a great sunday!

Peter

Edited by Hawkeye
Link to comment
Share on other sites

As a conclusion, the Programma will continue on the proposed hardware basis, well knowing, that it is next to impossible to get new MBLRE8x2 boards. While we wait for someone to step forward and design a nice integrated e.g. 8x2 or 4x4 encoder + ledrings + 4 OLED board. When that happens, I'll try to support it and will try to make at least the label display loading code working on it.

 

Hm, I don't see the reason, why we are "forced" to use a 8x2 design and not a 8x1 like I do. This should also lead to more brightness on the LED-side (8x16 instead of 16x16). The PCBs can also be chained of course. 

 

I didn't check it out yet, but I could create a displayboard that holds displays in this 45° angle. This can be easily mounted under the 8x1 encoder board on a panel.

 

I think all in all this would lead to more flexibility in design and is also easy to set up. Anyway: Keep it up ;)

 

A question regarding your configuration: If you move an encoder, is the value displayed in the OLED or is it "just" visible on the LED ring so the OLED keeps its label?

Edited by FantomXR
Link to comment
Share on other sites

Hm, I don't see the reason, why we are "forced" to use a 8x2 design and not a 8x1 like I do. This should also lead to more brightness on the LED-side (8x16 instead of 16x16). The PCBs can also be chained of course. 

 

I didn't check it out yet, but I could create a displayboard that holds displays in this 45° angle. This can be easily mounted under the 8x1 encoder board on a panel.

 

I think all in all this would lead to more flexibility in design and is also easy to set up. Anyway: Keep it up ;)

 

A question regarding your configuration: If you move an encoder, is the value displayed in the OLED or is it "just" visible on the LED ring so the OLED keeps its label?

 

Hehe, no worries, nobody is forcing anyone to do anything :-)

 

The problem is with the output shift register ICs - we have a limited max number of serial shift register ICs - a 8x1 board would need 3 output shift registers (8x16), a 8x2 board only four (16x16) for the LED-Rings. Considering the maximum amount of output shift registers in a MIDIbox, this leads to a significantly smaller amount of encoders and LED-Rings in the case of a 8x1 setup. For the Programma, the goal was to go for the maximum amount possible, as complex synths really need lots and lots of encoder real estate :smile:. If you can live with, say, 32 encoders (maybe a bit more, if serial chain settings are tweaked), the 8x1 setup is great and will lead to even easier LED integration (probably without the ULNs). But, with a 16x16 matrix, you can always do nearly twice of that.

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

As far as I know the limit of SR is at 32 for DIN (which means 32*8=256 inputs = 128 encoder) and 32 for DOUT (three SR needed in my config for the LEDrings... so 10 PCBs in total = 80 LED Rings).... am I wrong?

 

Of course there will be a lot more possible in a 16x16 design. :-)

 

Ah ! Well... I can think about a connection possibilty between the 8x1 modules so that also a 16x16 config would be possible...

Edited by FantomXR
Link to comment
Share on other sites

Yes! 32 output shift registers should theoretically work, you set them in mios32_config.h, but the max ever tested/enabled were 4 MBLRE boards for MBNG, as far as i am aware. It should be possible to extend, but we are again unsure about the possible signal detoriation in the SR chain.

 

Therefore, we don't know yet, how long the chain can actually be - the longer it is, the more problems may arise - the boards themselfes take up quite some room, and the cables will be quite long, physically. Jojjelito and myself were opting for an eight board MBLRE8x2 / 128 encoder / 2048 LED monster in the beginning, that would require all 32 output SRs. That just *might* work, if we can manage to tune the SR length to 36, as we need 4 more output registers for the 32 encoder OLEDs (the enable lines there). It might also fail epically and we would have to sell off 4 excess boards, each :-).

 

If we will ever build it - we don't know yet, i have about half of it ready yet and it was lots of work. But the boards are there, the encoders are there, and i have another 2000 LEDs in stock ;-) Also, we are fully aware, that this is insane, but... you know, the FS1r has thousands of tunable parameters, so bigger was better in this case :-D.

 

Anyways, you are right, with the 8x1 boards, it should be possible to drive 64 encoders with LEDrings and displays and stay within the limits of the SR chainlength. No guarantees, though :-)

 

Many greets,

Peter

Link to comment
Share on other sites

Haha! I'm curious about it ;)

 

But as you said already: It's not clear if those PCBs will be available in the future. If I have my layout running, I will post everything online... so you could reproduce them if you want to. But: SMD soldering skills are required!

 

BTW: Resistors are not required... I tried it and the LEDs are working well. 

 

 

Done! This should work:

 

 

This is the LED-PCB. It doesnt need any mounting holes because you can stack it directly on the encoder. The encoder PCB would have some mounting holes and of course you can mount the encoder at the panel directly. 2x 74HC595 and 1x ULN 2803 SMD on board.

 

With the 2x8 connector at the bottom you can forward the led-inputs to another LED-PCB. With the jumper in the top right you can skip IC2 and IC3.... so a 16x16 configuration is possible!

Edited by FantomXR
Link to comment
Share on other sites

  • 1 month later...

Some time later, after a few more hours of wiring ;-)

 

 

 

 

... all 24 OLEDs up and running. Now waiting for jojjelito to review this unit in person :-)

Maybe we will make some progress on a more advanced synth panel than the current Moog Slim/Little Phatty panel. But after reviewing the MIDI implementation of the K5000/FS1r (both are on the agenda sooner or later in this decade), i am getting cold feet in the middle of summer ;-).

 

Hehe, many greets and have a great time,

Peter

Link to comment
Share on other sites

That said, my Waldorf Q, the Supernova 2 and a whole lot of other hardware would benefit from this too. Of course, one of the issues would be handling synths with odd/poorly/undocumented Sysex like the Fizmo, or those that dump the entire patch every time you change something - like the Casio CZ series.

Anyways, before that lovely job happens, next week I'm off to the Bavarian countryside and Munich to say hi to mr Hawkeye, take some pictures and draw some diagrams; plus enjoy the south of Germany :) There's tons of work to do too. Like the Waldorf Q panel if we get to that... Later this fall I need to sit down and solder a fair bit before my own Programma is usable in my Stockholm lair. Of course, it will be cool to expose the controls of some DIY synths like the Shruthi, Ambika, Preen FM/2 and the P6 too. Or make a knobby Prophet VS :)

This, the extra analog panel with a joystick, LED sliders and footswitch inputs and the BLM will make a kick ass starship command console. Add Ilmenator's MIDI patchbay and a Mutable MIDIpal plus DIY gear from Peter Kvitek, and I can do whatever I want with my MBseq and MIDI gear without a computer unless I wanna.

More to follow.

Johan

Edited by jojjelito
Link to comment
Share on other sites

Thx, guys! :-)

 

Latigid On: Yes, your BLM would look soo nice next to it!

 

FantomXR: Yes, an external PSU is necessary, plus a 3V3 Regulator, as the STM32F4 has a too weak onboard regulator, that will get overloaded after about 8 displays or so...

 

Apart from that, I ran into stability problems after about 16 displays... some of the displays on the lower line would "glitch out".

With 24 displays installed, the effect was permanent and occured right after boot up... well, an old oscilloscope to the rescue, and i saw... nothing on the scope... :-). But the problem was gone... a bit of head scratching and investigation revealed the probe/sensor to have a capacitance of a few Picofarads and a high resistance (a megaohm or so) between GND and the probe tip...

More research revealed, that it acted just like an "ac terminator", a concept that has been explained by TK. (see the thread with long DIN/DOUT lines), and has been used by Seppoman and others :-). To cut the talk, a cap of around 20pF in series with a 100R resistor at the end of the data lines (especially SCLK) solved the problem for now. The problem was caused by the long wires acting as RF anteannas and the RF signal bouncing back from unterminated data line ends wreaked havoc on the poor SSD microcontrollers :-)

 

J: really looking forward to the visit! The project is far from finished :-). After reading a bit into the FS1r documentation today (multiple different SysEx streams to be created/decoded, checksums to be calculated), methinks we should start with the Waldorf Q panel... much easier only with CCs and we want to chill and enjoy a few beers and not work that hard after all! :-)

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Hey,  great work guys!

 

Do you plan to make this "scaleable"? I'm asking because I have three LRE8x2 left and don't know what to do with them, so I'm thinking about a MB Programma with three LRE8x2...

 

Cheers

Lars

Link to comment
Share on other sites

Hey Lars,

 

Thx! Yes, it should be down-scalable with some adjustment of the panel configuration files...

Currently, it is "just" a base MBNG, the only thing that was added is a bitmap loader for the OLED label screens...

But planning to do graphical envelope rendering on the bottom screens sooner or later, with some additional code...

 

Many greets,

Peter

Link to comment
Share on other sites

Hey Lars,

 

Thx! Yes, it should be down-scalable with some adjustment of the panel configuration files...

Currently, it is "just" a base MBNG, the only thing that was added is a bitmap loader for the OLED label screens...

But planning to do graphical envelope rendering on the bottom screens sooner or later, with some additional code...

 

Many greets,

 

Hey Peter,

 

what do you mean with bitmap loader? And which ideas to you have for integrating envelopes?

 

I just bought an Odroid mini-computer, running android. Should be here in a few days. I want to try to use lemur on this mini computer. Could be a powerful enhancement. 

Link to comment
Share on other sites

Hey Peter,

 

what do you mean with bitmap loader? And which ideas to you have for integrating envelopes?

 

I just bought an Odroid mini-computer, running android. Should be here in a few days. I want to try to use lemur on this mini computer. Could be a powerful enhancement. 

 

Hi, it is just the image loader (bitmap, .bmp file format ;-)) from SD-card. Envelopes should be rendered graphically on the small OLEDs and updated as envelope parameters change (e.g. attack, decay...). Odroid looks nice and sure can help to use achieve something similar with Lemur, personally I don't love touch panel faders and sliders too much, because you get no haptic feedback, but of course it offers awesome functionality!

 

Many greets,

Peter

Link to comment
Share on other sites

Sure! I totally agree with you. There is nothing better than a real fader or knob.

But I think Lemur could be used more for labeling and feedback than for controllers itself. Envelopes, etc. could be easily displayed there but controlled with your programma ;-) Just an idea.

I'll integrate it in my next keyboard for sure.

Link to comment
Share on other sites

  • 9 months later...

Necrobump. I've just found this awesome thread. What's the latest on the MBProg? This looks just perfect for my axoloti synth build. The axo can change synths on demand (using Program Changes) which makes it difficult to design a usable panel for it. Would be awesome to have a on demand, changing dynamic control surface for it that matches the underlying synth engine perfectly on changes.

Link to comment
Share on other sites

I'm currently working on a layout using 4*4 illuminated encoders, see some of my other threads. If possible I will integrate the shift registers and displays on the same board (half the PCB cost). I'm just trialling an idea for encoder acceleration at the moment.

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
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.

Loading...
×
×
  • Create New...