OK, I got my Heltec LoRa boards today. No secret, I am not a programmer but I have tried to duplicate what you have done to make the libraries work… I can’t get it to work!
First issue I have is the declaration in oslmic.h , it is done per your hint but I get a compile error.
C:\Users\Garry\Documents\Arduino\libraries\arduino-lmic-master\src\hal\hal.cpp: In function ‘void hal_io_check()’:
C:\Users\Garry\Documents\Arduino\libraries\arduino-lmic-master\src\hal\hal.cpp:66:32: error: ‘radio_has_irq’ was not declared in this scope
if ( radio_has_irq() )
Would you have a suggestion what I have done wrong? I have declared it below…
// Dependencies required for the LoRa MAC in C to run.
// These settings can be adapted to the underlying system.
// You should not, however, change the lmic.[hc]
My Heltec board has a helical wire antenna for 2.4GHz on top, not the PCB antenna.
It also has a PCB antenna on the bottom side but that antenna is not connected.
The helical antenna sticks out above the display, not handy if to be mounted in a case.
WiFi reception with the helical antenna is poor. I was only able to detect 9 WiFi networks (max), while at the same location an ESP8266 ESP-12F module with PCB antenna detects 28 networks (max).
I wanted to improve the antenna so I hacked the PCB. I removed the helical wire antenna and mounted an U.FL connector so I can connect different types of antennas. This was possible because the antenna pad is surrounded with ground traces. While the modification is still not as good as the ESP-12F, I was able to detect 14 WiFi networks (max), which is an improvement of more than 50% (in detected networks).
I tried several 2.4GHz antennas, including 2 PCB types and a regular foldable type with SMA connector but the model shown on the picture below performed best.
The EU868 units I got all seem to be running the File > Examples > LoRa Function Basic Test > OLED_LoRa_Sender sketch, but then using #define BAND 868E6. So, to use OLED_LoRa_Receiver, change the value for band in the example sketch.
To make the receiver examples see the TTN LoRaWAN 868.1, use #define BAND 868.1E6.
Using LoRa.onReceive(callback) does not work for me; calling LoRa.parsePacket() within loop() works fine though.
The orange battery LED is flashing like crazy; maybe attaching a battery makes it stop? @DeuxVis’ document claims: “The orange LED lights will go out when the battery is full”:
The same document also says: “To use the on-board IO port with touch function as the touch signal input (WIFI Kit32 and LoRa 32 with this function), add a 100 nF pulldown capacitor to this pin.”
DeuxVis’ document does not give much details, but:
LITHIUM BATTERY INTERFACE 2Pin-1.25mm
Onboard lithium battery charge and discharge circuit, The orange LED lights will go out when the battery is full , only provide the basic lithium battery charging and discharge function, can not monitor the battery temperature and power, if your battery is not purchased in our shop, Please pay attention to the battery positive and negative, wrong operation may explode.
Looking at your picture, it looks like they use a MCP73831 (or compatible) charging IC (the 5-pin SOT23 below the helical coil). The default behaviour of the STAT pin is to blink while charging (or no battery connected) and to turn off when battery is full.
This is from one of my designs, which also uses a green led to indicate battery full.
Some more interesting ‘nuts and bolts’ hacking at the Espressif chips by Andreas Spiess, this time getting both processor cores of the ESP32 working using the Arduino IDE only. Seems like this can only help with more complex tasks?
Has anyone managed to get the power usage of these modules below 10ma? Even in deep sleep and with wifi/BT off I can’t manage it with a battery. Are they maybe using a low efficiency regulator that keeps on switching?