Energia Announcements

View News Updates

WiFithing – Open source Energia IoT platform with rapid deployment option

WiFithing, a UK based start-up, has launched on Kickstarter a new complete IoT platform based on TI MSP430 MCU’s and radios. I have read through their details and I love what they have done, so here are some of the details. Make up your own mind! If you like it, head over to the WiFiThing Kickstarter page.


WiFithing is based on a master and slave system, with the master having a Wi-Fi (CC3100) transceiver and an ISM (868/915 MHz) transceiver (CC1101), powered by an MSPFR5969. Each master can control up to 8 slaves, each of which is based on the CC430F5137 combined processor and transceiver. There is no limit on the number of masters that can be deployed. The slaves are based on the PanStamp NRG2. Masters and slaves are shipped in neat enclosures, ready for use.

You can wire both masters and slaves directly to sensors, relay boards, switches and other devices. At CES, WiFithing showed a home-made, hand held breathalyser which reported alcohol levels to a smartphone. Out of the box, without any wiring, you can read the inbuilt temperature sensors and control up to 10 Orvibo S20 Smart Sockets and up to four groups of FHT8v wireless radiator valves for lighting and heating control.

The benefits of using slaves, are that they:

  • are physically small enough to fit in quite small sensors/controllers,
  • can achieve 12 months plus battery lives whilst still, for example reporting back temperatures every 5 minutes.
  • have great range, like up to 100 metres out of doors
  • are low cost

The masters and slaves are shipped fully tested and flashed with the WiFithing open source firmware. This firmware is essentially an operating system which comprises some 60 in built functions. This allows the devices to be programmed over the air from the WiFithing web app.

The web app allows users to select from a range of 50 or so “Simple set-up” options such as “Control smart socket using daily timer and thermostat on slave”. A couple of clicks to select which slave and what locations and resource (such as Kitchen Heating) and then click “Publish”. This will then send the program in the form of a number of tables in a very compact byte stream to the master and onto the slave.

If users wish to build a more specialised application, the web app provides an advanced set-up page which gives users the power to create much more complex apps, by choosing functions and setting parameters, but still using drop-downs rather than writing code. By way of demonstrations, WiFithing also showed at Showstoppers/CES, how the system could implement a weather station which reported rainfall, wind speed and direction, temperature, humidity and pressure to the web site.

Once users have published their settings, they can then navigate to their main menu on their PC/smartphone and they will see that their personalised web site has been built for them automatically, giving them full control.


WiFithing do propose to charge a hosting fee for the use of their web app of $18 per annum (unlimited masters and slaves for each house/site). If users would prefer to use their own web site (and not pay the hosting fee), then WiFithing provides the code and protocol information necessary to set up their own. Alternatively, if users wish to build their own desktop or web app, but still use the WiFithing security and data infrastructure, then they can use the WiFithing secure API.

In addition to allowing set-up over the air, WiFithing allows automatic firmware updates over the air to both masters and slaves. And by setting a flag, users can send their own firmware to their devices.

WiFithing boasts a range of other features, which makes this a very complete platform:

  • Full SSL and AES encryption (masters and slaves are registered securely by using a QR scanner on their smartphone)
  • A range of low power modes, and automatic signal strength adjustment to preserve battery life
  • Full web site data logging and alerts, all set up by dropdowns
  • Multiple houses/sites. For example, a sensor in London could trigger an alarm in San Francisco
  • Comprehensive diagnostics (signal strength, battery life, time of last communication and logging)
  • An open source device and API emulator for debugging master/web communications (c#)
  • Comms are initiated by a configurable UDP tick from the master (with TCP back-up), so secure and no need to make holes in your firewall
  • Using the FR5969/CC3100 combination gives the users the benefit of TI’s FRAM technology (and the device will hold its settings and firmware even if power is lost)
  • Coin cell battery to maintain clock in event of power failure
  • Access to web server on device, for control in the event of internet connection failure (to be implemented)

Edward Forwood, Co-founder of WiFithing, said to us “We developed something that we want to use ourselves. Our goal was to allow non-technical users to set up a range of useful applications in minutes, whilst allowing experts to save a huge amount of time in setting up the comms and security infrastructure, allowing them to spend that time on developing really interesting applications”.

WiFithing tell me that they are keen for their platform to be adopted by, and improved by the Energia community. They have set up a forum with a number of example projects, and hope that others will add to them. The code will be on Github when they have finished documentation.

What I learned at Open Hardware Summit

On Sept. 19 I had the privilege of attending the 2015 Open Hardware Summit in Philadelphia. This conference is dedicated to the progress of the open source hardware movement and is put on by OSHWA and many companies that believe in the proliferation of the open source world. The main idea of the open source philosophy is to encourage a spirit of collaboration. The underlying belief is that ideas can freely flow and be improved upon by the community of users in a much more rapid way than by individuals who guard their ideas behind high walls. This has proven very successful in the software world, and has been gaining momentum in the electronics world over the past few years. In the electronics context, designers release their design files for others to use. This will let the community take a design that they are interested in producing but customize for size, function or cost to help improve the application they wish to target. The challenge behind implementing successful open source hardware is the logistics and time associated with creating physical designs. It’s much easier to pull in code enhancements than it is to make hardware changes. However, it is still possible, especially in the prototyping phase of hardware design, to make rapid changes to your manufacturing process.

 

The Open Hardware Summit is an all-day event that invites speakers and attendees from all around the world to talk about their open source hardware experience and advancements. The talks included case studies of success and failure of Kickstarter campaigns, the patent claims of the Wright brothers, open source Internet of Things (IoT), open source projects on crowdfunding, enabling academia with open source tools that offer significant cost savings, and STEM-related initiatives that can train the next generation of great minds.

 

Open hardware is very important at Texas Instruments to give our customers reduced time to market and improved product support. TI Designs is a repository of open reference designs that can be used by customers as a starting point for innovative products. Popular development kits such as the TI LaunchPad™, TI SensorTag, and Beaglebone Black utilize open hardware to get customers quickly from evaluation to prototyping a customized design.

 

Here is a look at the program of the day and speakers.

 

AnnMarie Thomas, Associate Professor in the School of Engineering, the Schulze School of Entrepreneurship, and the Opus College of Business at University of St. Thomas

Ben Leduc-Mills. Open Hardware, Open Minds: The Rise of Open Hardware in Academia and K-12 Education
Nancy Ouyang. The Rise and Fall of an Open Source Hardware Company
Jason Kessler and Jon Ruston. ULTRASCOPE: Automated Robotic Observatory (ARO)
Ryan Fobel, Christian Fobel, Michael Dryden and Aaron Wheeler. DropBot: an Open-Source Platform for Lab Automation
Joshua Pearce. Making Open Hardware the New Standard in Science
Hugo Boyer. Open Source Robotics Foundation and the Robotics Fast Track

Eric Wilhelm. Autodesk’s Open Source 3D Printer
Sanket Gupta and Sam Wurzel. Common Parts Library
Andreas Olofsson. Open Source Chip Design: The Final Frontier
Mike Linksvayer. Open Source Hardware and Developments in Creative Commons Licenses, Compatibility, and Policy
J. Simmons. Demonstration of Open Source Engineering Analysis and Parametric CAD Modeling for OSHW
Michael Weinberg. Future of OSHWA
Kipp Bradford. Successfully Manufacturing your Open Source Hardware
Joshua Lifton. A Tale of Two Laptops: Case Studies in Open Consumer Electronics
J. Eric Townsend (aka jet). Foundation for a Common Object Description Language
Grace Ahn, Elizabeth Doyle, Myles Cooper and Michael Searing. Investigating Normal – Hacking Prosthetics
Bevan Weissman and Dan Beyer, New American Public Art. Dynamic Infrastructure for Social Innovation

Benedetta PiantellaHumanitarian Open Source Tech Projects
Bruce Boyes. What the Wright brothers Can Teach us about Open Source vs Closed Source
Tega Brain and Surya Mattu. Unfit Bits: Free your Fitness Data from Yourself
Pedro Oliveira and Xuedi Chen. Open Source Riots – Appropriating Technologies for Protests of the Future
Tom Igoe
Speaking In Tongues and Catching Flies: OSH and Connected Devices
Dusytn Roberts and Addie Wagenknecht. Closing Remarks

 

Mark Easley is an applications engineer at Texas Instruments and a contributor to the Energia project.

Inside Rekam1 (dyslexic(1maker))

Rekam1 is a rapid prototyping virtual machine written in Energia which enables rapid prototyping with your smartphone. This platform is designed to accelerate the development of three types of applications:

Sensor Controlled Actuators (temperature/light/etc. controlled doors/lights/motors/gadgets)
Smartphone Controlled Actuators (speech/accelerometer/UI controlled doors/lights/motors/gadgets)
Sensor Controlled Smartphones (temperature/light/etc. alerts/logging on your phone)

In this blog we’re going to talk about a smartphone controlled actuator application recently demoed an World Maker Faire: the “Rekam1 Clay Thrower” and how Energia rekam1 code was used to enable this.

The Clay Thrower uses a speech or UI push button trigger to sling clays hundreds of feet into space. It does this through a solenoid. Because the solenoid draws 2.5 Amps of current, a power FET is connected to the MSP430 to energize the launch.

Power FETs have a drain, gate, and source. The source pin in this example is connected to ground(GND) while the gate pin is connected to pin 19 of the micro-controller. The drain pin is connected to one terminal of the solenoid and the other pin is connected to the positive terminal of a LIPO battery I’m using. In this example, rekam1 is used as a “command interpreter”. This means it immediately executes whatever command it receives over the UART. If you are using an MSP430G2553 Launchpad, you can see in the picture below how you would connect your board.

image

You can find the rekam1 sketch in Energia under File->Examples->Communications->rekam1. In order to build rekam1 for this platform, simply comment out the #define for G2553 and comment the Wi-Fi include lines and CCX #define as shown below. Ensure you’re building for the MSP430G2553 and hit the build button.

When you connect a battery, Power FET, and solenoid to your Launchpad, your setup should look like below. You can now activate and deactivate your solenoid through a serial port window inside energia by simply typing: put 19 100 and put 19 0 a second or so later. Make sure that you have setup your terminal window to 9600bps with a new line sent when you hit the “send” button.

In the video below, you can see how fun this little gadget can be. In this case, we used google speech recognition and a simple “pull” button in Android to send these two commands. If you’re interested in learning more about how to use rekam1, you can visit my blog at rekam1.blogspot.com<http://rekam1.blogspot.com/>

We’ll be at IoT World!

We’ll be at IoT World! Helping developers rapidly prototype their cloud-connected application!

logo-300[1]The Launchpad team will be at IoT World May 11th-12th to support developers and makers in a 30 hour Internet of Things hackathon.  TI will provide  MSP430F5529 LaunchPad development kits, SimpleLink CC3100 WiFi Boosterpacks, and SEEED Studio’s Grove Starter Kit for Launchpad to participants.  These kits combine to create an ideal solution for rapid prototyping internet connected projects.

To further enable rapid prototyping, the Launchpad family is supported by Energia – an open source port of the Wiring/Arduino framework to TI’s launchpads. The CC3100 BoosterPack paired with Energia WiFi examples lets you quickly and easily incorporate WiFi into any LaunchPad project. The SEEED Studio Grove Starter Kit provides a simple interface to connect various sensors and inputs to LaunchPad boards and are fully supported by Energia.

On the cloud side, Launchpads are supported by Temboo – a cloud-based code generation platform that allows you to connect to 100s of web-based resources and services. Temboo provides an easy way to use various web services(everything from Twitter to SMS to FedEx to Yahoo! Weather) to connect to and control your launchpad by unifying how you interact with their APIs.  A great example shows how to get started by using your launchpad to retrieve weather information from Yahoo! Weather.

Additionally, Energia has support for MQTT to allow the LaunchPad to act as both an MQTT Publisher and Subscriber. This, combined with a free broker (like such as m2m.eclipse.org or another public broker), makes it easy to get a simple IoT application communicating with the cloud.  Once your LaunchPad is publishing to the cloud, IBM’s BlueMix combined with node.js frontend NodeRed lets you view data and control your launchpad from anywhere. A full start to finish Energia based MQTT tutorial can be found here: http://energia.nu/guide/tutorial_mqtt/.

A list of LaunchPad IoT resources is listed below:

 

Introducing Energia MT for MSP432

What is Energia MT?

Aside from bug fixes, the release of Energia 15 with Multitasking (MT) adds support for the new ARM Cortex M4F-based MSP432 LaunchPad. This time it’s a bit different though. The framework is powered by TI-RTOS, letting you run your Sketches in parallel. Yes, in parallel! How awesome is that?! This release supports MT for the MSP432 LaunchPad with support for other boards coming in future releases.  Download Energia 15 with MT now!

 

How it Works

Each tab in Energia MT is its own task, which will have a setup() and a loop() component.  The setup() and loop() pair need to have matching names, but the specific names don’t matter.  For example, to blink 3 LEDs at different rates, we would set up the Energia project like this: setupBlink1()/loopBlink1(), setupBlink2()/loopBlink2() and setupBlink3()/loopBlink3().

EnergiaLoop2

EnergiaLoop3

EnergiaLoop1

As long as the setup/loop pairs match, the naming in the tabs doesn’t matter.  Energia MT will automatically find the setup/loop pairs and turn them into individual tasks.  Setting up a multitask application is as simple as that!

Energia MT also allows for global variable for inter-task communication.  All global variables are truly global and must be declared in the first tab. Once they are declared in the first tab, they can be called from any other tab/task, but you cannot reuse the variable name in another task.

 

Examples in Energia MT

MultiBlink: Multiple Sketches each blinking one of the RGB LEDs at a different rate.
ButtonEvent: An example for the Button event library. One Sketch is reading the button and another sketch waiting for the button to be pressed. This library uses the TI-RTOS events module.
EventLibrary: An example for using the Event library. This library enables you to send an event from one task to the other. One Sketch sends events while the other Sketch waits for an event to happen and sleeps otherwise.
Monitor: This is an awesome utility Sketch that displays CPU utilization, task memory usage, etc. There are a couple of VT100 features in this sketch so best would be to use a VT100 terminal rather than the build in Serial monitor. For example, to continuously display the CPU load, type stats <space> <enter> and the CPU load will be updated in the terminal continuously.
MultiTaskSerial: Shows 2 threads sending a string to the Serial monitor at different rates.

You can find these examples in Energia MT under File->Examples->MultiTasking

Additional Benefits

Even when you are writing a single-threaded sketch for the MSP432, Energia will still compile it into the TI-RTOS.  While this will result in a larger code-size, it also brings the power and computational benefits of an RTOS.  For example, if you use a delay(500) at the end of your loop instead of ticking for 500 milliseconds, TI-RTOS will set an interrupt and go into deep sleep until the 500 milliseconds is up.

 

See Also

Examples and tutorials

Multitasking Tutorial

AT&T M2X Library available in Energia 15

There is another cloud service to add to your tool box and it is called M2X by AT&T.  M2X is a data store service targeted for the Internet of Things, which means you don’t need to go through the trouble of setting up your own custom server in order to post usable data to the cloud. Simply use the APIs available in the Client Library and you can quickly start posting things like temperature data, GPS coordinates, and system states. This makes it very easy to use for data logging and data monitoring where you want to keep a record of values and thresholds and perhaps trigger actions based on how the data changes.

Check out the tutorial page here to get started. www.energia.nu/m2x

m2xinfographic

Another exciting part of M2X is called Flow Designer, which is a Node-RED style graphical interface to help you organize your cloud application.  It provides seamless integration with M2X and other AT&T services and will help you link those to other web services and embedded devices. Look for more updates on this tool as it improves.

 

Deconstructing IoT with Temboo // Creating a CC3200-based water usage monitor

Our friends at Temboo have put together an instructable that showcases how to create a water usage monitor based on the CC3200 Wi-Fi-enabled LaunchPad. Using various Temboo choreos & their nifty code-gen tools, developers can easily create cloud-connected applications that interact with the real world with the help of LaunchPad + Energia.

Be sure to check out the video & instructable to create our own internet-connected water monitoring system!
Check out the instructable here!

Instructable Temboo IoT Cloud water monitoring system with TI LaunchPad

Cloud-connected LCD for displaying weather information

Cloud-connected LCD for displaying weather information

VIDEO:

Here’s a quick project I put together over the weekend using Energia! Using the CC3200 WiFi LaunchPad + Sharp LCD BoosterPack (430BOOST-SHARP96), I am pulling weather information from the cloud with the help of Temboo & ultimately displaying it on the Sharp LCD display. In addition, we are able to change the desired location to pull weather information for by simply sending a text message with Twilio. From any phone, we can send a text message to my Twilio phone number with the following format: “Weather-LOCATION”, where LOCATION can be a city.state/zip code/etc.

Every 30 minutes, the CC3200 WiFi LaunchPad leverages Temboo-generated code to interact with the cloud. First, the LaunchPad queries Twilio to see what location it should display weather information for. Once the desired location is identified, the CC3200 then checks the weather information by making a few REST API calls to Yahoo weather & other sources. We then leverage Temboo to filter the XML/JSON that is returned from the REST API calls & ultimately use an Energia library to display the desired information on the Sharp LCD BoosterPack.

LINKS:

 

 

Rapid Prototyping made easy with the Grove Base BoosterPack & Starter Kit from SeeedStudio

Our friends at SeeedStudio just released the Grove Base BoosterPack & the Grove Starter Kit for the TI LaunchPad development kits! These tools make it easy to add new sensors, actuators, displays & more to your LaunchPad & Energia-based projects. SeeedStudio offers a massive ecosystem of Grove modules – over 130 on my last count! Each of the Grove modules from SeeedStudio are open source hardware & include Wiring-based code that makes it very easy to import & compile using Energia.

VIDEO OVERVIEW:


 

Grove Base BoosterPack from SeeedStudio

Grove Base BoosterPack from SeeedStudio.
This BoosterPack is available standalone & enables your LaunchPad to interface with SeeedStudio’s growing offering of Grove modules, which include sensors, displays, relays, motor drivers & more.
MSRP: $7.50USD

Grove Starter kit from SeeedStudio

Grove Starter kit from SeeedStudio
This Starter Kit comes complete with the Grove Base BoosterPack as well as 10 different Grove sensors & actuators. It also comes with a tutorial guide & Grove cables for connecting the Grove modules to the BoosterPack.
MSRP: $59.00USD

SeeedStudio Grove for LaunchPad


Start prototyping with over 100 different Grove modules from SeeedStudio with LaunchPad & Energia SeeedStudio offers over 100 different Grove sensors and actuators that can interact with the Grove Base BoosterPack for the TI LaunchPad Development Ecosystem. Energia example software & libraries are available for many of the Grove modules as well.

The BoosterPack features full compatibility with the 40-pin BoosterPack pin out standard Plugging in a Grove Module into the Grove Base BoosterPack will enable your Grove sensor or actuator to route the appropriate pins to an underlying LaunchPad. Since this BoosterPack adheres to the BoosterPack standard, each Grove connector will route the analog pins, digital pins & serial communication pins to the underlying LaunchPad.

Have multiple Grove modules connected to your LaunchPad kit Create a complete system of inputs & outputs by simply plugging in multiple Grove sensors and actuators to your LaunchPad.Grove_PluggedIN The Grove Starter Kit makes it easy to create a complete system when paired with a cloud-connected LaunchPad development kit. With the Grove Base BoosterPack, developers can plug up to 13 different Grove sensors & actuators quickly. INCLUDES:

  • 1x Grove Base Boosterpack
  • Digital Grove Modules
    • 1x Grove Relay
    • 1x Grove Buzzer
    • 1x Grove 4 Digit Seven Segment Display
    • 1x Grove PIR Sensor
    • 1x Grove Ultrasonic Range Finder
  • Analog Grove Modules
    • 1x Grove Light Sensor
    • 1x Grove Rotary Angle Sensor (Potentiometer)
    • 1x Grove Sound Sensor
    • 1x Grove Moisture Sensor
    • 1x Grove Temperature Humidity Sensor
  • Grove Cables
  • Grove Starter Guide/Manual

Order the Grove Base BoosterPack (Standalone)GroveBaseBP_ONLY Order the Grove Starter Kit (Bundle)GROVE_STARTERKIT_ONLY
ORDER_Seeed Seeed Studio Seeed Studio
maker-logo-708 MakerShed MakerShed
ORDER_jameco Jameco Jameco
ORDER_eio EIO (Electronic Inventory Online)
ORDER_nkcelectronics NKC Electronics NKC Electronics
ORDER_intertex Intertex Electronics Intertex Electronics

See the ecosystem in action

Trigger a voice call when your LaunchPad detects water. 

In this demo, we are using the MSP430F5529 LaunchPad + CC3100 WiFi BoosterPack + Grove Moisture Sensor. This was programmed using Energia & leveraging code generated by Temboo.

Creating a SubGHz RF sensor network with a WiFi gateway.

In this demo, we created several wireless sensor nodes. Each wireless node features a unique sensor from Seeed Studio, which interfaces to a TI LaunchPad + CC110L Sub-GHz RF BoosterPack + Battery BoosterPack. The SubGHz-to-RF Gateway was created using the CC3200 WiFi LaunchPad paired with the CC110L SubGHz RF BoosterPack. This was all programmed using Energia.

 

Firmata support available in Energia v13 & newer

Firmata is a serial communication protocol that enables developers to have access to the real world by sending commands to a LaunchPad via a UART/Serial connection. Through this set of serial APIs, developers can create their applications in a runtime that they are most comfortable in, whether that is javascript, python or any other tool that has access to your computer’s serial port.

Through the Firmata APIs, you can fully exercise the I/O pins of many LaunchPad development kits. You can toggle I/O, generate PWM signals, read analog inputs & more. The other benefit of Firmata is its ease of porting to new platforms. Firmata support can be added to a new LaunchPad by simply modifying a boards.h file, which acts as a descriptor file that describes all of the functionality available on each pin on the LaunchPad. The application firmware remains the same.

Here’s a video of Firmata in action!

There are several PC-side GUIs that are available that allow you to interact with your LaunchPad’s I/O pins. However, these GUIs are simply example applications that are leveraging the firmata APIs. What’s cool about these PC side GUIs is that they are able to do a quick “handshake” with a connected LaunchPad. Through the serial interface, the GUI is able to identify which board is connected & dynamically populate the GUI with the appropriate pin list. It also intelligently exposes the appropriate functionality that is available within each pin. With additional code, developers can go a step further and add logic & intelligence to the server side application. This way, the application you are creating is completely hosted on the PC/server side, while the LaunchPad simply acts as a serial interpreter waiting for commands.

Firmata is available as a library/example application in Energia v13 and newer.