Jump to content

Extended front panel design - what to do with two extra buttons?


ilmenator
 Share

Recommended Posts

Now I wonder if I need to test the official BPM display schematic

 

 

Please test the LED digit schems before ordering any boards, you may hit me with an arctic snowball, if I am wrong ;-), but if I remember things right, the segment order was messed up when testing the official schems - that´s why I got garbled digits on my 1-digit bpm board at first.

It only worked after wildly rearranging spaghetti on the breadboard  ;-).

Ah yes, and it is highly unlikely, that the problem was caused by the few cables in the blurred part of the picture ;-).

 

med_gallery_7895_68_9821.jpg

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Cool! Maybe really my DOUT pins were wrong at the connection point, but better be safe than sorry ;-).

 

Another thing, I hope the luminance of all LEDs will be high enough for you - I ended up direct driving them all (no resistors) - which is not a nice design choice, but even with 50 ohms resistors, the brightness was a bit low otherwise. This was probably because of the quite short duty cycle, as the number of digits was expanded from 3 (classic BPM) to 7 (4x BPM, 3x Step Display). Maybe a kind of LED driver  similar to the one on the new LED-Ring boards would be nice, but this is already outside of my knowledge area (which is software), so I cannot give further advice ;-).

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

I am not sure the ULN drivers make any difference at all. There was some discussion over in the LED ring board thread, but I don't think there were any definitive conclusions on whether they would help the LEDs brightness or not. As the limiting factor seems to be the duty cylce and not the driving current, I doubt that the ULNs would make a difference here. Also, as you can see from the image above, this board is really short of remaining real estate for placing even a single ULN.

 

I'll check how the Kingbrights behave, though, and think about alternatives if necessary.

 

Best, ilmenator

Link to comment
Share on other sites

So I checked the official BPM schematic for pinning and brightness, and the results are very promising. BPM and STEP segments are connected to the same shift register, and the brightness is totally acceptable using 220Ohm resistors and 7 Kingbright SC39-11 type 7-segment displays all at once, with no additional drivers. Brightness is obviously increased somewhat by using 100Ohm resistors instead, I did not test lower values than that.

 

post-3442-0-72818000-1359404758_thumb.jp

If you look closely you might see that when taking the picture I was using 220Ohm resistors for 4 segments (including the dot) and 100Ohm for the other 4 segments. However, that is a (visually) small difference.

 

I'll place my PCB order soon, I'll pass on one of the boards to Hawkeye for software mods of the TPD matrix.

 

Link to comment
Share on other sites

Sorry for the additional workload, but better to test first! :-)

 

You actually had me worried for around half an hour until I discovered that the upper and the lower part of my breadboard's vertical power rails are not internally connected, leaving the last shift register in the chain floating, which resulted into VERY strange effects... :shocked:

Link to comment
Share on other sites

Board has been ordered, delivery in about 3-4 weeks to my place.

 

attachicon.gifthumb_i.pngattachicon.gifthumb_ii.png

Looks nice, congratulations! Did you order 1-2 prototypes only for initial testing an then consider ordering larger amounts (if at all)? The obvious reason why I ask is that I'd love to test/usr one, too :-)

Cheers,

freddy

Link to comment
Share on other sites

Looks nice, congratulations! Did you order 1-2 prototypes only for initial testing an then consider ordering larger amounts (if at all)? The obvious reason why I ask is that I'd love to test/usr one, too :-)

 

The order placed was for 3 prototypes only and comparatively expensive looking back at the 16x4 BLM PCB. However, there are some tracks on this board that are running between the smd pads for the shift registers - I did not want to take any risk with respect to board quality.

 

Let's discuss larger quantities once the design has been confirmed to work :smile:. At least the size of this one is much more shipping friendly than the 16x4 BLM board.

Link to comment
Share on other sites

The order placed was for 3 prototypes only and comparatively expensive looking back at the 16x4 BLM PCB. However, there are some tracks on this board that are running between the smd pads for the shift registers - I did not want to take any risk with respect to board quality.

 

Let's discuss larger quantities once the design has been confirmed to work :smile:. At least the size of this one is much more shipping friendly than the 16x4 BLM board.

 

Ilmenator,

understood and, of course, agreed. Looking forward for the bulk (if it happens), I'll wait with ordering the front panel - it fits so nicely next to your 16x4 BLM :-)

Cheers,

freddy

Link to comment
Share on other sites

  • 3 weeks later...

Boards have arrived (pretty fast this time!), and of course I managed to mess up the segment order on the 7-segment displays...
 

... but if I remember things right, the segment order was messed up when testing the official schems - that´s why I got garbled digits on my 1-digit bpm board at first.

 

So there will be some wire wrapping tonight to get it right again. The strange thing is that it WAS working okay on my breadboard, but apparently I got it wrong when transferring that to PCB - probably because I got confused by the DOUT module's pin numbering. I think that is one of the most effective pitfalls that MIDIbox has to offer :rofl: .

 

The other interesting thing is that in the 8x8 duo LED matrix, the "other" color is always on, presumably because the corresponding shift register is not properly set, as it is not defined in the config file (yet).

 

Oh, and sorry for s****y phone camera picture. In real life the colors / brightness are totally okay :smile: .

post-3442-0-58143300-1360922332_thumb.jp

Link to comment
Share on other sites

Niiiice! :sorcerer:

 

No problem with the inverted segment ordering, think this was maybe also my problem with the garbled segments, too, agreed on the most effective pitfall :-).

Would you have a BOM, so I can order parts already? Thanks a lot and am really looking forward to some LED bling coding :).

I happen to have two of these LED matrices from Watterott/Sparkfun left over, they should be exactly yours, right?

http://www.watterott.com/de/LED-Matrix-Dual-Color-Small

 

Have a great weekend!

Peter

Link to comment
Share on other sites

Freddy: Wait until the design is finished before you order your parts. Otherwise you have to sell your unwanted parts again :smile:

 

point taken, though I wouldn't consider them being 'unwanted parts', 'extra parts' sounds better to me (though not probably to my wife when she walks by my DIYers lair)  :phone:

Link to comment
Share on other sites

Well, turns out my datasheet was wrong and Hawkeye's is right. Even though I tested on breadboard, I never had both colors connected to shift registers at the same time - though I probably should have...

 

A new protoboard will be ordered, I am not going to wirewrap this...

Link to comment
Share on other sites

Another update: after modifying the board and double-checking that a) the PCB's design was according to Hawkeye's datasheet and b) the breadboard cabling was exactly as on the PCB design, I still got the same behavior. Puzzled? So was I...

 

Turns out that apparently they sold me what seems to be common anode LED matrix modules instead of common cathode ones - that's the drawback of buying at Chinese ebay-shops: you don't always get what you want. It also explains why "the other color" is always on... because if a DOUT SR is not explicitly set to 1, its output should be 0, sinking what I thought would be the common cathode (but is common anode instead). Fortunately, that should not be a big deal with matrix designs, as I would assume that all I need to do is invert the state of all output shift registers involved and I'm done. Hawkeye, could you give me a hint where in the code this might be done?

 

Best regards, ilmenator

Link to comment
Share on other sites

Hi ilmenator,

 

this is where everything takes place:

http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2Fcore%2Fseq_tpd.c

 

The logic works like this: it internally cycles a column count and then power is applied to the corresponding column anode.

Then up to two rows are GNDed, depending on the relative track positions, causing the respective LEDs to shine for that cycle.

 

You might be able to get it running by just inverting both outputs (logical XOR with 0xFF the values of both calls to MIOS32_DOUT_SRSet()).

Note: There is no support for multiple colors in the software yet, as I was out of shift registers, but of course it can be easily added. I therefore only connected the "green" pins on my SEQ :).

 

Of course, it would be best to get it running on common hardware (i.e. the Sparkfun/Watterott LED matrices) to get rid of overly many configuration options :-)

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Well thanks for the link - actually, I had figured that out already, MIDIbox land is well documented in a way :phone: .

 

So, what are my findings? Actually, only good news so far.

 

Playing around with the code a bit, I can now confirm that my original board layout works with the common anode duo LED matrix, and it should also work with common cathode types. Comparing the datasheets of many of the variants I could find on the Internet, it seems like the pinout of the modules is always the same, with common anode / common cathode pins corresponding. In other words, only one board layout is required, no matter whether common anode or cathode type is used, and it is not necessary to buy the Sparkfun/Watterott variant which is not even in stock.

 

Here is a link to a video that shows the two modules in action. The left one uses only the red color and shows tracks 1-8, the right one demonstrates that also the green color can be chosen and shows tracks 9-16. Ideally, I would like to have the dots running from top to bottom and not from the center outwards, but I guess I'll leave this to Hawkeye's implementation skills.

 

Here is the piece of code I use for the demo video:

// $Id: seq_tpd.c 1403 2012-01-08 21:50:31Z tk $
/*
 * Routines for relative track position matrix LED display (by hawkeye)
 * quick-and-dirty mod for double duo-LED matrix demo 2013-02-19 by ilmenator
 *
 * ==========================================================================
 *
 *  Copyright © 2008 Thorsten Klose (tk@midibox.org)
 *  Licensed for personal non-commercial use only.
 *  All other rights reserved.
 * 
 * ==========================================================================
 */

/////////////////////////////////////////////////////////////////////////////
// Include files
/////////////////////////////////////////////////////////////////////////////

#include <mios32.h>

#include "seq_hwcfg.h"
#include "seq_core.h"
#include "seq_ui.h"
#include "seq_bpm.h"
#include "seq_led.h"
#include "seq_cc.h"


/////////////////////////////////////////////////////////////////////////////
// LED update routine
/////////////////////////////////////////////////////////////////////////////
s32 SEQ_TPD_LED_Update(void)
{
  // Shift Registers are hard coded for simplicity of the demo implementation, counting from 0: 
  //    right LED matrix:
  //        SR 10 = green
  //        SR 11 = red
  //        SR 12 = common anode
  //    left LED matrix:
  //        SR 13 = green
  //        SR 14 = red
  //        SR 15 = common anode

  static u8 cycle_ctr = 0;

  // Switch off "the other color"
  MIOS32_DOUT_SRSet(11, 0xFF);
  MIOS32_DOUT_SRSet(13, 0xFF);

  if (cycle_ctr++ > 8)
     cycle_ctr = 0;

  // Power the corresponding column cathode of this cycle
  MIOS32_DOUT_SRSet(12, (1 << cycle_ctr));         
  MIOS32_DOUT_SRSet(15, (1 << cycle_ctr));         

  // Determine relative track position (tracks 1-8, left LED matrix)
  s32 steps = SEQ_CC_Get(cycle_ctr, SEQ_CC_LENGTH);
  s32 curstep = 2*seq_core_trk[cycle_ctr].step;
  u8 relpos_left = (s32)(curstep << 2)/ steps;
 
  // Determine relative track position (tracks 9-16, right LED matrix)
  steps = SEQ_CC_Get(cycle_ctr + 8, SEQ_CC_LENGTH);
  curstep = 2*seq_core_trk[cycle_ctr + 8].step;
  u8 relpos_right = 7 - (s32)(curstep << 2)/ steps;
    
  // Gate the corresponding anodes of this cycle (if the tracks are not muted)
  u8 setbyte_left = 0xFF;
  u8 setbyte_right = 0xFF;
  if (!(seq_core_trk_muted & (1 << cycle_ctr)))
    setbyte_left ^= (1 << relpos_left);
  if (!(seq_core_trk_muted & (1 << (cycle_ctr + 8))))
    setbyte_right ^= (1 << relpos_right);

  MIOS32_DOUT_SRSet(14, setbyte_left);
  MIOS32_DOUT_SRSet(10, setbyte_right);
  
  return 0; // no error
}

 

Kind regards, ilmenator

Link to comment
Share on other sites

  • 4 weeks later...

In the meantime I have updated the TPD Wiki page with the frontpanel file required for the TPD. Also, I have modified the code so that I have now 16 columns showing the track position in Matrix (the movie) style running from top to bottom like in a waterfall. The four buttons and corresponding duo-color LEDs are also functional and can be assigned in the config file (one minor code modification to increase the number of scanned shift registers is necessary for this to work).
 
I have a second set of proto boards on the way - should these turn out to be perfect then I might order some more boards for those interested in this SEQv4 extension. Expect this to happen not before May.

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

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

×
×
  • Create New...