Contribute
Register

BrcmPatchRAM - Upload firmware into Broadcom Bluetooth USB devices

Status
Not open for further replies.
I think it does have firmware preloaded, but I don't own the hardware so cannot confirm.

If it works from cold boot, then it definitely has firmware preload. If it works only after restarting from an OS that has firmware uploading drivers installed... then not so much.

Thanks! Would it be possible to update the 4360HMB's firmware to that of the 4360CD's?
 
Thanks! Would it be possible to update the 4360HMB's firmware to that of the 4360CD's?

Does the 4360HMB have firmware preloaded? (I don't think so).

For "patch ram" devices there is no firmware on the device at all (well, other than bare-bones firmware that allows firmware to be sent by the host). Firmware is loaded by the host OS. For BIOS to support such devices, the BIOS itself would need to upload the firmware to the device.
 
I'm having problems getting my Bluetooth working. After inserting the BrcmPatchRAM.kext, my Bluetooth icon lit up and everything looks good in my System Profiler, but when I try to pair it with any devices, nothing shows up in the Bluetooth preferences. Is there something I can do to figure out why that might be?

Here are my system.log entries:

Code:
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: Firmware store startJul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: probe
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: Version 1.7 starting on OS X Darwin 14.4.
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: getFirmware
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: loadFirmware
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: Retrieved firmware for firmware key "BCM20702A1_001.002.014.1483.1674_v5770".
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: Decompressed firmware (29372 bytes --> 69254 bytes).
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: Firmware is valid IntelHex firmware.
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: USB [24FD528DE699 v274] "BCM920702 Bluetooth 4.0" by "Broadcom Corp"
Jul  6 11:09:05 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Available composite configurations: 1.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Set device configuration to configuration index 0 successfully.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Interface 0 (class ff, subclass 01, protocol 01) located.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x81.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x02.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Unknown" --> "Initialize".
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: READ VERBOSE CONFIG complete (status: 0x00, length: 10 bytes).
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware version: v5434.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Initialize" --> "Update complete".
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware upgrade completed successfully.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 1 matching driver personalities.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: brcmBundIdentifier: "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport"
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: brcmIOClass: "BroadcomBluetoothHostControllerUSBTransport"
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Published new IOKit personality.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 2 matching driver personalities.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.no-one.BrcmPatchRAM".
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: Processing time 0.61 seconds.
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: start
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: setPowerState: which = 0x1

And in my System Information:

Code:
Apple Bluetooth Software Version:    4.3.5f8 15969
Hardware, Features, and Settings:
  Name:    nuudells
  Address:    --REDACTED--
  Bluetooth Low Energy Supported:    Yes
  Handoff Supported:    Yes
  Instant Hotspot Supported:    Yes
  Manufacturer:    Broadcom
  Transport:    USB
  Chipset:    20702A3
  Firmware Version:    v14 c5434
  Bluetooth Power:    On
  Discoverable:    On
  Connectable:    Yes
  Auto Seek Pointing:    Off
  Remote wake:    Off
  Vendor ID:    0x0930
  Product ID:    0x0223
  HCI Version:    0x6
  HCI Revision:    0x153A
  LMP Version:    0x6
  LMP Subversion:    0x220E
  Device Type (Major):    Computer
  Device Type (Complete):    Mac Portable
  Composite Class Of Device:    0x38010C
  Device Class (Major):    0x01
  Device Class (Minor):    0x03
  Service Class:    0x1C0
  Auto Seek Keyboard:    Off
Services:
  Bluetooth File Transfer:
  Folder other devices can browse:    ~/Public
  When receiving items:    Accept all without warning
  State:    Disabled
  Bluetooth File Exchange:
  Folder for accepted items:    ~/Downloads
  When other items are accepted:    Save to location
  When receiving items:    Accept all without warning
  State:    Disabled
  Bluetooth Internet Sharing:
  State:    Disabled
Incoming Serial Ports:
  Bluetooth-Incoming-Port:
  RFCOMM Channel:    3
  Requires Authentication:    No
Outgoing Serial Ports:
  Bluetooth-Modem:
  Address:    
  RFCOMM Channel:    0
  Requires Authentication:    No
 
I'm having problems getting my Bluetooth working. After inserting the BrcmPatchRAM.kext, my Bluetooth icon lit up and everything looks good in my System Profiler, but when I try to pair it with any devices, nothing shows up in the Bluetooth preferences. Is there something I can do to figure out why that might be?

Here are my system.log entries:

Code:
Jul  6 11:09:06 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware version: v5434.

And in my System Information:

Code:
  Firmware Version:    v14 c5434

This looks like a warm boot after running some other OS, so you're getting firmware from Windows or Linux.

Try cold boot into OS X, so you get the firmware from BrcmPatchRAM instead.

Current firmware in BrcmPatchRAM.kext for your device is v5770.
 
This looks like a warm boot after running some other OS, so you're getting firmware from Windows or Linux.

Try cold boot into OS X, so you get the firmware from BrcmPatchRAM instead.

Current firmware in BrcmPatchRAM.kext for your device is v5770.

Thanks RehabMan! I did a cold boot this time and it looks like I got the right firmware, but I'm still having the same problem where I'm not seeing any of my Bluetooth devices in the Bluetooth System Preferences panel. Here's my current system.log:

Code:
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Firmware store start
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: probe
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Version 1.7 starting on OS X Darwin 14.4.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: getFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: loadFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Retrieved firmware for firmware key "BCM20702A1_001.002.014.1483.1674_v5770".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Decompressed firmware (29372 bytes --> 69254 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Firmware is valid IntelHex firmware.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: USB [24FD528DE699 v274] "BCM20702A0" by "Broadcom Corp"
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Available composite configurations: 1.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Set device configuration to configuration index 0 successfully.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Interface 0 (class ff, subclass 01, protocol 01) located.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x81.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x02.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Unknown" --> "Initialize".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: READ VERBOSE CONFIG complete (status: 0x00, length: 10 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware version: v4096.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Initialize" --> "Firmware version".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: getFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Retrieved cached firmware for "BCM20702A1_001.002.014.1483.1674_v5770".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: DOWNLOAD MINIDRIVER complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Firmware version" --> "Mini-driver complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: END OF RECORD complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Instruction write" --> "Firmware written".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: RESET complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Firmware written" --> "Reset complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Device reset.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Device status 0x00000001.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Reset complete" --> "Update complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware upgrade completed successfully.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 1 matching driver personalities.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: brcmBundIdentifier: "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport"
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: brcmIOClass: "BroadcomBluetoothHostControllerUSBTransport"
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Published new IOKit personality.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 2 matching driver personalities.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.no-one.BrcmPatchRAM".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: Processing time 0.505 seconds.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: start
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: setPowerState: which = 0x1
 
Thanks RehabMan! I did a cold boot this time and it looks like I got the right firmware, but I'm still having the same problem where I'm not seeing any of my Bluetooth devices in the Bluetooth System Preferences panel. Here's my current system.log:

Code:
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Firmware store start
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: probe
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Version 1.7 starting on OS X Darwin 14.4.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: getFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: loadFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Retrieved firmware for firmware key "BCM20702A1_001.002.014.1483.1674_v5770".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Decompressed firmware (29372 bytes --> 69254 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Firmware is valid IntelHex firmware.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: USB [24FD528DE699 v274] "BCM20702A0" by "Broadcom Corp"
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Available composite configurations: 1.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Set device configuration to configuration index 0 successfully.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Interface 0 (class ff, subclass 01, protocol 01) located.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x81.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Located pipe at 0x02.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Unknown" --> "Initialize".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: READ VERBOSE CONFIG complete (status: 0x00, length: 10 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware version: v4096.
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Initialize" --> "Firmware version".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: getFirmware
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: Retrieved cached firmware for "BCM20702A1_001.002.014.1483.1674_v5770".
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: DOWNLOAD MINIDRIVER complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:25 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Firmware version" --> "Mini-driver complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: END OF RECORD complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Instruction write" --> "Firmware written".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: RESET complete (status: 0x00, length: 4 bytes).
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Firmware written" --> "Reset complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Device reset.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Device status 0x00000001.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: State "Reset complete" --> "Update complete".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Firmware upgrade completed successfully.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 1 matching driver personalities.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: brcmBundIdentifier: "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport"
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: brcmIOClass: "BroadcomBluetoothHostControllerUSBTransport"
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: Published new IOKit personality.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: 2 matching driver personalities.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.no-one.BrcmPatchRAM".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: [0930:0223]: existing IOKit personality "com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport".
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: Processing time 0.505 seconds.
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: start
Jul  8 13:56:26 nuudells kernel[0]: BrcmPatchRAM: setPowerState: which = 0x1

You can change the Info.plist entry for your device to use a different firmware.

So... seems like v5434 and v5770 not working for you...

My device uses v5744, and it is of the same family as yours so maybe that is something to try.
 
You can change the Info.plist entry for your device to use a different firmware.

So... seems like v5434 and v5770 not working for you...

My device uses v5744, and it is of the same family as yours so maybe that is something to try.

Thanks RehabMan. v5744 does seem to be working a lot better for me. Bluetooth is now working!
 
Thanks RehabMan. v5744 does seem to be working a lot better for me. Bluetooth is now working!

I hope this is not a situation where what works on one device (with the same IDs) doesn't work on another.

@the-darkvoid: Any comment?
 
Status
Not open for further replies.
Back
Top