Thanks Much Albert. That is great news on Ting.
You have a DM!
Answer there please.
Update on Antenna mod in practice
(Photos taken upstairs on a second floor. Antenna pointed at ceiling vent.)
@8bitRobot. this is really crafty of you, but I don’t know if I’d recommend other users doing it… We’re only selling 4G phones to our US customers after the Kickstarter ended because of all the problems 2G connection has over there
Most companies are dropping 2G/3G. I have to walk a little bit farther outside to actually get connected(4G). The antenna might help the connection, but it doesn’t make the connection stronger. It gets weaker by thinning it out. That’s why I’ve modified the antenna.
I haven’t fully formulated a new one, but I am working on modifying it. So far, my efforts are working, but in testing and in the very young stages.
AT+CNSMOD? +CNSMOD: 0,8 OK
I appear to be connecting to LTE with Ting.
AT+CSQ +CSQ: 19,99 OK
I appear to have alright signal…not perfect, but certainly not THAT bad. Here is another useful command to run to see more details about your current connection information. In fact, it’s probably the most comprehensive single status command…but the output format changes a little depending on network type:
AT+CPSI? +CPSI: LTE,Online,310-260,0x7C97,15555074,89,EUTRAN-BAND4,2300,5,5,-144,-1094,-753,11 OK
According to the documentation:
If camping on a lte cell: +CPSI: <System Mode>,<Operation Mode>,<MCC>-<MNC>, <TAC>,<SCellID>,<PCellID>,<Frequency Band>,<earfcn>,<dlbw>, <ulbw>,<RSRQ>,<RSRP>,<RSSI>,<RSSNR>
So, here in North Texas, LTE is showing up and connecting with a Ting or T-Mobile SIM, but as I noted in my other threads, calls can’t be made or received (in app or manually via debug). SMS does work* (*I’m still hunting the “sending hang” issue in software, as manual debug commands send and acknowledge without fail every time ).
That said, when I attempt to send ATD###########; I get told NO CARRIER after a long delay. So, back to the drawing board. This happens with both Ting and T-Mobile, so it isn’t isolated to a “Ting doesn’t do 4G” issue or anything like that. Likely regional spectrum licensing garbage is what causes this widely variable result for each of us. You’ll still find top-tier smartphones in the US not supporting all carriers/bands, even when unlocked…it’s a mess. It’ll only get worse as 5G rolls out…smaller geographic cell sites, more slicing and dicing of frequencies, a new wave of “special” agreements on exclusive tower placements, etc.
I tried forcing UMTS/WCDMA mode and I get absolutely no connection to the tower…so there must not be any 3G coverage where I’m at. Doesn’t surprise me. T-Mobile has to use what little spectrum they have here for 4G because I’m in the city.
@frankprindle are you in a more rural or less-dense suburban area? I’m originally from PA, where I used to do tower rigging for T-Mobile. I know that in much of PA’s more rural areas, T-Mobile’s 4G still isn’t fully available (surprising, I know) due mostly to issues in propagating mid-band frequencies. Verizon has a bit of a stranglehold in PA, even moreso than AT&T has here in TX…there are still plenty of municipality exclusivity agreements in place in the smaller towns, precluding other carriers from putting towers up, spare around the very outer edges of an exclusivity territory.
I’m going to try an AT&T prepaid SIM. At least that will eliminate signal strength as a potential cause for me. They pretty much own TX and have towers seemingly every 50 feet. I should get excellent signal even inside.
Honestly, I don’t know that we’ll ever get to a point where a SIMCOM module will work flawlessly with all the carriers in every little corner of the US…Qualcomm invests millions in R&D keeping up with the US spectrum landscape, and even they struggle to cram all the necessary bands and technologies into a single module (and they charge handsomely for that effort). I suspect we will each just have to try to find the “best” (as in signal strength and coverage) carrier in our respective areas and stick with them. It sucks to find ourselves limited to potentially more expensive service options, but we are talking about an educational prototyping build with a far less robust module and antenna than the thousand-dollar smartphone you might be reading this on. It’s not all that surprising that we find ourselves having trouble using the underdogs and MVNOs in some areas…“you get what you pay for,” I suppose.
Wow, that’s quite a finding! With T-Mobile, all I get here with AT+CPSI? is:
+CPSI: WCDMA,Online,310-260,0x8785,46467012,WCDMA PCS 1900,134,637,0,15.0,115,6,65535,500
I’m suburban Philadelphia, not exactly what you’d call rural! And I know that T-Mobile LTE works here because I have an iPad with cellular that connects OK to T-Mobile LTE. It’s not the strongest signal, one or two bars on the iPad, so maybe the issue with the Ringo is that its antenna is not optimal for the LTE signal. Even the UMTS that I’m getting above is only showing 0-1 bars on the Ringo (better when I take it to other places).
I just looked up my address again on the T-Mobile coverage map (the old one that shows everything, not the new one that only shows LTE) and it shows 4G-LTE to be weak indoors here, so could be the problem. Here is what I get:
The 7600A doesn’t do 600 or 700 MHz, and the 2100 is weak. When I go to a strong nearby supermarket area, it could well be using VoLTE but I can’t carry a USB serial terminal with me and the damn SIM Debug app only prints the response to the serial terminal, so who can tell what I get there.
Yeah, it would be helpful if the SIM Module Debug also output its results to the LCD for mobile diagnostics. I just picked up an ATT prepaid SIM and will begin testing with it to see what I get.
EDIT: I’ve made a small breakthrough in the last 12 hours. Got a lot to unpack and write up, but I’ll get it posted soon. For now, set aside what I’ve said below…some of it will be easily explained in my next post (AT&T is. the. worst. and not in the way you’re thinking…but more on that later).
Alright…now that I have tried AT&T, T-Mobile AND Ting SIMs with effectively identical results, I can present the following as the case with ALL 3 (see attached monitor output for LINE# references):
- The Loader seems to initially initialize the modem AND connects to a network, as seen at the start of the monitor output (LINE#240: ‘+CSQ: 15,99’ & LINE#351 ‘+CREG: 0,1’ indicating both reasonable signal and successful registration to home network)
- Then it somehow resets or sends another command and it starts over, this time failing to connect (LINE#1251: ‘+CSQ: 99,99’ showing no signal)
- Toggling airplane mode, rebooting a few times, or just letting it sit there asleep for while will usually get the connection up eventually
- NONE of the SIMs I’ve tried have successfully yielded a proper string in response to AT+CSPN? and present merely “” (empty string) in response
- Returning to the lockscreen after successfully having a connection will almost always result in the connection being lost
I’ve been digging through the firmware source all evening. None of the commands I’m seeing being sent to the modem appear wrong or something that would cause this type of symptom. It’s just strange behavior all around. I don’t want to presume a potential bad module, but without being able to produce consistent results in any given direction, it’s hard to pin this down to a definitive cause.
I’m going to mentally set this aside for tonight and look at it fresh tomorrow. Maybe something will come to me whilst I sleep.
NOTE: Had to zip it because .txt isn’t permitted?
ModemIssues202006102106.zip (1.3 KB)
Ugh…alright. I’m going to try to explain this as succinctly as possible while still getting the necessary details across. I’ll try to keep the rambling to a minimum.
So, after 2 visits to the store and 4 phone calls to CS, I finally got the AT&T SIM properly activated. Prior to getting this fixed, I was randomly getting registration denied errors on the modem (AT+CREG=n,3) between successful registrations. I’ll spare you the annoying details of that garbage experience and how AT&T violates the GSM standard for SIM activation. I will say simply say again…AT&T is. the. worst.
I also discovered, much to my surprise, that despite AT&T’s near monopoly on cell towers here, I still had a random dead spot in my house…and, of course, this dead zone was right at my damn desk. (Moral of the story: If it weren’t for bad luck, I’d have no luck at all. )
Now that I had this mess sorted out, and relocated myself to…well, anywhere else in my house ()…I could truly dive into what’s really going on here, which has a couple facets working in tandem:
T-Mobile where I am at will NOT supply any call audio over LTE…no matter how strong the signal. I don’t have anything other than LTE available here with T-Mo/Ting so the testing ends there. I’m still digging into the cause of this, but haven’t mastered the AT commands for all that just yet and am still working on it.
AT&T works fine on both LTE and WCDMA (I can allow “auto” or force to either) and can make/receive calls so long as there is sufficient signal, and I get call audio no problem.
The previous reports of Loader/Lockscreen init modem, gaining network, then losing it again was a product of the modem dropping connection due to very low signal. So, this is not really an issue, so much as it is a case of minimal status reporting in Loader/Lockscreen to let us know what is happening…not a big deal right now and mostly cosmetic to the user. The airplane toggle just tells the modem to try again after it had already given up. Since a user would typically reorient the phone in some random way while performing this airplane mode toggle, the connection would usually succeed eventually due to nothing more than having better signal in the new orientation
AT+CSPN? still presents a null string, even on AT&T with good working connection…but I think this is because the modem looks up network ID in an internal DB and this DB likely just doesn’t contain all the latest US Network IDs-Names in its list. Just a cosmetic issue.
The appearance of returning to Lockscreen and it looking like it lost connection is actually the software reporting the “Loading…” text while it queries AT+CSPN? and doesn’t drop the loading text until it has given up retrieving a valid string. Again, just a cosmetic issue.
Now, you’re wondering about SMS…that is its own beast. In fact, it will be the one of the first things I focus on in my fork of the firmware:
- Right now, we’re processing all the SMS transactions “off-modem,” meaning we are only using the modem for the real-time sending/receiving of messages and rely on the firmware for real-time processing of SMS data and SD storage (.json) for messages, both inbound and outbound
- Anytime we need to receive a message, we pretty much have to stop whatever else we are doing because all the work needs performed by Ringo in realtime to prevent loss of message data streaming from the modem
- This presents issues when in app/game that doesn’t employ the proper MP libraries, the firmware is busy handling something else, or when using the power button to initiate sleep - wake up is often slightly delayed and a partial, garbled (PDU conversion error), or no message gets received, despite successfully waking up the device
- Bottom Line: The firmware just isn’t always in a position to handle an incoming message in real-time and some or all of the message data is lost due to serial buffer overflows on the modem…it starts discarding the oldest buffer data to make room for new data while waiting for the DTR signal to go high.
However, both the SIM7500/7600 and SIM800 (am I missing any other models you ship, @robertCM?) modems support automatic internal processing and storage of incoming SMS - either in modem or on SIM card, meaning we can allow the modem to do most of the heavy lifting when it comes to receiving and storing SMS, only needing to notify the firmware that a message came in, instead of requiring Ringo to also process and store it in real-time. We can still use the .json storage on SD for caching and folders like Archive, Drafts, etc…but I think we should lean on the modem’s capabilities a bit more. The modem can be told to store messages internally and notify the firmware the storage location ID where it can retrieved. This completely eliminates the chance of messages being lost because the modem only has to keep basic result codes in its TA buffer when the firmware isn’t listening (DTR low), instead of trying to hold onto an entire message (or several).
- Sending SMS can currently very easily hang because messagesApp will wait endlessly for a result code that may never come. This is especially true if the network is spotty or signal is weak. If it hangs and the modem drops connection to the tower while trying to send, I don’t think the modem actually reports this specific condition…so the messageApp can hang forever, until you manually reboot it OR you get, say, an incoming SMS or other modem initiated communication to the firmware that sends the “OK” keyword the sending routine is still waiting for. This particular condition results in full or partial loss of the sending message, received message, or both.
MY CONCLUSION: Since the modem has the capability, why not let it handle as much as it was designed to? Let the modem and network hash out the signal/timing issues with SMS on their own and leave us out of it…“just tell us when you’re done!” (old hats and retro programmers might recognize the “K.I.S.S” philosophy at play here ) So…I plan to work up a new version of messagesApp and related MP core function/libraries to accomplish the following changes:
SENDING: messagesApp will send the message, but the background task that monitors the modem will actually be in charge of waiting for a send confirmation. This will allow the messagesApp to immediately return control to the user, preventing a stall on delays sending. Once sent successfully, a brief self-dismissing popup will notify the user of success, even if they’ve left messagesApp. If the modem DOES give up and/or report an error, we’ll report to user the same way.
RECEIVING: In the initial modem init on boot, we specify the necessary options for internal SMS storage and notification. The background monitor will look for this notification instead.
A. When one comes in, we notify the user normally. We’ll retrieve the contents from modem storage for the notification contents
B. When user enters messagesApp, it will refresh the modem’s inbox contents at that time. We might cache message data to the SD card by message ID to speed up loading times on previously processed messages, but all newly received messages since last load will be parsed, decoded, cached/shown at that time. The modem supports asking for a list of stored message IDs, and has 4 status types: REC UNREAD (i.e. new message), REC READ, STO UNSENT, and STO SENT. Yes, the modem stores the messages it is sending and the send status, too!
C. Folders will also be added. Inbox, Outbox, and Archive. Inbox will reflect modem storage of received messages, Outbox will reflect modem storage of sent messages, and Archive will allow users to copy messages to SD from the Inbox/Outbox to ensure they aren’t deleted from the modem over time (it discards messages, oldest-first, as new messages come into a full storage medium)
I also plan to rework settingsApp and the background task monitoring the modem to allow for the following, to aid all users in their diagnostics and make it easier to share with others for troubleshooting/fixing:
SIM Module Debug will output responses to the LCD in addition to the Serial Monitor. This will allow for proper debugging on the go, so we can eliminate issues like “there’s a dead spot at my house” as a diagnostic hurdle without having to carry a laptop everywhere
Add option to SIM Module Debug that will allow ALL data being exchanged with the modem to be logged to the SD card for later review
Add option to Network page to allow user to specify their preferred network tech: Auto, GSM-only, WCDMA-only, LTE-only, etc. For example, I get much better reception on WCDMA with AT&T in my house, but I can only force WCDMA manually in debug…otherwise, it tries to keep a much weaker LTE signal that cuts in and out on calls
Again, sorry for the long post. There was a lot to unpack from the last 24 hours of testing, once I got the AT&T SIM working properly. The upshot is, I definitely have a much firmer grasp on how the Ringo handles the modem since I can see working services in action. haha I also now know what my first priorities will be when I fork the firmware to start working on it. My entire travel calendar for 2020 is awash for the obvious reasons, so I have plenty of time on my hands to dive into this…and I’ve been pining for a hobby project I can lose myself in for the next few months so I don’t go stir crazy. Looks like I found it.
Do note that none of the above is meant as any sort of negative criticism of the CircuitMess team. You’ve done a truly great job. I certainly don’t think I could have replicated what you’ve accomplished here. As we all continue to learn more about how all this works together (I didn’t even know the modem could store incoming SMS on its own until late last night), there will be plenty of room to build upon the solid foundation you have created. My comments on the firmware’s functionality and how it could be improved are intended to be educational in nature…even if my words occasionally come across so dry you need a glass of water to swallow them.
As I fork the firmware and begin working on these things, I’ll create an entirely new topic to track its progress. The repo will be public, so anyone can join in and lend a hand. I’m usually pretty good at properly commenting my code…mostly so I remember what on earth I was thinking at the time.
This was some hardcore troubleshooting @TheWebMachine! I’m glad you ended up figuring it all out.
I also like the ideas you proposed regarding the firmware, I’d be happy to help you test anything out if the need arises.
Thanks! We’ll see how it all works out once I put my changes into action. haha I’ll definitely let you know when I have the first working semi-stable build going…I’ll probably tackle the additional SIM Module Debug stuff first, since that will aid in everything else we try to do.
I really am starting at the very beginning with all this…gotta trying to compile the original firmware to make sure I got that process down first. Arduino is a relatively new platform for me…I’m just now getting into all the gooey stuff (firmware/partitions/bootloaders/how the CPU core-bound background tasks work, etc) between those silicon layers.
Whew, you’re really into this deep now! I’ve done a few minor mods to the firmware, but nothing like what you’re exploring. Good luck
FYI, there is a whole thread on how to generate the firmware.bin file from source and then flash it to the Ringo. It’s here:
How to build the firmware.bin file
Start from the top because it’s long and complicated. In the 13th post I summarize the process once I had done it successfully. At the time I was seeing some discrepancies but they were simply due to configuration management issues at the Circuitmess end. They’ve since eliminated most if not all of the warnings, which is a good thing because some of those warnings hid actual coding errors.
Wow, this is amazing! It’s just great how deep you went with this!
These things are really scary because we cannot test them directly since everything works here in Croatia and pretty much every service provider has some of their own “rules” that they enforce.
Nevertheless, you’ll definitely end up on the CircuitMess wall of fame just for this post alone!
If you need any help or additional information, feel free to reach out anytime - we’re more than glad to work on this issue with you especially since this is the only way to fix it!
I am having the same trouble with my Ringo, and as I was reading through, I saw some issues, and i don’t know which one i’m having, or how to fix it.
- 4G Ting doesn’t work?
- Hardware problem?
- Software problem?
- No access to clear skies?
- Conflicting libraries?
- No drivers?
- I need to force 2G to connect to LTE?
- SIM card problem?
- Hasn’t activated yet?
I am having trouble with connecting to the internet AND cellular, so that makes me think I have a hardware problem. Thank you SO much for your help!!
This is your most likely issue. As I mention above, it would appear that Ting no longer works with Ringo in the US (at least, most of the US, as far as I can tell) because Ting now uses T-Mobile’s LTE towers/frequencies, which the US modem that ships with Ringo does not seem to support entirely. So far, AT&T is the only US carrier I’ve found that still consistently works with the US variant Ringo modems.
If you have an AT&T SIM or don’t mind picking up a prepaid from an AT&T store, give that a try. If you still have issues, work down the rest of your list from there.
i am using the Ting sim also . I am in New Jersey close to New York . I have 2 of these Ringo we just put together . Nieither of them will connect to the network . I have ATT on my iphone , this sim also will not work in the RIngo ,but the TING sim will work in my iphone so i know the sim is good .
I would like to send them back to have you guys look at these 2 , please let me know the address , ill use DHL or postal if want.
I’m sorry this happened to you, but don’t worry. Let’s fix it asap.
Could you please send a few photos of your soldering to see if anything can be fixed there?
Also, please check if you inserted the sim card correctly. The golden pins should be facing upwards like in this last step in the Ringo build guide.
Stay in touch!
-Marija from CircuitMess
Soldering looks good … ive been soldering for 40 plus years ( even this week starting doing some microsoldering too ) probable should have cleaned up the flux a bit . One is mine and one is my daughters … both have different problems … like I said before , I don’t mind sending them over to you to troubleshoot and repair / letting us know what was wrong .
Sim card is in correctly … I swapped it for my ATT card from my iphone and same problem. I put the card you sent me in my iphone and the card does work fine .
only lets me send 1 photo here … i can email if you would like