Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
NB-IoT Arduino Shield from AIS (Thailand) First Impressions
Today I received my NB-IoT Arduino Shield for AIS (Thailand). Here is a "pinout" photo of the shield.
My shield looks just like the one above, for the most part. I'll post another photo of the actual device later.
When I received the shield in the mail, I went immediately to a local AIS office in the mall to have it activated.
Of course, none of the regular service people at the counter knew anything about registering this device with AIS; and at first they told me I could not register it because I had to also have an AIS SIM card and mobile number. Naturally, I told them (very strongly) that was absolutely not the case and the "SIM" was in the board which you could clearly see in the form of an "IEMI" and serial number on the bottom of the device. The counter people were nice, despite some older, foreign guy insisting, in their language (spoken as a non-native speaker), that I did not need an AIS SIM card and that they could register this device without one.
Patiently, and after about 30 minutes of "not much real progress" at the counter, the counter staff disappeared to the back room (to escape my lecturing them that I did not need a mobile SIM card); and after about 10 minutes had passed, the service counter team returned with a "manager", who knew exactly how to register it and explained to the counter team, in a mentoring way, step-by-step, how to register and activate my NB-IoT device.
During that time, the manager (who was a great guy and very helpful) told me, in reply to me asking a number of questions, that only around one person a month registers a device like this, on average, and they are mostly students. So, I thought then, it surely looked funny to them to see a retired techie like me registering this device.
After running some errands on my motorcycle, I got home and immediately inserted the shield into my Arduino; checked that I had installed the AIS libraries (earlier I did the prep work); started my very simple UDP server I wrote in Python for testing purposes on a server in the USA.
Note: I think it is very cool that the Thais are using GITHub to manage all these libs and test code.
Here was the sketch for the Arduino:
Here was my "test setup" Python code:
Well, it would not connect.... many tries... no connection to the AIS network.....
The Arduino serial monitor showed it kept getting stuck on this line in the AIS lib code (debug message):
I posted a question on the AIS NB-IoT group on FB and went to the local fish market; and got some replies but nothing really technical, just a confirmation that another person had the same results. Well, "misery loves company", as they say.
Then, eating some local fish at my desk, I decided to connect the device to my laptop and go outside to the "city side" balcony in my condo.
No luck.
I put the test setup on my desk, and continued eating, then noticed on my UDP server log output, that it had connected and pinged a few times and stopped. Yea!
Next, now feeling like I was getting somewhere, I took my setup out to the ocean facing balcony, and ... yea! it connected.
So, I immediately realized it was a signal quality and location issue; and so I walked around the building, in the parking garage, running the test ping program from AIS.
In the next post, I'll post some of the output from the Arduino serial monitor, for completeness.
The Bottom Line / Initial Impressions:
This NB-IoT device has low signal quality from high floors in my building (over 20 floors high).
This NB-IoT device has low signal signal quality from underground parking (one level underground) in my building, except near the entrance ramps in my area.
This NB-IoT device has low signal quality between the buildings and there were a number of "dead areas" where the signal was lost and not recovered.
This NB-IoT device works OK at the ground level of the building (for the most part) and at ground level in most open areas.
This NB-IoT device would disconnect from the network when in a dead area and it mostly required a device restart to reconnect. Note: This issue could be mitigated by adding a few lines of code in the sketch to attempt to reconnect to the network after some timeout, or based on reading the signal strength on the device.
Next Steps:
Read the AIS Library for this device and see if I can get the signal strength from the device and use the signal strength in the code for connection management and status messages. If so, this is good. If not, request this modification from AIS tech support, or search the network and see if can get it for the NB-IoT chipset on the device.
Will post some survey "ping" samples from the device to my test server after I transfer the data from my laptop to my desktop.
In a nutshell, this NB-IoT reminded me of the "good ole' days" when mobile phone quality was quite poor (in the early days of mobile phones, because they become commonplace) and connections to the network were unreliable. I would not use this, in its current form, for any mission critical application, because it is not (yet)reliable and the signal quality is low / weak in my areas-of-interest (AOI). I guess I could get an SMC power pre-amplifier in the frequency range or a higher gain antenna and see if that helps
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Update:
Yes, the AIS library has a method to get the signal, so I will modify the Arduino test sketch to use the signal strength, after I do some surveys to determine how the signal strength effects the connection.
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Reference Material:
Here is the BC95 AT Commands Manual I am working with; but frankly speaking I am having trouble setting many of the commands to return data. I'm wondering if some of the functionality of the chip has been disabled?
Here are a few photos I took today.
The actual shield I am using for testing:
The actual shield I am using for testing showing Arduino underneath the shield:
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Update: Answers to Questions (to Me):
Via PM
General Comment (something link): Please add more serial statements in your Arduino sketch to debug.
Reply: In the sketch (see post one) you can see this entry the code:
So, there is already a considerable amount of serial logging built into the AIS NB-IoT library. You can look into the library to see that there is no shortage of serial debugging information in "debug" mode.
Via FB AIS NB-IoT Group
Question: How do we get the IMEI and IMSI from the board?
Reply: These methods are defined and available in the AIS NB-IoT library:
Please review the AIS NB-IoT library before posting comments or sending PMs. Answer to most questions can be found in the AIS NB-IoT library and the BC95 AT command reference manual (links above).
Finally.......
Via FB AIS NB-IoT Group
Comment: Obviously, AIS shop' staff aren't trained to this product. The best contact is mail to : aiap@ais.co.th
Reply: Correct; but for new registrations AIS customers must go to an AIS service center and provide a copy of their ID card or passport to register the device. This cannot be done via email, per AIS policy (so I was told by AIS Call Center).
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Yesterday we spent the day out in the car with the AIS NB-IoT device attached to my MacBook Air; looking at the serial monitor via USB and also recording messages back in the USA on my simple Python UDP server.
The bottom line is that this device is good for locating AIS cell towers :wink: :wink: because it only worked when a tower with AIS NB-Iot support was visible (within line-of-site).
This means that this device seems to only work when it is very close to a cell tower and very close to direct line-of-site.
This also explains why this 900 MHz range device works on my sea-side balcony. There is a cell tower in our line-of-site on that balcony, only a few hundred meters away..
However, on the rear balcony, the AIS-NB-IoT device will not connect to the AIS network, and, as expected, there is no cell tower within line-of-site.
When driving around the countryside in Thailand, this device only "worked" when there was an AIS cell tower which supported NB-IoT in near direct line-of-site.
My best rough guess, driving from our condo next to the sea in Jomtien Beach to Hardware House (picking up electrical supplies) in the country side, Rayong province and back (using two different routes), is that this AIS NB-IoT device connected successful to the AIS network approximately 70% of the time. This is just a rough guess because I was driving the car and my wife was looking at the computer, calling out the RSSI readouts and connection status. She really liked that part, I think!
Note to AIS Network Engineers: AIS NB-IoT device would not connect to AIS NB-IoT network at Hardware House in Rayong (or in that important area).
We experienced mixed results with the NB-IoT shield working as it went in and out of network coverage. Sometimes the device did not require a reboot to reconnect after losing the signal, sometimes it did require a reboot to reconnect.
To write code to properly mitigate this (connection management code), I would need the technical parameters from AIS for the network regarding connection timeouts (and other parameters) on their end; but since I only have the specification for the device (the BC95) and not the AIS NB-IoT network.
I have already reached out and sent an email to AIS for this basic timeout value.
Quote:
Dear AIS AIAP,
What is the timeout value for a connection to the AIS NB-IoT network from a device after a connection has been established and a message not received from the device?
Thanks!
Waiting on a reply ...
Soon, I think I will test LoRaWAN including LoRaWAN gateways and devices. More on this later.
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Note to AIS network engineering:
In the same building next to the beach, but on the opposite side of the building (the city side), the AIS NB-IoT shield will not connect to the network. In fact, it connects easily on the sea-side of the building, but on the city-side, even though there are many cell towers, the shield has never connected:
At least, we know this was set and AutoConnect is working
This post describes a "work in progress" project I started today. Here is the High Level Overview:
Currently, this project sits on my desk as an Arduino UNO (on the bottom), an NB-IoT Shield (sandwiched in the middle), a Sensor Shield (on top) with a HM-10 BLE Module (in the little... (13 Replies)
Normally I have very good experiences buying from AliExpress, but in this case with Elecrow, I'm disappointed.
After confirming with Elecrow on AliExpress that their Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield for Arduino would work with 3G SIM cards in Thailand, I purchased one. My plan was to... (1 Reply)
My favorite projects are always related to the "latest" tech in command and control, networking and network communications. This Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield seems to be the "latest and the greatest" as far as 3G and GPS, as far as I can see so far, but I has it drawbacks for sure.... (6 Replies)
Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second.
Normally, when the Arduino starts... (9 Replies)
In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today.
https://github.com/arduino/arduino-cli
I followed the instructions for macOS but when I got to this part:
arduino-cli board list
I got the dreaded "Unknown" Fully Qualified Board Name... (1 Reply)
dear experts
i want to install java install shield on solaris
but first i want to read more information and help about it
can anyone gives me some links or guids that helps me (0 Replies)