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)
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/
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.
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.
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.