dragino / lora_stm32 Goto Github PK
View Code? Open in Web Editor NEWSource code for Dragino LoRa module base on STM32 Chip
Source code for Dragino LoRa module base on STM32 Chip
With the following settings: LSN50, firmware=1.6.2, MOD=1, INMOD=1, TDC=900000 I get the following uploads:
The second problem is: I see a download on port 0 after every upload???? why a download?
I am convinced that using a DS18B20 with this firmware will drain the battery in a record time, I doubt the 10 years claim.
The DS18B20_GetTemp_SkipRom() function calls DelayMs(750) which shamelessly runs the processor on NOP at full power for the entire duration of the sensor conversion time. While waiting for the sensor reading, firmware should make use of one of the processor's low-power mode.
See page 15 https://www.st.com/resource/en/datasheet/stm32l072v8.pdf
The "Low Power Run" mode seems to be a good candidate at 8 uA and 3 usec wakeup time to normal run mode.
Hello everyone, i'm currently doing a project that require me to customize the payload format, but as far as i know i need to change the default region to asian region, how can i set the default region in the source code? and does changing the AppData variable will automatically converted to the desired payload format in HEX format? or do i need to convert it myself? i'm quite new to this, thanks
The method DS18B20_GetTemp_SkipRom() returns always a positive temperature to be sent through LORAWan protocol.
This is a bug that causes many wrong behaviour.
Hi,
I wanted to compile the firmware with the defines REGION_EU868 and USE_SHT20 in keil uVision 5. But due to limitations of the demo version I'm not able to compile the .hex file. My File is around 50 kbytes of the allowed 32 kbytes.
Could you please:
upload a ready compiled firmeware with REGION_EU868 and USE_SHT20 with active LPP_CAYENNE payload format
give me a recommondation for a free and unlimited substitution of keil. How about openstm32?
Thank you very much in advance.
Originally posted by @phisch92 in #2 (comment)
Apologies, but the Dragino forum seems to be playing up. I would have posted there.
How might I distinguish between an interrupt waking the LSN50 and a timer as defined by TDC?
Thanks, Pete.
If I use 'printf' instead of 'PRINTF' my board is freezing. Is it bug or feature?
I'm using the LSN50 in work mode 4 to report values from multiple DS18B20 sensors. This works well; I'm currently running about 20 nodes with 2 sensors each. However, occasionally something goes wrong in one of the nodes which causes it to malfunction. At the moment, when the LSN50 is unable to read the value from the sensor, it reports it as being 0x0000
, or 0ºC. This is not really helpful as it could easily be a realistic value. I think it would be much better if it would report such as case with a value of 0x8000
(the lowest possible value that an int16 can take), This would equal -3276.8ºC, which is much lower than absolute zero and therefore impossible in a real measurement.
This would enable me to determine whether a sensor is malfunctioning much more easily, discard the measurements so they don't mess up my graphs, and send an alert that a repair is required.
Hey,
i try to use the dragino lsn50 with a DS18B20 and a ~10m J-Y(ST)Y cable. But it looks like there are timing issues in the software with a higher cable capacity? So with the cable extension the lsn50 do not detect the DS18B20... but 1-wire can go ub to 100m
https://www.maximintegrated.com/en/design/technical-documents/tutorials/1/148.html
https://www.maximintegrated.com/en/design/technical-documents/app-notes/1/126.html
If I program the EU868.hex v1.4 then it works as expected
Hello, I tried to compile the EWARM project for ST module (CMWX1ZZABZ murata module with STM32 inside) AS923 version by defining the correct define but there is error at compilation level. So I decided to give a try to the hex files provided -> I programmed the hex file for 923 region, seems OK I have a welcome message. But right after the welcome message (version xxx showing + device EUI) then immediately the module sends data 2 times and I dont know what for (2 Tx messages are showing). Anyway I configure then in single frequency with AT+CHS command on 923400000 Mhz (same as the dragino gateway), I also configure OTAA join mode, I make sure the APPKEY/DEVEUI/APPEUI are same as on TTN, but I cannot see a succesfull join command on my side, I cannot see any data received on the 'logread' of the dragino and I can't see anything on the TTN console.
Have you encountered the same issues? Anything I may have missed?
Thanks.
I have implemented the drivers for the Melexis IR sensor MLX90614:
https://github.com/OpenAgriTech/LoRa_STM32/tree/MLX90614
At the moment, if detected, it is reported instead of the SHT Air Temperature and Humidity.
Are there any guidelines or protocols for new sensor developments?
Also, I am sure that the repository is out of sync with the current Firmware Version from Dragino (2021-03-02) while the latest commit is from Nov 2020.
Is there a chance the firmware project will be ported to STM32CubeIDE (or any other GNU Arm embedded toolchain)?
I tried it on my own and the project builds, but it hangs somewhere at runtime.
Hi,
I noticed that I was unable to set the interrupt mode with the AT+INTMOD=x command on devices with FW-1.7.2.
The issue appeared to be in at.c#1359 where the uint8_t caused the misery. Replacing with int appears to fix the issue. Not familiar enough with the environment to find if there is a compiler directive I should have set.
ATEerror_t at_INTMOD_set(const char *param) {
// uint8_t interrputmode;
int interrputmode;
if (tiny_sscanf(param, "%d", &interrputmode) != 1) {
return AT_PARAM_ERROR;
}
There are several other commands that have the same issue: CHE, RPL...
Environment:
OS: MacOS 11.6.7
IDE: STM32CubeIDE Version: 1.10.0
Toolkit: GNU Tools for STM32 (10.3-2021.10)
Cheers,
Erwin
Hi,
First of all thnx!
I successfully created the firmware with keil uVision 5, but i only have i trial license. I followed the manual. (http://wiki.dragino.com/index.php?title=LoRa_Sensor_Node-LSN50) Is it also possible to build with Sw4stm32? I tried importing the project, but no success. Can you help me?
I look forward to hearing from you soon.
The AT+CHE to setup the sub band uplink channels is not working on version 1.5.
I setup AT+CHE=2 (sub-band 2 US915, channels 8-15)
903.9 904.1 904.3 904.5 904.7 904.9 905.1 905.3
But the LSN50 are still using the frequencies on sub-band 1, channels 0-7.
Hi project authors, I am currently considering customising the purchased Dragino LSN50 v2 LoRa node. The link in README.md directing to the page showing how to use the source code is no longer unavailable. So how can one open/import the project into a STM32CubeIDE properly? In addition, how can one obtain the .ioc file which stores the STM32 chip set up to work with the code?
@engineer-lin, @goodcheney @dragino
Hi , I have been having trouble with AU915 and selecting Channels 1-8, instead 9-16 are chosen. There seems to be some sort of bug. Are you able to have a look at this and help?
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 916000000 Hz at DR 0
[9645]txDone
[14648]RX on freq 925700000 Hz at DR 8
[14942]rxDone
Rssi= -52
JOINED
Join Accept:
DevAddr:26 04 2e 40
Rx1DrOffset:0
Rx2Datarate:8
ReceiveDelay1:1000 ms
ReceiveDelay2:2000 ms
[16705]***** UpLinkCounter= 0 *****
[16706]TX on freq 915200000 Hz at DR 2
[17082]txDone
[18072]RX on freq 923300000 Hz at DR 10
ADR Message:
ChannelsMask change to ff00 0000 0000 0000 0002 0000
TX Datarate 2 change to 4
TxPower 0 change to 5
NbRep 1 change to 1
[18176]rxDone
Rssi= -48
AT+CHE=?
1
915.2 915.4 915.6 915.8 916.0 916.2 916.4 916.6
OK
ATZ
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 916000000 Hz at DR 0
[9645]txDone
[14648]RX on freq 925700000 Hz at DR 8
[14708]rxTimeOut
[15648]RX on freq 923300000 Hz at DR 8
[15651]rxTimeOut
[156496]***** UpLinkCounter= 0 *****
[156498]TX on freq 917500000 Hz at DR 6
[156530]txDone
[161517]RX on freq 923900000 Hz at DR 13
[161541]rxTimeOut
[162533]RX on freq 923300000 Hz at DR 8
[162536]rxTimeOut
[163533]***** UpLinkCounter= 0 *****
[163535]TX on freq 915800000 Hz at DR 0
[165021]txDone
[170024]RX on freq 925100000 Hz at DR 8
[170318]rxDone
Rssi= -51
JOINED
Join Accept:
DevAddr:26 04 2f fc
Rx1DrOffset:0
Rx2Datarate:8
ReceiveDelay1:1000 ms
ReceiveDelay2:2000 ms
[172081]***** UpLinkCounter= 0 *****
[172082]TX on freq 916600000 Hz at DR 2
[172458]txDone
[173448]RX on freq 927500000 Hz at DR 10
ADR Message:
ChannelsMask change to ff00 0000 0000 0000 0002 0000
TX Datarate 2 change to 5
TxPower 0 change to 5
NbRep 1 change to 1
[173552]rxDone
Rssi= -49
AT
OK
AT+INTMOD=1
OK
[472005]***** UpLinkCounter= 1 **
[472006]TX on freq 918200000 Hz at DR 5
1
OK
[472078]txDone
[473066]RX on freq 927500000 Hz at DR 13
[473090]rxTimeOut
[474081]RX on freq 923300000 Hz at DR 8
[474083]rxTimeOut
[491335]***** UpLinkCounter= 2 *****
[491336]TX on freq 917200000 Hz at DR 5
[491403]txDone
[492391]RX on freq 924500000 Hz at DR 13
[492416]rxTimeOut
[493406]RX on freq 923300000 Hz at DR 8
[493409]rxTimeOut
[498771]***** UpLinkCounter= 3 *****
[498772]TX on freq 917600000 Hz at DR 5
[498838]txDone
[499827]RX on freq 925700000 Hz at DR 13
[499851]rxTimeOut
[500841]RX on freq 923300000 Hz at DR 8
[500844]rxTimeOut
AT+CHE=?
1
915.2 915.4 915.6 915.8 916.0 916.2 916.4 916.6
OK
[523896]***** UpLinkCounter= 4 *****
[523897]TX on freq 917800000 Hz at DR 5
[523963]txDone
[524952]RX on freq 926300000 Hz at DR 13
[524976]rxTimeOut
[525966]RX on freq 923300000 Hz at DR 8
[525969]rxTimeOut
[535683]***** UpLinkCounter= 5 *****
[535684]TX on freq 918000000 Hz at DR 5
[535750]txDone
[536739]RX on freq 926900000 Hz at DR 13
[536763]rxTimeOut
[537753]RX on freq 923300000 Hz at DR 8
[537756]rxTimeOut
[543751]***** UpLinkCounter= 6 *****
[543752]TX on freq 917000000 Hz at DR 5
[543819]txDone
[544807]RX on freq 923900000 Hz at DR 13
[544832]rxTimeOut
[545822]RX on freq 923300000 Hz at DR 8
[545825]rxTimeOut
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 916400000 Hz at DR 0
[9645]txDone
[14648]RX on freq 926900000 Hz at DR 8
[14708]rxTimeOut
[15648]RX on freq 923300000 Hz at DR 8
[15651]rxTimeOut
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 915600000 Hz at DR 0
[9645]txDone
[14648]RX on freq 924500000 Hz at DR 8
[14944]rxDone
Rssi= -50
JOINED
Join Accept:
DevAddr:26 00 18 6a
Rx1DrOffset:0
Rx2Datarate:8
ReceiveDelay1:1000 ms
ReceiveDelay2:2000 ms
[16706]***** UpLinkCounter= 0 *****
[16707]TX on freq 916200000 Hz at DR 2
[17083]txDone
[18073]RX on freq 926300000 Hz at DR 10
ADR Message:
ChannelsMask change to ff00 0000 0000 0000 0002 0000
TX Datarate 2 change to 5
TxPower 0 change to 5
NbRep 1 change to 1
[18177]rxDone
Rssi= -50
[56617]***** UpLinkCounter= 1 *****
[56618]TX on freq 918200000 Hz at DR 5
[56689]txDone
[57677]RX on freq 927500000 Hz at DR 13
[57702]rxTimeOut
[58692]RX on freq 923300000 Hz at DR 8
[58695]rxTimeOut
[64125]***** UpLinkCounter= 2 *****
[64126]TX on freq 916800000 Hz at DR 5
[64193]txDone
[65181]RX on freq 923300000 Hz at DR 13
[65206]rxTimeOut
[66196]RX on freq 923300000 Hz at DR 8
[66199]rxTimeOut
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 916200000 Hz at DR 0
[9645]txDone
[14648]RX on freq 926300000 Hz at DR 8
[14708]rxTimeOut
[15648]RX on freq 923300000 Hz at DR 8
[15651]rxTimeOut
▒No I2C device detected
LSN50 Device
Image Version: v1.6.4
LoRaWan Stack: DR-LWS-003
Frequency Band: AU915
DevEui= A8 40 41 83 41 82 1D 20
[1121]***** UpLinkCounter= 0 *****
[1122]TX on freq 917500000 Hz at DR 6
[1155]txDone
[6142]RX on freq 923900000 Hz at DR 13
[6166]rxTimeOut
[7158]RX on freq 923300000 Hz at DR 8
[7161]rxTimeOut
[8157]***** UpLinkCounter= 0 *****
[8158]TX on freq 915600000 Hz at DR 0
[9645]txDone
[14648]RX on freq 924500000 Hz at DR 8
[14931]rxDone
Rssi= -51
JOINED
Join Accept:
DevAddr:26 00 25 59
Rx1DrOffset:0
Rx2Datarate:8
ReceiveDelay1:1000 ms
ReceiveDelay2:2000 ms
[16005]***** UpLinkCounter= 0 *****
[16006]TX on freq 916000000 Hz at DR 2
[16382]txDone
[17373]RX on freq 925700000 Hz at DR 10
ADR Message:
ChannelsMask change to ff00 0000 0000 0000 0002 0000
TX Datarate 2 change to 5
TxPower 0 change to 5
NbRep 1 change to 1
[17477]rxDone
Rssi= -50
[27354]***** UpLinkCounter= 1 *****
[27355]TX on freq 918200000 Hz at DR 5
[27426]txDone
[28415]RX on freq 927500000 Hz at DR 13
[28439]rxTimeOut
[29429]RX on freq 923300000 Hz at DR 8
[29432]rxTimeOut
[40209]***** UpLinkCounter= 2 *****
[40210]TX on freq 917000000 Hz at DR 5
[40277]txDone
[41265]RX on freq 923900000 Hz at DR 13
[41290]rxTimeOut
[42280]RX on freq 923300000 Hz at DR 8
[42283]rxTimeOut
[69893]***** UpLinkCounter= 3 *****
[69894]TX on freq 917600000 Hz at DR 5
[69960]txDone
[70949]RX on freq 925700000 Hz at DR 13
[70973]rxTimeOut
[71963]RX on freq 923300000 Hz at DR 8
[71966]rxTimeOut
[77393]***** UpLinkCounter= 4 *****
[77394]TX on freq 917800000 Hz at DR 5
[77460]txDone
[78449]RX on freq 926300000 Hz at DR 13
[78473]rxTimeOut
[79463]RX on freq 923300000 Hz at DR 8
[79466]rxTimeOut
[81757]***** UpLinkCounter= 5 *****
[81758]TX on freq 918000000 Hz at DR 5
[81825]txDone
[82813]RX on freq 926900000 Hz at DR 13
[82837]rxTimeOut
[83828]RX on freq 923300000 Hz at DR 8
[83831]rxTimeOut
[87377]***** UpLinkCounter= 6 *****
[87378]TX on freq 917400000 Hz at DR 5
[87445]txDone
[88433]RX on freq 925100000 Hz at DR 13
[88458]rxTimeOut
[89448]RX on freq 923300000 Hz at DR 8
[89451]rxTimeOut
[97278]***** UpLinkCounter= 7 *****
[97279]TX on freq 916800000 Hz at DR 5
[97345]txDone
[98333]RX on freq 923300000 Hz at DR 13
[98358]rxTimeOut
[99348]RX on freq 923300000 Hz at DR 8
[99351]rxTimeOut
[104005]***** UpLinkCounter= 8 *****
[104006]TX on freq 917200000 Hz at DR 5
[104073]txDone
[105061]RX on freq 924500000 Hz at DR 13
[105085]rxTimeOut
[106076]RX on freq 923300000 Hz at DR 8
[106079]rxTimeOut
[109757]***** UpLinkCounter= 9 *****
[109758]TX on freq 916800000 Hz at DR 5
[109825]txDone
[110813]RX on freq 923300000 Hz at DR 13
[110837]rxTimeOut
[111828]RX on freq 923300000 Hz at DR 8
[111831]rxTimeOut
[118388]***** UpLinkCounter= 10 *****
[118390]TX on freq 917200000 Hz at DR 5
[118456]txDone
[119444]RX on freq 924500000 Hz at DR 13
[119468]rxTimeOut
[120458]RX on freq 923300000 Hz at DR 8
[120461]rxTimeOut
[128723]***** UpLinkCounter= 11 *****
[128725]TX on freq 917800000 Hz at DR 5
[128791]txDone
[129779]RX on freq 926300000 Hz at DR 13
[129803]rxTimeOut
[130793]RX on freq 923300000 Hz at DR 8
[130796]rxTimeOut
[176679]***** UpLinkCounter= 12 *****
[176681]TX on freq 918200000 Hz at DR 5
[176747]txDone
[177735]RX on freq 927500000 Hz at DR 13
[177759]rxTimeOut
[178750]RX on freq 923300000 Hz at DR 8
[178752]rxTimeOut
[191764]***** UpLinkCounter= 13 *****
[191766]TX on freq 917000000 Hz at DR 5
[191832]txDone
[192820]RX on freq 923900000 Hz at DR 13
[192844]rxTimeOut
[193834]RX on freq 923300000 Hz at DR 8
[193837]rxTimeOut
AT+CHE=?
1
915.2 915.4 915.6 915.8 916.0 916.2 916.4 916.6
OK
[316694]***** UpLinkCounter= 14 *****
[316696]TX on freq 918000000 Hz at DR 5
[316761]txDone
[317750]RX on freq 926900000 Hz at DR 13
[317774]rxTimeOut
[318764]RX on freq 923300000 Hz at DR 8
[318767]rxTimeOut
Hi,
after sucessfully compiling the firmware (V1.3) for the LSN50 I'm facing another issue.
The Board is not responding to any AT Commands. If I upload any of the privided .hex-files it works again.
So the Problem has to be somewhere in the compiling process. Do I have to avticate any code? I looked through but found only the possibility to active AT+SEND and AT+SENDB but it is neither reacting. For the terminal program I'm using hterm.
Thank you for any hints
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.