Jump to content

Duggle

Frequent Writer
  • Posts

    992
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Duggle

  1. LPC17 is probably an easier solution but I have an STM32F4 board and would like to do something with it.

    Because there are more than enough I/O on the board, I would like to avoid using an additional multiplexer and perform the 3 Keyboards decoding using 40 of the GPIO (it requires 28 I/O without velocity and 40 I/O with).

    The code to scan multiple FATAR keyboards is already working and the initial reason to work with MIOS was to benefit from USB MIDI support.

    Looking at all the possibilities of MIOS, a good solution might be to turn the code for the multiple FATAR keyboards into a MIOS application if I can manage to access the 40 IO I need.

     

    Looking at TK post, a lot seems to be already working and I just wonder how to get the bootloader on the board and have it recognized by MIOS studio.

    Any help in that sense would be appreciated.

     

    JL

    I understand now.

    The F4 would make a very cost effective and high performance MIDI keyboard decoder.

    Just so long as you are aware there is already developed solutions out there now. I use a MIDIbox KB with 2x61 Fatar Keybeds, works beautifully. On the other hand it seems to me the cost of an LPC17 expresso, Core, and SRIO all up probably costs me >$100, which in some ways seems a little expensive for what is actually required: a microcontroller and a few connectors.  

  2. Complete noob with MIOS, I am trying to use an STM32F4 discovery board to create a MIDI USB 3 manuals console.

    Not sure what you are trying to achieve, but an LPC17 based core will give you guaranteed results and much more possibilities, especially for a MIOS beginner.

  3. OK, we're homing in on that problem!

    It's something to do with the ULN because all the (other) rows leak some current when one is turned on....

    I have an empty DOUT PCB in front of me.

    Did you ground pin 9 of the ULN? (I think not!!!) If you didn't then solder it to the ground plane next to the pin(scrape off some of the solder mask). Then turn on and repeat the previous testing.

    For some reason the ground pin on the PCB artwork is left open (ULN is not that commonly used).

     

  4. so when you press a row by itself: nothing

    When you press a column as well, the correct row/column LED is lit bright, but the other LEDs in that column also come on too, but dimly?

    An this is the same for every column? 

  5. Very good.

    Next step is to complete the columns

    • Fill in the EVENT_BUTTON definitions like in post #51
    • Measure the DOUT pin on each column, they should be 5V when key is down, otherwise all should be 0V
    • If this is so, then pressing  (key for row)+(key for col)=LED lit! (just 1 LED at a time)
    • Should be able to activate any LED in the matrix with the combination of row and column keys
  6. Of course rhythm and phrasing may or may not be effortless  :smile:

     

    Anyhow, something similar appears to be in the midiForceToKey plugin from the (free) pizmidi VST collection. It can optionally source the scale info from another channel. So I plan to experiment with this feature by routing the various midi streams through a PC or mac host from the SEQ and try to find out if this is a worthwhile feature to consider including in SEQ. 

  7. Can you press (and hold) key #36 (there should be no LED alight) and check with your meter that only DOUT pin for this row (before the ULN) is 5V?

    If you expand the NGC with more EVENT_BUTTON definitions as suggested earlier, then you can repeat for all 4 rows?

  8. Another idea is a series of dots (like Braille?) right underneath each button where you would normally put a printed label, so you can feel it right beside the button.

    Are you using the control surface PCB that is available from SmashTV? 

     

    Just as an aside, it is possible to run the seq from MIDI remote commands.

    It is also possible to generate midi commands from voice commands (quite reliably in a quiet room) with a windows 7 machine running Glovepie.

     

    Unfortunately the glovepie.org seems to be down at the moment (there's a message from a juvenile "hacker" there) 

  9. The diagram doesn't tell me much.

    However, the cathode to rows and anodes to columns is correct. 

    With the above script:

    When you start the script, you get:

    • 0V on the output pin of DOUT SR for each and every row? 
    • 0V on the output pin of DOUT SR for each and every column? 
  10. The idea is a cross between force-to-scale and an arpeggiator notestack.

     

    Put simply, the note values of a midi stream get shifted to conform to a notestack that comes from a different midi stream. The notestack would be optionally extended by octaves up and down so that it's more like a scale that a simple notestack.

     

    Is it possible to do this already?

     

    The usecase I have is actually for live playing: The electronic drummer/percussionist plays tuned percussion that conforms (in terms of note value) to what I'm playing on one of my keyboards, or alternatively what comes from a local keyboard zone or sequencer track. 

  11. Can you test the SDcard in a card reader attached to a PC? (doubt this will be the problem, but must be eliminated)

    Start each NGC with RESET_HW to clear the pool.

     

     

    We should continue the diagnostics.
    With the following NGC use a midi keyboard to activate row/column combinations to test each LED: (you'll need 2 hands,  or sticky tape, or weights to hold down  2 keys...)

    #row 1
    EVENT_BUTTON id=1  fwd_id=LED:5  type=NoteOn key=36
    
    #row 2
    EVENT_BUTTON id=2  fwd_id=LED:6  type=NoteOn key=37 
    
    #row 3
    EVENT_BUTTON id=3  fwd_id=LED:7  type=NoteOn key=38
    
    #row 4
    EVENT_BUTTON id=4  fwd_id=LED:8  type=NoteOn key=39 
    
    #column 1..8 red
    EVENT_BUTTON id=5  fwd_id=LED:9  type=NoteOn  key=40 
    EVENT_BUTTON id=6  fwd_id=LED:10  type=NoteOn key=41
    EVENT_BUTTON id=7  fwd_id=LED:11  type=NoteOn key=42
    ###fill in the rest
    
    #column 9..16 red
    EVENT_BUTTON id=13  fwd_id=LED:17  type=NoteOn key=47 
    EVENT_BUTTON id=14  fwd_id=LED:18  type=NoteOn key=48
    EVENT_BUTTON id=15  fwd_id=LED:19  type=NoteOn key=49
    ###fill in the rest
    
    #column 1..8 green 
      ###fill in the rest
    #column 9..16 green
      ###fill in the rest
    
    #column 1..8 blue
      ###fill in the rest
    #column 9..16 blue
      ###fill in the rest
    

     
    Where it says "###fill in the rest" you need to complete the definitions.
    The rules are:

    • id= <unique number>
    • LED:<nn>, where nn is a DOUT pin counting up through the SR's (from D7 to D0 in each SR), i.e SR1,D0=8    SR2,D7=9  SR2,D6=10    
    • key=<unique midi key number>

    So I'll leave it for you to complete the NGC (filling in the rest of RED and all of GREEN and BLUE)
     
    So the completed NGC should have (4+3*16)=52 EVENT_BUTTON defintions!

  12. Just for understanding:

    Do I need to keep "DOUT_MATRIX n=1  rows=4  inverted=1  sr_dout_sel1=1  sr_dout_r1=2 sr_dout_r2=5  sr_dout_g1=3 sr_dout_g2=6 sr_dout_b1=4 sr_dout_b2=7  led_emu_id_offset=1001" in the code or just your example?

    No, step #1 in post #27 (we are emulating the matrix by manually switching rows and columns, this means we dont want DOUT_MATRIX definitions for now...)

     

    //btw.: the toggle-mode is not working on the MIOS integrated keyboard.

    Does this mean that the midi keys are working (that is, activating the EVENT_BUTTON definitions), but only in a momentary way (not latching as in "toggle mode")?

     

    Do you have a real midi keyboard you can use for this diagnostic task? 

     

     

     

  13. OK, the aim of this exercise is to emulate the action of the matrix to find out what's going on....
    Therefore, to illuminate a LED in the matrix you will be activating both a row and a column at the same time.

    So you'll need a button definition that activates a column:

    #activate a row
    EVENT_BUTTON id=2  fwd_id=LED:8  type=NoteOn key=36 button_mode=Toggle
    
    #activate a column
    EVENT_BUTTON id=3  fwd_id=LED:9  type=NoteOn key=37 button_mode=Toggle


    This should light the Red of the LED at row#4, column#1

     

     

     

  14. First, is it possible to have more then ONE bank assigned to a EVENT_

    this would i think reduce the pool event allocation for me ALLOT!!!

    Can you explain this one some more?

    Normally without "bank=" the event responds in any bank, but presumably you are duplicating event definitions so that an EVENT_* corresponds to a group of particular bank# but not others?  

  15. So you think that the 0,1V, that I measure on the not-active outputs wouldn't be enough to let the LEDs glow?

    Definitely not, because the forward voltage before current flows in the LED is usually at least 2V.

     

    I understand about re-wiring up to the start of every row/column. That's fine. Are you absolutely certain about the polarity of every LED? (something for you to check, when you get time)  

  16. The LEDs will be completely off when turned off because the driving source will be very close to 0V.

    So something is wrong...

    Sometimes when single matrix LED is soldered in backwards, it causes other LEDs (some, but not all) to light or glow when they shouldn't.

     

    The idea of energising all the rows and columns separately (i.e the EVENT_BUTTON stuff) allows to completely check the whole array and isolate problems much more easily because the matrix is not being scanned at high frequency.

    If you plan on re-wiring the array you can do this (testing) as you go, to make sure you're on the right track.  

  17. That's great!

    The midi key #36 should work should work just like the button. If not, you need to check communication between mios studio and the core. Alternatively a midi keyboard plugged into MIDI IN1 can be used. 

    Let me know when you want to continue...

    But basically the next step is to set up a config that makes it easy to toggle any of 4 rows as well as 16 columns of (R,G,B).

    So that's (4+16*3) EVENT_BUTTON definitions, but its mainly cut/paste. Using the virtual keyboard as switches is probably easiest.

     

  18. For now, forget about the ULN (unplug it if you can).

    We are only interested in being able to control the output of a DOUT pin so that it toggles 0..5V

    Is the SR we are looking at really SR1? (the first in the SRIO chain)

    Please disconnect any other SRIO's from the chain.



    I just looked at your photo.

     

    It really makes sense to use IDC connectors and ribbon cables when working with DIN and DOUT PCB's!!!!

     

    You can split the ribbon and route the wires as needed, then you can disconnect the DOUT PCB easily!!!!

     

    Another question: is the ribbon to J1 correctly connected to the core?



    If you can't get basic LED on/off like in the "Getting Started" tutorials, then the fancy RGB matrix won't work either. This is why it would be good to follow the basic tutorial, make sure everything is set up and working right, then getting the RGB stuff to work will be straight forward.

  19. Lets just get the basics right, first, then take it from there.
    If you could restore the definition for row#1.
    As I understand it, without button_mode=Toggle, you should see 5V when key#36 is pressed and 0V when it is released.

    With button_mode=Toggle, press the key ->5V, press the key again ->0V, and so on.

    Either way we want to see 0v and 5V on the output of the DOUT under midi control.

×
×
  • Create New...