Jump to content

Beta Test: MIOS32 Bootloader v1.009 could solve USB issues under Windows


TK.
 Share

Recommended Posts

Hi,

today I made an interesting observation: while testing the upcoming MIOS Filebrowser on a MBHP_CORE_STM32, I noticed sporadical hang-ups after 100..200k of transmitted data under MacOS.

Once this happened, the core behaved very similar as if it would hang-up under Windows when multiple USB MIDI ports are enabled.

So, finally I had a nice test scenario to investigate this issue on a *real* operating system ;)

It turned out, that transfers are working very stable (no hang-up anymore) if the USB IN and OUT port are assigned to different endpoints.

At the next step, I noticed that I did the same in previous PIC and Cypress based projects - and they were working under Windows without problems.

Also the Ploytec guys are using separate endpoints for GM5...

So, hopefully I finally found the reason, why Windows users reported problems with MIDIbox SEQ V4 and the Windows Legacy driver: probably it can't handle IN/OUT transfers over a single endpoint correctly. And this might also explain, why transfers are working with the Korg USB MIDI driver: the implementation of this driver seems to be more robust!

Anyhow, now I'm searching for Windows users who would like to beta-test the changes in MIOS32.

Unfortunately the different USB configuration requires not only an application, but also a bootloader update!

But fortunately the risk that you could mess up your MIDIbox with this update is zero, since in the (already very unlikely) case that USB doesn't work anymore, it will still be possible to downgrade to the old bootloader by uploading it via MIDI IN1/OUT1! :)

How to update:

  • upload the MIOS32 Bootloader V1.009 UPDATE: link removed, Bootloader V1.010 is now available under http://www.ucapps.de/mios32_download.html
  • wait some seconds until the bootloader has been installed
  • close MIOS Studio
  • power-cycle your MIDIbox
  • open MIOS Studio: the USB port should be found
  • upload the MIDIbox SEQ V4.067 application: UPDATE: link removed, the MBSEQ update is now available under http://www.ucapps.de/mios32_download.html
  • -> done!

IMPORTANT: don't upload v4.067 before updating the bootloader, otherwise the next updates via USB won't work anymore!

Please let me know if this update solves the issues at your side.

If it helps, I could provide all MIOS32 applications with multiple MIDI ports enabled in future, which is a good replacement for multiclient capabilities. :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Very Nice! :frantics:

It works, big improvement on Win 7 64 bit (STM32 SEQ V4)!

Now, it is possible to upload firmwares in MIOS studio without typing "help" "help" "help" in the console first (some trick to reinitialize the USB connection?).

Also, the MSD USB mode works now, had the same problems as Altitude... I previously always removed the SD card from the SEQ and manually backuped sessions.

For further testing, I just copied a 20 Meg file to the SD card and read it again in this mode, it worked without hickups (ca 180KB/sec write speed and 400KB/sec read speed).

During USB transfers the LED matrices flicker a bit, but that is rather cool (BPM, Track position + Current step number).

The update process was also without problems for me.

Thanks, TK! :sorcerer:

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

Unfortunately it turned out, that the multi-USB port issue under Windows still wasn't solved. :frantics:

Therefore I enabled MIOS32 for using the GM5 driver! This driver gives you the best performance, and especially robust SysEx transfers!

Permission granted by the head of Ploytec! :)

-> UPDATE: link removed, the new release is now available under http://www.ucapps.de/mios32_download.html


MIDIboxSEQ V4.068
~~~~~~~~~~~~~~~~~

o support for GM5 driver under Windows.
MacOS and Linux users: just install this update, no additional changes required.
Windows users:
- upload the application with MIOS Studio
- close MIOS Studio
- install the GM5 driver which can be downloaded from http://www.ucapps.de/mbhp_usb_gm5.html
- start MIOS Studio -> 4 "GM5" USB ports should be visible
[/code]

I really hope that this solves your USB issues under Windows! I've intensively tested this setup under WinXP and Win7

Best Regards, Thorsten.

Link to comment
Share on other sites

Cool! :)

The MIDItest is the best program to test the performance under Windows.

While using it, I noticed that the Tune Request event (F6) wasn't properly handled by MIOS32, it's fixed now.

Here the comparison between GM5 and the MIOS32 based MIDI4x4 application (corrected version, which will be released tomorrow):

GM5


================ Results Per Message =====================================

MESSAGES Snd Rcv Snd+Rcv

Message TotalTime: 539.41 ms 38188.02 ms 38727.43 ms
Message MaximumTime: 0.11 ms 2.26 ms 2.26 ms
Message MinimumTime: 0.00 ms 0.44 ms 0.47 ms
Message AverageTime: 0.02 ms 1.22 ms 1.24 ms
SysexTime: 34.42 ms 164.11 ms 198.54 ms
SysexAverage: 0.00 ms 0.02 ms 0.02 ms

< 1 ms: 31250 9408 9387
1 - 2 ms: 0 19546 19416
2 - 3 ms: 0 2296 2447
3 - 4 ms: 0 0 0
4 - 5 ms: 0 0 0
5 - 10 ms: 0 0 0
10 - 20 ms: 0 0 0
20 - 50 ms: 0 0 0
50 - 100 ms: 0 0 0
> 100 ms: 0 0 0

Message count: 31250 Sysex count: 157
Sysex size: 10000 Sysex passed: 10000

Message latency: 1.24 ms Total time: 67.396 sec
Message jitter: 0.41 ms
Message max deviation: 1.03 ms
[/code] MIOS32 MIDI4x4 app:
[code]
================ Results Per Message =====================================

MESSAGES Snd Rcv Snd+Rcv

Message TotalTime: 891.18 ms 81831.34 ms 82722.53 ms
Message MaximumTime: 0.15 ms 3.26 ms 3.29 ms
Message MinimumTime: 0.02 ms 2.06 ms 2.09 ms
Message AverageTime: 0.03 ms 2.62 ms 2.65 ms
SysexTime: 34.81 ms 374.18 ms 408.99 ms
SysexAverage: 0.00 ms 0.04 ms 0.04 ms

< 1 ms: 31250 0 0
1 - 2 ms: 0 0 0
2 - 3 ms: 0 27550 26837
3 - 4 ms: 0 3700 4413
4 - 5 ms: 0 0 0
5 - 10 ms: 0 0 0
10 - 20 ms: 0 0 0
20 - 50 ms: 0 0 0
50 - 100 ms: 0 0 0
> 100 ms: 0 0 0

Message count: 31250 Sysex count: 154
Sysex size: 9999 Sysex passed: 9999

Message latency: 2.65 ms Total time: 107.233 sec
Message jitter: 0.28 ms
Message max deviation: 0.64 ms

The increased latency is caused by the 1 mS RTOS timeslots. This is actually no problem as this constant delay can be compensated by a DAW.

But it's interesting that MIOS32 has less jitter than GM5 - and this is the relevant value! :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...