Can I have any advices?
Nobody knows?
Can I have any advices?
Nobody knows?
What have you looked at? There should be no obvious reason for you to change any of the LMIC files to setup regional settings.
Please can you stop posting screen shots by default, particularly of web pages that can be linked to. If it’s a log, it should be copy & pasted as text. See here on how to format posts.
Here are three things to do:
Thanks, descartes,
- Post a copy (as text) of your lmic_project_config.h so we can see the regional settings in use.
Here is my lmic_project_config.h.
// project-specific definitions
//#define CFG_eu868 1
//#define CFG_us915 1
//#define CFG_au915 1
//#define CFG_as923 1
#define CFG_as923jp 1
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP /* for as923-JP */
//#define CFG_kr920 1
//#define CFG_in866 1
#define CFG_sx1276_radio 1
//#define LMIC_USE_INTERRUPTS
This is the recommendation of Japanese Dragino agent.
To be honest I’m not sure it’s enough or not.
Hi, descartes,
- Set #define LMIC_DEBUG_LEVEL to 1 in config.h so you get more debug output and then post it (as text) showing from power up to join fail or downlink fail.
This seems to be a good information for me. But I tried I got memory usage error.
I have to cut memory usage. I need time to strugle.
Anyway I think my problem was caused by downlink packet frequency and timing.
So I need following information.
(1)Do I have a way to check, measure the current setting of RX1 and RX2 on my endnode?
(2)What files on LMIC library define those numbers?
(3)Do I have a way if downlink messages can reach my endnode from the gateway within the RX1/RX2 time frame?
(4)I’ve read downlink problems can be solved by extending the RX1/RX2 length. How can I do that?
I asked several times. But nobody answered to my question. Why?
People are trying to help by providing information on how to debug your issues. The answers may not be the ones you are expecting, but they are sound.
In answer to your questions:
LMIC_setClockError((MAX_CLOCK_ERROR * 10) / 100);
Perhaps because you, yourself, have not answered our questions: what frequency and spreading factor is your gateway actually transmitting the missed downlinks on?
As for the debug logging:
I tried I got memory usage error.
This is why trying to squeeze a LoRaWAN stack into an ATmega328 cannot be recommended
Thanks, kersing,
LMIC_setClockError((MAX_CLOCK_ERROR * 10) / 100);
(1)Oscilloscope!? Is it the only way to check them? Do you have any good documents which tells
how to do that? I expect somebody had done similar things.
You don’t have another way? like applying some debug codes in the source code and print
some values. Dragino guy told me applying AT commands. But recently he said Dragino LoRa
mini doesn’t have AT command functions …
(2)I found some information in my code. But I’m not sure these are the right part. As I said several
times. I don’t think my problems are not a special one for the experienced people. For the people
who have implemented OTAA and downlink, some people know how to solve the problems. That’s
why I’m asking for “common sense” information to solve problems.
(3)Same as above (2). Please give me “common sense”, typical, well-experienced, easy method to
solve problems. Many documents says “ABP is easy. But OTAA is trouble-some.” But I think it’s
strange nobody provides easy-to-solve documents or books, like “OTAA/downlink for Dummies.”
I’m expecting common, typical procedure how to analyze problems, adjust RX1/RX2 time-frame,
frequencies and succeed for OTAA. I’m a novice engineer. But I’m expecting genius engineers in the
world have good technique and knowledge I don’t know.
(4)Is that the only way? I tried, but no changes. And Dragino guy didn’t tell the code realizes changing
RX1/RX2 length. Is there another method to extend RX1/RX2 length?
You may want to reconsider your approach to getting volunteer engineers who give up their valuable time to answer questions.
Given all the moving parts that make up LoRaWAN, it is not as simple as creating a Dummies guide because all sorts of things could be going on.
The Dragino LoRa mini dev is basically an Arduino Pro Mini with a radio chip which is a combination I use a fair amount for appropriate applications. If you want to read this, you’ll see that it took me a while to get to grips with this hardware combination and that it does in fact work:
I think this entire thread has got in to a tailspin and about the only thing we haven’t looked at is the possibility that the hardware is compromised in some way. So rather than collectively banging our head against the wall, perhaps you could get a different device to try out - preferably one with more RAM & Flash.
One possibility is the Adafruit Feather M0 with RFM95. I know this works because I’m helping out someone on another thread (see here) so I have one on my desk working away quite happily. Note, you will need to add a connection to the board for it to work with LoRaWAN - all the details are on the Adafruit website.
Alternatively if you want to sidestep all the LoRaWAN challenges, then the Arduino MKR WAN 1310 has both a powerful processor and a dedicated LoRaWAN module that will take care of LoRaWAN code for you, but you will still need to configure it.
This is indeed a good choice, particularly as it’s the original platform used for development of MCCI LMiC. Also worth noting that they have some historic experience with Japan, and test equipment able to run closed-loop tests on the frequency plan used by one region, even while physically sitting in another. If you were using the feather & RFM95 board, issues getting it to work in Japan would be quite appropriate to raise in an issue on the github repo.
That has historically not had perfect support for all regions, so it would make sense to double check that it will actually work in Japan before purchase. In theory the LoRaWAN stack is user-fixable, in practice it’s going to be a bit more complex to do so in such context.
(4)I’ve read downlink problems can be solved by extending the RX1/RX2 length. How can I do that?
Hi, Abe-san,
In my experience,the number of times is more important than the RX1/RX2 length.
There is a great deal of variation in the time it takes for the gateway to throw Join Request to the TTN server and receive Join Accept.
.(At least in my enviroment it’s not a level to extend the RX1/2 length, and in most cases Join Accept has not reached in RX1/2 correspoding to Join Request.)
Therefore, the Gateway that received Join Accept after RX1/2 has waiting for the timing RX1/2 that its own station can transmit next.
If.possible, the End device will send empty frame that does not affect the OTAA authentication process and the Gateway will get the timing to send the Join Accept. I dit that.
(The other method is for the End device to send another Join Request to receive Join Accept, but the Join Accept that can be received at that time is for the old Join Request and is confusing, so I stopped it.)
Please forgive me if there is a lack of understanding.
Thank you.
Thanks, cslorabox,
Do you think I can use Adafruit Feather M0 with RFM95 in Japan?
I don’t think so unfortunately.
Why not?
That should not be causing issues; if it is, the gateway needs a lower latency internet connection.
If.possible, the End device will send empty frame that does not affect the OTAA authentication process and the Gateway will get the timing to send the Join Accept.
No, that’s not workable. The join accept can only be sent in direct response to the join request, not in response anything else.
Provided it is the right frequency radio module, this would be an issue of software not hardware.
As I was explaining before, this is one of the test platforms for MCCI LMiC, who have some past experience in Japan, and also have the ability to conduct “closed” tests on LoRaWAN operation in one country, even while sitting in another.
From my understanding we can NOT use Adafruit Feather M0 with RFM95. Because it’s not
authorized, allowed to be used in Japan.
The device with RF function must meet technical standards compliance, and put the ahtorized
symbol, TELEC mark, on it.
Please let me know if I’m wrong, or you guys have information Adafruit Feather M0 with RFM95 is already autorized in Japan. I welcom such imformation.
How about you tell us what devices are available?
How about you provide far more detail in your answers and posts? So we don’t end up with the back & forth that is literally chewing through time.
I hope it will be a progress!
Today I realized my Conduit does NOT respond to Join Request within RX1/RX2 time.
When OTAA Joining fails Conduit does NOT respond within above 1s after receiving Join Request. When OTAA succeeds Conduit does respond.
Here is a screenshot from my TTN console.
These are the problems I found.
(1)In #1 Jon Request is received by GW at 20:58:52. But Jon Accept was sent from GW at 20:58:56. It takes 4s. Can not respond within RX1/RX2.
(2)In #2 why does the GW respond with 924.4MHz frequency? According to LoRaWAN™ 1.0.3 Specification, section 3.3.1, the first receive window RX1 uses a frequency that is a function of the uplink frequency and a data rate that is a function of the data rate used for the uplink. I’m not sure 924.4MHz in Join Accept is OK or not. Please tell me.
When OTAA succeeds Join Accept is sent from the GW immediately after Join Request with the same frequency as the frequency of Join Request.
It seems to be strange.
Except RX1/RX2 is for downlinks, if you look at your first screen shot above, you’ll see the join delay is 5s and 6s - presumably this will be sent in the second window when the gateway gets it.
Your picture shows your node seemingly transmitting pairs of join requests at different frequencies impossibly close in time.
The 924.4 MHz responses are legitimate responses to one of those, but you’re getting confused because you are looking at the other copy on a different frequency.
Now of course, what is actually happening is not the node transmitting twice. Rather, your node is too close to your gateway causing it to be overloaded and bleedover into additional fictitious signals on channels it did not actually transmit on.
Move your node further away from the gateway, and make sure that the log is only showing one join attempt or uplink with a given timestamp, not two.