-
Notifications
You must be signed in to change notification settings - Fork 3k
Telit LE910 and ME910 #8666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Internal Jira reference: https://jira.arm.com/browse/MBOCUSTRIA-143 |
@Alex-EEE assuming that you are using PPP mode (that's Mbed OS internal LWIP stack), you can use e.g. TELIT_HE910 driver. I tested with LE910-EUG and at least GSM network connection was fine, here is my setup:
If you want to enable 4G/Cat-M1, change I guess @paspik can comment about support. |
Fantastic, thanks for the look and code tweaks! |
@Alex-EEE Did you ever end up getting @AriParkkila's recommended action to work? |
I have yet to try it. We'll probably be looking at cell drivers next quarter, so whenever we do, I'll post on here any additional steps needed |
Can you re-open the issue? |
Sure. Re opening b/c I haven't tried this fix yet. |
Thanks @Alex-EEE I'd like to see it remain open until both parts are officially supported in the OS. |
@dlfryar We can probably sort it out internally but wanted to note this doesn't seem to 'just work'. If we find a solution or implement ourselves we'll be happy to do an MR. Edit: For others note, target MCU is NRF52840. |
What's the issue you are seeing? Can you post a build or run log? Are you able to build using @AriParkkila instructions above? |
@dlfryar We were able to get around this and get the example to work, but it required a few tweaks for the ME910:
|
It looks like CGDATA and CGAUTH are both optional per 3GPP TS 27.007. @AriParkkila any guidance on how similar modules should be supported through the driver when they don't support optional command implementations? |
Adding @jarvte to get additional feedback. I believe cellular changes slated for 5.12 are API refinements. I don't believe they would impact the driver with regard to supported commands. Is there some other refactor you are referring to? |
#9568 |
Looks like it's already merged so a new pull request would line up with that work. You can add @jarvte and @AriParkkila to the PR for visibility. |
We are operating off 5.11.3. Expect an MR post release of 5.12. |
cc @ARMmbed/mbed-os-wan |
Any further insight as to why we needed to disable cryptocell? |
@maclobdell @ARMmbed/mbes-os-wan We have a working-ish implementation for ME910 but are struggling at each step. Currently having trouble with maintaining connection to Pelion using PSM mode. @trowbridgec can provide more accurate details if needed. |
The current layout of the cellular support suggests that at the time of construction of the driver for the modem, a construct of certain properties is built and fed to the AT_CellularBase object. Please check the code out here https://github.com/ARMmbed/mbed-os/blob/master/features/cellular/framework/targets/TELIT/HE910/TELIT_HE910.cpp#L24 One way of achieving harmony could be to come up with a single target, say, X910 and then based upon compile time flag or a run time flag we could pick up what modem is intended to be used and then that would serve as the measure stick to set correct properties. I think another thing that we are missing in most of our drivers is proper overrides for power up sequences and pin polarity settings. We did try to add such overrides in EC2X series modem drivers https://github.com/ARMmbed/mbed-os/blob/master/features/cellular/framework/targets/QUECTEL/EC2X/QUECTEL_EC2X.h#L34 |
TCP is certainly going to be problematic with PSM theoretically. The sleep time is characterized by the difference of two network or device initiated timers 'T3324 Active Timer' and 'T3412 Extended periodic TAU (tracking area update) Timer'. I am not sure what would be the value of this diff in your case and if it would have any impact on your setup. But theoretically, its quite possible if the time diff is too short. This may not be a problem in case of handshake (as it would be rather quick X RTTs) but maintaining connection state may become difficult in case of long sleeping periods. |
@hasnainvirk thanks! Any insight regarding PPP versus AT mode and PSM? |
@40Grit For PSM, it shouldn't matter what mode you pick given that you don't turn-off modem, i.e., the modem goes into a deeper sleep level (lowest possible power state but not shutdown state). Some data sheets suggest that while into low power mode, modems can still respond to AT commands. So I would argue that the PPP connection between modem and LWIP should retain its state even in low power mode. Now in PSM mode the attach state is preserved so when activity is needed, i.e., the modem sends a message or a tracking update, it just does it, no re-attach or a new dial-up (in case of PPP) needed. |
@hasnainvirk Any way to use PPP mode and still send AT commands without losing connection? Probably varies per module but in this case we see the ME910 losing connection when switching between the two. |
@40Grit It's not possible to send AT commands when you are in PPP mode. Many modems will chuck your connection to the ground if you try to send any AT command. Some may just send a BUSY signal. You can check that if the modem shuts down your PPP connection by monitoring the DCD pin if available. When the modem hangs up on you, DCD pin will wriggle (high or low depending upon the modem). |
@40Grit I assume you want to switch between the modes to retrieve SMS, is that so ? |
@hasnainvirk yes that is one of the use cases. We were also thinking it would be useful to check on certain parameters settings of the ME910 module form time to time. I suppose it isn't a huge deal to close connection to Pelion and then just re-register after getting what is needed. Our thinking was that any TCP socket would most certainly be lost, but maybe there would be a way to still maintain COAP UDP connection through an interruption of PPP connectivity. |
If you add RI pin to your driver construction, you may be able to add a URC to handle SMS. Then RI can tell you when to switch to command mode and handle your SMS. I hope there are options while setting up URC to block the calls and allow only SMSs. Yeah in case of UDP it should be alright. Please note that you may get a different IP address. That means renegotiation with Pelion. Again, @yogpan01 can tell you more but I think now a days Pelion Client can work without DTLS handshake (which is the time and power consuming part). I think this is a feature in DTLS v1.3 |
@hasnainvirk Thank you for your clarifications. We did end up having to change a couple of the properties to match what's available in the ME910 vs. the HE910, but it was relatively straightforward after reading through the datasheet. We also wrote our own power up sequences, but I'd think that would be expected. Our motivation for sending AT commands while the PPP connection is active was actually to be able to send (not retrieve) SMS messages. I'm not sure if that makes any difference though. I saw mentions of people creating a separate context (cid) to use for sending SMS messages, but that seemed to require multiple UART connections to the modem which we don't have. Our workaround was to trigger a disconnect, send the SMS message, and then trigger a reconnect, and it has seemed to work out alright so far. If you have any better suggestions, we'd be happy to hear them. As far as PSM, we seem to see the underlying LWIP stack signaling that the PPP connection was lost, and after that, it is unusable to the Pelion client. Maybe it's a matter of adjusting the T timer to appropriate values so that the connection stays open (and move to UDP as well)? Here's an example of the traces we see when the PPP connection drops out (presumably because the PSM timer kicked in):
|
@trowbridgec If your modem supports software MUX, it may be possible to multiplex two separate contexts (say one in command mode and another in data mode) on the same UART, i.e., multiple file handles. Other case of having multiple UARTs is already looked upon by you. @AriParkkila can assist you more with AT MUX. I haven't played around much with the new code base. I had been involved with this project in ancient times. :) I will try to study this from code perspective and try to dig more information from the data sheets. |
@trowbridgec By the way, do you have a link for your fork where you are working ? Are you going to contribute or is your work in stealth mode ? |
@hasnainvirk The software MUX idea sounds great! @AriParkkila if you have any insight into that, we'd be very interested in something like that. As far as our ME910 driver implementation, it's currently in house, but I can do some cleaning up and create a PR with it. We'd love to get your feedback on what we have so far. |
@hasnainvirk @AriParkkila @maclobdell @ARMmbed/team-embeddedplanet I created PR #10484 for bringing our ME910 driver implementation. |
@Alex-EEE It looks like PR #10484 by @trowbridgec might solve this request, so this issue could be closed? |
@AriParkkila I'd prefer this stay open till that merges |
This was reopened at my request. It has been resolved. @AriParkkila |
@0xc0170 This can be closed. |
Description
Are there any plans to add support for Telit's LE910 ( 4G ) and ME910 ( Cat-M1 narrowband IoT ) modules?
Issue request type
The text was updated successfully, but these errors were encountered: