-
Posts
992 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by Duggle
-
Is the midi connection by USB or UART? What is the error message text (if any)?
-
Sorry I can't help more... No, it should not be necessary to remove the card when booting (I assume you mean "switch power on" to the core). Is the power supply to the core good enough? (that's my only guess...)
-
The "protection" diode I mention is the one in the driver(s) to protect it from back emf's generated in the load (coils). They come into play when the + common pin of the ULN is connected to the load positive. What keyboard matrix circuit are you using?
-
TK, I'd like to request the following (or similar): To be able to define commands (splash script) that execute for a short time before the actual NG application. The idea is that after these commands the usual Default.ngc is loaded and runs completely independent from what commands/allocations were made during the "splash". The kinds of things in the splash script may be sequenced or animated LED patterns that provide a quick test of all display elements, including for example LCD scrolling text etc. The script may require commands that control the sequence e.g how long to execute the splash before loading the default.ngc, etc,etc.
-
32*0.2=6.4A (?) 32*0.3=9.6A Make sure the rating is for the 12V not the 5V output of the PS. Of course you could use 2 or more separate 12V supplies. Naturally, the +12V from each supply is *not* connected to each other at all. They have a common ground connection, but the +12V goes to separate groups of coils. The "groups" is defined by those coils connected to the same ULN2803 because they share a common protection diode common cathode pin on the driver that terminates to the +12V side of those coils in the group.
-
The drawing looks right, to me.
-
But the coils require 12V, and you'll need something that switches this and can carry 400mA, right? I'd suggest a standard DOUT module with ULN2803 fitted should work fine. You may have discovered that with this configuration you need to make sure GND (pin 9, I think) makes a (good) connection with the ground plane.
-
If the power supplies (5V, 12V) are floating then you can have common ground connection without a forming a "ground loop". Even if the 5V is coming from a grounded USB device (computer) it won't be a ground loop as such. Without knowing much about the application, if you identify the current path of the coils: +12V terminal of p.s, to "+" of coils, to "-" of coils, to o/p of driver (say uln2803), to gnd pin of driver, to gnd plane of PCB, to gnd of 12V supply. These are the wires that need to be kept low impedance, particularly the gnd plane of the PCB(s) to gnd of 12V supply, and the +12V from the supply as these nodes carry current for all coils. Now if the 12V power supply is floating (gnd not connected to mains ground) then you will not have an earth loop, even though the gnd plane of the driver boards is connected to the core. This is very often the case (floating) and can be checked with a continuity tester mode of a multimeter. There is a substrate pin on the micrel chips which allows the driver to use a different potential but this does not isolate the supply (there still need to be a ground connection somewhere). Just to repeat: you wont have earth loop problems if you use a 12V supply that is isolated from it's mains earth pin.
-
If only 4/8 loads are ever active at the same time then I'm sure 300 to 400 mA would be fine. Another approach worth mentioning is to have the DOUT pin drive the gate of an N channel MOSFET. Although they are discrete devices, they don't require any other components (except protection diodes!) The main benefit is their extremely low "on" resistance. It means they run stone cold, which is good for long term reliability. This means 8 mosfets and 8 diodes (which would be painful though, if you need to replicate this circuit many times!)
-
The data sheet I looked at was the TI one, which returned near the top of the google search. It does say that the total substrate terminal current is -2.5A This means with all outputs "on" each terminal could carry 2.5/8=312mA. There is an "on" voltage drop of about 0.7V so 8*0.312*0.7= 1.75Watts which would make the chip warm, even hot, to the touch. So it would seem the driver outputs of MIC5841 and ULN2803 are similar (could argue that the 2803 has a bit more current). Whether it makes sense to substitute 2 devices for 1 depends on the application and situation. (btw, I haven't looked at the Shift register within the MIC5841, so I can't say it's compatible)
-
I just looked at the datasheet of the ULN2803. It is simply an array of darlington drivers. Each output can switch 500mA. The maximum voltage across the switched load is 50V.
-
MIDIbox NG V1.020 [1787.634] [MBNG_FILE_C] Event Pool Number of Items: 70 [1787.634] [MBNG_FILE_C] Event Pool Allocation: 2241 of 24576 bytes (9%) Using "^.." LCD label definitions. That's 4 banks of 16 encoder led rings. That's about 50% compared to previously!!!
-
The purpose of the DOUT connected to port J28 module for modules 3..X (X=8, in your case) is to provide separate E (enable) lines to each and every LCD. The first 2 are already provided off the core. I can say from direct testing that at least 20 LCDs can be used without buffering. I have wired the LCD controller signals as a bus. In the test so far all wires are common to every LCD except the E lines which come from the core J15A/B (1 and 2) and DOUT (3 to 20) In my final build I'll have separate Backlight and Contrast for each row in my setup. There was enough power from the USB port to power all LCD's and backlights (backlights are set to fairly dim on purpose; they look better).
-
Without this I'd be O.K, but that kind of improvement will be very significant!
-
Based on the fact that 4 banks of 64 EVENT_ENC consumes 69% of Event Pool Allocation There may only be memory capacity for 3 banks including RGB LED array. 3 banks is good, more is probably better! :happy: [edit] I've just tested 3 banks of 64*EVENT_ENC+64*EVENT_LED allocates 86% There is also up to 32 other general buttons and 32 LEDs that need allocation. Would it be easy to implement a Pagefile in SD Card to store inactive banks?
-
It's working how I need now! I'm a little concerned with pool memory, the file below allocates 6% ( there will be 64 LEDs not 8) I'll be able to get away with 4 or fewer banks in the near term. RESET_HW DOUT_MATRIX n=1 rows=8 inverted=1 sr_dout_sel1=1 sr_dout_r1=2 sr_dout_g1=3 sr_dout_b1=4 led_emu_id_offset=1 EVENT_RECEIVER id=1 type=CC cc=16 fwd_id=SENDER:1 EVENT_SENDER id=1 type=Meta meta=SetBank # Bank1 EVENT_LED id=1001 fwd_id=LED:1 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1002 fwd_id=LED:2 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1003 fwd_id=LED:3 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1004 fwd_id=LED:4 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1005 fwd_id=LED:5 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1006 fwd_id=LED:6 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1007 fwd_id=LED:7 bank=1 rgb=15:0:0 value=100 EVENT_LED id=1008 fwd_id=LED:8 bank=1 rgb=15:0:0 value=100 # Bank2 EVENT_LED id=1101 fwd_id=LED:1 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1102 fwd_id=LED:2 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1103 fwd_id=LED:3 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1104 fwd_id=LED:4 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1105 fwd_id=LED:5 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1106 fwd_id=LED:6 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1107 fwd_id=LED:7 bank=2 rgb=0:15:0 value=100 EVENT_LED id=1108 fwd_id=LED:8 bank=2 rgb=0:15:0 value=100 # Bank3 EVENT_LED id=1201 fwd_id=LED:1 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1202 fwd_id=LED:2 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1203 fwd_id=LED:3 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1204 fwd_id=LED:4 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1205 fwd_id=LED:5 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1206 fwd_id=LED:6 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1207 fwd_id=LED:7 bank=3 rgb=15:15:15 value=100 EVENT_LED id=1208 fwd_id=LED:8 bank=3 rgb=15:15:15 value=100 # Bank4 EVENT_LED id=1301 fwd_id=LED:1 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1302 fwd_id=LED:2 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1303 fwd_id=LED:3 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1304 fwd_id=LED:4 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1305 fwd_id=LED:5 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1306 fwd_id=LED:6 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1307 fwd_id=LED:7 bank=4 rgb=15:4:0 value=100 EVENT_LED id=1308 fwd_id=LED:8 bank=4 rgb=15:4:0 value=100
-
To make it work, I (mistakenly) put led_emu_id_offset=1 if the value is 1001, as you suggested, there are no LEDs (at least I only have the first 2 LEDs of the matrix actually wired up.) Also no LEDs if the led_emu_id_offset is omitted. I am not using buttons with these LEDs, they are purely indicators that listen to bank change. I've tried setting some to Toggle or OnOnly and the result appears the same. The display functions correctly until a midi key matching an EVENT_BUTTON is received and from that point onwards the particular LED only comes on when that key is down. RESET_HW DOUT_MATRIX n=1 rows=8 inverted=1 sr_dout_sel1=1 sr_dout_r1=2 sr_dout_g1=3 sr_dout_b1=4 led_emu_id_offset=1 EVENT_RECEIVER id=1 type=CC cc=16 fwd_id=SENDER:1 EVENT_SENDER id=1 type=Meta meta=SetBank # Bank1 EVENT_BUTTON id=1001 hw_id=1001 fwd_id=LED:1 bank=1 type=NoteOn key=36 chn=1 button_mode=Toggle rgb=15:0:0 value=100 EVENT_BUTTON id=1002 hw_id=1002 fwd_id=LED:2 bank=1 type=NoteOn key=37 chn=1 button_mode=OnOnly rgb=15:0:0 value=100 # Bank2 EVENT_BUTTON id=1101 hw_id=1001 fwd_id=LED:1 bank=2 type=NoteOn key=36 chn=1 button_mode=OnOnly rgb=0:15:0 value=100 EVENT_BUTTON id=1102 hw_id=1002 fwd_id=LED:2 bank=2 type=NoteOn key=37 chn=1 button_mode=OnOnly rgb=0:15:0 value=100 # Bank3 EVENT_BUTTON id=1201 hw_id=1001 fwd_id=LED:1 bank=3 type=NoteOn key=36 chn=1 button_mode=OnOnly rgb=15:15:15 value=100 EVENT_BUTTON id=1202 hw_id=1002 fwd_id=LED:2 bank=3 type=NoteOn key=37 chn=1 button_mode=OnOnly rgb=15:15:15 value=100 # Bank4 EVENT_BUTTON id=1301 hw_id=1001 fwd_id=LED:1 bank=4 type=NoteOn key=36 chn=1 button_mode=OnOnly rgb=15:4:0 value=100 EVENT_BUTTON id=1302 hw_id=1002 fwd_id=LED:2 bank=4 type=NoteOn key=37 chn=1 button_mode=OnOnly rgb=15:4:0 value=100 # Bank5 EVENT_BUTTON id=1401 hw_id=1001 fwd_id=LED:1 bank=5 type=NoteOn key=36 chn=1 button_mode=OnOnly rgb=15:4:0 value=100 EVENT_BUTTON id=1402 hw_id=1002 fwd_id=LED:2 bank=5 type=NoteOn key=37 chn=1 button_mode=OnOnly rgb=0:4:15 value=100
-
Working now: changed chn=1 in all places. Also added value=100 to all EVENT_BUTTON commands. This works until key 36 or 37 is hit the first time then the LED comes on only when the respective key is down. Is it possible to do this without a button definition?
-
I'm getting red while C1 (or C#1, the other LED) is pressed, off when released. Thats with CC16==0. On other banks, is just all off.
-
Repo back up! I have to build sources from the repo (with single USB port enabled) due to the ongoing Windows driver issue (seems to only affect the File Browser functionality) My hardware setup is a matrix of 2 RGB LED: LED1: cathode=SR1:D7 (inverted), RED anode=SR2:D7, GREEN anode=SR3:D7, BLUE anode=SR4:D7 LED2: cathode=SR1:D7 (inverted), RED anode=SR2:D6, GREEN anode=SR3:D6, BLUE anode=SR4:D6 Here's the ngc: RESET_HW DOUT_MATRIX n=1 rows=8 inverted=1 sr_dout_sel1=1 sr_dout_r1=2 sr_dout_g1=3 sr_dout_b1=4 EVENT_RECEIVER id=1 type=CC cc=16 fwd_id=SENDER:1 EVENT_SENDER id=1 type=Meta meta=SetBank # Bank1 EVENT_BUTTON id=1001 hw_id=1001 fwd_id=LED_MATRIX:1 bank=1 type=NoteOn key=36 chn=1 button_mode=Toggle rgb=15:0:0 EVENT_BUTTON id=1002 hw_id=1002 fwd_id=LED_MATRIX:2 bank=1 type=NoteOn key=37 chn=1 button_mode=Toggle rgb=15:0:0 # Bank2 EVENT_BUTTON id=1101 hw_id=1001 fwd_id=LED_MATRIX:1 bank=2 type=NoteOn key=36 chn=2 button_mode=Toggle rgb=0:15:0 EVENT_BUTTON id=1102 hw_id=1002 fwd_id=LED_MATRIX:2 bank=2 type=NoteOn key=37 chn=2 button_mode=Toggle rgb=0:15:0 # Bank3 EVENT_BUTTON id=1201 hw_id=1001 fwd_id=LED_MATRIX:1 bank=3 type=NoteOn key=36 chn=3 button_mode=Toggle rgb=15:15:0 EVENT_BUTTON id=1202 hw_id=1002 fwd_id=LED_MATRIX:2 bank=3 type=NoteOn key=37 chn=3 button_mode=Toggle rgb=15:15:0 # Bank4 EVENT_BUTTON id=1301 hw_id=1001 fwd_id=LED_MATRIX:1 bank=4 type=NoteOn key=36 chn=4 button_mode=Toggle rgb=15:4:0 EVENT_BUTTON id=1302 hw_id=1002 fwd_id=LED_MATRIX:2 bank=4 type=NoteOn key=37 chn=4 button_mode=Toggle rgb=15:4:0 I'm not getting anything on the LEDs at the moment. Thx
-
When you say "mix" you mean have some DOUT pins connected to 220R and some to 12k, right? This is fine.
-
I've been trying to checkout/update from repository at svn://svnmios.midibox.org/mios32 all day with "..host has failed to respond.".
-
Can't access the repo due to lack of response from host:-( In the meantime, for testing, how can I trigger bank change with midi keys? EVENT_BUTTON id=2000 type=Meta meta=SetBank button_mode=OnOnly range=1:1 lcd_pos=1:1:2 label="Bnk%q" EVENT_BUTTON id=2001 type=Meta meta=SetBank button_mode=OnOnly range=2:2 lcd_pos=1:1:2 label="Bnk%q" i.e. can I forward midi key event to (non-existant) button definitions like above?
-
unicolr2.ngc looks as though it sets all LEDs to the same selected hue with a bank change? Perhaps I didn't explain my usecase properly: When I'm designing a bank for the synth, I may wish to have different hues for different parameters (or groups of parameters) e.g. each OSC1 related parameter purple, and each OSC2 parameter light green, etc,etc within the same bank. Then with a change of bank, again each newly displayed parameter may have it's own particular hue, etc.
-
All good now, thanks TK! The 8 row option gives a good range of hues, so I'll be using it instead of the 4 row (which would be messy to wire, and it's getting busy wiring wise!) I've tested a setup similar to the example, the triplet r,g,b is referenced as a single CC using 3 EVENT_LED_MATRIX. The way I want to use it is when a bank is selected with a push button, each RGB LED goes to a particular hue according to how the bank has been defined. So a bank change will result in each of 64 RGB LED's changing it's colour. How do I define this in ngc?