After installing v 1.032 pedal matrix stopped working correctly. Every time I press 1 button - I always got 4 notes on / off at the time.
I have tested different different sr_dot / sr_dout - same problem. I also made short 1 wire connection DinOUT/ DinIn - even in this situation I have 4 notes on/off when 1 pin from in is connected to single pin from out. Looks like every pin on sr_out sends output for all 4 rows. When I change to rows=8 - I get 8 notes on/off at the same time.
Desperately I changed back to v 1.031 - problem doesn’t exist in version 1.031 - everything works as expected.
Sometimes (very randomly) when key is pressed and hold down (note ON) all the sudden my midibox sends note OFF. It can send midi note Off message few times - only for notes which are still hold down.
In Example - I can play C, E, G and hold these three notes… after few seconds I will have C off..and off again and off again. Then G will go off…and so on. It is very difficult to repeat this fault - but it happens all the time.
Again - problem only exist with version 1.032,…1.031 seems to be working fine.
I solved the problem with midi Note OFF - this was strange. Looks like MidiBox doesn’t like DIN /DOUT modules which are not fully connected to buttons / Leds in a chain between modules fully connected. In example chain like this Midibox->>DIN (all pins connected)–>>DOUT(all pins connected)->> DIN (only few pins connected)->>DOUT (all pins connected).
Now I have DIN/DOUT modules which are not connected / assigned at the end of a chain . It cured the problem with midi note OFF messages.
I also had some Leds flashing a bit before this change (like 10% of the full brightness). It also stopped after I put partly assigned DIN/DOUT at the end of chain.
I have added SRIO debounce_cycles=0 to my .ngc file. Unfortunately it didn’t help with multiple (4) different note on/off being sent when I press 1 button. It works fine on version 1.031.
unfortunately I’m still not able to reproduce the issue at my side.
It’s very interesting that the issue doesn’t happen with pre1, because in this release I modified the SRIO scan handling so that optionally IO pins could be used instead of shift registers. In pre2 I introduced the SRIO command, but it only changes the way how the SRIO driver can be configured and shouldn’t affect the behaviour.
I need more input.
Could you please attach your .ngc file to this thread (just put it into a .zip file to allow an upload)?
Your HW setup would also be interesting. You noticed unstable inputs, the reason could be that the cables between the MBHP_DIN* modules are too long.
So: which modules are you using exactly, and how long are the cables between the modules?
Does it get better if some modules are removed?
E.g. if only the two keyboards are connected, does this help?
Here is my default.ngc file. Nothing special - it is just standard default.ngc file which I modify adding or removing options.
Regarding the length of cables between modules - I don’t really know what should be maximum recommended length. All I can see on the forum: shorter=better. In fact I will need some long cables due to the construction of the front panel. I will have some buttons / LEDS on the right hand side and also some on the left. So - in practice I will need to link right and left somehow- about 50 cm.
(I will look into your .ngc file later if really required).
But to your questions: yes, the cable length does matter.
You already noticed with an earlier firmware version some unstable scan values.
Which means that the construct was already in a critical range - each change in the firmware can change the situation.
E.g. slightly more activity in the firmware can cause a higher power consumption and if your core module is powered from a weak PSU (or a weak USB based supply), the situation can get worse.
For further debugging it makes sense to check:
if it gets better with a different PSU. Resp. if your core module is powered via USB, please use a USB hub with external PSU
if v1.032 is working properly with less modules connected
> Question2: what maximum length of cables between modules would you recommend?
as short as possible (until it gets unstable
However, there are measures to compensate long cables
a) starlike SRIO wiring: after the two DIO_MATRIX modules, use a Y cable to connect two DINX4 and two DOUTX4 in a chain. Don’t mix DIN with DOUT in the chain
However, before you start to try these measures, please feedback on the power supply topic before deciding the next steps.
Currently I can’t 100% ensure that the latest firmware changes were uncritical under all conditions, but under the assumption that the PSU and cable length topic isn’t clarified yet, I think it’s better to discuss this first before proceeding with the time consuming SW debugging round (where I will need your help as well, it will cost ca. 2..3 iterations to identify the root cause at your side)
OK - I will try your suggestions. I will first try to get cables only as short as it is really necessary. First cables were done way too long…just in case I would need to move modules.
Starlike SRIO wiring… do you mean DIN (in)<<–>>DIO_MATRIX (out)<<–>>DOUT ? 3 plugs on 1 cable where DIO_MATRIX is in the middle?
Re power supply: I originally started with supply from USB - but after connecting 20 pots and some 20 LEDS I had a massive voltage drop down to 4.5V. I had some leds pulsing randomly at that time. After changing to stabilized 5v PSU - situation was even worse - LEDS which were working ok started to respond strange way - like 2 LEDS On at the some time when it was supposed to be only 1.
Now PSU holds 5V in any conditions.
Then I changed the order of the chain as you can see in my previous post. Situation came back to normal (except matrix button).
1 thing which I need to mention - problem with button matrix is not like random behavior. I always have the same results - 1 button pressed = 4 notes ON at the time and always the same notes - like 4 rows are active at the same time.
Line drivers - very nice boards. i hope I will not need these - maybe wise positioning of DIN / DOUT board will solve the problem.
I have removed DebounceCtr 20. It didn’t solve the problem with button matrix.
Here is what I have on MiosStudio Monitor. First button pressed in the matrix:
[588201.217] 9f 18 40 Chn#16 Note On C-0 Vel:64
[588201.219] 9f 28 40 Chn#16 Note On E-1 Vel:64
[588201.222] 9f 20 40 Chn#16 Note On G#0 Vel:64
[588201.224] 9f 30 40 Chn#16 Note On C-2 Vel:64
[588205.998] 9f 28 00 Chn#16 Note Off E-1 (optimized)
[588206.000] 9f 18 00 Chn#16 Note Off C-0 (optimized)
[588206.003] 9f 30 00 Chn#16 Note Off C-2 (optimized)
[588206.005] 9f 20 00 Chn#16 Note Off G#0 (optimized)
Press again - same notes:
[588269.016] 9f 30 40 Chn#16 Note On C-2 Vel:64
[588269.019] 9f 20 40 Chn#16 Note On G#0 Vel:64
[588269.022] 9f 18 40 Chn#16 Note On C-0 Vel:64
[588269.024] 9f 28 40 Chn#16 Note On E-1 Vel:64
[588270.577] 9f 20 00 Chn#16 Note Off G#0 (optimized)
[588270.579] 9f 30 00 Chn#16 Note Off C-2 (optimized)
[588270.582] 9f 28 00 Chn#16 Note Off E-1 (optimized)
[588270.585] 9f 18 00 Chn#16 Note Off C-0 (optimized)
With version 1.031 only 1 note goes ON/OFF - C2.
Like this:
[588819.666] 9f 18 40 Chn#16 Note On C-0 Vel:64
[588821.740] 9f 18 00 Chn#16 Note Off C-0 (optimized)
I have also removed incorrect parameter from EVENT_BUTTON_MATRIX line… I had “BUTTON_MATRIX_MODE-OnOff” - this parameter doesn’t exist. It did not help either.
I also can see many errors when I upload my ngc file (regardless of version of firmware)… I don’t understand why I am getting these errors:
[595227.619] [FILE] Uploading /DEFAULT.NGC with 43033 bytes
[595228.114] [FILE] Upload of 43033 bytes in progress (23%)
[595228.648] [FILE] Upload of 43033 bytes in progress (47%)
[595229.163] [FILE] Upload of 43033 bytes in progress (71%)
[595229.666] [FILE] Upload of 43033 bytes in progress (95%)
[595229.913] [FILE] Upload of 43033 bytes finished.
[595229.914] AUTOLOAD ‘DEFAULT’
[595229.914] [MBNG_FILE_C:14] ERROR: missing ‘=’ after EVENT_BUTTON … #rotor
[595229.914] [MBNG_FILE_C:15] ERROR: missing ‘=’ after EVENT_BUTTON … #rotor
[595229.915] [MBNG_FILE_C:16] ERROR: missing ‘=’ after EVENT_BUTTON … #rotor
[595229.916] [MBNG_FILE_C:17] ERROR: missing ‘=’ after EVENT_BUTTON … #V/C
[595229.916] [MBNG_FILE_C:18] ERROR: missing ‘=’ after EVENT_BUTTON … #V1
[595229.918] [MBNG_FILE_C:19] ERROR: missing ‘=’ after EVENT_BUTTON … #C1
[595229.918] [MBNG_FILE_C:20] ERROR: missing ‘=’ after EVENT_BUTTON … #V2
[595229.918] [MBNG_FILE_C:21] ERROR: missing ‘=’ after EVENT_BUTTON … #C2
[595229.920] [MBNG_FILE_C:22] ERROR: missing ‘=’ after EVENT_BUTTON … #V3
[595229.920] [MBNG_FILE_C:23] ERROR: missing ‘=’ after EVENT_BUTTON … #C3
[595229.921] [MBNG_FILE_C:24] ERROR: missing ‘=’ after EVENT_BUTTON … #percussion
[595229.922] [MBNG_FILE_C:25] ERROR: missing ‘=’ after EVENT_BUTTON … #percussion
[595229.922] [MBNG_FILE_C:26] ERROR: missing ‘=’ after EVENT_BUTTON … #percussion
[595229.923] [MBNG_FILE_C:27] ERROR: missing ‘=’ after EVENT_BUTTON … #percussion
[595229.924] [MBNG_FILE_C:28] ERROR: missing ‘=’ after EVENT_BUTTON … #rotor
[595229.924] [MBNG_FILE_C:29] ERROR: missing ‘=’ after EVENT_BUTTON … piano
[595229.925] [MBNG_FILE_C:30] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.926] [MBNG_FILE_C:31] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.927] [MBNG_FILE_C:32] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.927] [MBNG_FILE_C:33] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.928] [MBNG_FILE_C:34] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.928] [MBNG_FILE_C:35] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.929] [MBNG_FILE_C:36] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.930] [MBNG_FILE_C:37] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.931] [MBNG_FILE_C:38] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.931] [MBNG_FILE_C:39] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.932] [MBNG_FILE_C:40] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.932] [MBNG_FILE_C:41] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.932] [MBNG_FILE_C:42] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.934] [MBNG_FILE_C:43] ERROR: missing ‘=’ after EVENT_BUTTON … #Arr
[595229.935] [MBNG_FILE_C:46] ERROR: missing ‘=’ after EVENT_BUTTON_MATRIX … note
[595229.935] [MBNG_FILE_C:51] ERROR: missing ‘=’ after EVENT_LED … #rotor
[595229.936] [MBNG_FILE_C:52] ERROR: missing ‘=’ after EVENT_LED … #rotor
[595229.936] [MBNG_FILE_C:53] ERROR: missing ‘=’ after EVENT_LED … #V/C
[595229.936] [MBNG_FILE_C:54] ERROR: missing ‘=’ after EVENT_LED … #V1
[595229.936] [MBNG_FILE_C:55] ERROR: missing ‘=’ after EVENT_LED … #C1
[595229.936] [MBNG_FILE_C:56] ERROR: missing ‘=’ after EVENT_LED … #V2
[595229.937] [MBNG_FILE_C:57] ERROR: missing ‘=’ after EVENT_LED … #C2
[595229.937] [MBNG_FILE_C:58] ERROR: missing ‘=’ after EVENT_LED … #V3
[595229.938] [MBNG_FILE_C:59] ERROR: missing ‘=’ after EVENT_LED … #C3
[595229.939] [MBNG_FILE_C:60] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.939] [MBNG_FILE_C:61] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.940] [MBNG_FILE_C:62] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.940] [MBNG_FILE_C:63] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.940] [MBNG_FILE_C:64] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.941] [MBNG_FILE_C:65] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.942] [MBNG_FILE_C:66] ERROR: missing ‘=’ after EVENT_LED … #percussion
[595229.944] [MBNG_FILE_C:67] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.944] [MBNG_FILE_C:68] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.945] [MBNG_FILE_C:69] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.946] [MBNG_FILE_C:70] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.946] [MBNG_FILE_C:71] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.946] [MBNG_FILE_C:72] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.946] [MBNG_FILE_C:73] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.946] [MBNG_FILE_C:74] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.947] [MBNG_FILE_C:75] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.947] [MBNG_FILE_C:76] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.947] [MBNG_FILE_C:77] ERROR: missing ‘=’ after EVENT_LED … feedback
[595229.948] [MBNG_FILE_C:78] ERROR: missing ‘=’ after EVENT_LED … feedback
[595230.003] [MBNG_FILE_C:79] ERROR: missing ‘=’ after EVENT_LED … feedback
[595230.003] [MBNG_FILE_C:80] ERROR: missing ‘=’ after EVENT_LED … feedback
[595230.003] [MBNG_FILE_C:167] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.004] [MBNG_FILE_C:168] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.004] [MBNG_FILE_C:169] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.005] [MBNG_FILE_C:170] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.005] [MBNG_FILE_C:171] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.006] [MBNG_FILE_C:172] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.007] [MBNG_FILE_C:173] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.007] [MBNG_FILE_C:174] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.008] [MBNG_FILE_C:175] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.009] [MBNG_FILE_C:176] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.010] [MBNG_FILE_C:177] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.010] [MBNG_FILE_C:178] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.010] [MBNG_FILE_C:179] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.012] [MBNG_FILE_C:180] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.012] [MBNG_FILE_C:181] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.013] [MBNG_FILE_C:182] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.013] [MBNG_FILE_C:183] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.015] [MBNG_FILE_C:184] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.015] [MBNG_FILE_C:185] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.016] [MBNG_FILE_C:186] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.016] [MBNG_FILE_C:187] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.016] [MBNG_FILE_C:187] ERROR: missing ‘=’ after EVENT_AINSER … #
[595230.018] [MBNG_FILE_C:188] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.018] [MBNG_FILE_C:188] ERROR: missing ‘=’ after EVENT_AINSER … #
[595230.018] [MBNG_FILE_C:189] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.018] [MBNG_FILE_C:189] ERROR: missing ‘=’ after EVENT_AINSER … #
[595230.019] [MBNG_FILE_C:190] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.019] [MBNG_FILE_C:190] ERROR: missing ‘=’ after EVENT_AINSER … #
[595230.019] [MBNG_FILE_C:191] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.103] [MBNG_FILE_C:192] ERROR: invalid min value in EVENT_AINSER … range=-16385
[595230.103] [MBNG_FILE_C:193] WARNING: unsupported parameter in EVENT_AINSER … resolution=7bit
[595230.104] [MBNG_FILE_C:470] ERROR: missing ‘=’ after ROUTER … #
[595230.116] Init DHCP
[595230.117] [MBNG_FILE_C] Event Pool Number of Items: 215
[595230.117] [MBNG_FILE_C] Event Pool Allocation: 7983 of 65536 bytes (12%)
[595230.127] [MBNG_FILE_L] DEFAULT.NGL hasn’t been changed; reading labels from existing DEFAULT.BIN file.
[595230.128] [MBNG_FILE_L] 0 labels found in /DEFAULT.BIN file
[595230.128] [MBNG_FILE_S] snapshot #0 not stored in /DEFAULT.NGS yet
[595230.128] Patch ‘DEFAULT’ loaded from SD Card!
[595230.260] [MBNG_FILE_R] /DEFAULT.NGR (optional run script) not found
You’ve used “SRIO num_sr=16” after the matrix configuration, and this caused an inconsistency in the selection line pattern configuration, because it has been prepared for num_sr=32 before the SR number has been changed.
some “#” (comments) are added at the end of the command line; this is currently not supported (but could be supported in future) - the appr. ERROR can be ignored
WARNING resolution=7bit: valid, because the resolution parameter is only supported for the AINSER device configuration command, not for EVENT_AINSER event commands