# Noble BLE node not working after updating

**URL:** <https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397>\
**Category:** General\
**Created:** [13 August 2022 14:45 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397 "2022-08-13T14:45:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kkuula](https://avatars.discourse-cdn.com/v4/letter/k/65b543/32.png) [@kkuula](https://discourse.nodered.org/u/kkuula)\
**Post date:** [13 August 2022 14:45 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/1 "2022-08-13T14:45:17Z")

</div>

Hi,

I updated node-red to newest version and Node Js to version 14 (been doing it for 6 hours now..) And finally I think I got most of the things working, but critical application is not working. I have sensors that I am reading with the node-red-contrib-noble module.

It is correctly shown in the list of nodes  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/3/c3b7019f534e189c829676ea18ba9bc9880ef28e.png)  
But when ever I place it somewhere I get an error "module\_not\_found".

Been trying to reinstall it from GUI and console, but it is not helping. When installing it from the console I get following errors:

```auto
[code]pi@raspberrypi:~/.node-red $ npm install node-red-contrib-noble

> bluetooth-hci-socket@0.5.1 install /home/pi/.node-red/node_modules/bluetooth-hci-socket
> node-gyp rebuild

make: Siirrytään hakemistoon ”/home/pi/.node-red/node_modules/bluetooth-hci-socket/build”
  CXX(target) Release/obj.target/binding/src/BluetoothHciSocket.o
../src/BluetoothHciSocket.cpp: In static member function ‘static void BluetoothHciSocket::In it(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
../src/BluetoothHciSocket.cpp:128:82: error: no matching function for call to ‘v8::FunctionT emplate::GetFunction()’
  128 | target->Set(Nan::New("BluetoothHciSocket").ToLocalChecked(), tmpl->GetFunction());
      | ^

In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:6482:46: note: candidate: ‘v8::MaybeLocal <v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)’
 6482 | V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
      | ^ ~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:6482:46: note: candidate expects 1 argu ment, 0 provided
../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::poll()’:
../src/BluetoothHciSocket.cpp:251:95: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::L ocal<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdepre cated-declarations]
  251 | Callback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
      | ^

In file included from ../src/BluetoothHciSocket.cpp:8:
../../nan/nan.h:1051:46: note: declared here
 1051 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
      | ^ ~~~~~~~~~~~../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::emitErrnoError( ’:
../src/BluetoothHciSocket.cpp:269:109: error: no matching function for call to ‘v8::Object:: Get(v8::Local<v8::String>)’
  269 | ructor = Local<Function>::Cast(globalObj->Get(Nan::New("Error").ToLocalChecked()));
      | ^

In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal <v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
 3717 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      | ^~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:3717:43: note: candidate expects 2 argu ments, 1 provided
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal <v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
 3720 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
      | ^~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:3720:43: note: candidate expects 2 argu ments, 1 provided
../src/BluetoothHciSocket.cpp:275:72: error: no matching function for call to ‘v8::Function: :NewInstance(int, v8::Local<v8::Value> [1])’
  275 | Local<Value> error = errorConstructor->NewInstance(1, constructorArgs);
      | ^
In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:4451:44: note: candidate: ‘v8::MaybeLocal <v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>, int, v8::Local<v8::Value>*) c onst’
 4451 | V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
      | ^ ~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:4451:44: note: candidate expects 3 argu ments, 2 provided
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:4454:44: note: candidate: ‘v8::MaybeLocal <v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>) const’
 4454 | V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
      | ^ ~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:4454:44: note: candidate expects 1 argu ment, 2 provided
../src/BluetoothHciSocket.cpp:282:93: warning: ‘v8::Local<v8::Value> Nan::MakeCallback(v8::L ocal<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated [-Wdepre cated-declarations]
  282 | Callback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
      | ^

In file included from ../src/BluetoothHciSocket.cpp:8:
../../nan/nan.h:1051:46: note: declared here
 1051 | NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
      | ^ ~~~~~~~~~~~../src/BluetoothHciSocket.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindRaw(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/BluetoothHciSocket.cpp:395:34: error: no matching function for call to ‘v8::Value::In tegerValue()’
  395 | devId = arg0->IntegerValue();
      | ^
In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:2863:40: note: candidate: ‘v8::Maybe<long long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
 2863 | V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
      | ^ ~~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:2863:40: note: candidate expects 1 argu ment, 0 provided
../src/BluetoothHciSocket.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindUser(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/BluetoothHciSocket.cpp:417:34: error: no matching function for call to ‘v8::Value::In tegerValue()’
  417 | devId = arg0->IntegerValue();
      | ^
In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node.h:67,
                 from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:2863:40: note: candidate: ‘v8::Maybe<long long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
 2863 | V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
      | ^ ~~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/v8.h:2863:40: note: candidate expects 1 argu ment, 0 provided
In file included from /home/pi/.cache/node-gyp/14.20.0/include/node/node_buffer.h:25,
                 from ../src/BluetoothHciSocket.cpp:7:
../src/BluetoothHciSocket.cpp: At global scope:
/home/pi/.cache/node-gyp/14.20.0/include/node/node.h:793:7: warning: cast between incompatib le function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8: :Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v 8::Local<v8::Value>, void*)’} [-Wcast-function-type]
  793 | (node::addon_register_func) (regfunc), \
      | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/.cache/node-gyp/14.20.0/include/node/node.h:827:3: note: in expansion of macro ‘NOD E_MODULE_X’
  827 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
      | ^ ~~~~~~~~~~~~../src/BluetoothHciSocket.cpp:499:1: note: in expansion of macro ‘NODE_MODULE’
  499 | NODE_MODULE(binding, BluetoothHciSocket::Init);
      | ^ ~~~~~~~~~~
make: *** [binding.target.mk:109: Release/obj.target/binding/src/BluetoothHciSocket.o] Virhe 1
make: Poistutaan hakemistosta ”/home/pi/.node-red/node_modules/bluetooth-hci-socket/build”
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node -gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:400:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:285:12)
gyp ERR! System Linux 5.15.32-v7+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gy p/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/.node-red/node_modules/bluetooth-hci-socket
gyp ERR! node -v v14.20.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@~0.1.4 (node_modules/noble/no de_modules/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-connection@0.1.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bluetooth-hci-socket@0.5.1 (node_modules/blu etooth-hci-socket):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bluetooth-hci-socket@0.5.1 install: `node-gy p rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ node-red-contrib-noble@0.3.0
removed 1 package, updated 1 package and audited 1329 packages in 59.136s

96 packages are looking for funding
  run `npm fund` for details

found 44 vulnerabilities (7 low, 21 moderate, 13 high, 3 critical)
  run `npm audit fix` to fix them, or `npm audit` for details[/code]

```

Anyone bumped into this and could help?

Best regards

---

<div class="post-metadata">

**Author:** ![kkuula](https://avatars.discourse-cdn.com/v4/letter/k/65b543/32.png) [@kkuula](https://discourse.nodered.org/u/kkuula)\
**Post date:** [13 August 2022 15:01 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/2 "2022-08-13T15:01:09Z")

</div>

Also noticed, that any bluetooth -related does not work. Tried to interpret the errors, maybe something with this bluetooth hci module?

---

<div class="post-metadata">

**Author:** ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)\
**Post date:** [14 August 2022 06:16 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/3 "2022-08-14T06:16:36Z")

</div>

Since you also updated the version of Nodejs .. some npm modules that depend on C++ binaries need to be rebuilt.

From your `.node-red` folder run `npm rebuild`

hope it fixes the problem .. cause that node hasnt been updated for more than six years

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [14 August 2022 09:04 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/4 "2022-08-14T09:04:43Z")

</div>

> [@kkuula](#):
>
> `bluetooth-hci-socket`

This appears to be the main problem, it is required by the noble node and it will not install. It seems to be no longer supported, see numerous issues on [Issues · noble/node-bluetooth-hci-socket · GitHub](https://github.com/noble/node-bluetooth-hci-socket/issues) and in particular [Maintenance status ? · Issue #123 · noble/node-bluetooth-hci-socket · GitHub](https://github.com/noble/node-bluetooth-hci-socket/issues/123) which points to a fork that does appear to be maintained. To use it I think it is necessary to fork the noble node and include the hci fork, instead of the original, in the noble node's package.json

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [14 August 2022 09:24 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/5 "2022-08-14T09:24:20Z")

</div>

a quick look at the forks - this [fork of node-red-contrib-noble by MatsA](https://github.com/MatsA/node-red-contrib-noble) looks to be the most promising (states "works up to Node 16" and "node-red v3.0.1"). It references the abandonware fork of `noble`. However doesnt appear to be added to NPM or the node-red library so you will need to manually install.

I would recommend you uninstall any BT stuff you have added and follow instructions in the [readme](https://github.com/MatsA/node-red-contrib-noble) to the letter.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [13 October 2022 09:24 UTC](https://discourse.nodered.org/t/noble-ble-node-not-working-after-updating/66397/6 "2022-10-13T09:24:47Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
