Control transfer failed: -7 - need a little bit of help


#1

Hello

When I connected Axoloti to my Macbook 2012, Yosemite, this afternoon, it was suddenly static green anf the red led was blinking and the board didnt connect. I am using latest ofiicial release 1.0.6 and runtime 1.0.6.

I tried connecting Axoloti and holding S1 in and do the rescue. It finished allright, but it still has static green and blinking red LEDs. Unfortunatly I didnt get to see the log before the firmware rescue, cause the app crashed before I had the chance.

After the firmware rescue. I get this message:

port: driver OK, CPU ID indeterminate
Link to firmware CRC 12D13CA6
Start disconnect
Done disconnect
Start flashing firmware with DFU
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 561688

Download [ ] 0% 0 bytes
Download [ ] 0% 2048 bytes
Download [ ] 1% 10240 bytes
Download [ ] 2% 16384 bytes
Download [= ] 4% 22528 bytes
Download [= ] 4% 26624 bytes
Download [= ] 5% 32768 bytes
Download [= ] 7% 40960 bytes
Download [== ] 8% 45056 bytes
Download [== ] 8% 49152 bytes
Download [== ] 10% 57344 bytes
Download [== ] 11% 65536 bytes
Download [=== ] 12% 67584 bytes
Download [=== ] 13% 73728 bytes
Download [=== ] 14% 83968 bytes
Download [==== ] 16% 90112 bytes
Download [==== ] 16% 92160 bytes
Download [==== ] 18% 102400 bytes
Download [==== ] 19% 110592 bytes
Download [===== ] 20% 112640 bytes
Download [===== ] 21% 120832 bytes
Download [===== ] 23% 131072 bytes
Download [====== ] 24% 135168 bytes
Download [====== ] 24% 139264 bytes
Download [====== ] 26% 147456 bytes
Download [======= ] 28% 157696 bytes
Download [======= ] 29% 165888 bytes
Download [======= ] 31% 176128 bytes
Download [======== ] 32% 180224 bytes
Download [======== ] 32% 184320 bytes
Download [======== ] 34% 194560 bytes
Download [========= ] 36% 202752 bytes
Download [========= ] 36% 204800 bytes
Download [========= ] 37% 212992 bytes
Download [========= ] 39% 223232 bytes
Download [========== ] 40% 225280 bytes
Download [========== ] 41% 231424 bytes
Download [========== ] 43% 241664 bytes
Download [=========== ] 44% 247808 bytes
Download [=========== ] 44% 249856 bytes
Download [=========== ] 46% 260096 bytes
Download [=========== ] 46% 262144 bytes
Download [=========== ] 47% 268288 bytes
Download [============ ] 48% 270336 bytes
Download [============ ] 49% 278528 bytes
Download [============ ] 51% 286720 bytes
Download [============= ] 52% 292864 bytes
Download [============= ] 52% 296960 bytes
Download [============= ] 54% 305152 bytes
Download [============== ] 56% 315392 bytes
Download [============== ] 57% 323584 bytes
Download [============== ] 59% 333824 bytes
Download [=============== ] 60% 337920 bytes
Download [=============== ] 60% 342016 bytes
Download [=============== ] 62% 352256 bytes
Download [================ ] 64% 360448 bytes
Download [================ ] 65% 370688 bytes
Download [================ ] 67% 380928 bytes
Download [================= ] 68% 382976 bytes
Download [================= ] 69% 389120 bytes
Download [================= ] 70% 393216 bytes
Download [================= ] 70% 397312 bytes
Download [================== ] 72% 405504 bytes
Download [================== ] 72% 407552 bytes
Download [================== ] 74% 415744 bytes
Download [================== ] 75% 425984 bytes
Download [=================== ] 76% 428032 bytes
Download [=================== ] 77% 434176 bytes
Download [=================== ] 79% 444416 bytes
Download [==================== ] 80% 450560 bytes
Download [==================== ] 80% 452608 bytes
Download [==================== ] 82% 462848 bytes
Download [==================== ] 83% 471040 bytes
Download [===================== ] 84% 473088 bytes
Download [===================== ] 85% 481280 bytes
Download [===================== ] 87% 489472 bytes
Download [====================== ] 88% 495616 bytes
Download [====================== ] 88% 499712 bytes
Download [====================== ] 90% 509952 bytes
Download [======================= ] 92% 518144 bytes
Download [======================= ] 93% 524288 bytes
Download [======================= ] 93% 526336 bytes
Download [======================= ] 95% 536576 bytes
Download [======================== ] 96% 540672 bytes
Download [======================== ] 96% 544768 bytes
Download [======================== ] 98% 555008 bytes
Download [=========================] 100% 561688 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Done flashing firmware with DFU.

Now I can connect.. But the board is still blinking red and I can not load any patches.

USB device found
connected
Authentic Axoloti Core
search path : objects
Firmware version: 1.0.0.1, crc=0x12D13CA6, entrypoint=0x20011000

When I push connect the connector kinds of stalls for a while and I get this message:

USB device found
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
connected
java.lang.Exception: cpuserial has wrong length
java.lang.Exception: cpuserial has wrong length
** at axoloti.HWSignature.Verify(HWSignature.java:96)**
** at axoloti.USBBulkConnection.connect(USBBulkConnection.java:321)**
** at axoloti.MainFrame.jCheckBoxConnectActionPerformed(MainFrame.java:848)**
** at axoloti.MainFrame.access$400(MainFrame.java:92)**
** at axoloti.MainFrame$7.actionPerformed(MainFrame.java:473)**
** at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)**
** at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)**
** at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)**
** at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)**
** at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)**
** at java.awt.Component.processMouseEvent(Component.java:6535)**
** at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)**
** at java.awt.Component.processEvent(Component.java:6300)**
** at java.awt.Container.processEvent(Container.java:2236)**
** at java.awt.Component.dispatchEventImpl(Component.java:4891)**
** at java.awt.Container.dispatchEventImpl(Container.java:2294)**
** at java.awt.Component.dispatchEvent(Component.java:4713)**
** at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)**
** at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)**
** at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)**
** at java.awt.Container.dispatchEventImpl(Container.java:2280)**
** at java.awt.Window.dispatchEventImpl(Window.java:2750)**
** at java.awt.Component.dispatchEvent(Component.java:4713)**
** at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)**
** at java.awt.EventQueue.access$500(EventQueue.java:97)**
** at java.awt.EventQueue$3.run(EventQueue.java:709)**
** at java.awt.EventQueue$3.run(EventQueue.java:703)**
** at java.security.AccessController.doPrivileged(Native Method)**
** at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)**
** at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)**
** at java.awt.EventQueue$4.run(EventQueue.java:731)**
** at java.awt.EventQueue$4.run(EventQueue.java:729)**
** at java.security.AccessController.doPrivileged(Native Method)**
** at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)**
** at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)**
** at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)**
** at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)**
** at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)**
** at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)**
** at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)**
** at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)**

Control transfer failed: -7
Ping: WaitSync Timeout, disconnecting now
Disconnect request
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7

I tried different cables, different Macs, rebooting them and nothing seems to help. I also tried downloading and installing the runtime again, but with no luck.

I am out of ideas now. Am I missing some step in the rescue proces? :unamused:

Thanks


#2

After reboot of computer again, Axoloti is back to not connecting at all and it is still blinking red. I get this error:

USB device found
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
connected
java.lang.Exception: cpuserial has wrong length
java.lang.Exception: cpuserial has wrong length
at axoloti.HWSignature.Verify(HWSignature.java:96)
at axoloti.USBBulkConnection.connect(USBBulkConnection.java:321)
at axoloti.MainFrame.jCheckBoxConnectActionPerformed(MainFrame.java:848)
at axoloti.MainFrame.access$400(MainFrame.java:92)
at axoloti.MainFrame$7.actionPerformed(MainFrame.java:473)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Control transfer failed: -7
Ping: WaitSync Timeout, disconnecting now
Disconnect request
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7
Control transfer failed: -7


#3

Board revision 1.0?
Is IC3 behind the line out jack extremely hot?
analysis https://sebiik.github.io/community.axoloti.com.backup/t/axoloti-core-board-failures/693
workaround https://sebiik.github.io/community.axoloti.com.backup/t/might-have-fried-the-output-of-axo/573/15


#4

Got it as one of the first last year in May, I think it was. Cant locate the revision number, but I am pretty sure it is revision 1,0.

It doesnt get any more hot that my other board from same batch. Just tested that. I received both at the same time.

What does this mean(from the log):
java.lang.Exception: cpuserial has wrong length


#5

That means the communication protocol was not in sync.

Perhaps a startup-patch in flash memory that fails during boot? Try push/hold switch S2 during powerup of the board (till the end of the alternating green/red blinking sequence), that skips loading any patches from sdcard or flash.
Rescue ("dfu") flash does not erase the flash startup patch area.


#6

Ohh just check IC3 again.. Now it is hot. I think i didnt touch it right the first time. Now it was burn your finger hot... Bummer...

Ok, so I need to go through the other thread about the workaround. And read it over a few times. But from what I see from first read, I wouldnt feel comfortable doing that at all. I have almost no experience with the hardware side of it.

Anyway, back to reading :persevere:

Thanks


#7

Just for clarification:

Can this happen if you disconnect/connect the audio stereo output while the board is connected via USB?


#8

Ok, so now my second Axolotis output is dead... After first board died earlier today I was extremely careful with my other board and connected it to play a bit. with same cables as I have used for the last many month.... But no sound from that one either.

Guess that is another topic. I am out for today. 2 unusable boards on same day. Too much.


#9

So Johannes what does IC3 control and is this something other users should fear ?! was jakob just unlucky or?!

what will happen now will he get a refund board since its not even a year old?!..

im a bit concerned over my board now ...


#10

Yeah, actually I was also thinking about either have a warranty fix og replacement boards. Cause it is definatly within warranty. I guess I need to contact the developer in person to find out this, cause community has no guide lines on the subject.

But since within warranty I am not that concerned about it any more. Now it is just a matter of how long time that process will take :smile:


#11

I'm unsure how crowdfunding perks and board-level products fit in EU warranty regulations.
It is hard to make warranties on a product so open and hack-able.

That said, I'll try to be as reasonable as possible.

Generally I will ship replacements in the following situations:
- dead on arrival (notified within a week after arrival)
- manufacturing defects (assembly or solder faults...) within one year

I will not cover damage caused by handling or improper use, and damage caused to external equipment.

This particular defect could have been caused by the micro-usb cable violating the usb specification (shield left unconnected), or it could have been caused by the powersupply of a laptop or other connected equipment leaking current into ground (they shouldn't but it's not unseen in reality). I have not been able to provoke the latter with my own equipment.

This is how I propose to handle this case:

  1. Send me a private message to obtain an RMA number
  2. Ship me your defective board (on your own expense)
  3. Allow me to verify the reported defect.
  4. Return shipping is also on your expense, I will invoice this before shipping out.
  5. I will ship you a working Axoloti Core (refurb or repair) with protection diodes added.

Alternatively, there is a workaround that bypasses the line output driver, that requires a bit of soldering, documented here.

Owners of a revision 1.0 Axoloti Core that want to prevent the same defect from happening to their board in the future are invited to add protection diodes as documented here.
I'm not offering a "preventive repair" or doing a total recall. The number of failures is very low.

Axoloti Core revision 1.1 (shipping since Dec 3, 2015) added protection diodes, and I have not heard of a single similar failure of revision 1.1. The board revision is printed in dark green on the side edge.