Contribute
Register

AzureWave NB037H (WiFi+BT Combo) with Kext

SJ_UnderWater

Moderator
Joined
Dec 3, 2010
Messages
707
Motherboard
Gigabyte GA-H55M-S2V
CPU
Intel i3-530
Graphics
HIS HD 6570
Mac
iMac
Classic Mac
Mobile Phone
Android
So i know a lot of previous work has been done on WiFi+BT mPCIe combo cards by the laptop users, but when building my DQ77KB, one of my requirements was a combo that fit on-board, for simplicity. After trying the BCM943225HMB and getting nowhere, I decided to try the IOath3kfrmwr kext used by the probook-ers and get an AW-NB037H (AzureWave) card working. The cards are cheap, <$10, and I know the AR9285 WiFi part works because my Rosewill uses the same chipset.
The card arrived yesterday and I quickly got the WiFi working using my old materials. If it's possible to permanently flash a device to a better state, I will do it, so I flashed the locale to 0x0 as described in that thread, allowing OSX to set the locale dynamically based on Location Services, and also preventing the warnings from spamming the log.
Bluetooth was much harder because the chip as-is will load the bluetooth stack, but not actually start functioning. When I realized the IOath3kfrmwr was designed for a slightly different chip, I reworked it, starting more-or-less from the ground up (in this case the Anchor USB example Apple bundles with IOUSBFamily), and carefully adding back the necessary elements, doing some housekeeping here and there (the debug version is significantly more verbose). The result is net.sourceforge.awnb037h, which I release with no claims of ownership.
For the NB037H, the kext now contains both WiFi and Bluetooth injectors, should be installed permanently, and was tested with the NB037H without issue both after installation and after cold boot. It will flash the chip to a different set of USB IDs, which unloads the flashing kext ("flashed successfully"). The result is pretty good, but both firmware files I could find for IOath3kfrmwr couldn't fix BT PM, so not only does it not support wake (PowerOptions 0xF), it doesn't even support power-off (PowerOptions 0x1), which means if your boot is particularly fast (my Mushkin) then the call to configurePM may timeout some time after you log in (the bluetooth menu extra will be in the broken/disabled state until the timeout).
I freely admit this isn't ideal, but both functions work, and the only requirement is a single kext.

Download AzureWave NB037H Source
 
Joined
Nov 10, 2011
Messages
1,485
Motherboard
GA-H77N-WIFI F4
CPU
i7-3770
Graphics
HD 4000
Mobile Phone
Android
So i know a lot of previous work has been done on WiFi+BT mPCIe combo cards by the laptop users, but when building my DQ77KB, one of my requirements was a combo that fit on-board, for simplicity. After trying the BCM943225HMB and getting nowhere, I decided to try the IOath3kfrmwr kext used by the probook-ers and get an AW-NB037H (AzureWave) card working. The cards are cheap, <$10, and I know the AR9285 WiFi part works because my Rosewill uses the same chipset.
The card arrived yesterday and I quickly got the WiFi working using my old materials. If it's possible to permanently flash a device to a better state, I will do it, so I flashed the locale to 0x0 as described in that thread, allowing OSX to set the locale dynamically based on Location Services, and also preventing the warnings from spamming the log.
Bluetooth was much harder because the chip as-is will load the bluetooth stack, but not actually start functioning. When I realized the IOath3kfrmwr was designed for a slightly different chip, I reworked it, starting more-or-less from the ground up (in this case the Anchor USB example Apple bundles with IOUSBFamily), and carefully adding back the necessary elements, doing some housekeeping here and there (the debug version is significantly more verbose). The result is net.sourceforge.awnb037h, which I release with no claims of ownership.
For the NB037H, the kext now contains both WiFi and Bluetooth injectors, should be installed permanently, and was tested with the NB037H without issue both after installation and after cold boot. It will flash the chip to a different set of USB IDs, which unloads the flashing kext ("flashed successfully"). The result is pretty good, but both firmware files I could find for IOath3kfrmwr couldn't fix BT PM, so not only does it not support wake (PowerOptions 0xF), it doesn't even support power-off (PowerOptions 0x1), which means if your boot is particularly fast (my Mushkin) then the call to configurePM may timeout some time after you log in (the bluetooth menu extra will be in the broken/disabled state until the timeout).
I freely admit this isn't ideal, but both functions work, and the only requirement is a single kext.

Download AzureWave NB037H Source
Actually, it's possible to change the WiFi region in the atheros chip. There is an utility, called Atheros 9xxx EEPROM tool, it can be used for such modification. You can find more info about the procedure here. And here you can find an alternative method.

The Bluetooth kext, looks familiar, it is something like this?
 

SJ_UnderWater

Moderator
Joined
Dec 3, 2010
Messages
707
Motherboard
Gigabyte GA-H55M-S2V
CPU
Intel i3-530
Graphics
HIS HD 6570
Mac
iMac
Classic Mac
Mobile Phone
Android
Philip, I can see you didn't click on my links because that's exactly what I used in my old Rosewill thread. The CommView and assorted other tools, including the RegDomain app in a zip called AR9285Tools. And yes, I mention clearly that the kext above is based on IOath3kfrmwr. You might also notice that I release my rebuild without any claims. You can do what you like with it.
 
Joined
Nov 10, 2011
Messages
1,485
Motherboard
GA-H77N-WIFI F4
CPU
i7-3770
Graphics
HD 4000
Mobile Phone
Android
Philip, I can see you didn't click on my links because that's exactly what I used in my old Rosewill thread. The CommView and assorted other tools, including the RegDomain app in a zip called AR9285Tools. And yes, I mention clearly that the kext above is based on IOath3kfrmwr. You might also notice that I release my rebuild without any claims. You can do what you like with it.
No, no, no, you got me wrong, I asked about it just of curiosity, I have no intention to do anything with it or raise a claim or something.

You know, I have one Atheros 9280 in my desktop, which I've reprogrammed with the RCU method, now it's programmed with WORLD1 code or something (I don't remember right now what exactly was the code, 0x37 I think) and this way the card is suppose to work with channels 1-13, but the location service is still working (my router doesn't broadcast any country code, but rest around me do) and I get often the US regulations, because someone around me is broadcasting the US code (I'm not sure if he even knows what he's doing). Do you know how this can be fixed?

The same thing is happening with the Atheros 9285 + Bluetooth combo card in my HP ProBook 4330s (and the region in its EERPOM is not 0x0).
 

SJ_UnderWater

Moderator
Joined
Dec 3, 2010
Messages
707
Motherboard
Gigabyte GA-H55M-S2V
CPU
Intel i3-530
Graphics
HIS HD 6570
Mac
iMac
Classic Mac
Mobile Phone
Android
again referring to my rosewill thread, I tried quite a few locales/regdomains before settling on 0x0, because there was no available information about the issue at the time, besides a few scraps. 0x0 throws no warnings, unlike any of the specific ones 0x3a, 0x10, the China one the rosewill came with, and the WORLD, like 0x60 which my AW came with "UNKNOWN LOCALE 0x__". Location Services and other features work fine, but the idea is that the card isn't keyed to a specific country, and instead sets its "supported" channels and other regulatory settings by determining its location so that Apple can comply with local law. When it can't change the locale, it throws several warnings, which end up spamming the log if you do a lot of WiFi work. If a router in your area needs correction, use any GPS+WiFi device for a few days (preferably more than one), and the databases will correct themselves soon.
 
Joined
Nov 10, 2011
Messages
1,485
Motherboard
GA-H77N-WIFI F4
CPU
i7-3770
Graphics
HD 4000
Mobile Phone
Android
again referring to my rosewill thread, I tried quite a few locales/regdomains before settling on 0x0, because there was no available information about the issue at the time, besides a few scraps. 0x0 throws no warnings, unlike any of the specific ones 0x3a, 0x10, the China one the rosewill came with, and the WORLD, like 0x60 which my AW came with "UNKNOWN LOCALE 0x__". Location Services and other features work fine, but the idea is that the card isn't keyed to a specific country, and instead sets its "supported" channels and other regulatory settings by determining its location so that Apple can comply with local law. When it can't change the locale, it throws several warnings, which end up spamming the log if you do a lot of WiFi work. If a router in your area needs correction, use any GPS+WiFi device for a few days (preferably more than one), and the databases will correct themselves soon.
I see. Thanks for the tip. :thumbup:
 
Joined
Jan 27, 2013
Messages
204
Motherboard
HP Elitebook 8570w/Clover
CPU
Intel Core i7-3630QM/QM77
Graphics
Nvidia K1000M 1920x1080
Mac
Classic Mac
Mobile Phone
So i know a lot of previous work has been done on WiFi+BT mPCIe combo cards by the laptop users, but when building my DQ77KB, one of my requirements was a combo that fit on-board, for simplicity. After trying the BCM943225HMB and getting nowhere, I decided to try the IOath3kfrmwr kext used by the probook-ers and get an AW-NB037H (AzureWave) card working. The cards are cheap, <$10, and I know the AR9285 WiFi part works because my Rosewill uses the same chipset.
The card arrived yesterday and I quickly got the WiFi working using my old materials. If it's possible to permanently flash a device to a better state, I will do it, so I flashed the locale to 0x0 as described in that thread, allowing OSX to set the locale dynamically based on Location Services, and also preventing the warnings from spamming the log.
Bluetooth was much harder because the chip as-is will load the bluetooth stack, but not actually start functioning. When I realized the IOath3kfrmwr was designed for a slightly different chip, I reworked it, starting more-or-less from the ground up (in this case the Anchor USB example Apple bundles with IOUSBFamily), and carefully adding back the necessary elements, doing some housekeeping here and there (the debug version is significantly more verbose). The result is net.sourceforge.awnb037h, which I release with no claims of ownership.
For the NB037H, the kext now contains both WiFi and Bluetooth injectors, should be installed permanently, and was tested with the NB037H without issue both after installation and after cold boot. It will flash the chip to a different set of USB IDs, which unloads the flashing kext ("flashed successfully"). The result is pretty good, but both firmware files I could find for IOath3kfrmwr couldn't fix BT PM, so not only does it not support wake (PowerOptions 0xF), it doesn't even support power-off (PowerOptions 0x1), which means if your boot is particularly fast (my Mushkin) then the call to configurePM may timeout some time after you log in (the bluetooth menu extra will be in the broken/disabled state until the timeout).
I freely admit this isn't ideal, but both functions work, and the only requirement is a single kext.

Download AzureWave NB037H Source

Excuse me for the ultimate noob questions, but I just installed ML on a Intel NUC. I put a NB037H card in it and have WiFi working. What is the purpose of the old materials you mentioned? Do I need them? Can I still use your kext to get BT working? Where can I download the kext? Both net.sourceforge.awnb037h, and Download AzureWave NB037H Source seem to point to the same files?
 

SJ_UnderWater

Moderator
Joined
Dec 3, 2010
Messages
707
Motherboard
Gigabyte GA-H55M-S2V
CPU
Intel i3-530
Graphics
HIS HD 6570
Mac
iMac
Classic Mac
Mobile Phone
Android
the "Tools" package in the first link can be used to set your locale to 0x0. Both of the next links point to the source Xcode project so you can compile the kext. If you already have WiFi working, either delete your existing solution or remove the WiFi entries from AzureWaveN037H.kext once built
 
Joined
Oct 13, 2010
Messages
27
Motherboard
msi z77-gd65
CPU
3570k
Graphics
gtx 580
the "Tools" package in the first link can be used to set your locale to 0x0. Both of the next links point to the source Xcode project so you can compile the kext. If you already have WiFi working, either delete your existing solution or remove the WiFi entries from AzureWaveN037H.kext once built
Can someone please help me, with compiling this kext.
i downloaded xcode, then i press build... what do i do next?
i cant seem to export this kext anyhow.
 

SJ_UnderWater

Moderator
Joined
Dec 3, 2010
Messages
707
Motherboard
Gigabyte GA-H55M-S2V
CPU
Intel i3-530
Graphics
HIS HD 6570
Mac
iMac
Classic Mac
Mobile Phone
Android
by default products end up in "~/Library/Developer/Xcode/DerivedData/<project>-*/Build/Products/<build>" Where "<project>-*" is something like "MaciASL-32847923487" if you were building MaciASL, and "<build>" is either Debug or Release.
In Xcode find the Products group in the files view on the left side and open it to find the kext (this will be the Debug version), or choose Product > Archive in Xcode, then Distribute from the window which opens after the build finishes, and follow the wizard's steps.
 
Top