expLoRaBLE won't read DS18B20 temperature sensor

I’ve bought a pair of expLoRaBLE modules to send temperature data about 500m. I have successfully tested the LoRa radios over this distance by using the expLoRaBLE hookup Guide’s peer to peer example code on the sending and receiving modules respectively.

Then I tried to some simple example code (https://github.com/milesburton/Arduino- … Simple.ino) to read the DS18B20 digital temperature sensor. AS a newbie, I am stumped by the following long error message below.

I would be grateful if somebody could help me read the DS18B20 data so the expLoRaBLE can send it to my receiving module.

explorable DS18B20 wiring.jpg

In file included from C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:144:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\util/OneWire_direct_gpio.h:416:2: warning: #warning “OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture.” [-Wcpp]

#warning “OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture.”

^~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘uint8_t OneWire::reset()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:171:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:171:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:173:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:173:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write_bit(uint8_t)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:204:3: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:204:3: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:209:3: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:209:3: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:212:3: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:212:3: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:217:3: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:217:3: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘uint8_t OneWire::read_bit()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:232:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:232:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:239:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:239:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write(uint8_t, uint8_t)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:258:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:258:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:261:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:261:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write_bytes(const uint8_t*, uint16_t, bool)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:269:5: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:269:5: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:272:5: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:272:5: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::depower()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:316:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:316:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:318:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:318:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

exit status 1

Error compiling for board LoRa Thing Plus expLoRaBLE.

In file included from C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:144:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\util/OneWire_direct_gpio.h:416:2: warning: #warning “OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture.” [-Wcpp]

#warning “OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture.”

^~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘uint8_t OneWire::reset()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:171:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:171:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:173:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:173:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write_bit(uint8_t)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:204:3: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:204:3: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:209:3: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:209:3: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:212:3: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:212:3: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:217:3: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:217:3: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘uint8_t OneWire::read_bit()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:232:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:232:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:239:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:239:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write(uint8_t, uint8_t)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:258:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:258:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:261:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:261:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::write_bytes(const uint8_t*, uint16_t, bool)’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:269:5: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:269:5: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:272:5: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:272:5: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp: In member function ‘void OneWire::depower()’:

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:316:2: error: ‘noInterrupts’ was not declared in this scope

noInterrupts();

^~~~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:316:2: note: suggested alternative: ‘detachInterrupt’

noInterrupts();

^~~~~~~~~~~~

detachInterrupt

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:318:2: error: ‘interrupts’ was not declared in this scope

interrupts();

^~~~~~~~~~

C:\Users\Ric Dell\Documents\Arduino\libraries\OneWire\OneWire.cpp:318:2: note: suggested alternative: ‘intptr_t’

interrupts();

^~~~~~~~~~

intptr_t

exit status 1

Error compiling for board LoRa Thing Plus expLoRaBLE.

Hi @RicG,

Unfortunately this is a known issue. You can find further information here:

https://github.com/sparkfun/Arduino_Apollo3/issues/409

https://forum.sparkfun.com/viewtopic.ph … 96#p222796

Best wishes,

Paul

Thanks for that information Paul.

Has anybody found an a temperature sensor (≤0.5°C accuracy) that is compatible with Sparkfun’s expLoRaBLE module?

Hi @RicG,

Do you have the “SparkFun LoRa Thing Plus - expLoRaBLE”? If so, it should be compatible with all of our Qwiic sensors. There are plenty to choose from.

Best wishes,

Paul

Yes Paul, I have a pair of SparkFun LoRa Thing Plus - expLoRaBLE SKU: WRL-17506.

I started with the DS18B20 cabled sensors because they need to be waterproof and are pulled thru a 12mm conduit.

So a Qwiic sensor module is not an easy solution for my problem.

Are the Quiic modules compatible with WRL-17506 because they are 2 wire I2C, and if so, could I use a small chip like TI’s TMP275 (which I can encase in epoxy)?

Ah, you didn’t mention it needed to be waterproof! :wink:

Would thermocouples be an option for you? We have the SEN-16295 and SEN-16294. There’s also the SEN-13266.

Or platinum resistance (PT100)? We have the SPX-16770.

The TMP275 should work fine. It’s not a chip we support but there are code examples out there showing how to read it over I2C.

The BlueRobotics CELSIUS-SENSOR-PCB-R1-RP or CELSIUS-SENSOR-R1-RP might save you some time.

Best wishes,

Paul

A bit late… but it took some time. There is now a way to connect a DS18S20 (or any other 1-Wire / OneWire) to an Apollo3 board running a V2.x.x. library as long as that Apollo3 board has a spare UART that can be used. See https://github.com/paulvha/apollo3/tree … re_on_uart for t detailed information and the code.