Every article I get the chance to write that features the work of @sulfuroid usually has to start with an anecdotal reference to the fact that the sheer volume of his output of work would indicate that he rarely finds time to sleep.
Well, not even a week has passed since we featured his recent ESP32-S2 development board, and here we are again, looking at the bring-up of a completely different project of his, based upon completely different hardware — these project stats are anything but rookie numbers!
This week, the good doctor is throwing an eye on not only the passage of time, but LoRa based text communication, graphical display drivers, and a whole heap more, in the execution and bring up of his RAK4260-based wearable LoRa communicator device: the RFL-Watch!
Whoo. That's a bit of a mouthful there, so let's do the thing we love to do, and try to take a bit of a look at what's going on here with this nifty bit of wrist-worn design.
RAK are a lesser heard-of vendor of LoRa radio modules, with some pretty appealing parts. They stepped onto the market with the RAK811 module, which fused a STMicroelectronics STM32L, with a Semtech SX1276 LoRa Transceiver — providing a complete, module-level, integrated solution for not only affording an end node some LoRa communication ability, but even allowing the STM32 to host the user application — a very nice way to save some costs!
Now, this isn't the only way to skin a cat. There have been advancements in the market and the associated vendor offerings in this area as of recently, and now, when it comes to integrated LoRa MCU combos, we are starting to see a number of vendor solutions.
Murata offer similar, STM32 / Semtech combination modules, and indeed, even more recently, STMicroelectronics themselves have announced the release of their STM32WL range of LoRa-enabled Cortex-M4 MCU parts.
The thing is, well, I have to say it, Murata don't really engage with hobbyists / enthusiasts — anything less than 100-125 kpcs / year and they likely won't get out of bed. This isn't so much an opinion, as worked experience. I can't fault them on it, it's simply how they have chosen to target their markets.
And while those STM32WL sure do look very nice, but they require you to bring your own RF layout, and thus, additional work when it comes to certification of your design. I've asked a few questions to my reps about the possibility of an integrated module, containing the wireless MCU and any RF circuits — as we often see with things like the ESP32 chips, for example — but we'll have to wait and see about that.
Being a less than mature (i.e. brand-spanking-new) offering, there isn't a wealth of reference material and designs yet available, so perhaps we want to look at something that has a bit of an easier implementation path — for now.
So already, we can see that there's a bit of a gap in the market — as far as we makers are concerned.
We want a device that offers a well-rounded set of features and performance, while being reasonably easy to implement. We likely don't want to talk about 100k pcs+ production quantities (just yet, anyway!), but we are also likely going to want more than a black-box, when it comes to device documentation.
RAK Wireless have some products that fall along our tRAcK of thought, and the one that has caught the eye of a few of us, @sulfuroid included, is the RAK4260.
The RAK4260 is a complete LoRaWAN-compliant (1.0.2 spec) transceiver module, packed into a tiny 15mm x 15mm footprint that sits pretty competitively in comparison to say, the size of the Murata type-ABZ modules.
It is able to manage such a tiny footprint, thanks in no small part, to its choice of the Microchip SAM R34 for its functional core. That naming convention puts this part in the familiar family that contains all the parts that Microchip parts acquired from Atmel a few years back. That family also includes the ever popular SAM D21 parts, and even the SAM D51, found on the hugely powerful Adafruit Grand Central boards. We'll touch on why that's important later.
Like the SAM L21 variants target Low Power, the context of this article should give a pretty clear hint as to what the R in SAM R34 might mean...
The SAM R34 is Microchip's market answer to ST's STM32WL line, providing a complete LoRaWAN compliant transceiver, and 32-bit M0+ MCU System in Package combination unit.
This is a really quite interesting part — from a size perspective. Cramming a Cortex-M0+ processor, up to 256 KB Flash, and a complete sub-GHz radio, covering the three major bands used for LoRa — 137 MHz to 175 MHz, 410 MHz to 525 MHz and 862 MHz to 1020 MHz, all into a 6mm x 6mm BGA package.
Being a SAM MCU, specifically, featuring the same Cortex-M0+ as the popular SAM D21 parts that are in wide use, means that software development for this part has a bit of a "leg up" — it's easy enough to port over the existing Arduino SAM D21 hardware support from an existing board support package, with a sprinkling of a few extra definitions, and thankfully, the folks over at ElectronicCats have done just that.
Their Arduino BSP release — targeting a range of their own hardware, thankfully includes some board support for their own RAK4260-based products - like the Bast-WAN Feather board — perfect for playing around with the functionality of the RAK4260, and a perfect code base to springboard standalone module efforts from. Thanks ElectronicCats!
So, now, we have not only an attractively specc'd LoRa MCU module, we have a good platform from which to develop code, and also, cheaply available development boards. This is surely going to lead to some very cool projects in the maker community, and @sulfuroid is already setting the bar with his contribution of the RFL-Watch.
It might not look like much, but there's more going on in the above photo than meets the eye. Let's flip this gadget over and take a gander underneath.
Again, visually, there isn't a lot to take in, and that's somewhat the point to be made when considering an integrated MCU and radio solution, especially one that is packaged up into a module.
A lot of the trickier work has already been done for you, and RAK have made implementing this part an absolute dream - you really don't need to do a lot to get up and running - and happily slinging radio packets in very little time!
If we take a quick look at the schematic, for the BastWAN board for example, we can get a good feel for what the (currently unreleased) core block of the schematic for the RFL-Watch might look like. If you're going to be using this module with the Arduino BSP we've mentioned, this is how the I/O is going to look to you.
We've got Serial UART, SPI, I2C, SWD (for low level programming), and even a selection of analog capability. That's enough to handle projects of even moderate complexity.
Save for three passives, and an antenna, that's all you need to get up and running with this module.
Internally, we can compare the RAK4260 from a block diagram point of view, to say, the Murata module block diagram from earlier in the article. Everything is there that you might want not only from an embedded controller point of view, but radio too!
Before we even consider the radio functionality, there are communication peripheral abound on this part. USB? Rodger. The inclusion of five SERCOM objects, each able to be configured as USART/UART, I2C, SPI or LIN means that any on-board communications, are easily handled.
All what do you need to bring to the party, in order to enjoy all of this functionality? A solid 3.3V supply, and a RF path out to an antenna. Throw in a few decoupling capacitors for good measure, and you have a solid LoRa MCU solution, that's smaller than most postage stamps - complete with Arduino compatibility — including many of the existing, SAM D21-compatible libraries!
With so many SERCOM objects to play with, adding peripherals to this module is a trivial affair — and one of the peripherals that keeps popping up in projects from @sulfuroid is this glorious, 240 x 240 pixel, IPS LCD display module, that manages to pack all those pixels into a mere 1.3" panel, giving a wonderfully rich, high-DPI display!
Sandwiched together with one of the favourite maker tools known - double-sided gel tape, this display is securely fastened to the front face of the RFL-Watch PCB, and is probably the most secure way I can think of to mount the LCD module, while also protecting the fragile soldering of FPC assembly to the watch PCB.
If you can get the footprint right for a direct-attach soldered connection on such a FPC assembly, it is a great way to save on cost, and stack height, by forgoing the 1-2mm needed for a FPC socket connector - if the design doesn't permit locating it on the rear face of the board.
With the bootloader in place - a fairly straightforward task, as long as you have a SWD programming tool in hand! — you can get straight to work in developing programs within the Arduino IDE — most things just work, as can be seen from the "Hello World" display test below!
Catching some air(time) couldn't be easier, with the BastWAN BSP providing the hardware defines that allow out-of-the-box compatibility with the arduino-LoRa library functionality, provided by Sandeep Mistry!
Below is all the code you need to set up a node to listen out for LoRa packets on the airwaves — 34 lines, closer to 25 — at the sake of some forgone readability. Not bad at all!
While this is very much a work in progress, knowing @sulfuroid, we can hope that he will apply the same level of polish and presentation that we've seen with his other recent projects to this hardware — I have a feeling this is going to be an absolutely gorgeous wrist-worn LoRa terminal by the time he's done working his magic!
We'll be sure to pop back and take a look when we see some case designs — and I think that the UX design alone will be a worthy discussion. Something that can often be overlooked when designing mobile devices with limited I/O, I know there will be some neat tricks to expect in that area!
Until then, be sure to keep tabs on the latest from @sulfuroid over on Twitter for more real-time updates on this project!