I’ve been writing hands-on examples for using MicroPython on XBee radios. MicroPython is an open-source programming language based on Python 3, modified to fit on small devices, and optimized for microcontrollers. By using MicroPython, an easy-to-learn scripting and programming language, you can rapidly prototype intelligent behaviors at the edges of your network. Cryptic sensor readings can be transformed into useful data, excess transmissions can be intelligently filtered out, and modern sensors and actuators can be employed directly. Here’s the examples thus far:
Here’s a fun project I created for Digi International a while back. I just wrote up for them as an Instructable so that anyone can make their own. All materials, steps, diagrams and necessary code are included in the instructions. You can get started right away.
The Digi XBee3 Cellular SMS ActivityBot is an educational robot that can be controlled with text messages from any cell phone, anywhere in the world. The ActivityBot, made by Digi’s friends at Parallax Inc. is designed for first-time robot-builders and is widely used in technology and engineering education.
SMS text messages sent to the robot can command it to drive forward, back, or the left or right. It has a built in roaming mode where it becomes self-driving, using two “whisker” sensors to detect obstacles to the right or left. The ActivityBot uses the Digi XBee3 Cellular module to report back what it’s sensing in real time. For example, any time one of the “whisker” sensors is triggered, that event is immediately reported back to the cell phone as a text. (Of course, only robots should text and drive.) You can see all of these behaviors in the video below, then build your own using these complete instructions.
Technology separates us from nature, but does it need to? I used some of my stay at the Digital Naturalism Conference in Thailand to prototype a clock that determines local time of day from sunlight to promote a natural sense of timekeeping.
By using technology to encourage human relationships with nature, I hope to highlight that machines can encourage us to be *more* human and organic rather than slowly making people irrelevant. As a counterpoint to consuming industrialized time we can also obtain time from scratch, regaining control of the very pacing that drives our lives. The Sun Set Clock uses local solar time, therefore noon is when the sun is at apogee at our location. This is how time used to be measured, before telegraphs and transcontinental trains required a move to time zones, where the clock and the sun no longer match. This system isn’t concerned with exactitude–there’s plenty of systems to do that if you need it. Instead this clock can be used to mark the general progress of the day rather than creating anxiety around how every minute is used.
Sun Set Clock in its natural environment
The initial prototype uses light level changes to detect sunrise and sunset, with local noon being the point exactly between these two events. When the clock starts, it makes its best estimate of the time. For example, if it’s dark at startup, the clock assumes that it’s midnight because that’s the best guess you can make without more information. At sunrise, this corrects to 6 am (a higher-quality guess) and then at sunset it will correct to the proper local time (not time zone time but astronomical time at your precise location). All of this works, although it’s still a bit fragile–operating best in full view of the sky on a relatively sunny day. Dark clouds, deep shadows and porch lights can confuse it, so these will need to be addressed in a future version. For now, I’m enjoying what I think of as “some time of my own.” I hope you enjoy it too.
Spent much of June on a jungle island in Thailand, attending a biology-art-hackathon-“un-conference” to build electronics projects that interact with nature. The first-ever Digital Naturalism Conference on Koh Lon island ran for six weeks of arty, ant-licking, bio-mimicking, data logging, fruit roasting, butane soldering fun that pushed my limits and reminded me how outstanding and wildly creative the maker community can be. More will be written about this but special thanks to Andy, Tasneem and Yannick for their extraordinary efforts to create a wilderness community out of thin air and coconut rope.
Here’s some photos I took during my time on Koh Lon with ~100 motivated makers:
New cellular protocols rolling out in 2017 will provide low power and low cost cellular connectivity for industrial Internet of Things applications. In this new video for Digi International, I explain the LTE-M and NB-IoT low bandwidth protocols by breaking down the differences between the two and sharing some examples of their use in industrial applications.
On Monday, March 6 at 10:20 p.m. Pacific time. NASA released TechEdSat 5 (Technical and Educational Satellite 5) satellite equipped with Digi XBee 802.15.4 modules as part of a test program for wireless communications between satellites and payloads from the International Space Station (ISS). TechEdSat 5 has been collecting data every 10 seconds and transmitting it from these radios via Wi-Fi ground link to monitor aerodynamics, gravity vector and magnetic field (for orbital positioning). As of August 2017, TechEdSat 5 continues to generate data from orbit, greatly exceeding its planned 6-week mission length. The data will be used to design passive de-orbit system for future space station payloads, so that experimental samples can be quickly returned from the ISS without waiting for a cargo mission.
The TechEdSat 5 mission has two goals:
Assisted GPS positioning for orbital determination (including aiming of antennas).
Checking the orbit and orbital decay before modulated Exo-Brake deployment, during full deployment and throughout the remainder of the de-orbital braking process.
The TechEdSat program is used to bring engineering interns up to speed with real spacecraft and space operations. Interns do most of the development and testing work, with everything reviewed by professional staff to guarantee mission reliability and safety.
Simple programs can make a big difference! An XBee running small amounts of code can perform some pretty important tasks. Cryptic readings can be transformed into useful data, excess transmissions can be intelligently filtered out, modern sensors and actuators can be employed directly, operational logic can glue inputs and outputs together in an intelligent way.
Here are some useful MicroPython examples that should run within 12KB of RAM, useful even in a small sandboxed implementation. Required parts and a method for simulating limited RAM are noted below.
Send “Hello World”
This example shows how to send some text data via an XBee in transparent mode.
SETUP: Connect the XBee (configured to factory defaults) as shown in the diagram below:
PROGRAM: Load the code sample into your pyboard’s main.py file
# main.py -- Send Text Example v1.0 - XBee MicroPython
from pyb import UART# load UART resources
uart=UART(4,baudrate=9600)# create UART object on X1, X2
uart.write('hello world!')# write data
RESULTS: Connect a second XBee, also configured to factory defaults, to your computer. Then use a terminal program like XCTU or CoolTerm to receive the text data. Each time you reset the pyboard, it sends “hello world!” one time to your computer. The results will look like this:
Software is eating the world and the Internet of Things is no exception. In a new post for IoT NOW, I talk about four “software-minded” trends that I believe hardware vendors will increasingly consider for their equipment designs:
XBee radios have rocketed into space! Early in the morning on July 7, NASA launched a NASA Black Brant IX suborbital sounding rocket from their Wallops Flight Facility. Onboard the rocket was an experiment running the very first wireless XBee network to leave our planet. Here’s a quick description recorded on launch day:
The rocket carried the SOAREX-8 Exo-Brake flight test from NASA’s Ames Research Center in California, a kind of thin-air parachute for returning cargo from the International Space Station or for future landings on Mars. The XBee sensor network was used to collect temperature data, air pressure readings, and 3-axis acceleration parameters.
The NASA team retrieved these readings via an on-board gateway created with an Arduino Mega, XBee radio, and an Iridium module. The Arduino Mega microcontroller was used to manage communications between the local XBee wireless network and the long-range Iridium satellite uplink. All of these components were chosen as part of a NASA initiative to use commercial off-the-shelf parts wherever possible, and to employ rapid prototyping tools to efficiently explore new ideas.
An on-board wireless XBee network relayed science data back to NASA throughout the space flight.
The XBee network soared to an altitude of 206 miles before ending its maiden voyage in Atlantic Ocean after completing its duties. Since all data was relayed successfully back to Earth, NASA did not plan to recover the payload.
“This exhibition takes its title from the Twitter message that British computer scientist Tim Berners-Lee (inventor of the World Wide Web) used to light up the stadium at the 2012 London Olympics opening ceremonies. His buoyant tweet highlighted the way that the Internet—perhaps the most radical social design experiment of the last quarter century—has created limitless possibilities for the discovery, sharing, and expansion of knowledge and information. As we revel in this abundant possibility, we sometimes forget that new technologies are not inherently democratic. Is design in the digital age—so often simply assumed to be for the greater good—truly for everyone? From initial exploratory experiments to complex, and often contested, hybrid digital-analog states, all the way to “universal” designs, This Is for Everyone explores this question with works from MoMA’s collection that celebrate the promise—and occasional flipside—of contemporary design.”