# Can't have Bluetooth and some other extensions

**URL:** <https://forum.makecode.com/t/cant-have-bluetooth-and-some-other-extensions/15084>\
**Category:** micro:bit\
**Tags:** extension\
**Created:** [August 25, 2022, 10:46pm UTC](https://forum.makecode.com/t/cant-have-bluetooth-and-some-other-extensions/15084 "2022-08-25T22:46:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![keble6](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@keble6](https://forum.makecode.com/u/keble6)\
**Post date:** [August 25, 2022, 10:46pm UTC](https://forum.makecode.com/t/cant-have-bluetooth-and-some-other-extensions/15084/1 "2022-08-25T22:46:53Z")

</div>

What are the rules for adding the Bluetooth extension? I tried to add this with a couple of other extensions already added (one is DS3231, the other is my own I2C extension) - adding Bluetooth resulted in the others being removed. I would have expected that only Radio would be removed.

If it’s a memory issue then wouldn’t using a V2 microbit overcome that?

---

<div class="post-metadata">

**Author:** ![bsiever](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/bsiever/32/1032_2.png) [@bsiever](https://forum.makecode.com/u/bsiever)\
**Post date:** [August 26, 2022, 4:25pm UTC](https://forum.makecode.com/t/cant-have-bluetooth-and-some-other-extensions/15084/2 "2022-08-26T16:25:25Z")

</div>

There are two common causes:

1. Some extensions explicitly require `radio`, even if they aren’t using it. The micro:bit can’t do both the `radio` and `bluetooth` protocols at the same time…so if `radio` is required, `bluetooth` can’t be added. For example, it looks like your [bitwise extension](https://github.com/keble6/pxt-BitwiseLogic) depends on `radio`, but isn’t really using it. See your [pxt.json](https://github.com/keble6/pxt-BitwiseLogic/blob/5835ce3224e20741d26074338b0c0c2d257097ec/pxt.json#L6). You may want to try it without the dependency line.
2. Some things, like Neopixel extensions, explicitly forbid it. This is also done in the pxt.json ([example](https://github.com/microsoft/pxt-ws2812b/blob/967493acf2804ddd2f2ce8e3819548e923c6397f/pxt.json#L27)). Neopixels need really precise timing that can’t always be met when bluetooth is in use. Bluetooth also requires precise timing…giving either priority could break the other, especially on the v1 micro:bit.

I hope that helps,  
Bill

---

<div class="post-metadata">

**Author:** ![keble6](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@keble6](https://forum.makecode.com/u/keble6)\
**Post date:** [August 29, 2022, 4:13pm UTC](https://forum.makecode.com/t/cant-have-bluetooth-and-some-other-extensions/15084/3 "2022-08-29T16:13:03Z")

</div>

Many thanks Bill. It will for sure be the pxt.json. I’ve had that before; it must be a default value as I did not write it myself!
