Adafruit Fona (GSM/GPRS) Breakout Board support, and Molarity

I’d like to introduce you to a new library available for .Net MicroFramework and introduce you to the Molarity namespace.

I’ve put together a lib to support the Adafruit Fona GSM/GPRS breakout board (running a SIM800L block). This library will allow you to make and receive GSM calls and SMS texts and will (within a few days) support HTTP requests over GPRS.

The library is available through nuget and full source with test code is on github. Versions are available for .Net Micro Framework, .Net on Windows and Linux (without GPIO), and .Net on Linux for Raspberry Pi (GPIO support in progress). You can use the lib with just a serial port, or use optional GPIO connections for greater control over the Fona device.

Nuget packages:

Molarity.Hardware.AdafruitFona-NETMF
Molarity.Hardware.AdafruitFona-RPi
Molarity.Hardware.AdafruitFona-Win
(and Linux systems without RPi GPIO)

All of the nuget packages support the nuget symbol server with source code.
The current version is 0.4.0-beta (so you have to enable use of ‘Prerelease’ nuget libs)

Full source and test code is at : GitHub - PervasiveDigital/SimComDotNet: .net, mono, and Micro Framework support for the Adafruit Fona GSM/GPRS device
Please feel free to file issues and/or submit pull requests on github.

As soon as HTTP support and RPi GPIO is fully working, I will move this to 1.0 and you won’t need to search prerelease to find it.

Side note: What is Molarity? Molarity is the concentration of a solution of molecules, and it is also a family of libs that I will be releasing over coming months, with the Molecule.Net boards in mind, but most will work across the NETMF spectrum. Molarity exists to help me build a widely distributed and highly integrated home-automation/lifestyle-automation stack across motes, wearables, embedded devices, mobiles, desktops and the cloud. More information at : http://myinternetthings.blogspot.com/

Coming Soon : Molecule.Net BLE stack, and Molecule.Net RF support

11 Likes

I am a big fan of mobile networks. Thanks for sharing.

I was unaware of this little board. Thanks for sharing.

Hmmm - guess I could have linked to the actual boards…

uFL antenna connector : Adafruit FONA - Mini Cellular GSM Breakout uFL Version : ID 1946 : $39.95 : Adafruit Industries, Unique & fun DIY electronics and kits
SMA antenna connector : Adafruit FONA - Mini Cellular GSM Breakout - SMA Version [v1] : ID 1963 : $44.95 : Adafruit Industries, Unique & fun DIY electronics and kits

3 Likes

Keep up the good work :clap:

Good stuff. Support for https?

The short answer is, no - http only (and client only).

There are two ways to do http with the Fona device: One is using the onboard TCP stack within the SIM800L firmware, which I will support shortly (within a few days). That firmware only supports http traffic, and only supports the origination of http requests.

The second way is to open a PPP channel between the NETMF device and the Fona, and then you can use arbitrary IPv4 traffic, including https. That PPP support needs to be baked into the firmware. We’ll do that work for the Molecule.Net firmware and I believe that GHI already has PPP support. From there, you can use any protocol. This is the only route where http server roles and https might be possible, but I haven’t begun any serious work here yet.

1 Like

Ok, whos behind firmware for molecule.net?

Roughly, me, for now.

Sounds great, what are you starting from, is Mountaineer involved?

I believe that some of the current 4.3 firmware originated with Mountaineer and/or Oberon-derived work, but you would have to ask Justin. I wasn’t around for that bit. I have been in touch with Oberon and got an enthusiastic response from them regarding using and contributing to the firmware codebase.

I have started with the 4.4 source tree and the STM32 contributions that have been appearing there (though only just started). My current plan is to work from a 4.4 fork on github since that’s where some relevant new goodies are appearing, and of course I will provide pulls back into the 4.4 tree.

Depending on how the 4.4 release schedule pans out in comparison with Justin’s hardware progress, there may be a Molecule.Net release with a 4.3 kernel. I’m just grinding out code right now, so you would have to get specifics on any proposed timeline from Brett and Justin and I’m not sure that those plans have firmed up yet.

Full disclosure: I’m a Microsoft employee in a completely unrelated area (Microsoft Office). Everything I do here will be open source and for the advancement of the NETMF community in general.

8 Likes

@ mcalsyn - Sounds awesome! Very ambitious and very exciting too.

Not sure, but are the Molecules not designed in the spark form factor, which is based on their own cloud service offerings?

Certainly they look physically similar (though I have not compared their dimensions or anything), but there is no lock-in with any service offering. You can use them with Azure or your own favorite cloud provider and the different comms boards (BLE, wifi, RF) plus third-party breakout boards (like Adafruit Fona, Adafruit and Sparkfun GPS, etc) make possible a huge variety of hybrid networking architectures.

…and now I go off on a tangent…

My personal interest (which is not a project goal of Molecule.net, but which brought me to Molecule.net as a tool) … is in creating a “lifestyle automation” system, that spans home, auto, wearable, media center, and mobile technologies to create a single model of presence, attention and intent, enabling coordinated and unobtrusive control and information dissemination.

What does that mean in practical terms? Consider home environmental controls that modify their schedule if sensing data returned from your mobile or car GPS, and your cloud-based calendar indicate that you are coming home early or late. Consider a notification delivered over your car audio to remind you of a prescription that you could pick up on the way home, when it appears you are headed home. Consider notifications that are delivered according to an attention model that chooses a notification device based on a model of your current activity (driving? meeting? working?). Consider an email or text notification that is dismissed on all presentation devices when acknowledged on any one device, yet is reviewable on many devices.

This is the kind of functionality that attention and intent modeling should provide, and the molecule is a key building block for the experimentation that I plan to do around this. It has the low-energy consumption, compactness, device interop, maker-friendliness, and wireless/network connectivity needed for the pervasive and distributed computing needed to pull off what I am playing with.

These are huge and ambitious goals and there are a lot of Yaks to shave before I can get to the meat of the problem, but I am hoping to engage a community of like-minded automation makers and to create a lot of generally useful NETMF code along the way.

4 Likes

@ mcalsyn - Very interesting indeed!

The Fona GSM/GPRS package is now at v1.0 and is available from the normal (not prerelease) nuget search.

With the move to 1.0, GPRS and HTTP GET/POST is now supported.