• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Getting G3 Whisper Perch USB working

croissantking

Well-known member
Have you just fitted 10k to every resistor pad?! That filter needs specific cap and resistor pads to do its job safely!
Yes, I know.

I just wanted to populate them and see what would happen. I’m meaning to study the layout of the donor card in more detail but haven’t got round to it yet. However, I don’t think it has an equivalent filter like this one.

If you suggest more appropriate values I’ll start swapping out.
 
Last edited:

croissantking

Well-known member
Any better: ?
Hi @mg.man , any chance you could grab some close ups of the other side of the board? There are a lot of passives under the USB chip.

I think you mentioned this board was a spare, would you consider lending it to me if I pay postage both ways? I could trace it out and draw up a schematic which it would likely help me a lot with this project. I’m struggling as I don’t know the right resistor or cap values.
 

mg.man

Well-known member
any chance you could grab some close ups of the other side ... would you consider lending it to me
Either possible. Work, however, is really demanding atm, so I don't have a lot of Mac-time right now. I'll see if I can get a pic - that might be quicker.
 

Daniël

Well-known member
This is a later revision iMac trayloader board, but it does use the same FireLink chip so it might still be of use. The tantalum capacitor besides R222 is pretty much right underneath the FireLink chip on the other side of the board.
 

Attachments

  • PXL_20230321_202001561.jpg
    PXL_20230321_202001561.jpg
    933.1 KB · Views: 10
  • PXL_20230321_202010978.jpg
    PXL_20230321_202010978.jpg
    1,018.4 KB · Views: 9

croissantking

Well-known member
This is a later revision iMac trayloader board, but it does use the same FireLink chip so it might still be of use. The tantalum capacitor besides R222 is pretty much right underneath the FireLink chip on the other side of the board.
Thank you!
 

Phipli

Well-known member
I don’t, but I can swap it back in and get it if it’s useful.
It is, I was concentrating on fixing a specific error :)

Originally it threw the error and disabled the port, then it threw the error when you plugged something in an improvement... I was hoping to see if we made it better or worse.

If it is worse, I suspect we want to pull it low, not high (some of this sort of thing is set in software and we don't have any control over). Hopefully the USB log will give a clue. You might have it right and we're just seeing another error now.
 

Phipli

Well-known member
20230321_205056.jpg

This Orange Micro PCI card has Pin 11 tied high through a 10k resistor, so I think that is a reasonable thing to do with yours (i.e. 10k on R75, no resistor on R76).
 

croissantking

Well-known member
IMG_9911.jpg

Here's the log - all look fine until you plug in a USB device, then it starts erroring continuously until the device is removed.

I tried it with a an early Apple USB keyboard, with the power key (received it today off eBay in case we want to fiddle with the soft power circuit later on). The caps lock key flashes briefly when plugged in, then goes out.

21.275: Expert - Initializing disk based USB Expert 1.5.5
22.002: [ 123456789]: UIM - Power manager does not do wake functions 0
22.613: [ 0]: USL - ctlPktHandler, ********** unqueued does not match 65535
22.613: [ 0]: USL - ctlPktHandler pb 624192
22.613: [ 0]: USL - ctlPktHandler pbq 0
22.613: [ 123456789]: UIM - UIMEndpointDelete: Could not find endpoint -6987
23.081: [ 75576034]: Expert - LoadClassDriver: USBHub1Apple - calling driver initialize routine... 0
23.081: [ 75576034]: Expert - LoadClassDriver: USBHub1Apple - driver initialization completed 0
23.083: [ 75576034]: Driver - Externally powered Hub attached - power supply good 0
24.212: [ 0]: Expert - Bus Enumeration using disk-based drivers (mSec): 1616
24.215: [ 0]: Expert - Could not find Native Power Manager Lib 0
--------------------------------

No new USB events have occurred.
--------------------------------

180.900: [ 0]: USL - Stalling pipe 75576448
180.901: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
180.933: [ 0]: USL - findEndpointAddr -1
180.933: [ 0]: USL - Stalling pipe 75576448
180.933: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
180.966: [ 0]: USL - findEndpointAddr -1
180.966: [ 0]: USL - Stalling pipe 75576448
180.967: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
180.973: [ 0]: USL - findEndpointAddr -1
180.973: [ 0]: USL - Stalling pipe 75576448
180.973: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
181.010: [ 0]: USL - findEndpointAddr -1
181.010: [ 0]: USL - Stalling pipe 75576448
181.010: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
181.011: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 69
181.081: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.114: [ 0]: USL - findEndpointAddr -1
181.114: [ 0]: USL - Stalling pipe 75576448
181.116: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
181.116: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
181.148: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 4
181.148: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
181.148: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.181: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
181.181: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.182: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.213: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
181.213: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.244: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.509: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
181.509: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.545: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.580: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.613: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.643: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.654: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.691: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.728: [ 0]: USL - findEndpointAddr -1
181.728: [ 0]: USL - Stalling pipe 75576576
181.728: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
181.763: [ 0]: USL - findEndpointAddr -1
181.763: [ 0]: USL - Stalling pipe 75576576
181.763: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
181.797: [ 0]: USL - findEndpointAddr -1
181.797: [ 0]: USL - Stalling pipe 75576576
181.797: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
181.803: [ 0]: USL - findEndpointAddr -1
181.803: [ 0]: USL - Stalling pipe 75576576
181.803: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
181.837: [ 0]: USL - findEndpointAddr -1
181.837: [ 0]: USL - Stalling pipe 75576576
181.837: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
181.837: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 102
181.945: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
181.978: [ 0]: USL - findEndpointAddr -1
181.978: [ 0]: USL - Stalling pipe 75576576
181.979: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
181.979: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
182.011: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 5
182.011: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
182.011: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.042: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
182.043: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.044: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.076: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
182.076: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.111: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.376: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
182.578: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.588: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.619: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
182.652: [ 0]: USL - findEndpointAddr -1
182.652: [ 0]: USL - Stalling pipe 75576704
182.652: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
182.752: [ 0]: USL - findEndpointAddr -1
182.752: [ 0]: USL - Stalling pipe 75576704
182.752: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
182.852: [ 0]: USL - findEndpointAddr -1
182.852: [ 0]: USL - Stalling pipe 75576704
182.852: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
182.952: [ 0]: USL - findEndpointAddr -1
182.952: [ 0]: USL - Stalling pipe 75576704
182.952: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
183.052: [ 0]: USL - findEndpointAddr -1
183.052: [ 0]: USL - Stalling pipe 75576704
183.052: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
183.052: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 135
183.188: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.221: [ 0]: USL - findEndpointAddr -1
183.221: [ 0]: USL - Stalling pipe 75576704
183.222: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
183.222: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
183.319: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 6
183.319: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
183.419: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
183.419: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.421: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.452: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
183.452: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.748: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
183.941: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.952: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
183.983: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
184.015: [ 0]: USL - findEndpointAddr -1
184.015: [ 0]: USL - Stalling pipe 75576832
--------------------------------

186.392: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
186.423: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
186.689: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
186.883: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
186.894: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
186.925: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
186.958: [ 0]: USL - findEndpointAddr -1
186.958: [ 0]: USL - Stalling pipe 75577216
186.958: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
187.059: [ 0]: USL - findEndpointAddr -1
187.059: [ 0]: USL - Stalling pipe 75577216
187.059: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
187.158: [ 0]: USL - findEndpointAddr -1
187.158: [ 0]: USL - Stalling pipe 75577216
187.158: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
187.258: [ 0]: USL - findEndpointAddr -1
187.258: [ 0]: USL - Stalling pipe 75577216
187.258: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
187.358: [ 0]: USL - findEndpointAddr -1
187.358: [ 0]: USL - Stalling pipe 75577216
187.358: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
187.358: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 267
187.626: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
187.658: [ 0]: USL - findEndpointAddr -1
187.658: [ 0]: USL - Stalling pipe 75577216
187.659: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
187.659: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
187.756: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 10
187.756: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
187.856: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
187.856: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
187.858: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
187.889: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
187.889: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.186: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
188.186: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.217: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.249: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.283: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.316: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.333: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.366: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.399: [ 0]: USL - findEndpointAddr -1
188.399: [ 0]: USL - Stalling pipe 75577344
188.399: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
188.434: [ 0]: USL - findEndpointAddr -1
188.434: [ 0]: USL - Stalling pipe 75577344
188.434: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
188.465: [ 0]: USL - findEndpointAddr -1
188.465: [ 0]: USL - Stalling pipe 75577344
188.465: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
188.470: [ 0]: USL - findEndpointAddr -1
188.470: [ 0]: USL - Stalling pipe 75577344
188.470: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
188.502: [ 0]: USL - findEndpointAddr -1
188.502: [ 0]: USL - Stalling pipe 75577344
188.502: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
188.502: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 300
188.804: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.841: [ 0]: USL - findEndpointAddr -1
188.841: [ 0]: USL - Stalling pipe 75577344
188.842: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
188.842: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
188.876: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 11
188.876: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
188.876: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.911: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
188.911: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.911: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.942: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
188.942: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
188.973: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
189.244: [ 0]: Driver - SimulateRootHubInt- queuing SF for non int case 0
189.436: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
189.446: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
189.477: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
189.509: [ 0]: USL - findEndpointAddr -1
189.509: [ 0]: USL - Stalling pipe 75577472
189.509: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
189.609: [ 0]: USL - findEndpointAddr -1
189.609: [ 0]: USL - Stalling pipe 75577472
189.609: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
189.709: [ 0]: USL - findEndpointAddr -1
189.709: [ 0]: USL - Stalling pipe 75577472
189.709: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
189.809: [ 0]: USL - findEndpointAddr -1
189.809: [ 0]: USL - Stalling pipe 75577472
189.809: [ 75576034]: Driver - Hub Driver Error - Could not read 8 bytes of device descriptor before set address -6911
189.909: [ 0]: USL - findEndpointAddr -1
189.909: [ 0]: USL - Stalling pipe 75577472
189.910: [ 75576034]: Driver - Hub driver - no more reties in device zero -6911
189.910: [ 75576034]: Driver - Hub Driver - Set address failed, giving more time 333
190.244: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
190.276: [ 0]: USL - findEndpointAddr -1
190.276: [ 0]: USL - Stalling pipe 75577472
190.278: [ 0]: USL - UIMEDDelete did not get lock on UIM 0
190.278: [ 75576034]: Driver - Hub Driver Error - Setting the device address -6911
190.375: [ 75576034]: Driver - Hub Driver - Set address failed, increasing time 12
190.375: [ 75576034]: Driver - Hub driver - disabling dead port 1 1
190.475: [ 75576034]: Driver - Hub driver - (1) dead port dead port disabled 1
190.475: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
190.477: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
190.508: [ 75576034]: Driver - Hub Driver - Device found, calling USBHubAddDevice. Port 1
190.508: [ 0]: USL - processDelayQ delayQueueChanged, breaking 0
 

Phipli

Well-known member
Interesting - so why is there an option for a potential divider if you can just use a single resistor?
Because the chip supports both just a polar "power good" or "power bad" signal, or, it can monitor the actual voltage, but you want a potential divider in case someone back feeds 7V. But I don't know what the threshold voltages are for the analogue mode.

I think.
 

Phipli

Well-known member
View attachment 53980

Here's the log - all look fine until you plug in a USB device, then it starts erroring continuously until the device is removed.

I tried it with a an early Apple USB keyboard, with the power key (received it today off eBay in case we want to fiddle with the soft power circuit later on). The caps lock key flashes briefly when plugged in, then goes out.
I've been comparing my orange micro card and your schematic and found a couple of show stoppers as well as some other corrections.

I don't know what value the caps I haven't scribbled on should be, but I feel some of them are too small. I'll come back to that. I might need to dismantle the orange micro card, which I'd rather not. It is the only OPTi card I've found (it's a nice dual FW+USB card, made for macs).

Suggestions (red is certain, blue is... theory/guess) :

20230321_205849.jpg

Your 10k resistors at R43 and R50 are attenuating the USB data lines. The signals can't get through.
 
Last edited:

croissantking

Well-known member
I've been comparing my orange micro card and your schematic and found a couple of show stoppers as well as some other corrections.

I don't know what value the caps I haven't scribbled on should be, but I feel some of them are too small. I'll co.e back to that. I might need to dismantle the orange micro card, which I'd rather not. It is the only OPTi card I've found (it's a nice dual FW+USB card, made for macs).

Suggestions (red is certain, blue is... theory/guess) :

View attachment 53981

Your 10k resistors at R43 and R50 are attenuating the USB data lines. The signals can't get through.
I'll give your suggestions a try now.
 
Top