Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacNB2

macrumors 6502
Original poster
Jul 21, 2021
311
247
To solve the problem of Big Sur USB Bluetooth issues (due to USB 1.1 compatibility), it's well documented that USB 1.1 peripherals need to plugged into a USB 2.0 Hub. That's OK for external peripherals. In a cMP one of the USB 1.1 peripheral is Bluetooth controller (either the factory fitted one or the one of a Combo WiFi + BT upgrade cards).

The issue does not manifest if you do not multiboot different macOS versions. But if for example one boots an older OS X followed by Big Sur, bluetooth keyboard does not work and warm restart immediately will restore BT.

So I built added an off-the-shelf tiny 4-port internal USB Hub board cheap from Aliexpress:

IMG_4896.jpg

The concept is similar to the board @cdf was developing but this one not as sophisticated.
This board is based on FE1.1S USB hub chip that is rated at 5v but works well at 3.3v too.
The under-side shows classic 5v USB voltage (but works at MacPro's 3.3v):

IMG_4897.jpg

This board needs to be attached to USB header on the Logicboard:

IMG_4902.jpg

The idea is to attach the BT controller on the Upstream of the Hub so that the Logicboard's USB controller "sees" the USB 1.1 peripheral and attach it so that macOS uses the EHC drivers thus satisfying compatibility requirements.
That is, insert this USB 2.0 Hub in-between the Logicboard and the BT controller (or any other USB 1.1 peripheral).

I bought the required connectors and cables from Pi Hut store.
Essential connectors are:
  • JST PH (2.0mm pitch) for the USB Hub board
  • PicoBlade (1.25mm pitch) for Logicboard header connector
IMG_4893.jpg

The USB Hub can be mounted on the screw-piller of the BT controller. Test placement:

IMG_4903.jpg

Eventually the existing little BT controller (BCM92046MD) will be replaced by the WiFi+BT combo card (BCM943602CDP).

First added the JST PH connectors to the USB Hub board (just one for Logicboard connection and one for the USB 1.1 peripheral and left 3 others spare):

IMG_4899.jpg

Next I built some test cables to attached the USB Hub board to the logicboard and the exiting BT controller:

IMG_4905.jpg

IMG_4906.jpg

Success.
The new USB Hub is recognised as USB 2.0 (from vendor Terminus Technology Inc.) and the BT controller works fine:

cMP-BT.png

Next, removed the long test cables, made much short ones, removed the BCM92046MD & exiting Wi-Fi card and replaced with BCM943602CDP and added a 2-wire (D+ & D-) cable for the BT controller on the BCM943602CDP:

IMG_4909.jpg

IMG_4911.jpg

Again, success:

iMac-BT.png

So now the BT works in Mojave, Catalina, Big Sur & Monterey.
BT works fine between multi-booting different macOS's.

The only issue is switching between older High Sierra & Monterey. Booting Monterey after High Sierra looses connection with BT keyboard and mouse for about 30-40 seconds and eventually connects allowing me to login. Maybe some NVRAM compatibility issue as BT info is stored there (?)

In summary, cheap little board for adding internal USB 2.0 Hub for up to 4 peripherals.
Hope this helps others feeling adventurous to tackle a S/W problem with a H/W solution.
 

Attachments

  • IMG_4909.jpg
    IMG_4909.jpg
    474 KB · Views: 197
Really nice write-up, and good-looking work. Thanks for taking the time!

I too had a similar idea (still holding out hope @cdf does a production run of his olá board). The hub I bought is a bit bigger but already has two 2-port USB header connectors soldered on as well as a 4-pin dupont-style connector for the uplink connection. Example link, but there are tons of these kinds of hubs on amazon, ebay aliexpress, etc.

I'm not really good at making cables (especially crimping the damn ends on the wires) so I tried to put together a solution that used all pre-made components:

For the Picoblade connector on the backplane to the USB hub, I found this cool little collection of pre-made cables on amazon. Each has a picoblade-style connector on one end (various # of connectors) and then each individual wire terminates to a 1-pin Dupont-style connector on the other end. There is a 4-pin cable in the set, so I was able to use that and just manually arrange the 1-pin Dupont connectors onto the input pins on the USB hub in the proper order. I will eventually remove the 1-pin connectors and replace with a proper 4-pin Dupont connector, but there's no reason you can't leave it the way it is.

One of the 9-pin output connectors on the USB hub I connected to my Titan Ridge Thunderbolt3 card. This allows for the ability to connect USB1.1 & USB2.0 peripherals to the card's thunderbolt ports (or a downstream USB hub etc.). The other 9-pin output I ran to my BCM943602 Airport card via a MiniPCIe adapter card that has a 9-pin USB header already attached. If you have the more common BCM94360 then you can use this adapter which includes a cable with a 9-pin header.

Then you just have to plug everything in and carefully route the wires. You might have to get creative with placement of the hub (it has no hole to permit screwing into the original bluetooth card location. With all the premade cables it creates a bit of a cable mess inside, but I'm hoping it will just be a temporary solution while I wait to see if I can get an olá board. @MacNB2 's solution is much neater, as long as you're willing to do a little soldering and make some cables.
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
This is no longer necessary. OCLP 0.6.5 nightly builds has a work-around for this. It is targeting Ventura.
I can run this with my PCIe USB 3 card!
If you do not have a PCIe card, 0.6.4 also worked with the OHCI controller,
But this should not be needed for Monterey or earlier.
 
This is no longer necessary. OCLP 0.6.5 nightly builds has a work-around for this.
Yes and no. The software patching approach won’t work in Recovery and Installer modes. These are two important cases where BT functionality may be required for keyboard and mouse input. Wired alternatives also depend on UHCI, so these will also be problematic without a hub.
 
This is no longer necessary. OCLP 0.6.5 nightly builds has a work-around for this. It is targeting Ventura.
I can run this with my PCIe USB 3 card!
If you do not have a PCIe card, 0.6.4 also worked with the OHCI controller,
But this should not be needed for Monterey or earlier.

Not completely solved. For fresh installs you need an external USB 2.0 Hub.
See their guide here.

Screenshot 2023-04-26 at 11.28.17.png
 
Last edited:
  • Like
Reactions: bmoraski
Yes and no. The software patching approach won’t work in Recovery and Installer modes. These are two important cases where BT functionality may be required for keyboard and mouse input. Wired alternatives also depend on UHCI, so these will also be problematic without a hub.
you beat me to it
 
  • Haha
Reactions: cdf
Dear MacNB2

I wanted to thank you full heartedly for your excellent description above. Thanks to you, finally my favourite speakers MM1 from Browsers&Wilkins do work again. Finally USB2 Hub is in working order. Attached below some bits from this fun Mac Improvement project. And thanks Alibaba, - Cost up upgrade $9,24Screenshot 2023-07-16 at 16.56.31.pngScreenshot 2023-07-16 at 16.55.54.png
 
Dear MacNB2

I wanted to thank you full heartedly for your excellent description above. Thanks to you, finally my favourite speakers MM1 from Browsers&Wilkins do work again. Finally USB2 Hub is in working order. Attached below some bits from this fun Mac Improvement project. And thanks Alibaba, - Cost up upgrade $9,24View attachment 2233321View attachment 2233322

You most welcome - glad the project worked for you.
Great job.
 
  • Like
Reactions: AlexMaximus
This is no longer necessary. OCLP 0.6.5 nightly builds has a work-around for this. It is targeting Ventura.
I can run this with my PCIe USB 3 card!
If you do not have a PCIe card, 0.6.4 also worked with the OHCI controller,
But this should not be needed for Monterey or earlier.
I've got cmp 5.1 and Monterey with OCLP 6.7 and still problems with USB and bluetooth. While it was perfectly working with High Sierra, it's playing up with Monterey.
 
I've got cmp 5.1 and Monterey with OCLP 6.7 and still problems with USB and bluetooth. While it was perfectly working with High Sierra, it's playing up with Monterey.
OCLP 0.6.7 should work fine for cmp 5.1. Something clearly gone wrong with your config.
Any case, you do not need to use OCLP to install and run Monterey on cmp 5.1 if you have upgraded the Wifi+BT board. (however, you will need it to run Ventura and Sonoma).

Just use the process described here or here for manually configured Opencore.
 
Last edited:
To solve the problem of Big Sur USB Bluetooth issues (due to USB 1.1 compatibility), it's well documented that USB 1.1 peripherals need to plugged into a USB 2.0 Hub. That's OK for external peripherals. In a cMP one of the USB 1.1 peripheral is Bluetooth controller (either the factory fitted one or the one of a Combo WiFi + BT upgrade cards).

The issue does not manifest if you do not multiboot different macOS versions. But if for example one boots an older OS X followed by Big Sur, bluetooth keyboard does not work and warm restart immediately will restore BT.

So I built added an off-the-shelf tiny 4-port internal USB Hub board cheap from Aliexpress:

View attachment 2193577

The concept is similar to the board @cdf was developing but this one not as sophisticated.
This board is based on FE1.1S USB hub chip that is rated at 5v but works well at 3.3v too.
The under-side shows classic 5v USB voltage (but works at MacPro's 3.3v):

View attachment 2193580

This board needs to be attached to USB header on the Logicboard:

View attachment 2193581

The idea is to attach the BT controller on the Upstream of the Hub so that the Logicboard's USB controller "sees" the USB 1.1 peripheral and attach it so that macOS uses the EHC drivers thus satisfying compatibility requirements.
That is, insert this USB 2.0 Hub in-between the Logicboard and the BT controller (or any other USB 1.1 peripheral).

I bought the required connectors and cables from Pi Hut store.
Essential connectors are:
  • JST PH (2.0mm pitch) for the USB Hub board
  • PicoBlade (1.25mm pitch) for Logicboard header connector
View attachment 2193586

The USB Hub can be mounted on the screw-piller of the BT controller. Test placement:

View attachment 2193608

Eventually the existing little BT controller (BCM92046MD) will be replaced by the WiFi+BT combo card (BCM943602CDP).

First added the JST PH connectors to the USB Hub board (just one for Logicboard connection and one for the USB 1.1 peripheral and left 3 others spare):

View attachment 2193609

Next I built some test cables to attached the USB Hub board to the logicboard and the exiting BT controller:

View attachment 2193610

View attachment 2193614

Success.
The new USB Hub is recognised as USB 2.0 (from vendor Terminus Technology Inc.) and the BT controller works fine:

View attachment 2193615
Next, removed the long test cables, made much short ones, removed the BCM92046MD & exiting Wi-Fi card and replaced with BCM943602CDP and added a 2-wire (D+ & D-) cable for the BT controller on the BCM943602CDP:

View attachment 2193617

View attachment 2193619

Again, success:

View attachment 2193618
So now the BT works in Mojave, Catalina, Big Sur & Monterey.
BT works fine between multi-booting different macOS's.

The only issue is switching between older High Sierra & Monterey. Booting Monterey after High Sierra looses connection with BT keyboard and mouse for about 30-40 seconds and eventually connects allowing me to login. Maybe some NVRAM compatibility issue as BT info is stored there (?)

In summary, cheap little board for adding internal USB 2.0 Hub for up to 4 peripherals.
Hope this helps others feeling adventurous to tackle a S/W problem with a H/W solution.
Hi.
Nice work. Is it possible for you to specify where and what you bought this stuff? I need to connect my TitanRidge thunderbolt 3 card to a USB connection in order to boot on my external USB C disk connected to one of my thunderbolt ports. I need three connectors on the hub-card because I have a Broadcom Bcm943602cs connected for WiFi and Bluetooth.
 
  • Like
Reactions: MacNB2
Hi.
Nice work. Is it possible for you to specify where and what you bought this stuff? I need to connect my TitanRidge thunderbolt 3 card to a USB connection in order to boot on my external USB C disk connected to one of my thunderbolt ports. I need three connectors on the hub-card because I have a Broadcom Bcm943602cs connected for WiFi and Bluetooth.

In the 1st post there are specs & links to the board and connectors I bought:
- USB board from Aliexpress
- JST PH (2.0mm pitch) for the USB Hub board
- PicoBlade (1.25mm pitch) for Logicboard header connector

For the BT antenna extender, I built my own from some spare cable and a small piece Vero board that I had (on to which I soldered a SMP connector):

IMG_3290.jpeg

Took off the SMT connector from a donor board:
IMG_3291.jpeg

Soldered with hot air station before being cleaned in an ultrasonic cleaner and painted:

IMG_3292.jpeg

IMG_4909.jpg
 
Last edited:
Hi MacNB2,

So far I am very happy with my Monterey Install, flawless all the way. However I wanted to ask you if you did upgrade to Ventura MacOS already and if you can recommend Ventura on the Mac Pro 5.1 at this time?

It seems to me, folks like us with the actual USB2.0 header hardware upgrade should experience no or at least less problems with Ventura.

I have found some discussions on OpenCore Forum, but our hardware upgrade should circumvent exactly the described problem down below:


Whats your take on this?
 
Hi MacNB2,

So far I am very happy with my Monterey Install, flawless all the way. However I wanted to ask you if you did upgrade to Ventura MacOS already and if you can recommend Ventura on the Mac Pro 5.1 at this time?

It seems to me, folks like us with the actual USB2.0 header hardware upgrade should experience no or at least less problems with Ventura.

I have found some discussions on OpenCore Forum, but our hardware upgrade should circumvent exactly the described problem down below:


Whats your take on this?

Hi @AlexMaximus
No I have not upgraded to Ventura (nor Sonoma).

The issue of running those new OS's it not just about the USB 1.1 peripherals.
Ventura and Sonoma require the old drivers and Frameworks to be added to those OS's. And it is no longer a simple matter of injecting those into the OS via OpenCore as those OS's have been secured in such a way that they cannot be simply hacked like Monterey or previous versions.
Instead the seal of the root volume has to be broken (unsealed) and then those old modified drivers/frameworks inserted.

Consequently, there are certain drawbacks such as Security (it lessens compared to running Big Sur or Monterey). Also, it's unclear if all the Apps would work as Mac Pro 5.1 do not have AVX instructions that may be the newer OS's reply only (temporarily till Intel is completely ditched).

Big Sur has been "suspended" as it will not receive any more updates. Monterey will probably last another year so I am happy to stay on that as it meets my needs.

I have installed Sonoma on my Mac mini and MBPr 10,1 and do not see why I need it.
 
Last edited:
Hi @AlexMaximus
No I have not upgraded to Ventura (nor Sonoma).

The issue of running those new OS's it not just about the USB 1.1 peripherals.
Ventura and Sonoma require the old drivers and Frameworks to be added to those OS's. And it is no longer a simple matter of injecting those into the OS via OpenCore as those OS's have been secured in such a way that they cannot be simply hacked like Monterey or previous versions.
Instead the seal of the root volume has to be broken (unsealed) and then those old modified drivers/frameworks inserted.

Consequently, there are certain drawbacks such as Security (it lessens compared to running Big Sur or Monterey). Also, it's unclear if all the Apps would work as Pac Pro 5.1 do not have AVX instructions that may be the newer OS's reply only (temporarily till Intel is completely ditched).

Big Sur has been "suspended" as it will not receive any more updates. Monterey will probably last another year so I am happy to stay on that as it meets my needs.

I have installed Sonoma on my Mac mini and MBPr 10,1 and do not see why I need it.
Thank you so much for your perspective. Further reading on my end got me the same conclusion as yours.
It looks like it’s best to freeze that 5.1 on Monterey. That’s to bad, but still the very best machine I ever got in life.
I will do the same as you do. Just get a new updated MacBook Pro and keep the 5.1.
 
MacNB2,

Just wanted to add my thanks for your clear writeup (including links to the parts).

Still able to order everything in early 2024.

Regards,
sfalatko
 
It's not too much extra work to wire the fourth port for a dedicated OpenCore flash drive.

12z_USB.jpg


I built this before finding this thread and didn't realize the Bluetooth header was 3.3v; I'll eventually rewire it from a 5v source. For now the SanDisk Ultra runs fine on 3.3v, and the Titan Ridge provides 5.5v whenever the machine is powered on. Sleep presents complications, however.

The hub is one of these bulkier ones, jammed in the corner beneath the ethernet ports. It's a tight fit with the CPU cage; screwing it back in requires a little manual alignment. With the wires clipped alongside the Bluetooth antenna it works fine.

USBhub.jpg
CornetShot.jpg


USB hub: https://www.amazon.com/gp/product/B08N4QVMJ5
Same Amazon wiring kit referenced above: https://www.amazon.com/gp/product/B07PWZTC88
A nine-pin cable for the Titan Ridge: https://www.amazon.com/gp/product/B097GHT5N4
And a set of these external ports: https://www.amazon.com/gp/product/B0CP154DSX

Installation wasn't too complex:

• One of the four-pin picoblade connectors from the kit is connected to the hub's uplink using the backplane pinout commented by Blair at the end of this page:
1. D- (This is the top most pin and has a little triangle silkscreen next to it)
2. D+
3. VCC
4. GND (Bottom most pin towards the bottom of the chassis.

(The hub's included cable follows the standard colors and order used by standard nine-pin headers):
Red - VCC
White - D-
Green - D+
Black - GND

• The nine-pin cable is installed directly between one of the hub's headers and the Titan Ridge

• The two external ports are cut apart - this involved removing the heatshrink, severing the combined EMI shield, and using a sewing pin to release the four pin contacts from the nine-pin plug

• The kit's two-pin picoblade connector is used to bridge the existing Bluetooth connection, since my BCM94360 adapter has a soldered-on USB cable. I released the two Dupont pin contacts and inserted them into the open side of the nine-pin connector of the external ports kit, then released the two picoblade contacts from the other side. Also released the two picoblade contacts from the four-pin picoblade plug preinstalled on my BCM94360 adapter, then pressure-fit [mashed] the two picoblade contact pairs together which made soldering (then heatshrinking) the tiny cables relatively easy.

• The nine-pin plug combining the USB port and Bluetooth connection is inserted into the second header on the hub, then onto cable management. I ran the Titan Ridge's cable up the inside of the exhaust fan shroud since it's only just long enough to reach the card that way. The USB port cable is much longer, so I stored some of the extra in the cavity below the CPU cage and ran that cable up the outside edge of the exhaust fan shroud, just enough to have the port sitting alongside the graphics card. (I'm considering modifying the Amfeltec card's bracket with an opening to make the USB port external for easier access.) The cables from the backplane header and to the Bluetooth card are run alongside the Bluetooth antenna in the factory clips.

If you have an osxwifi adapter instead it's even easier to just use a premade two-pin Dupont cable and release the pin contacts from one end to insert them into the open side of the nine-pin plug on the external ports kit for a completely solder-free install.
 
Last edited:
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
It's not too much extra work to wire the fourth port for a dedicated OpenCore flash drive.

View attachment 2374676

I built this before finding this thread and didn't realize the Bluetooth header was 3.3v; I'll eventually rewire it from a 5v source. For now the SanDisk Ultra runs fine on 3.3v, and the Titan Ridge provides 5.5v whenever the machine is powered on. Sleep presents complications, however.

The hub is one of these bulkier ones, jammed in the corner beneath the ethernet ports. It's a tight fit with the CPU cage; screwing it back in requires a little manual alignment. With the wires clipped alongside the Bluetooth antenna it works fine.

View attachment 2374677View attachment 2374679

USB hub: https://www.amazon.com/gp/product/B08N4QVMJ5
Same Amazon wiring kit referenced above: https://www.amazon.com/gp/product/B07PWZTC88
A nine-pin cable for the Titan Ridge: https://www.amazon.com/gp/product/B097GHT5N4
And a set of these external ports: https://www.amazon.com/gp/product/B0CP154DSX

Installation wasn't too complex:

• One of the four-pin picoblade connectors from the kit is connected to the hub's uplink using the backplane pinout commented by Blair at the end of this page:
1. D- (This is the top most pin and has a little triangle silkscreen next to it)
2. D+
3. VCC
4. GND (Bottom most pin towards the bottom of the chassis.

(The hub's included cable follows the standard colors and order used by standard nine-pin headers):
Red - VCC
White - D-
Green - D+
Black - GND

• The nine-pin cable is installed directly between one of the hub's headers and the Titan Ridge

• The two external ports are cut apart - this involved removing the heatshrink, severing the combined EMI shield, and using a sewing pin to release the four pin contacts from the nine-pin plug

• The kit's two-pin picoblade connector is used to bridge the existing Bluetooth connection, since my BCM94360 adapter has a soldered-on USB cable. I released the two Dupont pin contacts and inserted them into the open side of the nine-pin connector of the external ports kit, then released the two picoblade contacts from the other side. Also released the two picoblade contacts from the four-pin picoblade plug preinstalled on my BCM94360 adapter, then pressure-fit [mashed] the two picoblade contact pairs together which made soldering (then heatshrinking) the tiny cables relatively easy.

• The nine-pin plug combining the USB port and Bluetooth connection is inserted into the second header on the hub, then onto cable management. I ran the Titan Ridge's cable up the inside of the exhaust fan shroud since it's only just long enough to reach the card that way. The USB port cable is much longer, so I stored some of the extra in the cavity below the CPU cage and ran that cable up the outside edge of the exhaust fan shroud, just enough to have the port sitting alongside the graphics card. (I'm considering modifying the Amfeltec card's bracket with an opening to make the USB port external for easier access.) The cables from the backplane header and to the Bluetooth card are run alongside the Bluetooth antenna in the factory clips.

If you have an osxwifi adapter instead it's even easier to just use a premade two-pin Dupont cable and release the pin contacts from one end to insert them into the open side of the nine-pin plug on the external ports kit for a completely solder-free install.

hi there, i purchased pretty much the same hardware as you, but my bluetooth adapter still shows up as null. any tips?
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
This is a great weekend project. I've decided to implement my USB Mouse receiver into the Mac Pro, as well as an Apple IR receiver from a Mac Mini. Everything works as described. I only boot into Catalina and besides the slight delay of function after boot, no other strange behaviour noticed. Thank you @MacNB2!
 
  • Like
Reactions: MacNB2
This is a great weekend project. I've decided to implement my USB Mouse receiver into the Mac Pro, as well as an Apple IR receiver from a Mac Mini. Everything works as described. I only boot into Catalina and besides the slight delay of function after boot, no other strange behaviour noticed. Thank you @MacNB2!
Well done. Glad it works for you.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.