Hawkeye Posted January 26, 2013 Report Share Posted January 26, 2013 (edited) 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 ;-). Many greets, Peter Edited January 26, 2013 by Hawkeye Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 26, 2013 Author Report Share Posted January 26, 2013 ok, I have received the Reichelt order today and will take the stuff with me when returning home tomorrow. I'll do testing next week, so the time frame for receiving the boards would be 4 weeks from then. No arctic snowballs :-). Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted January 26, 2013 Report Share Posted January 26, 2013 (edited) 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 January 26, 2013 by Hawkeye Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 27, 2013 Author Report Share Posted January 27, 2013 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 Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 28, 2013 Author Report Share Posted January 28, 2013 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. 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. Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted January 28, 2013 Report Share Posted January 28, 2013 (edited) Great news, looking very fine so far! Sorry for the additional workload, but better to test first! :-) Many greets! Peter PS: When its done, your SEQ will be onehelluva SEQ ;-) Edited January 28, 2013 by Hawkeye Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 28, 2013 Author Report Share Posted January 28, 2013 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: Quote Link to comment Share on other sites More sharing options...
latigid on Posted January 29, 2013 Report Share Posted January 29, 2013 until I discovered that the upper and the lower part of my breadboard's vertical power rails are not internally connected :) Been there myself! Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 29, 2013 Author Report Share Posted January 29, 2013 (edited) Board has been ordered, delivery in about 3-4 weeks to my place. Edited January 29, 2013 by ilmenator Quote Link to comment Share on other sites More sharing options...
freddy Posted January 29, 2013 Report Share Posted January 29, 2013 Board has been ordered, delivery in about 3-4 weeks to my place. thumb_i.pngthumb_ii.pngLooks 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 Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted January 29, 2013 Report Share Posted January 29, 2013 Nice board, nice PCB color, nice SMD shift registers and resistors - can´t wait :-) Many greets, Peter Quote Link to comment Share on other sites More sharing options...
ilmenator Posted January 30, 2013 Author Report Share Posted January 30, 2013 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. Quote Link to comment Share on other sites More sharing options...
freddy Posted January 30, 2013 Report Share Posted January 30, 2013 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 Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 15, 2013 Author Report Share Posted February 15, 2013 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: . Quote Link to comment Share on other sites More sharing options...
orange_hand Posted February 15, 2013 Report Share Posted February 15, 2013 That looks great, good work ! Freddy: Wait until the design is finished before you order your parts. Otherwise you have to sell your unwanted parts again :smile: Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted February 15, 2013 Report Share Posted February 15, 2013 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 Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 15, 2013 Author Report Share Posted February 15, 2013 I'll check this - at first sight the pin out does look different from what I seem to remember, but I'll look at it tonight. In case it's different I'll send you two of mine. Quote Link to comment Share on other sites More sharing options...
freddy Posted February 15, 2013 Report Share Posted February 15, 2013 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: Quote Link to comment Share on other sites More sharing options...
orange_hand Posted February 15, 2013 Report Share Posted February 15, 2013 (though not probably to my wife when she walks by my DIYers lair) oh, does she !?! :shocked: Always good to buy her a new pair of shoes or a nice hand bag, or whatever she is into. You will see that works great, no complaints anymore ... hehe Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 18, 2013 Author Report Share Posted February 18, 2013 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... Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 19, 2013 Author Report Share Posted February 19, 2013 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 Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted February 19, 2013 Report Share Posted February 19, 2013 (edited) 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 February 19, 2013 by Hawkeye Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 20, 2013 Author Report Share Posted February 20, 2013 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 Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted February 20, 2013 Report Share Posted February 20, 2013 Nice and very well done, looks great! Less work = Happy Hawkeye ;-) Have a great day! Peter Quote Link to comment Share on other sites More sharing options...
ilmenator Posted March 17, 2013 Author Report Share Posted March 17, 2013 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.