Called BFree, the system includes energy-harvesting hardware (the BFree Shield) and a power-failure-resistant version of the Python programming language. All the user needs is a basic understanding of Python in order to quickly and easily turn any do-it-yourself (DIY) smart device into a battery-free version.
With this technology, say the researchers, novice programmers can now turn their DIY battery-powered motion sensor, for example, into a solar-powered sensor with an infinite lifetime.
“Right now, it’s virtually impossible for hobbyists to develop devices with battery-free hardware, so we wanted to democratize our battery-free platform,” says Northwestern Engineering’s Josiah Hester, who co-led the work. “Makers all over the internet are asking how to extend their devices’ battery life. They are asking the wrong question. We want them to forget about the battery and instead think about more sustainable ways to generate energy.”
“The maker community is typically more interested in rapidly deploying their devices," says TU Delft’s Przemyslaw Pawelczak, who co-led the work with Hester, "and that quickness doesn’t always go well with sustainability. We wanted to design a viable product that can connect these two worlds.”
While the growing number of people who can build and program devices presents an exciting future for technology, say the researchers, they are daunted by the number of batteries that will be used and eventually end up in landfills. With BFree, the researchers say they have solved this issue.
The technology enables devices to run perpetually with intermittent energy. When power is interrupted, BFree pauses calculations. When power returns, it automatically resumes where it left off without losing memory or needing to run through a long list of operations before restarting.
Not only does this save energy, the technology also is more intuitive for the user than traditional programs, which lose all memory of what happened immediately before a power failure and need to restart from the very beginning. To make the process user friendly,