Challenger RP2040 LTE MkII
The Challenger 2040 LTE is an Arduino/Micropython compatible Adafruit Feather format micro controller board based on the Raspberry Pico chip.
The new MkII version has an improved power supply section that reduces power consumption and allows the board to run at a lower battery voltage than before. Which in the end leads to longer battery operating time.
This board has been designed to allow you as a user to be able to create inexpensive IoT devices that can be deployed anywhere without having to depend on a WiFi-connection or to have a Phone with a bluetooth connection open. This just works wherever you are. It connects seamlessly to the same network that you phone does and allows you to transfer your data quickly and with very short delays.
And by using the powerful dual core RP2040 combined with 8Mbyte of flash memory you get a device that can handle pretty much anything you can trow at it. For instance if you let one core handle the LTE modem and the second core do all the UI stuff you get an extremely responsive system. Not to mention that the 8MByte of FLASH memory will let you install any (or all) circuitpython support libraries that you will every need.
Again we have used the popular RP2040 from the Raspberry Pi Pico. An extremely well suited embedded processor for doing cool projects and managing high end communication devices such as the embedded modem. With its dual core Cortex M0 at 133MHz, 8 MByte of FLASH and 264 Kbyte of integrated RAM it will take a very long time before you run our of resources.
LTE (Cat M1/NB-IoT)
The module we selected to handle the cellular communication is the SARA-R410M series module. This module can be software multi-band configured, enabling international multi-regional coverage in LTE-M/NB-IoT radio access technologies.
The SARA-R410M module is ideal for mission critical IoT solutions, as it includes a unique and immutable root of trust. It supports IoT security as a service and provides the foundation for a trusted set of advanced security functionalities. The scalable, pre-shared key management system offers data encryption and decryption, both on-device as well as from device to cloud. Utilizing the latest (D)TLS stack and cipher suites with hardware based crypto acceleration provides robust, efficient and protected communication.
Communication with the modem device is done over the second serial port of the RP2040 and the board is configured for hardware flow control which allows you to use high data transfer speeds to and from the modem.
The supplied cellular antenna is connected to the board through a U.FL connector at the rear of the board. The antenna can then be attached to a plastic enclosure by peeling of the protective film and pressing it in place.
The board needs a nano SIM card in order to be able to connect to an LTE network and transfer data. Here you can either get it yourself or use our prepaid cards from 1NCE. The IoT pricing of the 1NCE IoT Flat Rate contains 120 months of connectivity services for 150 SEK. It is a one-time-payment only with no hidden costs. 1NCE offers one IoT data plan where all necessary features are included:
- 500 MB data volume with speeds up to 1Mbit/s
- 250 SMS
- SIM card
- Global coverage in 130+ countries (Check if your country is covered here)
- All mobile standards (2G, 3G, 4G, LTE-M, NB-IoT)
The SIM card that we supply is for evaluation only, If you want to take advantage of 1NCE full flexibility with their top-up option and their API’s you should get in touch with them directly here.
There are two buttons on the board. The button closest to the USB connector is the reset button. Use it whenever you need to reset the unit. It has exactly the same functionality as the RESET pin. Then there is the BOOT button just next to the reset button. This button must be used in conjunction with the reset button to reset the RP2040 into UF2 mode. Press the BOOT button, then the RESET button for a short moment. Then release the RESET button (while still pressing the BOOT button) and shortly after that release the BOOT button. This will place the board in UF2 mode and show up in the computer as a mass storage device.
USB Type C
In the recent years we have noticed that we are seeing more and more USB Type C cable laying around the lab due to the fact that all new phones and accessories use them. As of yet we haven’t seen any shortage of micro USB cables but we are not getting any new ones any more and old ones do break occasionally. So we decided to go for a USB Type C connector for this board. A bonus of this is that they are quite bit more durable and you don’t have to fiddle with the cable before plugging it in.
After a few months, I was able to get this board communicating using the Hologram service.
My biggest challenge had to do with the very steep learning curve of the SARA R4 onboard modem chip.
The particular R410 chip used on this board isn’t so much the issue in retrospect.
The issue is the default configuration settings in general to all embedded modems that need to be understood and overcome.
I’ve run into this European mindset before. For some reason, pulling a device out of the box and powering it up is never supposed to work by design.
It is supposed to destroy your sanity.
For example, just try to make just a simple serial pass-thru program where what you type gets sent over to the modem, and what it transmits ends up in the terminal window.
At first glance, it appears to constantly freeze up and stop responding.
Reading the 510 page ublox manual over and over, I finally discovered that i have to power up, and quickly within 5 seconds transmit AT+UPSV=0 and make sure it is saved to the module.
This took days!!!!!
My only complaint about the ILABS hardware (giving the 4/5 star) rating is that reset line for the RP2040 CPU is tied to reset of the SARA modem module.
So when you want to send a program change to the RP2040, you also reset the modem.
So then it becomes a song-and-dance to try to send AT+CPWROFF and wait some seconds before uploading from Arduino IDE.
Arbitrarily resetting the modem is very bad but during development of the RP2040 program you need to do a lot of resetting.
So be prepared to face cellular tower bans for a few hours, or confusion due to not having your new settings actually saved to flash on the SARA R4, or potential corruption.
It would have been more helpful to have the examples be fleshed out a little more.
That being said, if anyone wants to show some interest I can hurry up and post my project on Github.
These issues can be overcome and I would hate to have someone pass over this module in particular, because the real issue is with uBlox and other manufacturers being very poor at explaining the key important things. Instead it’s pages and pages over-explaining some command variant that nobody will actually use in the most obnoxious placeholder style format.
It is really important to write non-blocking code. Most libraries (Sparkfun and MKR NB 1500) are going to be dead-ends because the function calls are going to wait minutes to timeout. Do not treat your dialog with the SARA R4 as a normal kind of send command then spin-lock waiting for a response and then return a value. Do other things while receiving a response to be interpreted once it all arrives, if it arrives.
Best of luck if you buy this, it does eventually work if you are persistent. You will need the uBlox AT commands manual and application notes.