Jump to content

Underskor

Members
  • Posts

    24
  • Joined

  • Last visited

Posts posted by Underskor

  1. Success! Sidmonster was on the right track but I remade the wrong cable. >_<

    After much help from SmashTV (he's going to hate me for this), it turns out that the culprit was this guy:

    Header.jpg

    It was connecting the mux control lines from the Core to the AIN, and 2 of the pins was slightly bent and had not broken through the cable and made a connection, which is why my control lines were only ever set to Low/Low/High and stuck reading J1.A5, not reading the single pot I had connected at J1.A0 (I think).

    To read the pot, I forced the lines on AIN.J6 to High/Low/High (A to Vd, B to Vs, C to Vd) which corresponds to pin 5 of the 4051 (as seen in datasheet - page 4 truth table). Pin 5 of the 4051 is J1.A0 - my pot!

    Looks to be working! Very happy. Big thanks to SmashTV and the guys on #midibox, it was all them. Hope this thread helps someone out one day!

  2. At my wits end here, spent the last few nights trying different things but I can't get anywhere.

    • Removed all 4051s but J5.A0, and grounded AIN:J5.A1-A3
    • Reflowed all AIN joints.
    • Been over the board with a magnifying glass, scraped/brushed between connections cleaned to make sure there were no rogue solder trails (it was light - didn't damage traces)
    • Removed breadboard from the equation.

    Still getting a large, constant stream of jitter. I am also now getting an "Unrecognised USB device - device has malfunctioned" tooltip on windows XP which I wasn't getting before, however if I use the J27 jumper and load the Bootloader, this notification does not occur.

    Here is an extract of the jitter so you can get an idea of the volume (if that's relevant):

    
    [4598.587] APP_AIN_NotifyChange(6, 63)
    
    [4598.588] APP_AIN_NotifyChange(0, 75)
    
    [4598.588] APP_AIN_NotifyChange(2, 65)
    
    [4598.588] APP_AIN_NotifyChange(4, 71)
    
    [4598.588] APP_AIN_NotifyChange(6, 65)
    
    [4598.589] APP_AIN_NotifyChange(0, 70)
    
    [4598.589] APP_AIN_NotifyChange(2, 64)
    
    [4598.589] APP_AIN_NotifyChange(4, 69)
    
    [4598.589] APP_AIN_NotifyChange(6, 63)
    
    [4598.590] APP_AIN_NotifyChange(0, 75)
    
    [4598.590] APP_AIN_NotifyChange(2, 65)
    
    [4598.590] APP_AIN_NotifyChange(4, 71)
    
    [4598.590] APP_AIN_NotifyChange(6, 65)
    
    [4598.591] APP_AIN_NotifyChange(0, 70)
    
    [4598.591] APP_AIN_NotifyChange(2, 64)
    
    [4598.591] APP_AIN_NotifyChange(4, 69)
    
    [4598.592] APP_AIN_NotifyChange(0, 69)
    
    [4598.592] APP_AIN_NotifyChange(6, 63)
    
    [4598.593] APP_AIN_NotifyChange(0, 75)
    
    [4598.593] APP_AIN_NotifyChange(2, 65)
    
    [4598.593] APP_AIN_NotifyChange(4, 71)
    
    [4598.593] APP_AIN_NotifyChange(6, 65)
    
    [4598.594] APP_AIN_NotifyChange(0, 70)
    
    [4598.594] APP_AIN_NotifyChange(4, 69)
    
    [4598.595] APP_AIN_NotifyChange(0, 69)
    
    [4598.595] APP_AIN_NotifyChange(2, 64)
    
    [4598.595] APP_AIN_NotifyChange(6, 63)
    
    [4598.596] APP_AIN_NotifyChange(0, 75)
    
    [4598.596] APP_AIN_NotifyChange(2, 65)
    
    [4598.596] APP_AIN_NotifyChange(4, 71)
    
    [4598.596] APP_AIN_NotifyChange(6, 65)
    
    [4598.597] APP_AIN_NotifyChange(0, 70)
    
    [4598.597] APP_AIN_NotifyChange(2, 64)
    
    [4598.597] APP_AIN_NotifyChange(4, 69)
    
    [4598.597] APP_AIN_NotifyChange(6, 63)
    
    [4598.598] APP_AIN_NotifyChange(0, 75)
    
    [4598.598] APP_AIN_NotifyChange(2, 65)
    
    [4598.598] APP_AIN_NotifyChange(4, 71)
    
    [4598.598] APP_AIN_NotifyChange(6, 64)
    
    [4598.599] APP_AIN_NotifyChange(0, 70)
    
    [4598.599] APP_AIN_NotifyChange(2, 64)
    
    [4598.599] APP_AIN_NotifyChange(4, 69)
    
    [4598.599] APP_AIN_NotifyChange(6, 63)
    
    [4598.600] APP_AIN_NotifyChange(0, 75)
    
    [4598.600] APP_AIN_NotifyChange(2, 65)
    
    [4598.600] APP_AIN_NotifyChange(4, 71)
    
    [4598.600] APP_AIN_NotifyChange(6, 64)
    
    [4598.601] APP_AIN_NotifyChange(0, 69)
    
    [4598.601] APP_AIN_NotifyChange(2, 63)
    
    [4598.601] APP_AIN_NotifyChange(4, 75)
    
    [4598.602] APP_AIN_NotifyChange(0, 71)
    
    [4598.602] APP_AIN_NotifyChange(4, 69)
    
    [4598.603] APP_AIN_NotifyChange(0, 69)
    
    [4598.603] APP_AIN_NotifyChange(4, 74)
    
    [4598.604] APP_AIN_NotifyChange(0, 70)
    
    [4598.604] APP_AIN_NotifyChange(4, 69)
    
    [4598.605] APP_AIN_NotifyChange(0, 75)
    
    [4598.605] APP_AIN_NotifyChange(2, 65)
    
    [4598.605] APP_AIN_NotifyChange(4, 71)
    
    [4598.606] APP_AIN_NotifyChange(0, 69)
    
    [4598.606] APP_AIN_NotifyChange(2, 63)
    
    [4598.606] APP_AIN_NotifyChange(4, 75)
    
    [4598.607] APP_AIN_NotifyChange(0, 71)
    
    [4598.607] APP_AIN_NotifyChange(4, 69)
    
    [4598.608] APP_AIN_NotifyChange(0, 69)
    
    [4598.608] APP_AIN_NotifyChange(4, 75)
    
    [4598.609] APP_AIN_NotifyChange(0, 71)
    
    [4598.609] APP_AIN_NotifyChange(4, 70)
    
    [4598.610] APP_AIN_NotifyChange(0, 69)
    
    [4598.610] APP_AIN_NotifyChange(4, 75)
    
    [4598.611] APP_AIN_NotifyChange(0, 71)
    
    [4598.611] APP_AIN_NotifyChange(2, 65)
    
    [4598.611] APP_AIN_NotifyChange(4, 70)
    
    [4598.612] APP_AIN_NotifyChange(0, 69)
    
    [4598.612] APP_AIN_NotifyChange(6, 63)
    
    [4598.613] APP_AIN_NotifyChange(0, 75)
    
    [4598.613] APP_AIN_NotifyChange(4, 71)
    
    [4598.613] APP_AIN_NotifyChange(6, 65)
    
    [4598.614] APP_AIN_NotifyChange(0, 70)
    
    [4598.614] APP_AIN_NotifyChange(4, 69)
    
    [4598.615] APP_AIN_NotifyChange(0, 69)
    
    [4598.615] APP_AIN_NotifyChange(2, 64)
    
    [4598.615] APP_AIN_NotifyChange(6, 63)
    
    [4598.616] APP_AIN_NotifyChange(0, 75)
    
    [4598.616] APP_AIN_NotifyChange(2, 65)
    
    [4598.616] APP_AIN_NotifyChange(4, 71)
    
    [4598.616] APP_AIN_NotifyChange(6, 65)
    
    [4598.617] APP_AIN_NotifyChange(0, 70)
    
    [4598.617] APP_AIN_NotifyChange(2, 64)
    
    [4598.617] APP_AIN_NotifyChange(4, 69)
    
    [4598.617] APP_AIN_NotifyChange(6, 63)
    
    [4598.618] APP_AIN_NotifyChange(0, 75)
    
    [4598.618] APP_AIN_NotifyChange(2, 65)
    
    [4598.618] APP_AIN_NotifyChange(4, 71)
    
    [4598.618] APP_AIN_NotifyChange(6, 64)
    
    [4598.619] APP_AIN_NotifyChange(0, 70)
    
    [4598.619] APP_AIN_NotifyChange(2, 64)
    
    [4598.619] APP_AIN_NotifyChange(4, 69)
    
    [4598.619] APP_AIN_NotifyChange(6, 63)
    
    [4598.620] APP_AIN_NotifyChange(0, 75)
    
    [4598.620] APP_AIN_NotifyChange(2, 65)
    
    [4598.620] APP_AIN_NotifyChange(4, 71)
    
    [4598.620] APP_AIN_NotifyChange(6, 64)
    
    [4598.621] APP_AIN_NotifyChange(0, 69)
    
    [4598.621] APP_AIN_NotifyChange(2, 63)
    
    [4598.621] APP_AIN_NotifyChange(4, 75)
    
    [4598.622] APP_AIN_NotifyChange(0, 71)
    
    
    Here's the relevant code.
    #ifndef _MIOS32_CONFIG_H
    
    #define _MIOS32_CONFIG_H
    
    
    #define MIOS32_AIN_CHANNEL_MASK 0x000f
    
    #define MIOS32_AIN_OVERSAMPLING_RATE  1
    
    #define MIOS32_AIN_DEADBAND 31
    
    #define MIOS32_AIN_DEADBAND_IDLE 127
    
    #define MIOS32_AIN_IDLE_CTR 3000
    
    #define MIOS32_AIN_MUX_PINS 1
    
    
    #define MIOS32_AIN_MUX0_PIN   GPIO_Pin_4 // J5C.A8 - 4
    
    #define MIOS32_AIN_MUX0_PORT  GPIOC
    
    #define MIOS32_AIN_MUX1_PIN   GPIO_Pin_5 // J5C.A9 - 5
    
    #define MIOS32_AIN_MUX1_PORT  GPIOC
    
    #define MIOS32_AIN_MUX2_PIN   GPIO_Pin_0 // J5C.A10 - 0
    
    #define MIOS32_AIN_MUX2_PORT  GPIOB
    
    
    #endif
    extern "C" void APP_AIN_NotifyChange(u32 pin, u32 pin_value)
    
    {
    
    	// toggle Status LED on each AIN value change
    
    	MIOS32_BOARD_LED_Set(1, ~MIOS32_BOARD_LED_Get());
    
    
    	// convert 12bit value to 7bit value
    
    	u8 value_7bit = pin_value >> 5;
    
    
    	// send MIDI event
    
    	//MIOS32_MIDI_SendCC(DEFAULT, Chn1, pin + 0x10, value_7bit);
    
    
    	//Send debug message
    
    	MIOS32_MIDI_SendDebugMessage("APP_AIN_NotifyChange(%u, %u)", pin, value_7bit);
    
    }

    Pictures:

    http://dl.dropbox.com/u/1907812/Images/IMAG0302.jpg

    http://dl.dropbox.com/u/1907812/Images/IMAG0301.jpg

  3. Might be really obvious but it's not clicking for me.

    // bit mask to enable channels
    
    //
    
    // Pin mapping on MBHP_CORE_STM32 module:
    
    //   15       14      13     12     11     10      9      8   
    
    // J16.SO  J16.SI  J16.SC J16.RC J5C.A11 J5C.A10 J5C.A9 J5C.A8
    
    //   7        6       5      4      3      2      1       0
    
    // J5B.A7  J5B.A6  J5B.A5 J5B.A4 J5A.A3 J5A.A2 J5A.A1  J5A.A0
    
    //
    
    // Examples:
    
    //   mask 0x000f will enable all J5A channels
    
    //   mask 0x00f0 will enable all J5B channels
    
    //   mask 0x0f00 will enable all J5C channels
    
    //   mask 0x0fff will enable all J5A/B/C channels
    
    // (all channels are disabled by default)
    
    		#define MIOS32_AIN_CHANNEL_MASK 0x0000

    If 0x000f is 15, how does that relate to J5A.A0..A3?

    Thanks in advance,

    Tom

  4. Have been away for a while, exams and stuff. Back into it now though. Clamped the cable down and set the mux control lines up.

    http://dl.dropbox.com/u/1907812/Images/IMAG0297.jpg

    Now unable to get any activity, even jitter from floating inputs.

    Still not 100% on how to do this:

    SmashTV instructed me on #midibox to force the ABC mux control lines to 001 (A>Vd, B+C>Vs) and testing that pin 3 and 13 of the 4051 read the same (unsure how to do so, multimeter on Vs & pin 3/13, or on AIN input 1 and pin 3/13?)

    Anything I can try?

  5. Hi there,

    I am running an AIN module from Core32, with a single pot connected. I have the AIN_CHANNEL_MASK set to 0x1, and the remaining 7 AIN inputs on the first 4051 grounded. When the pot is adjusted, MIOS Studio reports no activity (APP_AIN_NOTIFYCHANGE() includes debug message listing pin + value).

    Touching pins on J5C causes jitter activity.

    Touching pins on AIN:J5 also causes activity.

    Letting the pot's 4051 input float causes jitter as expected.

    SmashTV instructed me on #midibox to force the ABC mux control lines to 001 (A>Vd, B+C>Vs) and testing that pin 3 and 13 of the 4051 read the same (unsure how to do so, multimeter on Vs & pin 3/13, or on AIN input 1 and pin 3/13?)

    Have swapped a couple of 4051s in and out with no change.

    Note: attached pic was taken before setting up the mux control lines.

    Hope you guys can help :)

    Thanks,

    Tom

    post-7486-0-11091900-1312465921_thumb.jp

  6. Hi there,

    What would be the best way to handle several VU meters? Say I am using Traktor to output VU Meter information as CC values for decks A, B, C, D and Master, both left and right channels. That's 10 meters, and depending on the LEDs per meter, almost 80 LEDs.

    I could use a BLM, but is there an easier way that doesn't use up almost all of my DOUTs? Arduino-powered breakout board with a shift register for each meter? Is it possible to output 0-127 values with MIOS32? I will admit I am intimidated by the idea of a BLM haha.

    Also, I have a (probably silly) question which I think is related to MIDI throughput. Remembering that I would like to output CC values for 10 VU meters, I have done so for a single meter and, to me, it seems like a lot of MIDI action is going on. Multiply this by 10 and I'm wondering if it would cause responsiveness issues. I am still only at the very start of the controller design stage so I just want to make sure I don't design anything that's impractical. :)

    I don't have it all connected at the moment so I can't give you a copy of the log to work out bytes/sec etc. :( I had a quick google around for MIDI throughput and only found something from 2001 which said it was something like 3.2kb/s. I don't think I totally understand that figure, or if it's relevant when I'm using MIDI over USB. :S

    Thanks,

    Tom

  7. Make sure that the ribbon cable is correct at the DOUT end, if you are using a SmashTV board then the connections are on the inner (that is closest to the first shift register) edge of the connector J1. The DIN chain connects to the outer edge of DIN J1 on the SmashTV boards.

    Thanks Tim, I had previously had it connected similar to my DIN boards as that was the only way I was getting any LED activity (not a very good troubleshooting method, I'll admit :blush:).

    Do you know that DOUT Pin #0 is assigned to the leftmost output pin of the MBHP_DOUT_DINX4 module (J4:D7), and not to J4:D0?

    Thanks TK! When I read that, I remembered skimming across something about that on the DOUT pin table wiki page. Seems to be working OK, haven't done much testing though. Thanks again!

  8. I have a DOUT board connected to a Core32 board along with a DIN board and I'm getting some weird behaviour.

    Basically, the only way I can get the DOUT LEDs to work is by physically touching the pin of DOUT IC1 which connects to DOUT J1:S0 (I can even do it by hovering my finger close to said pin). When I do this, all connected LEDs light up, but still do not respond to the MIOS32 PinSet function. Sometimes, during startup, all connected LEDs will turn on for a few seconds and then all off.

    
    extern "C" void APP_DIN_NotifyToggle(u32 pin, u32 pin_value)
    
    {
    
    	MIOS32_BOARD_LED_Set(1, ~MIOS32_BOARD_LED_Get());
    
    
    	MIOS32_MIDI_SendDebugMessage("APP_DIN_NotifyToggle(%u, %u)", pin, pin_value);
    
    
    	MIOS32_MIDI_SendDebugMessage("1-Pin0: %u", MIOS32_DOUT_PinGet(0));
    
    	MIOS32_DOUT_PinSet(0, pin_value);
    
    	MIOS32_MIDI_SendDebugMessage("2-Pin0: %u", MIOS32_DOUT_PinGet(0));
    
    }
    
    
    When I toggle the DIN button, the Core32 Status LED toggles, and I get the following in MIOS Studio terminal, but I get no DOUT LEDs functioning.
    
    [94518.016] APP_DIN_NotifyToggle(0, 1)
    
    [94518.016] 1-Pin0: 0
    
    [94518.016] 2-Pin0: 1
    
    [94518.245] APP_DIN_NotifyToggle(0, 0)
    
    [94518.245] 1-Pin0: 1
    
    [94518.245] 2-Pin0: 0
    
    

    What have I missed? I've tried a couple of DOUT boards, checked for shorts on both, popped IC1 out and then put it back in, and made up a new ribbon cable connecting J8 and DOUT:J1 - no luck :(

  9. I just did what you said julienvoirin, this is what I got:

    J8:RC>J9:RC - connected

    J8:SC>J9:SC - connected

    J8:S0>J9:S1 - not connected

    J8:Vd>J9:Vd - connected

    J8:Vs>J9:Vs - connected

    On the DIN board, no J1 pins are connected.

    I don't understand what you mean by SCLK and RCLK though sorry, can't seem to find them on the PCB schematic. :pinch:

  10. I put the SRIO Demo app on my MIOS32 board, and whenever I touch a DIN pin (eg. J3:Vs OR J3:D0), I get an APP_DIN_NotifyToggle() 1 through 127. All 127 toggle between 0 and 1 with each touch.

    I may have misunderstood the purpose of the SRIO app but it says in the readme.txt:

    This application demonstrates the MIOS32_SRIO driver

    - DIN pins will be forwarded to DOUT pins

    - DIN pins send a MIDI message (Note Events)

    - DOUT pins controllable via Note Events

    - Encoders at SR 13/14 will send CC events

    The APP_DIN_NotifyToggle() functions aren't the note events the readme.txt mentions are they? I interpreted it to mean that each DIN would send an individual note event.

  11. Just to be clear did you mean to say R30? If not troubleshooting will need to take a different path....

    My mistake! Yes I did mean R30. Sorry about that.

    Is the DIN board from me? Is it wired via SIL/single row connector by chance?

    Yep, from you. Originally I had the DIL connected, but have since read and connected it as such.

    I put the SRIO Demo app back on, and whenever I touch a DIN pin (eg. J3:Vs OR J3:D0), I get an APP_DIN_NotifyToggle() 1 through 127. All 127 toggle between 0 and 1 each time.

    I may have misunderstood the purpose of the SRIO app but it says in the readme.txt:

    This application demonstrates the MIOS32_SRIO driver

    - DIN pins will be forwarded to DOUT pins

    - DIN pins send a MIDI message (Note Events)

    - DOUT pins controllable via Note Events

    - Encoders at SR 13/14 will send CC events

    The APP_DIN_NotifyToggle() functions aren't the note events the readme.txt mentions are they? I interpreted it to mean that each DIN would send an individual note event.

    Really appreciate the help you guys have given me so far. :)

  12. As the readme.txt for the stm32 troubleshooting app says:

    I am pretty sure this means DIN modules as well :) Try disconnecting any modules and just run with the CORE32.

    Thanks for your replies, guys! Only just had a chance to sit down and play around. Did as instructed and am still having issues.

    Having said that, PC15 (Port C, Pin 15) is connected to J16:RC2 which is on the SDCARD/Ethernet port so I would double (and triple) check that there are no shorts. Try a multimeter in continuity mode and check between J16:RC2 and all adjacent pins for any shorts/solder bridges. That failed test suggests that the pin may be shorted to Vdd.

    Having done a bunch of testing for shorts, J16:RC2 to IC1:PC15 seems fine. Checked with multimeter, magnifying glass and cleaned with brush + compressed air. Still getting the same error. However I have noticed that if I remove R31, I receive no errors (yes it is in the correct way:)). RC2 to RC1, S0, S1 and SC all report 2k, which I think is normal? What should I try next?

    Thanks again!

  13. Hi,

    I'm having a bit of a problem with my Core32 board*. I've put the MBHP_Core_STM32 IO Test app on it, and I'm getting the following messages:

    ====================================

    Testing GPIO Pins for shorts/bridges

    ====================================

    Push-Pull Toggle Test found 0 errors

    Toggle PC15 H->L FAILED

    Pull-Down/Up Toggle Test found 1 errors

    Running-1 Test found 0 errors

    Running-0 Test found 0 errors

    ====================================

    Test found 1 errors

    [MIOS32_MIDI_Receive_Handler] Timeout on port 0x20

    [MIOS32_MIDI_Receive_Handler] Timeout on port 0x21

    I had a quick look through the test app source code, but I couldn't see anything that suggested what this means exactly. Is there a page that lists what these errors mean (in a more noob-friendly format :))?

    *Connected to MIOS Studio, uploaded the MIOS32 SRIO Demo app, but no note events were received after triggering DINs. Have checked the soldering of both boards (swapped out DIN board for a different one as well) but can't see any obvious issues.

  14. EDIT: Disregard this post. I have created focused more closely on the IO Test app and my issue, which should hopefully be easier to find for other noobs like me. I apologise for cross-posting.

    -----

    I am currently having a problem with my CORE32 board, and I am getting some of the same messages. I can't find any documentation for the test application so I don't know what they mean :(

    
    [ 75.474] ====================================
    
    [ 75.475] Testing GPIO Pins for shorts/bridges
    
    [ 75.475] ====================================
    
    [ 75.480] Push-Pull Toggle Test found 0 errors
    
    [ 75.480] Toggle PC15 H->L FAILED
    
    [ 75.479] Pull-Down/Up Toggle Test found 1 errors
    
    [ 75.480] Running-1 Test found 1 errors
    
    [ 75.482] Running-0 Test found 0 errors
    
    [ 75.482]
    
    [ 75.482] ====================================
    
    [ 75.483] Test found 1 errors
    
    [ 76.481] [MIOS32_MIDI_Receive_Handler] Timeout on port 0x20
    
    [ 76.481] [MIOS32_MIDI_Receive_Handler] Timeout on port 0x21
    
    

    What does this mean?

×
×
  • Create New...