Is it possible to have my MacBook become an iBeacon? Is it possible to have my MacBook become an iBeacon?

I would like it to broadcast itself to iOS devices which support iBeacons. If this is possible, what are the hardware requirements of the computer (e.g. is Bluetooth 4.0 enough?), and how would I do it?

Update: I am primarily looking for a way to do this without any additional hardware (since my MacBook already has Bluetooth built-in).
If you are a programmer I have posted instructions on how to use a MacBook with Mavericks as an iBeacon.  You can find the instructions on my blog at http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/

If/When I get a chance I may create an app that you can use to advertise an iBeacon.

This is the answer I gave to a similar question on Stack Overflow 



Mavericks doesn't have the iBeacon support in Core Location that was added to iOS 7.  However, Mavericks does now have the ability to act as an BLE peripheral device.  Given that an iBeacon is basically a peripheral it should be (and indeed is) possible to use Mavericks as an iBeacon.

In order to create an iBeacon on iOS you first create a CLBeaconRegion object and then use the peripheralDataWithMeasuredPower: method to get an NSDictionary containing the necessary advertisement data to broadcast.  If you take the contents of this NSDictionary from an iOS device and use it on Mavericks then you get an iBeacon.

I have created a class to make this easier and allow you to generate the advertisement data dictionary directly on Mavericks.  The source code is available at https://github.com/mttrb/BeaconOSX

The BLCBeaconAdvertisementData class take the proximityUUID, major, minor and calibrated power values and creates an NSDictionary that can be passed to the startAdvertising: method of CBPeripheralManager on Mavericks.

The BLCBeaconAdvertisementData class is quite simple.  The main work is done by the following method:

- (NSDictionary *)beaconAdvertisement {
    NSString *beaconKey = @"kCBAdvDataAppleBeaconKey";

    unsigned char advertisementBytes[21] = {0};

    [self.proximityUUID getUUIDBytes:(unsigned char *)&amp;advertisementBytes];

    advertisementBytes[16] = (unsigned char)(self.major &gt;&gt; 8);
    advertisementBytes[17] = (unsigned char)(self.major &amp; 255);

    advertisementBytes[18] = (unsigned char)(self.minor &gt;&gt; 8);
    advertisementBytes[19] = (unsigned char)(self.minor &amp; 255);

    advertisementBytes[20] = self.measuredPower;

    NSMutableData *advertisement = [NSMutableData dataWithBytes:advertisementBytes length:21];

    return [NSDictionary dictionaryWithObject:advertisement forKey:beaconKey];
}


I have a more detailed blog post about this at http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/