Hacker News new | past | comments | ask | show | jobs | submit login
Integer division powered by lemonade-bleach battery (eecs.berkeley.edu)
69 points by rutenspitz on May 7, 2016 | hide | past | favorite | 14 comments



This is an interesting idea that explores if you limit your power supply to extremely small amounts and see what you can compute with that. Makes me think of what you could do really low power ARM M0 hooked up to piezo electric battery or something.


The MSP430 will run flat out at about 200 μA / MHz, and they have 32 to 64 kB of non-volatile RAM. You could certainly get useful stuff done with that.


And I just found out that the potato-powered webserver was a hoax!

http://hoaxes.org/archive/permalink/spud_server


I remember being really bummed after finding that out.


If it makes you feel better, someone actually did run a potato powered server for a while in response.


While neat demo, 3-5 mW does not sound that efficient compared to modern microcontrollers, which by themselves might use order of magnitude less power. Of course whole system power will be bit higher than just the microcontroller alone, that blinking LED probably consuming almost as much as the controller :)


Not directly relevant but that battery is not powered by lemonade or bleach!

It's powered by the metal wires placed in the electrolyte, not the electrolyte. The metal oxidizes (corrodes, burns), and that is what provides the energy.


I'm not sure that I understand the application, or if there is even supposed to be an application, but this is certainly very novel. Or rather, it's an interesting take on the potato battery.


Disclaimer: I worked on this project for a year in the past, and was also involved with recording this video. I haven't worked on the project for a while though, and it has advanced significantly.

We were using a GreenArrays chip (http://www.greenarraychips.com/) which is a 144-core ultra low power architecture. That's great, but it's super difficult to program, and only a few experts can really do it. We were working on building a high-level programming language and compiler toolchain that would allow anyone with programming experience to write GreenArrays programs.

So we were basically building a compiler, but with a twist - instead of a traditional compiler which generates machine code from source code through a series of transformations, we used a technique called program synthesis. Synthesis treats the high-level program (source) as a specification, and performs a search across the space of possible target programs (machine code), trying to find the optimal one (in our case, optimal meant energy efficient). The backend uses a bunch of Programming Language techniques and SMT solving (https://en.wikipedia.org/wiki/Satisfiability_modulo_theories).

As you can imagine, this is a hard problem and synthesis isn't quite ready to replace sophisticated compilers. But where synthesis can really shine is in places where you don't have mature compilers and need to generate complicated optimal code, that perhaps no human or human-written compiler might. Or in cases where parts of the program need to be extra-optimized.

Coming back to the experiment, the integer division code running on the chip was generated using synthesis, and we wanted to show that we could run it on low energy.


Thanks for such a complete and lucid explanation!


(Much) older hn discussion of the chip which powers this: https://news.ycombinator.com/item?id=1810450

Sounds like the neural network example is a better fit for this and makes it indeed interesting.


The ASICs used in solar-powered calculators operate in the uA range, but I'm not sure how many MIPS/W they are.


It would be nice if the machine kept its state when the power temporarily becomes too low.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: