Bare Conductive's Touch Board : not working


#1

Hum
I made myself a touch controller using Bare Conductive's Touch Board, it used to work very well with Axoloti, but since I don't know when (maybe 1.07 or 1.08) it doesn't work anymore.
This is what the console says :

Axoloti says: USB Device Attached
Axoloti says: PID: 8003h
Axoloti says: VID: 2A6Eh
Axoloti says: Address (#1) assigned.
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: No registered class for this device.

All my other USB controllers work on the same Axoloti, and the Touchboard works with MIDI-OX, so I don't know really what's going on (especially as it worked fine before)


USB Midi Controllers
#2

ok, Ive moved this... to keep the other on-topic.

Axoloti says: No registered class for this device.

means the that for some reason, axoloti is not recognising it as a device class (e.g. audio/midi compliant) it deals with.

afaik there are really only 3 changes in this area 'recently' ...
- I added vendor class support ... which would be in 1.0.7, but Im kind of struggling to understand why this would have an effect.
- I fixed an issue in the way interfaces were handled in the STM Framework... this may have inadvertently exposed another issue.
- Johannes altered the ordering devices/classes were handled.

If you board exposes multiple interfaces (which it appears to from the spec) e.g. HID and MIDI then I suspect one of these changes, could cause you issue because Axoloti currently does not support handling of multiple interfaces very well.

can you please re-test with 1.0.6, its pretty important to know which version it stopped working in, to get an idea of the cause, this may help isolate the change

in reality, we would need to see full details of how the touch board looks as a usb device, and what interfaces it presents, and in what order. this would enable us to see why its not being found, and see how/if we can fix this without breaking other devices.


#3

ok, so I'm back onto 1.0.6 version (took some time cause I must have done something silly down the line, and needed to reboot it in Rescue mode, but it now works again), and the touchboard works :

Axoloti says: USB Device Attached
Axoloti says: PID: 8003h
Axoloti says: VID: 2A6Eh
Axoloti says: Address (#1) assigned.
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.


#4

can you try this in 1.0.9 there have been some changes which might resolve this.

see https://sebiik.github.io/community.axoloti.com.backup/t/axoloti-test-release-1-0-9/


#5

Hi

Just updated 2 of my boxes to 1.0.9, it all went well, working just a good as 1.0.8 for the moment.
So I tested my TouchBoard midi controller and... it still doesn't work :frowning:
All my other controllers do, but not this one.

it still works with 1.0.6, windows and on my ipad (ios)

Can I maybe give you any more information, from some utility or something


#6

on mac
I cant find a user tool to give the info I need (basically something which lists interfaces and their types)

on linux you can use
lsusb -v

on windows
there is something called USBView, someone posted details about finding it somewhere on this forum

basically I need all the usb details for the device, and in particular the "interface" details, which basically will show what 'class' of interfaces it supports.

hmmm, frankly, I spent quite a bit of time for 1.0.9 going through the USB host code, and resolving things where I could see issues might occur... and I'm not sure I can do much more, without having a device that shows these issues, as it seems vary particular to the device. ... and its now entirely unclear to me, why 1.0.6 would work, as the new code in 1.07/8 has been 'neutralised' in 1.0.9 as far as i can tell.


#7

here is my usbview report on the 3 devices that appear when you plug in the Touchboard. the middle one probably the intresting one :

http://mtyas.com/touch/USB%20Devices%20List.html

I can't seem to help much more for the moment. I'll tell you if I get anywhere while testing different things

Thanks anyway for looking into it

Matt


#8

I dont think thats the tool Im talking about
if you look here, http://www.techrepublic.com/blog/windows-and-office/map-and-troubleshoot-your-usb-ports-with-microsoft-usb-view/ you will see in Figure D, it gives a complete listing of the details of the device, interfaces and endpoints.


#9

Ok, I'm downloading windows debugging tools from the sdk. it will probably take some time, so I'll get back to you tomorrow morning. Thanks and more info soon


#10

Ok, here it comes, hope it can help

Device Descriptor:
bcdUSB: 0x0200
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 (64)
idVendor: 0x2A6E
idProduct: 0x8003
bcdDevice: 0x0100
iManufacturer: 0x01
0x0409: "Bare Conductive"
iProduct: 0x02
0x0409: "Touch Board "
iSerialNumber: 0x00
bNumConfigurations: 0x01

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

Endpoint Descriptor:
bEndpointAddress: 0x81 IN
Transfer Type: Interrupt
wMaxPacketSize: 0x0010 (16)
bInterval: 0x40

Endpoint Descriptor:
bEndpointAddress: 0x02 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x83 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x04 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x85 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Configuration Descriptor:
wTotalLength: 0x0091
bNumInterfaces: 0x03
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80 (Bus Powered )
MaxPower: 0x0A (20 Ma)

Unknown Descriptor:
bDescriptorType: 0x0B
bLength: 0x08
08 0B 00 02 02 02 01 00

Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x01
bInterfaceClass: 0x02
bInterfaceSubClass: 0x02
bInterfaceProtocol: 0x00
iInterface: 0x00

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x05
05 24 00 10 01

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x05
05 24 01 01 01

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x04
04 24 02 06

Unknown Descriptor:
bDescriptorType: 0x24
bLength: 0x05
05 24 06 00 01

Endpoint Descriptor:
bEndpointAddress: 0x81 IN
Transfer Type: Interrupt
wMaxPacketSize: 0x0010 (16)
bInterval: 0x40

Interface Descriptor:
bInterfaceNumber: 0x01
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x0A
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x02 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x83 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

Interface Descriptor:
bInterfaceNumber: 0x03
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 22 00

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

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

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

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

Endpoint Descriptor:
bEndpointAddress: 0x04 OUT
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

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

Endpoint Descriptor:
bEndpointAddress: 0x85 IN
Transfer Type: Bulk
wMaxPacketSize: 0x0040 (64)
bInterval: 0x00

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


#11

thanks, exactly the info I was after....

unfortunately this looks similar to the issue we are seeing with the 25SL

this is exactly what we are looking for, but its not finding it

obviously this is in every midi devices that does work....
so my assumption is, something in the STM host library, is not parsing the descriptors properly

I think I possibly know what the issue is, but with a device that exhibits the issue, its impossible for me to test my theories.
hmm, what I might be able to do, is build you a 'test firmware' which then you'll have to manually upload. (I'll explain how)
you wont be able to run patches against, it but it will provide more info for me, and also you will be able to see if it detects the midi device properly....

I'll think about it.... and let you know


#12

No problem for testing special firmware's, Just not before next week, I've got some concerts, rehearsals and recordings using all 3 axoloti's in the next few days, so I'm staying stable for the moment.


#13

ok... Ive just re-written the area that parses the usb descriptions... which I think will (hopefully) resolve your issue, and hopefully the 25SL too... and also reports more information as its parsing it... so even if it doesnt work will give more clues in the future to where issues may be.

let me know when your free to do it.
basically, its just replacing the firmware, which you can of course revert after the test is done.
(it wont alter patches or anything, so going backwards and forwards is a non-issue)

it be useful when you test it, to not only check this board works, but to plug as many usb midi devices as you have in, just to check that everything else is ok... it should be, and its working for me, but good to test with as many as possible :wink:


#14

Just wanted to close this topic by saying that the TouchBoard is working like a charm since the last few updates.
I didn't realize that this topic ended with such a cliff hanger and the impression that it didn't work anymore.