Working on adding support for TinyGSM, I have opened a ticket over on the TinyGSM maintainer’s github.

https://github.com/vshymanskyy/TinyGSM/issues/486

Prebuilt hex images are in the file link in the above link. The file might be too big to use the bootloader so a 6 pin TagConnect and some programmer might be needed to program the Feather nRF9160. If I am wrong here, please correct me.

Basically it is using the nRF9160 in a “serial lte modem” mode, which turns the nRF9160 into a dumb LTE modem, while the nRF9160 is capable of doing so much more, it can be easy to integrate LTE into an existing Arduino project. The nRF9160 is connected to the Arduino MCU (in this case using ESP32-CAM for the examples) through UART and controlled through AT commands. The AT command, while some are specific to the nRF9160, many are similar to other LTE modems.

Not that I don’t want to post it here, but I have already written a wall of text over there with a lot of information including everything to get a working development environment setup.

There are sample projects for the Feather nRF9160 along with the nRF9160DK and one other board.
For the most part HTTP support is working, one of the sample projects uses the ESP32-CAM camera to upload JPEG images to a php script using HTTP POST. HTTPS is not working yet, the goal is to get BearSSL support working with it.

Yeah, the nRF9160 has SSL support built in, but you need to provide the certificate to the nRF9160 for each server you want to connect to, trying to use BearSSL (and an SD card to store the CA certificates) to be able to connect to and verify any server you want to connect to easily.

    aldras I think you got everything right. I would add the new boot loader should allow larger sizes but it would have to be tested first. Thanks for sharing! 🙂

      jaredwolff
      I made a set of precompiled hex files for the three types of boards I have, feel free to test the HEX files with the bootloader, I believe it is the app_upgrade.hex if I remember correctly.

      https://www.drassal.net/filestore/esp32_nrf9160_camera_http_20210203/nrf9160_firmware_20210203.zip

      The full source code is also here, SDK version 1.4.99-dev1, it is rather large but I left the “build” folders intact.
      This file was really created to help distribute the necessary files to those interested in adding support to TinyGSM for the nRF9160, but has almost everything source code related.

      https://www.drassal.net/filestore/tinygsm_nrf9160_dev_20210202.zip

      a year later

      An update on TinyGSM support, I spent most of the day yesterday bringing it up to date and for the most part basically works, but does need some cleanup.

      I have been working with the Adafruit Feather M0 for the most part, but the M4 line also works well, I have used it in the past to use the nRF9160 to upload images to a PHP server. I plan on getting that up to date soon as well.

      BearSSL (software SSL) support also works with this TinyGSM build, but needed one obvious fix in BearSSL related to “time_t” not being defined, had to change that to “uint32_t” and that error is easy to notice when compiling. I will detail that later, but basically wanted to update the TinyGSM support information here.

      A lot of the detail is in that repository in the example sketch for the nRF9160.
      I also worked out the app_update.hex method so that can be used and firmware files are included in the extras folder, in the TinyGSM source.

      While you won’t get all the bells and whistles of developing on the nRF9160 itself, it does provide an easy way to add some basic nRF9160 support to an Arduino project.

      I re-forked the TinyGSM repository and added two commits to add support, the repository is here.

      https://github.com/aldras/TinyGSM

      There are a couple support tickets related to it also on TinyGSM, one created by me, and another.
      https://github.com/vshymanskyy/TinyGSM/issues/486
      https://github.com/vshymanskyy/TinyGSM/issues/547

      While the TinyGSM implementation has not been fully cleaned up and debugged, it does for the most part function and retrieves HTTP requests.

      One more note, the serial_lte_modem application being used is from the latest v1.8.0 SDK, however, I had to copy a couple things from the v1.6.1 SDK as they were removed, the HEX send/receive support. I added the AT commands “#SENDB” and “#RECVB” to handle this, but besides that, and GPIO mapping, the example has not been changed from stock.

      It will run in full stock mode by changing a define in the “src/TinyGsmClientNRF9160.h” file. Just comment/uncomment the following two lines to use text datatype instead of HEX datatype for send/receive.
      #define DATATYPE 0 //HEX datamode
      //#define DATATYPE 1 //text datamode

      @aldras thanks for sharing. I’m sure this will be very useful for others who are using the same!

      Terms and Conditions | Privacy Policy