Main Site Documentation

Three Bluetooth Modules - Differences?


I have been developing a Bluetooth app using the Fez Bluetooth Component which works perfectly with no special code required (GHI sample code worked right out of the box). For the production versions of the device, I was looking at the following two Bluetooth modules:

Both these modules behave differently than the Fez Bluetooth component. The SeeedStudio module requires code to light it up while the GoodLuckBuy module throws an exception as soon as you instantiate the SerialDataReceivedEventHandler. I was just wondering why the Fez Bluetooth component works without any code and the others do not.

Also, if anybody has code for the SeeedStudio or GoodLuckBuy modules, I’d appreciate it if you would share. I’m about to dive into them both and any time I can save here can be well spent on the app.



The Seeedstudio module requires a bit of code to put it in slave mode. The GHI module ONLY supports slave mode, thus code isn’t required.

Also, I think you only need to do this command once for each Seeedstudio module. It gets saved and from there on it will act like GHI module:

I don’t see how the exception on SerialDataReceivedEventHandler can be related to the module. What is the error and don’t you also get the exception without any module?


This is not technical advice, but is not a domain name I would recommend buying anything from. Luck should not be a factor when buying online. And no, I have never bought anything there, let alone even browsed there…

Why can’t you use the GHI module for production? Well, I guess I answered my own question… it is no longer for sale…

Good luck :smiley:
your friendly online conspiracy theorist


EricH, how about One of the companies I work for use their PSUs and I have always wondered, Mean Well? But not so good?


After doing some research, I found that the Fez Bluetooth component is actually a ZX-Bluetooth module which uses the MBC04 chipset from SmartDesign Technology Company (China). The MBC04 is based on the CSR-BC05 BT chip. SmartDesign superseded the MBC04 with the MBC04A using the Atheros AR3011 but this module doesn’t seem to be available outside of China.

Both SeeedStudio and GoodLuckBuy use the CSR-BC417 BT chip but must have different firmware since they behave differently. SeeedStudio has good documentation but I have not been able to find anything for GoodLuckBuy.

The reason I’m interested in the GoodLuckBuy module is the cost - $6 vs $20 for the SeeedStudio.

I’ll try putting the SeeedStudio into Slave mode to see if it works like the ZX-Bluetooth module. If it does, hopefully all I have to do is figure out how to put the GoodLuckBuy into Slave mode.

The Exception I’m getting on the GoodLuckBuy is actually coming from the SerialErrorReceivedEventHandler and is a code 4. I haven’t tested past this point to see if data can be sent or received and maybe it’s because it’s just not in the correct mode. I’ll experiment a little more.


Update - I’m getting the error code 4 on both modules so I’m guessing it’s in my hardware. The modules are on custom semi-production boards so it may be how the modules are wired to the boards. Any idea what error code 4 means and what could be wrong with the hardware?


Second Update - The problem is with our custom board and we’re debugging it now. The error code 4 will occur if either RX or TX is not connected. I was able to wire up the GoodLuckBuy modules to both our FEZ and Mini boards and it worked exactly like the ZX-Bluetooth does with no code required (it powers up in Slave mode).


Error 4 is a frame error I believe. Typically I have gotten this when the connection is not made properly.

If you want a solid Bluetooth module use Sena. They cost more but you get what you pay for.



Third Update - The code 4 error was caused by our misconnection of the USBizi COM ports. We mistakenly assumed that RX3 and TX3 on the schematic were for COM3 but they are not. COM3 is RX2/TX2. Next time we’ll pay more attention to the pin-outs.