MIDI Test FIRMWARE


#1

this test is now complete, thanks for your help
hi,

Ive made some changes in the firmware today, to hopefully help detect some problematic usb midi devices.
Ive tested it, and it works with all my devices, but it would be useful if some users could test their existing midi gear that is known to already work with 1.0.9 etc.

also @andybutler / @mtyas , you can test your problematic devices, and report results in your existing threads:)

its a simple process, and the firmware upgrading is the same as when you upgrade axoloti version, the only difference is you need to compile from 'custom source code'... so Ive included detailed instructions below. after the process, you can restore the 1.0.9 firmware... (again detailed below)

read the instructions first, and if your comfortable with it do it.. if not thats fine, I really only need a couple of people to try it that have a few more usb midi devices than i do :smile:

Note: this will only affect detection of devices, not operation

ok, heres is the firmware source ... its compatible with 1.0.9, and after installing you can easily revert...

download deleted, test phase ended

Installing
I assume your axoloti is turned on, and working ok :smile:
a) download, and place the folder wherever you want. (I usually put it in my axoloti home folder)

b) in preferences, change the firmware directory, to point to where you have placed the firmware, press ok etc.
(i.e. select the directory... not a file)


(you may want to take a note of the where the firmware is located, but you dont need to... the return is automatic)

c) EXIT AXOLOT UI and then RESTART UI (this is needed to get the new options below)

d) you will get some warnings about the firmware not existing, needing to be compiled - dont panic :smile:
there are now new options on the flash menu, as below...

also the title bar will say (developer)

e) choose Board->Firmware->Compile ... then you will see the firmware compiling, if an error , check you setup the firmware location correctly

f) choose Board->Firmware->Flash(User)
this will do the normal flashing of the axoloti board, that you are used to.

ok, your done... now we test the firmware to see if its working...

testing
a) remove your usb midi devices from axoloti

b) power on axoloti, give it a sec to get started

c) plug in the usb midi device...
you will see something like...

d) there are two things to look for....
i) the lines following "cfg desc: num interfaces"
if these exist you are correctly running the new firmware, as this is new information I've started logging.
(if not, then for some reason your still running the default firmware, go back to the beginning :smile: )

ii) MID class started, at the end, this shows your device is correctly located.

you can test it if you want, but only the detection has changed, so if its detected thats cool
the more usb midi devices you have to test, the better.

just post here, if you have successfully tested and how many devices, I dont need the details.

also post here, if you have any issues , then post the contents of the console, in a similar way to my screenshot above.

important note: I am only interested to know about devices failing, that successfully work in 1.0.6-1.0.9
do not try with a device that you do not know if it worked before, as it tells me nothing useful.

restoring

after the test, you should revert back to the 1.0.9 firmware
there is no advantage of staying with this test firmware, and it may cause you confusion if you forget to switch back before the next release!

restoring is is trivial
a) select board->firmware->flash (i.e. first option)
b) this will automatically flash the board again with the 1.0.9 firmware
it will also automatically, set your preferences to point back to the 1.0.9 firmware
(you can see this, if you go into preferences, and you took note at the beginning :wink: )
c) exit axoloti UI, restart UI ... the extra menu options will have magically vanished again :boom:

thats it your back to where you started...


#2

Ok, as it looked easy, I decided to give it a try during a few hours break. But unfortunately the compiling of the firmware doesn't work.
I'm using windows 10 and here are the error messages after step (e)

have a done something silly, or is it not my fault ?


#3

sorry, my mistake.. I needed to clean out some more extra files...
I've uploaded a new file which hopefully should work...

EDIT: wait a moment it appears this compiling process has not been tested on windows, so looks like something is not quite right... I'm testing/fixing now...

EDIT2: ok, my mistake... with the new version above, everything now compiles, installs and restores successfully on windows.


#4

Yahoo, it works :smile:
this is my console report for the Touch Board

Firmware version: 1.0.0.1, crc=0xDE59E475, entrypoint=0x20011000
Axoloti says: USB Device Attached
Axoloti says: PID: 8003h
Axoloti says: VID: 2A6Eh
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 3
Axoloti says: interface: interface 0, num 0, numep 1, class 2 , sub class 2
Axoloti says: endpoint: interface 0, ep num 0, addr 81
Axoloti says: interface: interface 1, num 1, numep 2, class A , sub class 0
Axoloti says: endpoint: interface 1, ep num 0, addr 2
Axoloti says: endpoint: interface 1, ep num 1, addr 83
Axoloti says: interface: interface 2, num 3, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 2, ep num 0, addr 4
Axoloti says: endpoint: interface 2, ep num 1, addr 85
Axoloti says: Manufacturer : Bare Conductive
Axoloti says: Product : Touch Board
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#2)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 2 : 4
Axoloti says: USB Host Input connected to 2 : 85
Axoloti says: MID class started.

I'll test a few other controllers, just a short question, can I keep this firmware for the time being ? or will I get into problems with some of my patches ?


#5

Akai EWIUSB works

Axoloti says: USB Device Attached
Axoloti says: PID: 6Dh
Axoloti says: VID: 9E8h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 1
Axoloti says: endpoint: interface 1, ep num 1, addr 82
Axoloti says: Manufacturer : Akai Professional, LLC.
Axoloti says: Product : EWI-USB
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 1 : 1
Axoloti says: USB Host Input connected to 1 : 82
Axoloti says: MID class started.


#6

it will be absolutely fine for 1.0.9, patches are unaffected...
the only thing that you may need to do is recompile patches (it wont change them)... i.e. if you have them stored on your SD Card, you will need to upload new versions. (as is true, when you upgrade to new version of axoloti software)

the only reason I suggested to revert back is when the firmware is next updated, unless you remove this you will become incompatible. (i.e. this is a version 1.0.9 based firmware, so may not be compatible with patches created for other versions) so... if you keep it, just remember when you upgrade to 1.0.10 (or downgrade) to 'restore' the factory version.
(so for most users its easier to do now, so they dont forget later :smile: )


#7

the waldorf rocket :

Axoloti says: USB Device Attached
Axoloti says: PID: 17h
Axoloti says: VID: 12E6h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 1
Axoloti says: endpoint: interface 1, ep num 1, addr 82
Axoloti says: Manufacturer : Waldorf Music GmbH
Axoloti says: Product : Rocket
Axoloti says: Serial Number : 0B6C32533834
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 1 : 1
Axoloti says: USB Host Input connected to 1 : 82
Axoloti says: MID class started.

the miselu c.24 :

Axoloti says: USB Host : device disconnected
Axoloti says: USB Device Attached
Axoloti says: PID: 1h
Axoloti says: VID: 2961h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 81
Axoloti says: endpoint: interface 1, ep num 1, addr 2
Axoloti says: Manufacturer : Miselu
Axoloti says: Product : C.24
Axoloti says: Serial Number : D03972D355B3
Axoloti says: Enumeration done.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Input size requests : 20
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Output connected to 1 : 2
Axoloti says: USB Host Input connected to 1 : 81
Axoloti says: MID class started.

the akai lpd8

Axoloti says: USB Device Attached
Axoloti says: PID: 75h
Axoloti says: VID: 9E8h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 1
Axoloti says: endpoint: interface 1, ep num 1, addr 81
Axoloti says: Manufacturer : AKAI professional LLC
Axoloti says: Product : LPD8
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 1 : 1
Axoloti says: USB Host Input connected to 1 : 81
Axoloti says: MID class started.

Casio Privia

Axoloti says: USB Device Attached
Axoloti says: PID: 6803h
Axoloti says: VID: 7CFh
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 2
Axoloti says: endpoint: interface 1, ep num 1, addr 81
Axoloti says: Manufacturer : CASIO
Axoloti says: Product : CASIO USB-MIDI
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 1 : 2
Axoloti says: USB Host Input connected to 1 : 81
Axoloti says: MID class started.

M-audio prokeys sono 88

Axoloti says: USB Device Attached
Axoloti says: PID: 201Fh
Axoloti says: VID: 763h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 5
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 0, class 1 , sub class 2
Axoloti says: interface: interface 2, num 1, numep 2, class 1 , sub class 2
Axoloti says: endpoint: interface 2, ep num 0, addr 1
Axoloti says: endpoint: interface 2, ep num 1, addr 83
Axoloti says: interface: interface 3, num 2, numep 0, class 1 , sub class 2
Axoloti says: interface: interface 4, num 2, numep 1, class 1 , sub class 2
Axoloti says: endpoint: interface 4, ep num 0, addr 82
Axoloti says: interface: interface 5, num 3, numep 2, class 1 , sub class 3
Axoloti says: interface: more interfaces described, that config detailed, use actual number
Axoloti says: endpoint: interface 5, ep num 0, addr D
Axoloti says: endpoint: interface 5, ep num 1, addr 8E
Axoloti says: Manufacturer : M-Audio
Axoloti says: Product : ProKeys Sono 88
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#5)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Output size requests : 10
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Input size requests : 10
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output connected to 5 : D
Axoloti says: USB Host Input connected to 5 : 8E
Axoloti says: MID class started.

Millenium MD-90 seen but DOES NOT WORK :frowning:

I'm quite sure it worked in 1.0.6, I'll try it if you want, but not right now
here is the console. It seems to see it perfectly

Firmware version: 1.0.0.1, crc=0xDE59E475, entrypoint=0x20011000
Axoloti says: USB Host : device disconnected
Axoloti says: USB Device Attached
Axoloti says: PID: 119Dh
Axoloti says: VID: A67h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2
Axoloti says: interface: interface 0, num 0, numep 0, class 1 , sub class 1
Axoloti says: interface: interface 1, num 1, numep 2, class 1 , sub class 3
Axoloti says: endpoint: interface 1, ep num 0, addr 81
Axoloti says: endpoint: interface 1, ep num 1, addr 1
Axoloti says: Manufacturer : Medeli Electronics Co., Ltd.
Axoloti says: Product : e-Drum
Axoloti says: Serial Number : N/A
Axoloti says: Enumeration done.
Axoloti says: This device has only 1 configuration.
Axoloti says: Default configuration set.
Axoloti says: Switching to Interface (#1)
Axoloti says: Class : 1h
Axoloti says: SubClass : 3h
Axoloti says: Protocol : 0h
Axoloti says: USB Host Input size requests : 40
Axoloti says: USB Host Input interval : 0
Axoloti says: USB Host Output size requests : 40
Axoloti says: USB Host Output interval : 0
Axoloti says: USB Host Output connected to 1 : 1
Axoloti says: USB Host Input connected to 1 : 81
Axoloti says: MID class started.

here is the USB View repport if it can help

Device Descriptor:
bcdUSB: 0x0110
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 (64)
idVendor: 0x0A67 (Medeli Electronics Co, Ltd.)
idProduct: 0x119D
bcdDevice: 0x0100
iManufacturer: 0x01
0x0409: "Medeli Electronics Co., Ltd."
iProduct: 0x02
0x0409: "e-Drum"
iSerialNumber: 0x00
bNumConfigurations: 0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed: Full
Device Address: 0x02
Open Pipes: 2

Endpoint Descriptor:
bEndpointAddress: 0x81 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
wInterval: 0x0000
bSyncAddress: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x01 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
wInterval: 0x0000
bSyncAddress: 0x00

Configuration Descriptor:
wTotalLength: 0x0065
bNumInterfaces: 0x02
bConfigurationValue: 0x01
iConfiguration: 0x03
bmAttributes: 0xC0 (Bus Powered Self Powered )
MaxPower: 0x0A (20 Ma)

Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x00
bInterfaceClass: 0x01 (Audio)
bInterfaceSubClass: 0x01 (Audio Control)
bInterfaceProtocol: 0x00
iInterface: 0x00

Audio Control Interface Header Descriptor:
bLength: 0x09
bDescriptorType: 0x24
bDescriptorSubtype: 0x01
bcdADC: 0x0100
wTotalLength: 0x0009
bInCollection: 0x01
baInterfaceNr[1]: 0x01

Interface Descriptor:
bInterfaceNumber: 0x01
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x01 (Audio)
bInterfaceSubClass: 0x03 (MIDI Streaming)
bInterfaceProtocol: 0x00
iInterface: 0x00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x07
07 24 01 00 01 41 00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x06
06 24 02 01 01 00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x06
06 24 02 02 02 00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x09
09 24 03 01 03 01 02 01 00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x09
09 24 03 02 04 01 01 01 00

Endpoint Descriptor:
bEndpointAddress: 0x81 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
wInterval: 0x0000
bSyncAddress: 0x00

Unknown Descriptor:
bDescriptorType: 0x25
bLength: 0x05
05 25 01 01 03

Endpoint Descriptor:
bEndpointAddress: 0x01 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
wInterval: 0x0000
bSyncAddress: 0x00

Unknown Descriptor:
bDescriptorType: 0x25
bLength: 0x05
05 25 01 01 01

That's it for now, I think (I'm missing a few controllers, and mainly my teensy that could have been a useful test, I'll see if I can't make one up next week, just for testing reasons :wink:)


#8

wow thats an impressive list....
ok, I'll leave it up for a couple of days, but id say, if its working on that many devices, its appears to be working fine.
(the one that isn't ... I doubt is an issue, see below)

yeah, Id need to know if it worked in 1.0.6 and 1.0.8, my suspicion is it does NOT.
as I said, Ive only changed the detecting of devices, and its been detected and started up correctly... so something else is coming into play.

one thing Id recommend is trying different host ports i.e. midi/out defaults to usb host port 1, try usb host port 2, 3,4.
some usb devices have multiple ports, and you have to know to send to the correct one.
(for input, the host port can be specified on the sub patch dialog if midi selector is active, but defaults to omni)

anyway, unless its working in 1.0.8, I still view this as progress ... if its not working in 1.0.8/6 then I suggest move it to a new thread where it can be tracked.


#9