latigid on

BLM 16x16+X build guide

168 posts in this topic

Wow.  That's amazing looking!  :)

Share this post


Link to post
Share on other sites

Wow, what an awesome build this all was.

 

Now that the 'hard' part is done, comes with 'soft' part:  What's not clear to me, using a virgin PIC (F4620), is what firmware this BLM would use?  Is it just a matter of loading the bootloader and that's it?  Or should the blm_scalar_v1.0a.zip file from the MIOS download site?

Share this post


Link to post
Share on other sites

Congrats on the build if all is well!

You need to first burn a virgin PIC with the MIOS bootloader. After you can send it regular MIDI data using MIOS Studio.

The easiest way is with a normal 8-bit Core because it has standard MIDI ports.

The update is possible if you have your SEQ ready to go with the DIN cable and everything, just configure the router page using e.g. USB2->MIDI3 and MIDI3->USB2. Select USB2 as the MIDI in and out on MIOS Studio and you're talking to the Core8!

Share this post


Link to post
Share on other sites

first MIOS bootloader if virgin pic via burner  ...and after the .hex file via midi in blm_scalar_v1.0a.zip...

Share this post


Link to post
Share on other sites

for grounding the 4 unused AINs inputs:
take a 10 pin IDC male connector, kill the 5V pin , and solder AINs and grounds pins with a unused component leg, easily removable so it could be evolutive for future...
IMG_77331.jpg
IMG_77341.jpg

Edited by tashikoma

Share this post


Link to post
Share on other sites

Other way is just with four of these:

8180gKHZ7NL._SL1500_.thumb.jpg.baa66e0ce

 

Make sure not to jumper the +5V line!

 

 

 

Edited by latigid on

Share this post


Link to post
Share on other sites

Yeah Andy! your solution is more simple! i am so stupid that i would have never thought! :angelnot:

Share this post


Link to post
Share on other sites

A problem... and a solution.

Testing the BLM the last couple of weeks I was getting intermittent behaviour. Notably the SEQ was having trouble communicating at power on and the miniCore would reset if too many blue LEDs were lit. I think what happened is large spikes were causing the supply to drop out, which might appear as a reset pulse on pin 1. The problem remained if I used different 5V PSUs (switching and linear) and adding extra caps to smooth the rail didn't help. TK. managed to get all of his LEDs lit without any comment, so I can't rule out that it is particular to my build, or is caused by faster switching due to the Schottky diodes that I added. I'm interested to see how others go with their BLMs.

The power situation is not ideal. Running everything connected to the DIN cable means there's quite a lot of cable impedance/inductance and the regulation is far away. Using 5V means there is no headroom for a normal regulator, and as the Quad IIC board uses the same rail to drive the MIDI IO circuit, using a higher voltage here isn't really feasible. 

One option is to use the extra case holes to connect a higher (e.g. 9V) DC input, then regulate down from there. A simple regulator could be built in the "muck" area present at the top (but beware that the acrylic spacer sits over the other side of the PCB). 

Or, continue to use the 5V line from the Quad IIC board but with a regulator injected in. 5V input means you need a "Buck Boost" converter. I bought an adafruit "Verter" board, which are around $10. I thought the simplest place to put it would be in place of the R1 bridge wire, but the problem is really on the miniCore side. So I cut the 5V and ground lines coming in after the DIN socket. For mounting I used an SIL header in the blank muck area; there are some unused functions on the Verter PCB like enable etc. I only had one terminal socket handy so I soldered directly to the output. 

The result is much better: the BLM initialises as soon as the SEQ is ready and there is no problem illuminating all LEDs. The Verter specifies that its normal 5V output is actually 5.2V, which is still fine for the PIC and its analogue inputs. This also helps with the inevitable voltage drop observed when many LEDs are lit.

Happy BLMing!

20151122_190726.thumb.jpg.9333ff7aa0479b

 

Someone asked about power draw (also added to the first post):

  • Using the Verter, standby voltage and current is 5.2V and about 30-60mA.
  • With all LEDs lit (both colours) the draw goes up to 647mA, although this would never be done in normal operation.
  • In track mode with all 16x16 blue LEDs lit the draw is 467mA and the voltage drops to 4.72V. I don't really perceive a difference in brightness, but it could only be a good thing! As long as the ADC inputs are scanned relative to the supply voltage you shouldn't lose control at the top end.
Edited by latigid on

Share this post


Link to post
Share on other sites

Testing the BLM the last couple of weeks I was getting intermittent behaviour. Notably the SEQ was having trouble communicating at power on and the miniCore would reset if too many blue LEDs were lit.

While reading your posting an idea came into my mind: the PIC device configuration (which comes with the MIOS bootloader) is preconfigured with a brown-out reset detection at 4.5V, which means if the supply voltage falls below this limit, the PIC will be reset, although it also works at lower ranges.

I selected this high BORV setting to ensure, that for example an ongoing IIC EEPROM programming operation will be interrupted (by resetting the PIC) before the external device is outside the valid voltage range during power-off - this could lead to data corruption.

But the BLM16x16+X doesn't access external EEPROMs, so actually the BORV could be lowered to 2.89V or even 2.14V

Unfortunately this can only be done with a PIC programmer.

Best Regards, Thorsten.

 

Share this post


Link to post
Share on other sites

I'm almost done populating the board after working a few hours each week on this project. As others have noted, this is a pretty tedious build. I worked out a method that sped up the diode installation process for me. Take a small piece of veroboard and make a little template for the diodes. You can quickly place a diode on the small board and then flip it over to trim the leads. After removing the trimmed diode from the board, trim an extra millimeter from each lead so that once the diode is placed on the pcb the leads won't protrude from the front side. I made small piles of trimmed diodes and soldered one row of diodes at a time. The diodes were easy to place on the pcb because they were already properly formed, and I never had to flip the large pcb during this process. 

 

diode.thumb.jpg.e9473ae77dd6c6cc10e4646d

Share this post


Link to post
Share on other sites

Smart move! The little notches in the top left corner were meant to be for a diode jig but unfortunately I didn't quite get the distance right.

Best of luck for the remaining parts.

Share this post


Link to post
Share on other sites

I'm finally done soldering the parts (except the sliders). Whew! I've installed the blm_scalar software on the PIC using an old core board. What unused AIN pins do I need to jumper on J5B? I can't really tell from the pictures.

The instructions show the cable pin connections between the din8 connector and the minicore board on the blm. What about on the other side, between another din8 connector and the seq4 core? I'm still using a LPC17. What should that look like?

Share this post


Link to post
Share on other sites

I'm finally done soldering the parts (except the sliders). Whew! I've installed the blm_scalar software on the PIC using an old core board. What unused AIN pins do I need to jumper on J5B? I can't really tell from the pictures.

 

This view of the board has J5B on the rear. So four pairs of AIN should be jumpered to ground towards the middle of the PCB, the bottom-most is +5V and shouldn't be shorted.

 

jumper.thumb.PNG.51ad1657149c4a421c54932

 

 

The instructions show the cable pin connections between the din8 connector and the minicore board on the blm. What about on the other side, between another din8 connector and the seq4 core? I'm still using a LPC17. What should that look like?

Do you have the Quad IIC installed? If not, you need to provide another MIDI connection (the input of which should be optoisolated). You can supply power via the DIN or else by using the extra case holes for a separate power connection/regulator. 

 

Edited by latigid on

Share this post


Link to post
Share on other sites

Do you have the Quad IIC installed? If not, you need to provide another MIDI connection (the input of which should be optoisolated). You can supply power via the DIN or else by using the extra case holes for a separate power connection/regulator. 

I'm using the LPC17 core which has midi connections on the board. It sounds like I need to dedicate a midi i/o pair to the BLM. I have an old IIC_MIDI board (http://www.ucapps.de/mbhp/mbhp_iic_midi.pdf) that I'm not using. Can I use this board to connect to the LPC17 core and BLM? It looks like J2 on the IIC_MIDI board connects somewhere to the core. I'm not sure how the midi board is wired to the DIN. The build guide shows 6 connections between the minicore and DIN on the BLM. I'm guessing I'll also need 6 connections between the seq4 and DIN.

DIN8_wiring.thumb.png.e2bd871dbc075f5356

Some of the pins on the left header are connected (1&2&3&4, 9&10). Should I just tie these pins together by soldering underneath the header? 

 

Share this post


Link to post
Share on other sites

May i know all about the circuit details and the hardware components used here?
What are the deigns of the circuit and the PCB and your firmware?

What specifications this hardware consist and what are its applications?

What an interesting post! If you like I can sell you one of the bugged circuit boards. The potential applications are for floor tiles, doormats, frisbee etc.

 

 

I'm using the LPC17 core which has midi connections on the board. It sounds like I need to dedicate a midi i/o pair to the BLM. I have an old IIC_MIDI board (http://www.ucapps.de/mbhp/mbhp_iic_midi.pdf) that I'm not using. Can I use this board to connect to the LPC17 core and BLM? It looks like J2 on the IIC_MIDI board connects somewhere to the core.

The board I was talking about is this one:
http://midiboxshop.bigcartel.com/product/quad-iic_midi-module-board
http://www.midibox-shop.com/quadIIcMIDIR2.html

As you can see, it generates 4x MIDI outs from the IIC buss. Notice the extra circuit is dedicated for the BLM and just optocouples MIDI IN (3) and provides a pullup for MIDI OUT (3). It conveniently has a DIN8 connector right on the PCB. So I guess if you wanted to use your PCB, you would ignore the PIC 16F and connect up J4 on the IIC to J5B on the Core. Or the opto circuit could be built on veroboard. I'm not too sure if it should run at 3V3 or 5V. Maybe try the lower voltage and see if the MIDI transfer is stable. It seems sensible to power the optocoupler at 3V3 as this should (?) levelshift the 5V MIDI IN signal from the BLM. Likewise, any 3V3 MIDI IN signal entering the miniCore should be level shifted up to 5V. Please correct me if I'm wrong!

 

I'm not sure how the midi board is wired to the DIN. The build guide shows 6 connections between the minicore and DIN on the BLM. I'm guessing I'll also need 6 connections between the seq4 and DIN.

Just imagine this connector as 0V, 5V (perhaps not connected if you power the BLM separately), and the standard MIDI connections MI+, MI-, MO+ and MO-. Only two connections are "data" that need to connect to the Core, the other two are a pull up for MIDI OUT and a "virtual ground" for MIDI IN. But I admit I'm not well versed in the lingo of MIDI current loops!

 

DIN8_wiring.thumb.png.e2bd871dbc075f5356

Some of the pins on the left header are connected (1&2&3&4, 9&10). Should I just tie these pins together by soldering underneath the header? 

 

I suggest to use a 10 pin ribbon cable and connect the 4*0V and 2*5V to the DIN8 panelmount socket to decrease resistance in the thin wires. These connections are made on the miniCore PCB itself, so no need to add more solder. But if you're like me, sometimes when heating up large ground planes the solder flows a bit thick and bridges a few common pins. That's okay too.

 

 

Share this post


Link to post
Share on other sites

It's working! I powered up the blm from a bench supply. These are the best kind of holiday lights. :)

blm-testing.thumb.jpg.fdfec05a367f9cf06d

One small issue: a segment of 5 buttons isn't working. I've touched the LED's and diodes in this group looking for a bad joint. I've also touched around IC5 and R5. I'm not sure where to look next.  Here's a screenshot showing the non-working buttons/leds:

blm-troubleshoot.thumb.jpg.56d051cf04610

Share this post


Link to post
Share on other sites

Pretty sweet! :grin:

For the non-illuminated 5, first check the diodes are soldered correctly. Then do the LEDs have the correct polarity? The main grid and extra column are only common from the cathode side. When viewed from the back, the lower contact on the LEDs should show continuity for all of these 5, in fact the first 9 cathodes should all be connected in a row. The second 8 of a row are driven through a separate transistor. 

From the topside, is there a slight scratch on the trace just to the inside of the right side of your yellow box? If this trace is somehow cut, please connect cathodes on the 5th and 6th column on the same row.

Edited by latigid on

Share this post


Link to post
Share on other sites

 

From the topside, is there a slight scratch on the trace just to the inside of the right side of your yellow box? If this trace is somehow cut, please connect cathodes on the 5th and 6th column on the same row.

You must have eagle eyes. You were right, there was a small scratch on the trace. I soldered in a little jumper on the bottom and now that section works. Thanks!

Share this post


Link to post
Share on other sites
 

The board I was talking about is this one:
http://midiboxshop.bigcartel.com/product/quad-iic_midi-module-board
http://www.midibox-shop.com/quadIIcMIDIR2.html

As you can see, it generates 4x MIDI outs from the IIC buss. Notice the extra circuit is dedicated for the BLM and just optocouples MIDI IN (3) and provides a pullup for MIDI OUT (3). It conveniently has a DIN8 connector right on the PCB. 

Ah, I didn't know about this board. I've got an old IIC_MIDI board and two of the newer MIDI io modules (http://midiboxshop.bigcartel.com/product/midi-i-o-module-board). There's too many of these midi boards available to keep them all straight. ;) I just ordered this quad midi board from Tim. 

Share this post


Link to post
Share on other sites

Glad to hear it's all glowing now!

For the QuadIIC, be careful with the DIN8 connector that you order as there are two different pin configurations. I ordered twice from Mouser thinking it was my mistake, but their description was wrong. Hopefully they've updated it. They can be had on eBay, if I remember the seller was based in the UK.

Share this post


Link to post
Share on other sites

Yeah! congratulation Jbdiver!

Share this post


Link to post
Share on other sites
Just imagine this connector as 0V, 5V (perhaps not connected if you power the BLM separately), and the standard MIDI connections MI+, MI-, MO+ and MO-. Only two connections are "data" that need to connect to the Core, the other two are a pull up for MIDI OUT and a "virtual ground" for MIDI IN. But I admit I'm not well versed in the lingo of MIDI current loops!

Can you describe the pin assignments for pins 1-6 on on the DIN? In other words, which specific pins are used for 0V, 5V, MI+, MI-, MO+ and MO-? 

Also, I picked up the adafruit verter board. What holes on the verter board did you use to mount it to the main board? I see holes labeled 5, G, PG, PS, G, EN, Vin. My guess is that I shouldn't use the holes labeled 5, G, or Vin. 

 

Share this post


Link to post
Share on other sites

Can you describe the pin assignments for pins 1-6 on on the DIN? In other words, which specific pins are used for 0V, 5V, MI+, MI-, MO+ and MO-? 

The connections are listed here but at least for me they are very confusing. It's exactly the same on the Quad IIC.

So, I've redrawn the diagram:

BLM_DIN_expanded.thumb.png.0a179a28104ef

 

I guess it's complicated because one box's MIDI out is the other's MIDI in. The connections listed have common power on pins 6/2.

SEQ side: MIDI out from the Core is current limited then goes to pin 4. Pin 5 is the pull up to +5V. MIDI in to the Core arrives on pins 1 and 3 and goes to the optocoupler. The optoisolated signal then goes to the appropriate MIDI in on the Core.

On the BLM side, if the connections are crimped by colour/order as I've mentioned, just plug the right way into the miniCore and you're done :). (The order is switched relative to the SEQ side to connect SEQ MIDI OUT <-> BLM MIDI IN and BLM MIDI OUT <-> SEQ MIDI IN.)

 

 

Also, I picked up the adafruit verter board. What holes on the verter board did you use to mount it to the main board? I see holes labeled 5, G, PG, PS, G, EN, Vin. My guess is that I shouldn't use the holes labeled 5, G, or Vin. 

 

That's exactly how I mounted it; long side of a single 4 pin header to the muck area (raised up by the plastic on the PCB front side), short side to the VERTER PG, PS, G, EN.

 

Share this post


Link to post
Share on other sites

SmashTV sells only PIC18F4685 in his shop.

Will this work as a replacement for the 18F4620 that is used for the miniCore?

Share this post


Link to post
Share on other sites

Yes, it will work as well with the same .hex file (no need to re-compile the application, since MIOS8 contains the PIC18F4685 specific parts).

Best Regards, Thorsten.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now