Novation ReMote 25SL, M-Audio Trigger Finger


#21

Many thanks.

No change I'm afraid.
Below is the log to show the upgrade to 1.0.9.

After plugging in the 25L the usb midi is dead.

Anything else I should check here? (e.g. Loaded and ran "Noodle Noise" patch to make sure Ax hadn't crashed totally...working fine)

Thought, ....is it possible the 25L just takes too much current?
It seems to be lighting up ok though.
I've just tried plugging 25L & Ax into adjacent usb sockets on my pc. All working, but can't be sure they're on the same current source.

Link to firmware CRC 21C46C25
Status: factory (1.0.9,anon) : OK ( 1.0.8,clean )
Status : home : OK
Status: community (master,anon) : OK ( master,dirty )
Changes for: community (master,anon)
missing: objects/phi
uncommited: objects/phi
No available USB device found with matching PID/VID
search path : C:\Users\Andy\Documents\axoloti\axoloti-factory\objects
search path : C:\Users\Andy\Documents\axoloti\objects
search path : C:\Users\Andy\Documents\axoloti\axoloti-contrib\objects
finished loading objects
USB device found
not accesseable : -12
USB device found
connected
Authentic Axoloti Core
Firmware version: 1.0.0.1, crc=0xA50E988A, entrypoint=0x20011000
Firmware CRC mismatch! Please flash the firmware first! Hardware firmware CRC = A50E988A <> Software CRC = 21C46C25
Link to firmware CRC 21C46C25
Start uploading firmware
firmware file path: C:\Program Files (x86)\Axoloti\app\firmware\build\axoloti.bin
firmware file size: 591,292
firmware crc: 0x21C46C25
block uploaded @ 0xC0000000 length 16
block uploaded @ 0xC0000010 length 32768
block uploaded @ 0xC0008010 length 32768
block uploaded @ 0xC0010010 length 32768
block uploaded @ 0xC0018010 length 32768
block uploaded @ 0xC0020010 length 32768
block uploaded @ 0xC0028010 length 32768
block uploaded @ 0xC0030010 length 32768
block uploaded @ 0xC0038010 length 32768
block uploaded @ 0xC0040010 length 32768
block uploaded @ 0xC0048010 length 32768
block uploaded @ 0xC0050010 length 32768
block uploaded @ 0xC0058010 length 32768
block uploaded @ 0xC0060010 length 32768
block uploaded @ 0xC0068010 length 32768
block uploaded @ 0xC0070010 length 32768
block uploaded @ 0xC0078010 length 32768
block uploaded @ 0xC0080010 length 32768
block uploaded @ 0xC0088010 length 32768
block uploaded @ 0xC0090010 length 1468
Done uploading firmware
Start uploading patch
bin path: C:\Program Files (x86)\Axoloti\app\firmware\flasher\flasher_build\flasher.bin
block uploaded @ 0x20011000 length 15188
Done uploading patch
Start flashing...
Firmware flashing in progress, do not unplug the board until the leds stop blinking! You can connect again after the leds stop blinking.
Disconnect request
flashing...
USB device found
connected
Authentic Axoloti Core
Firmware version: 1.0.0.1, crc=0x21C46C25, entrypoint=0x20011000
Axoloti says: USB Device Attached


#22

hmm, thats a bit disappointing...

sorry, I don't really know... it seems the host code is having an issue with enumerating the interfaces/endpoints - but without a 25SL to see exactly where its choking, theres not really alot i can do :frowning:


#23

OK, ran through procedure in latest announcement.

No change I'm afraid.

Here's log so you can check I got the alt firmware installed correctly.

Link to firmware CRC 1785ECC0
Status: factory (master,anon) : OK ( 1.0.8,clean )
Status : home : OK
Status: community (master,anon) : OK ( master,dirty )
Changes for: community (master,anon)
missing: objects/phi
uncommited: objects/phi
USB device found
not accesseable : -12
USB device found
connected
Authentic Axoloti Core
search path : C:\Users\Andy\Documents\axoloti\axoloti-factory\objects
Firmware version: 1.0.0.1, crc=0x1785ECC0, entrypoint=0x20011000
search path : C:\Users\Andy\Documents\axoloti\objects
search path : C:\Users\Andy\Documents\axoloti\axoloti-contrib\objects
finished loading objects
Axoloti says: USB Device Attached


#24

Oh, here's the proof that firmware was updated (below)

It doesn't appear if the 25L is connected, but shows with the Trigger Finger.

Axoloti says: USB Device Attached
Axoloti says: PID: 117h
Axoloti says: VID: 763h
Axoloti says: Address (#1) assigned.
Axoloti says: cfg desc: num interfaces 2


#25

do you get any more information,

following this should be something like ... (just an example, yours will be different perhaps more interfaces etc)

can you cut n paste the entire console output here
(Id like to exactly where we are getting, and how far its getting before it stops)

what is good even with what you have so far, is we will know a little more about how far its getting.
it its printing the interface and endpoint info, as above, that will tell us even more about if its successful parsing the data.

perhaps this will throw up something, and now you know how to install custom firmware, I can possibly send you another version with more debug info in it.


#26

That is the entire console info for the 25L.
That's what it's been doing all along.
I wouldn't edit out the interesting bit :wink:

Axoloti says: USB device attached

..and after that Axoloti gives up on it's usb port

...that's all I have.

No change with this "fix", looks like the problem is a bit earlier on in the code and the 'fix' never runs..
...that's how it looks from here anyway.


#27

sorry, i misread your post... I thought this was from the 25SL, didn't see the bit about the Trigger finger.

hmm.. ok, its obviously die-ing pretty early on... even more the interfaces are returned.

ok, I'll knock up another firmware, later today, that has extreme amount of debugging info in it,
so we can work out exactly where its stopping.
as far as i can tell, its either not getting the enumeration response... or its coughing up during the processing of this... but the logging i add later will tell us that.


#28

ok, I've PM'd you with your own special debug version ... lots of logging, starts after USB device attached

same procedure as other firmware.
please post results, and I'll take a look, and compare to code/other working midi devices.
(btw, dont jump to conclusions about fails in the console, some might be expected... and it still work)

I've also adjusted one delay slightly, to see if it helps (unlikely, but hey, worth a go) ... also of course, the very act of logging also might affect the time, and so change behaviour...
but lets see :smile:


#29

Keep in mind that log messages are buffered, so when the there is a crash somewhere, log messages that are still in the buffer prior to the crash are not getting thru.


#30

yeah i know.... but not much else we can try really....
but there is also a possibility its not actually crashing, the usb host goes through a state machine, it could be that for some reason, its not going through the states correctly, and just keeps retrying that one state.
(in testing here, I've noticed, retrying states, is actually 'normal' behaviour... i guess due to timing)

I guess the other thing to try later is to allocate a much bigger space for the config data... just in case its overrunning.
but I dont think that is the case... and actually the whole descriptor logic is pretty 'simplistic'.
however its noticeable that many error conditions are not currently trapped... .perhaps failing silently.

Im partly interested in this, not only to get the 25SL, but also to see if we can make the whole thing more robust.

btw: its not about being USB MIDI class compliant or not... it doesnt even get that far, as far as i can tell... and also Ive plugged in many non usb devices to see what happens, and they all report the usb details correctly... and just report (not surprisingly) that there is no registered handler for them.

but as you say, logging is a pretty blunt tool... but not much more available , without having a device here to test.

anyway, lets see if we get anything... if not, then I will start aborting the USB code at various steps, to pinpoint where its getting to.... and get the logs up to that point.


#31

Well, that certainly did something different.

I'd guess you'll now know what was going wrong.

Axoloti says: USB Device Attached
Axoloti says: TB : testing only : extended debug
Axoloti says: TB : HDA after (extended) delay
Axoloti says: TB : HDA speed 1
Axoloti says: TB : HDA pipes alloced
Axoloti says: TB : HDA pipe 1 0
Axoloti says: TB : HDA pipe 2 0
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR

...and so it loops
...this is a much edited down version :wink:

until Patcher disconnects from the Core, leaving Patcher crashed (most times, presumably just because it's overloaded with a vast amount of text) and Core unresponsive.


#32

ok, most important are the last lines reported...
are you sure the IDL-NR is the last line... not something subtly different?

Ive just checked mine and I get the IDL-NR , 835 times before the next messages, this means it takes 835mSec for the devices to respond. (no i didnt count manually :wink: )

its early days, this is going to be a bit of an iterative process...
if the above was representative of your last lines, then this possibly shows:

  • your device is taking a long time to respond (or not responding at all) , as all my devices here, whilst reporting the above lots, all manage to complete... i.e. yes logging is possibly killing it, but thats only because its going round the loop longer.
    or...

  • your device is responding, in about the same time, but the next step crashes it, before the logger gets time to report.
    as I discussed with johannes, this is always a possibility... but the issue, is are so many points this could be going wrong, its impossible to know where to start....

if I had a device here, I could could throw many different combinations of code changes to isolate the issue... probably in hour max. this going backwards and forwards, is not only slow for you, but really time consuming for me...
anyway, I'll give it a bit more of a go, perhaps we will 'strike lucky' quickly

ok, Ive uploaded, same place a new version...

this has a couple of important enhancements, that will help us go forward...

this pauses between each request for a bit of time (in the above place about 100mS) this, means it will reduce logging a bit, so you can count the number of iterations, and also means the logging hopefully wont overload axoloti, and gives your devices longer to respond... it also give the logger an opportunity to log before it crashes.

also this new version, has aborting code in it, which means I can ask you to change a setting, recompile the firmware, and it will abort at various stages/states, helping us to catch the logs before it crashes.
I'll explain how to adjust things, and what I want it set to as we go along...

for now the abort is set, to just just before the parsing of the interface, which theoretically if the data is corrupted it will crash... BUT, thats only been a guess till now.

... so in theory the last message you should see are:

Axoloti says: CheckStep2 abort 3
Axoloti says: TB HENUM not ready yet, will retry

(hint: it wont actually do that last retry, because Ive aborted in the step above)

anyway, download from the same place, and give it another try... :pray: this will give us more info


#33

OK, here it is.
...back to the beginning in terms of how it responds to the 25L

...as you'll see if you scroll all the way down.
I've included some of the compilation log, as otherwise I'm not sure there's any proof I didn't
go back to the regular firmware.

The 25L does seem to take about a second to boot up.

The final message I got wasn't anything that wasn't in the loop that was going round, iirc.
I don't remember which command it ended on.
...but then I was having to disconnect the Ax to stop the Patcher from crashing.
If needed I can go back to that firmware and try again.

Saving preferences...
preferences path : C:\Users\Andy\Documents\axoloti\axoloti.prefs
USB device found
not accesseable : -12
USB device found
connected
Authentic Axoloti Core
Firmware version: 1.0.0.1, crc=0x59DD416C, entrypoint=0x20011000
Firmware CRC mismatch! Please flash the firmware first! Hardware firmware CRC = 59DD416C <> Software CRC = Please compile the firmware first
Start compiling firmware
"setup build dir"
"Compiling firmware..."
BDIR = C:\Users\Andy\DOCUME~1\axoloti/build
FIRMWARE = .
rm -f C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.o C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.elf C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.bin C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.d C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.map C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.lst C:\Users\Andy\DOCUME~1\axoloti/build/xpatch.h.gch
The system cannot find the path specified.
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/crt0.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/crt0.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/crt0.c -o build/obj/crt0.o
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/vectors.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/vectors.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx/vectors.c -o build/obj/vectors.o
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/chcore.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/chcore.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/chcore.c -o build/obj/chcore.o
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/chcore_v7m.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/chcore_v7m.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/chcore_v7m.c -o build/obj/chcore_v7m.o
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/nvic.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/nvic.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/nvic.c -o build/obj/nvic.o
ECHO is off.
arm-none-eabi-gcc -c -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/chsys.lst -DCORTEX_USE_FPU=TRUE -DARM_MATH_CM4 -D__FPU_PRESENT -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/chsys.o.d -mthumb -DTHUMB -I. -IC:\PROGRA~2\Axoloti\app/CMSIS//Include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx/CMSIS/include -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/common/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx -IC:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/kernel/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/include -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32F4xx -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/GPIOv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/I2Cv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/OTGv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/RTCv2 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/SPIv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/TIMv1 -IC:\PROGRA~2\Axoloti\app/chibios/os/hal/platforms/STM32/USARTv1 -I. -IC:\PROGRA~2\Axoloti\app/chibios/ext/fatfs/src -IC:\PROGRA~2\Axoloti\app/chibios/os/various -I./STM32_USB_Host_Library/Core/Inc -I./STM32_USB_Host_Library/Class/HID/Inc -I./STM32F4xx_HAL_Driver/Inc C:\PROGRA~2\Axoloti\app/chibios/os/kernel/src/chsys.c -o build/obj/chsys.o
ECHO is off.


EDITED OUT LARGE AMOUNT OF COMPILATION LOG (too much for the webpage to allow)


main.c:172:33: warning: unused parameter 'usbp' [-Wunused-parameter]
static void usbEvent(USBDriver* usbp, usbevent_t event)
^
ECHO is off.
arm-none-eabi-gcc mounter_build/obj/crt0.o mounter_build/obj/vectors.o mounter_build/obj/chcore.o mounter_build/obj/chcore_v7m.o mounter_build/obj/nvic.o mounter_build/obj/chsys.o mounter_build/obj/chdebug.o mounter_build/obj/chlists.o mounter_build/obj/chvt.o mounter_build/obj/chschd.o mounter_build/obj/chthreads.o mounter_build/obj/chdynamic.o mounter_build/obj/chregistry.o mounter_build/obj/chsem.o mounter_build/obj/chmtx.o mounter_build/obj/chcond.o mounter_build/obj/chevents.o mounter_build/obj/chmsg.o mounter_build/obj/chmboxes.o mounter_build/obj/chqueues.o mounter_build/obj/chmemcore.o mounter_build/obj/chheap.o mounter_build/obj/chmempools.o mounter_build/obj/hal.o mounter_build/obj/adc.o mounter_build/obj/can.o mounter_build/obj/ext.o mounter_build/obj/gpt.o mounter_build/obj/i2c.o mounter_build/obj/icu.o mounter_build/obj/mac.o mounter_build/obj/mmc_spi.o mounter_build/obj/mmcsd.o mounter_build/obj/pal.o mounter_build/obj/pwm.o mounter_build/obj/rtc.o mounter_build/obj/sdc.o mounter_build/obj/serial.o mounter_build/obj/serial_usb.o mounter_build/obj/spi.o mounter_build/obj/tm.o mounter_build/obj/uart.o mounter_build/obj/usb.o mounter_build/obj/stm32_dma.o mounter_build/obj/hal_lld.o mounter_build/obj/adc_lld.o mounter_build/obj/ext_lld_isr.o mounter_build/obj/can_lld.o mounter_build/obj/ext_lld.o mounter_build/obj/mac_lld.o mounter_build/obj/sdc_lld.o mounter_build/obj/pal_lld.o mounter_build/obj/i2c_lld.o mounter_build/obj/usb_lld.o mounter_build/obj/rtc_lld.o mounter_build/obj/spi_lld.o mounter_build/obj/gpt_lld.o mounter_build/obj/icu_lld.o mounter_build/obj/pwm_lld.o mounter_build/obj/serial_lld.o mounter_build/obj/uart_lld.o mounter_build/obj/board.o mounter_build/obj/shell.o mounter_build/obj/chprintf.o mounter_build/obj/memstreams.o mounter_build/obj/glcdfont.o mounter_build/obj/axoloti_control.o mounter_build/obj/axoloti_board.o mounter_build/obj/watchdog.o mounter_build/obj/usb_msd.o mounter_build/obj/main.o -mcpu=cortex-m4 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -ffunction-sections -fdata-sections -fno-common -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -nostartfiles -L. -Wl,-Map=mounter_build/mounter.map,--cref,--no-warn-mismatch,--library-path=C:\PROGRA~2\Axoloti\app/chibios/os/ports/GCC/ARMCMx,--script=STM32F407xG.ld,--gc-sections -mno-thumb-interwork -mthumb -o mounter_build/mounter.elf
arm-none-eabi-objcopy -O ihex mounter_build/mounter.elf mounter_build/mounter.hex
arm-none-eabi-objcopy -O binary mounter_build/mounter.elf mounter_build/mounter.bin
arm-none-eabi-objdump -x --syms mounter_build/mounter.elf > mounter_build/mounter.dmp
Link to firmware CRC 0C017969
Done compiling firmware
Link to firmware CRC 0C017969
Start uploading firmware
firmware file path: C:\Users\Andy\Documents\axoloti\miditestfw2\firmware\build\axoloti.bin
firmware file size: 591,660
firmware crc: 0xC017969
block uploaded @ 0xC0000000 length 16
block uploaded @ 0xC0000010 length 32768
block uploaded @ 0xC0008010 length 32768
block uploaded @ 0xC0010010 length 32768
block uploaded @ 0xC0018010 length 32768
block uploaded @ 0xC0020010 length 32768
block uploaded @ 0xC0028010 length 32768
block uploaded @ 0xC0030010 length 32768
block uploaded @ 0xC0038010 length 32768
block uploaded @ 0xC0040010 length 32768
block uploaded @ 0xC0048010 length 32768
block uploaded @ 0xC0050010 length 32768
block uploaded @ 0xC0058010 length 32768
block uploaded @ 0xC0060010 length 32768
block uploaded @ 0xC0068010 length 32768
block uploaded @ 0xC0070010 length 32768
block uploaded @ 0xC0078010 length 32768
block uploaded @ 0xC0080010 length 32768
block uploaded @ 0xC0088010 length 32768
block uploaded @ 0xC0090010 length 1836
Done uploading firmware
Start uploading patch
bin path: C:\Users\Andy\Documents\axoloti\miditestfw2\firmware\flasher\flasher_build\flasher.bin
block uploaded @ 0x20011000 length 15188
Done uploading patch
Start flashing...
Firmware flashing in progress, do not unplug the board until the leds stop blinking! You can connect again after the leds stop blinking.
Disconnect request
flashing...
USB device found
connected
Authentic Axoloti Core
Firmware version: 1.0.0.1, crc=0x0C017969, entrypoint=0x20011000
Axoloti says: USB Device Attached


#34

ok, can you double check... the initial part of the logging has not changed,
so I can't understand how you would get logging last time, but not this time....

basically, like last time, I print a message out, immediately after the USB device attaches message, and then the axoloti waits for 500mS before doing anything else... so I cant see how it could crash, and display the
USB Device Attached, yet, not print the following message ... its kind of impossible, (or at a minimum extremely unlikely)

Ive double checked , I definitely uploaded the correct one
you did use the midi_dbg_only.zip , as I PM'd you ...!? (not the more general one on the other thread)

one thing, can you make sure you do NOT have the 25SL plugged in when you initially reboot the axoloti after the firmware upgrade, always attach it once the axoloti has successfully booted..


#35

ok, I got the wrong firmware, sorry. "same place".... ambiguous, but if I'd thought about it I'd have got the right one.
Will report again.


#36

Here's log with correct firmware:-


USB device found
connected
Authentic Axoloti Core
Firmware version: 1.0.0.1, crc=0x0B216928, entrypoint=0x20011000
Axoloti says: USB Device Attached
Axoloti says: TB : testing only : extended debug
Axoloti says: TB : HDA after (extended) delay
Axoloti says: TB : HDA speed 1
Axoloti says: TB : HDA pipes alloced
Axoloti says: TB : HDA pipe 1 0
Axoloti says: TB : HDA pipe 2 0
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE


then just loops , even after 25L is unplugged...keeps looping.

I had to disconnect from Patcher to stop it...which went like this:-


Axoloti says: TB HE IDL -NR
Axoloti says: TB HENUM not ready yet, will retry
Axoloti says: TB HENUM enter
Axoloti says: TB HENUM state 0
Axoloti says: TB HE IDLE
Disconnect request


after that, reconnecting just brings back the looped messages on the Patcher.

With the trigger finger we get to "Axoloti says: TB HENUM not ready yet, will retry" as expected.


#37

Ok, so this shows us axoloti is actually not crashing...
whats happening is it going into a continuous loop, trying to setup communicate with the 25sl.

basically, what I believe is happening, is your 25SL is not responding to the descriptor requests...
its the very first descriptor request that is sent, in which the protocol is established...
and its just not getting data back.
this is 'odd' as we can see the pipes are opened correctly ( HDA pipe 1 0, HDA pipe 2 0 = USBH_OK for both pipes)

as far as i can tell, and its get pretty low level, the usb ctrlreq does have retrying logic, so its also repeatedly making the request, and getting nothing back.

the issue is, I dont think theres much further I can go...
it would be a nightmare trying to debug the USB state machines remotely (or even locally :wink:) and even if I did, all we would likely find, is the message is sent but we just dont get the URB_DONE response. but that wouldn't tell us why!

Its probably worth pointing out, that control requests, and the whole setup phase we are dealing with here, is the same for every USB device... its not like interfaces/endpoints which vary, this part of the process is identical for every device... so its very odd that the 25SL is failing here... at this point, it should be the same as every other device.

so, I think its something physical/electrical... something that is different from when you having it working with a PC.

are you running this using an external power supply? ( I should have asked this earlier :frowning: )
I notice the 25SL has an (optional) power supply, that is 600mA... now its probably overrated, but that would be too much current to draw from the axoloti directly via the usb host port.... but even so, it could be its trying to draw too much current or something similar. ... perhaps the 25SL is not initialising itself due to lack of power?

... so definitely if your not running it on external power, that is the next thing to try.


#38

OK.
I think I put forward that idea earlier, but my quick test didn't reproduce the problem.
I wasn't sure that the usb function of the 25L would work at all when switched to the psu.
...but yes it works.
External psu attached.
...and we have success!

many thanks for persisting.

If you'd like to try out a way to prevent the lock up of the usb port in this case I'm happy to do further tests for you.


#39

Are you getting the Remote 25 SL to work on the USB host port with an external PSU on the 25 SL? I can't get mine to work at all, except over MIDI...


#40

Yes, Remote 25 SL works fine.
...but you need to push the power switch over to the DC position, and attach the external psu first
...only then can you connect to the Ax

( if you try to run the 25L on power from the Ax you'll render the Ax unable to detect any usb device, it'll need a re-boot)