Michael
Forum Replies Created
-
AuthorPosts
-
MichaelParticipant
I’d like some clarification here…
int32_t setLinkCheckCount(const uint8_t& count);
How does the application know the Link Check has been performed and failed? Will the response to the “send” fail just like it would fail in other cases or is this a special case?
MichaelParticipantExcellent! I was unable to track down those functions on my own, sadly.
(I guess the operative word for searching is “link” and not “join” 😉 )Thanks!
MichaelParticipantBump
MichaelParticipantI seem to recall now seeing something that indicated the mDot might “join” using some random SF, but then subsequent messages would be sent at the user-specified SF.
I cannot find this now… can someone point to it?
Is it a Multitech thing or a LoRaWAN thing?Thanks
MichaelParticipantYes, I have opened a support case and gotten a response that seems to suggest I may have suffered a low-voltage condition during operation.
I have operated (for short periods – 15-30 mins) from one of those external cellphone battery chargers (brick) but it was always fully charged at the time.
Anyway, the support case provided some additional steps I will attempt to perform.
MichaelParticipantYes, the rollback worked (thanks!)
However…I had already considered that issue (of a bad library)…
I had archived a set of source files from a project of a few weeks ago that contained older libraries and I couldn’t get those builds to connect either. (Over the weekend I did not have any access to the actual bins from that older project).I cannot explain that ATM but happy to be moving on.
MichaelParticipantJ-
Goodness….
I sort of misread which library you were concerned with and rolled back differently
Now rtos: 117
mbed: 111
Libmdot: 14However…it seems to work now. I’ll dig a bit into it.
Thanks.
-M
MichaelParticipantI had already rolled back to a different project using the same basic code. It had much older versions for mbed, rtos and libmdot
That did not fix the join problem.
I will try again.
Perhaps the corrupted flash is an issue
See: http://www.multitech.net/developer/forums/topic/lost-deviceid/MichaelParticipantI loaded the AT command application , cleared the settings starting from scratch (hopefully) and was able to successfully join per the tutorial/example. I captured the settings using AT&V.
Then I went back to my original binary and confirmed the joinNetwork() call never returns. (At that point I really don’t know if the “join” actually happened but the library/code for the joinNetwork() is somehow busted and never returns – doubtful though)
Then, I again loaded the AT command app and ran AT&V – the settings left over from my (non-Joining) code look the same as the AT successful-joining code.
I’ve stripped down my code to almost the barebones (working on that now…still), started with an online example (mDot_LoRa_Connect_Example) used older and newer libraries all to no avail.
Any ideas?
-Mike
PS. I do have a gateway available (hence the successful AT-command joins)
Here’s the debug output from my code
[ERROR] File from flash wrong size. Expected 256 - Actual 128
[INFO] Setting Config
[INFO] Saving Config
[INFO] Joining Network
[INFO] TX Frequency: 902300000 SF: 10 BW: 125 kHz POW: 14 dBm
MichaelParticipantCan anyone answer why the mDot appears to stop after one attempt/ failure?
MichaelParticipantHere’s a typical boot-up
[ERROR] SPIFFS_read failed -10004
[ERROR] File from flash wrong size. Expected 256 – Actual 128
[INFO] Setting Config
[INFO] setting Join mode
[TRACE] Join Network – OTA
[TRACE] Rx Channel Frequency: 923300000
[TRACE] Tx High BW Frequency: 903000000
[INFO] Saving Config
[DEBUG] Saving config to flash
[ERROR] SPIFFS_write failed -10015MichaelParticipantHi Andrew,
Yes, I looked up SPIFFS and saw it had something to do with the Flash file management, but I don’t do anything directly with it (other than to drag and drop my files to the mDot). Nor do I touch any of the pins you mention. (I don’t think they are even available physically unless I somehow damage the mDot board).
I do see the problem on multiple mDots, (but not all of them) and it has only started recently.
Thanks for your time/effort so far.
Mike
MichaelParticipantUnderstood. At least I have some idea *what* is in my way, if not *why* atm.
My revisions are:
libmdot: 14
mbed: 117
mbed-rtos: 121MichaelParticipantHmm…. what’s with the step:
atz
?It clears all the values in the mDot now and when I try to join all the values have been reset: fsb=0, password is empty, etc.
I don’t recall this happening previously.
MichaelParticipantHere’s one (it appears in the Linux terminal window)
[ERROR] SPIFFS_read failed -10004
Here’s another
[ERROR] SPIFFS_write failed -10015
- This reply was modified 8 years, 7 months ago by Michael.
MichaelParticipantTried the power cycle but the SPIFFS error remains
MichaelParticipantI also see this outputted on the debug port:
“SPIFFS_write failed -10015”
MichaelParticipantAnyone?
This error seems to come and go in different builds. I haven’t been able to track it down.
Only started happening after I did some updates to the mdot, mbed libmdot libraries
MichaelParticipantFirst: Yes I am using the online compiler. How do I identify the versions you request? (I’ve very recently updated these…)
Second: I worked on a simple main.cpp and I can now get the timer to fire as expected, blinking the LED. However as I add back in the rest of my code, it again fails.
History: The “rest of the code” is based in great part on the mbed library for the Sparkfun weather station for which an implementation is my ultimate goal. The ticker used in that library is meant to allow the counting of the anemometer’s rotations in one second ( counts between one second ticks ). However that tick does not appear to be firing, so I implemented a simpler ticker in my main.cpp in an effort to understand its operation better. And that tick also did not work. That is, until I deleted the original ticker in the weather code:
m_OneSecondTicker.attach_us<CAnemometer>(this, &CAnemometer::OneSecondTickerISR, 1000000);
Is there something wrong with that construct?
MichaelParticipantHi Mike,
Thanks for the follow-up.
Yes, I’m using the UDK and have been able to flash the LED6 “manually” in the code (as mentioned previously). I chose that digital port and that LED specifically for that purpose (of flashing it). I wanted to first see if I can control the LED at all – and I can.
Then I wanted to see if I could get a “ticker” to control it. I cannot.
This is the crux of my problem. I cannot get “tickers” to “tick”.(Note: I have tried other experiments to verify the operation of the ticker that have failed – the LED is just the latest incarnation of those experiments and the easiest one to demonstrate)
b/r
MikeMichaelParticipantCompiles fine.
I can flash the LED “manually”.
So it works, too.
I cannot get the timer-ticker to work. That’s my problem.
-Mike
MichaelParticipantIt appears the interrupts work OK, but the ticker does not. I started another thread.
Thanks for reading.
MichaelParticipantStill looking for help…
FYI
The rain gauge input, which works, is on PC_13.
The wind speed input, which does NOT work, is on PA_0
MichaelParticipantAny other ideas?
MichaelParticipantJ-
Tried it. Didn’t help.
-M
MichaelParticipantThat’s depressing – I don’t have that voltage available. 3.3V, yes, but not 3.0V.
OK, I’ll have to conjure up a scheme.
Thanks.
MichaelParticipantI tried to buy from them but they said I needed to buy 10 of them.
Apparently they were unwilling to buy ten themselves and sell me one.“Stocking” distributor does not apply.
MichaelParticipantThanks Jason, that was quite informative.
However, going forward I’m not using AT commands – I’m using the mbed library (libmDot.h) So, let me see if I understand this…
If I join in automatic mode and ACKs “On” with`setJoinMode(mDot::AUTO_OTA);
setAck( 1 );`
and make no other changes, I’d expect the mDot to automatically attempt to “re-Join” after one missed ACK?And I can change the number of missed ACKs before the mDot attempts a re-Join with:
setLinkCheckCount()
Is that all correct?
Is there another setting I should be concerned with for this arrangement – that is AUTO, and ACKs ON?Thanks.
-MikeMichaelParticipantOK, thanks.
Is there some example code illustrating a recommended way for a remote to maintain network connectivity in light of the above?
MichaelParticipantThanks. These enum entries were not in the version with which I was operating. Was sure I had updated the file but…
:-/Mike
-
AuthorPosts