Low Power Challenge: The PotatoP Runs Lisp For Months Without Recharging

A yellow computer with a black keyboard and a small monochrome LCD screen

A common complaint among laptop users is that while battery technology has vastly improved over the past decades, a simulltaneous shrink in form factors has meant that a typical laptop today doesn’t last much longer on a battery charge than one from the early 2000s. But it doesn’t have to be that way, as [Andreas Eriksen] demonstrates with his entry for the Low Power Challenge. The PotatoP is a portable computer that should be able to run for about two years on a single battery charge, and can be topped up through an integrated solar panel.

Granted, it doesn’t have the processing power of even the cheapest laptop you can buy today, but it’s perfectly fine for [Andreas]’s use case. He’s a Lisp hacker, and a Sparkfun RedBoard Artemis can run uLisp just fine on its 48 MHz Cortex-M4F processor. The operating environment is very basic though, even requiring [Andreas] to write his own text editor, called Typo, to give him editing luxuries like backspace functionality and a movable cursor.

The Artemis board is very power-efficient by itself – typical power consumption is less than 1 mA. [Andreas] added a simple monochrome black-and-white LCD screen capable of displaying 53 columns of text, plus an SD card reader for data storage, and designed a sleek 3D-printed case to hold everything together. When running a typical piece of code, the entire system uses around 2.5 mA, which translates to about 125 days of continuous run-time on the beefy 12000 mAh lithium battery. Add a bit of solar power, plus a more realistic eight-hour working day, and the two year runtime estimated by [Andreas] appears entirely reasonable.

This has to be one of the most power-efficient portables we’ve ever seen, and one running Lisp at that. Despite its age, Lisp keeps popping up in interesting custom computers like the Lisperati1000 cyberdeck and The Lisp Badge.

53 thoughts on “Low Power Challenge: The PotatoP Runs Lisp For Months Without Recharging

  1. The form factor is one take on battery technology. Another is that processors will gladly burst to 65 or 80 watts, instead of 6 or 8. And screens are 400Nit 4k HD instead of reflective 40 character.

    I personally find anything smaller than a Lenovo X230 or T4x0 series a serious pain to use. Dell and HP thin aluminum laptops feel and operate like cheap junk compared to a magnesium soft touch rubberized Industry grade laptops.

    Also the tech is much cheaper. A $100-300 craptop today would have been a $1000 back then when adjusted for inflation. If you start looking in the same price range it is much better today.

  2. I’ve been looking for a laptop that I can take hiking and camping, for the sole purpose of writing things down. It only has to take text entry, but has to take a regular keyboard for this. Not a rubberized chicklet keyboard, not a compressed/remapped laptop keyboard, and definitely not an on-screen touch keyboard with special keys to switch to numerics or special characters. (I’ll pack a USB keyboard with it.)

    Paper and pen are my fallbacks, but I can type much faster than I can write, and with less effort. There are times when the text flows so fast that I want to get it all on paper as fast as I can think it without waiting for my handwriting to catch up. Also, lots of writing tends to make my hands cramp up.

    Getting a device for this is nigh impossible – you would think that something is available with an e-ink display or low power LCD that could hold a charge for more than a day, but nothing I’ve found will last more than a couple of hours.

    Something for writers on a writer’s retreat.

    If anyone has suggestions, I’d love to see them.

    1. The question there is small and portable so easy to protect as you hike or a bit bigger but tough enough to not need much care?

      If you are thinking more ruggedized machine. Panasonics Toughbook line have got some interesting things in their modern lineup – full on laptop with all the good stuff in the detachable screen. I only have old one (now very old CF-19’s) as I’m far too cheap to buy ’em new, but they are decent all round machines as long as you don’t run windoze, and really are pretty damn solid without being all that heavy – though the keyboards on them are laptop keyboards.

      However the real selling point for those machine above their toughness is the screen being great in bright conditions, easy to read and all without needing a super bright backlight, so the battery lasts well. If the new ones are anything like the old ones I’ve got the screens will be good for daylight reading even with the backlight practically off (transflextive tech – don’t know that the newer ones do that though I expect they will)…

      Which brings me to the other end of the spectrum – if you just want to write a bunch why not put something SBC (like a pi) onto the back of the keyboard of choice or use a smartphone/tablet? I believe there are a few smartphone out there with e-ink displays too if small and portable is a priority and there are definitely tablet sized e-ink devices out there if you feel the need for a larger screen that will still be good to read in less than ideal and controllable lighting… And most all of these sort of device will just work with a keyboard.

    2. Well, maybe a bluetooth keyboard with a smartphone?
      Or an Alphasmart Neo2 https://hackaday.com/2020/12/24/fully-backlit-alphasmart-neo2-lights-up-the-night/
      Or The Writer https://hackaday.com/2020/06/09/teardown-the-writer-word-processor/
      (or its newer brother The Writer Plus)
      Or one of the Freewrite offerings? https://getfreewrite.com/collections/writing-tools

      (and owning a TRS80 Model 100 since 1986 and pounding parts of two theses out on it, I’m not going to put it on the list compared to the above. Too heavy, too big, screen is crummy, memory is small)

    3. Alphasmart Dayna. Runs PalmOS on a super wide screen. Standard Palm apps run in the center of the screen while the word processor and other Dayna apps use the full width.

      1. Paper and pen are his fallbacks, but he can type much faster than he can write, and with less effort. There are times when the text flows so fast that he wants to get it all on paper as fast as he can think it without waiting for his handwriting to catch up. Also, lots of writing tends to make his hands cramp up ;)

    4. You probably don’t want e-ink for a writing machine – the low power is only while displaying a static image, it’s actually less efficient than most other technologies for drawing, and slow to boot. Lack of backlight necessary for daytime use and bursty output patterns might balance the equation a bit, but powering a keyboard or bluetooth transponder would surely eat into those gains, and still leave you with a screen that draws new characters significantly slower than can be typed.

      1. You don’t have to do a full refresh to add a new character or line while writing on the e-ink – its only got to partially refresh that spot, so it shouldn’t be too awful on speed and powerdraw for this use case. But more importantly you will be able to actually read it outside without all that hunting for the one spot dark enough the backlight (or brightness for oled) isn’t overwhelmed and the inevitably shiny coating other displays seem to love so much throwing glare at you… (Though as I mentioned above there are still other screen construction methods that do better in outdoor conditions)

        I’d agree dump the bluetooth. But most portables do have some form of USB connector that will quite happily work with a keyboard/mouse and many other common USB devices – might need a cable adaptor. The keyboard itself shouldn’t need a huge amount of power (as long as it is not some LED covered blinken lights craziness).

        1. I looked into the dev board used in this, the SparkFun RedBoard Artemis, because of its outstanding low power creds. It is based on the Ambiq Apollo3-Blue SOC, which is their Apollo3 chip with Bluetooth. It doesn’t appear to be available in the non-Bluetooth version, at least through any US distributors. Just the same, SparkFun sells this on several dev boards, on a module they make called Artemis. The module sells for $10US, and is considerably easier to deal with than the Ambiq BGA. There is practically no price difference from Ambiq between the plain and Bluetooth versions (about $3), so I think the Bluetooth is just thought of as a feature you can either use or ignore. You can leave it powered down. I would rather see WiFi than Bluetooth, but that’s the choice they made. I picked up one each of the Artemis module and the RedBoard Artemis Nano board yesterday from Amazon/SparkFun, and look forward to having some milliwatts of fun with them!

    1. A lot of what the maker wanted to do has already been done with uLisp, keyboard and screen handling, running on arm etc. Also if your cpu/device has arduino integration it almost guaranteed to run uLisp since it is written for the Arduino environment.
      This is all educated guessing on my part.

      1. Yep, that’s a good summary. And I’ve done my share of BASIC, writing quite a few games in QBASIC back in the day – Nowadays I prefer something with a little more power of abstraction for myself, and I find LISP fun to write. But for a novice, BASIC (or micropython!) would probably be better indeed.

  3. the thing i like about this project is they actually selected the components around a goal. portable, battery-powered, efficient.

    i disagree with the opening sentence of the article, though. laptop battery life has improved a bunch in the last 20 years. you used to have to really hunt to find any cheap PC laptop over 3 hours at all. now, every manufacturer makes a 10+ hour laptop in their entry line-up.

    i take it a step further and only run 2000s-era software on it, and i get almost double the advertised 12 hours on my cheap PC laptop — i get 20 hours (much more than that when it was new, too!). my secret is running the web browser remotely. it is hard to believe but web browsers (and OS GUIs that think they’re web browsers) destroy batteries. but even so, laptops these days get great battery life.

    i think it’s easy to forget how it used to be. i sure take it for granted that i don’t have to recharge my laptop at lunch or whatever..

    1. It was worse than that. Until 2005 or so there was simply nothing on the market that would last more than 2 hours, even when doing no work. Early CPU’s had no power management and used full power just displaying a blinking cursor. Manufacturers simply didn’t consider battery life a feature anybody would care about. This finally started to change around 2010 and now nobody will buy a portable with less than 7-8 hours of battery life while displaying video.

      1. Not really true, there have been machines with great battery life even that far back, I had one… Good battery life is a more common feature now, as its something more folks are demanding – in the early days a laptop was more often ‘about’ taking your personal computer and data with you – the internet is slow/expensive, cloud storage doesn’t really exist, software you actually need is often expensive single machine license etc – folks cared more about having their computer ready to set up anywhere, it could have had no battery at all and still sold…

        What has become much better in the more recent machines is the difference between idle and full power draw has grown and the performance is so much greater that the idle state is a much lower percentage of the peak – back in the earlier dual core, perhaps with hyperthreading even the less bloated OS of the time would be consuming threads, and only having perhaps 4 of them that one active thread needed to keep the machine ticking over, and it probably needed that core running at something near its max clock – at any rate a sizeable relative amount to the modern massively threaded computers where each thread is more performant the whole CPU of that era, some of which even have little/big architectures so those idle threads can be handled more efficiently.

        1. The most significant of those is the amount of background work that a modern OS is doing even when you’re doing “nothing”. This is where projects like the one in this article can really shine: they don’t have an operating system, so when you are doing nothing with them, THEY are doing nothing. It has been the case for many years that CMOS processors use almost no power when in “wait”.

      2. In the ’90s I had a macbook duo 210. I routinely got 8 hours of battery life writing term papers on it. The OS fit into ram, and MS Word would run entirely from ram (there was a check-box option in the preferences) — you could set up a ram disk and spin down the hard drive. Sitting in such a way that you could use ambient light to read (quite easily) the passive matrix LCD was simpler than drinking enough coffee to type for 8 hours.

      3. I got my first laptop second hand in 2005, it was already old at that time, but running a minimal Debian install on it it still managed more than 2 hours on battery. That did decrease if I was using it to play video (which it usually only managed by skipping frames).

      1. i have an extremely generic asus l406, every manufacturer makes one just like it. this one is a “celeron n4000” but i imagine the CPU model number that means “low-end laptop” has changed in the past couple years :)

        the trick is running the web browser on my basement PC…i run it all under lxc but the virtualization is pretty irrelevant…the important part is that displays to “xvfb” (a virtual frame buffer, no physical display) and i run x11vnc connected to the xvfb to share it, and vncviewer on my laptop.

        i also use this same xvfb/x11vnc/vncviewer setup for GL-accelerated things because my old ARM laptop had proprietary GL drivers…i don’t know enough about the driver stack to say why it works, but it does work. it’s not buttery smooth but it gets a pretty reliable 20fps+. watching youtube videos in the browser is “good enough”. only thing i don’t have is sound, and i think of that as a feature or i would probably figure out how to use something for that…

        i remember when i used to run my browser locally on the laptop. i joined a slack, and right there my battery life decreased by 20%. incredible! hours of battery life eaten up rendering neo-irc! it is so nice not having a hot laptop all the time

    1. OTP PROMs are just EPROMs without erasing windows or erasing circuitry. They still depend on floating gate capacitance to store bits, and therefore still will eventually lose their data. Magnetic tape will hold data longer, as long as it’s on a stable base material. Which it also isn’t. I think that gold film on sapphire, written by sublimation of the gold with a laser, and read by reflection with a lower power laser, may be the only high density storage technology that is long term, but I don’t see any of that on the market. I suppose you could find old PROMs that program using nichrome fuses, but those are really low density. If lower density is acceptable, then acid free paper with carbon ink dots should be stable for a few hundred years, and the added advantage is that you can SEE them and deduce what they are, unlike anything high density. You can include a sort of rosetta stone header that shows graphically how the data is encoded, to aid future people in reading it.

    1. Or at least, it’s a great start. A whole different mindset is needed if for example you want people to keep their houses just above freezing in the winter, and just dress for it. Which is what I do, and I find that the shock of going outside is much less that way :). But then, I still drive a car, so whatever.

  4. Although Lisp probably wouldn’t be my first choice of programming language, projects like this demonstrate how little power you actually need to do useful computing. A modern laptop, when you’re looking at a static screen, still takes a lot of power, mostly to maintain all of the background clutter the operating system demands. We all seem to believe that we need multitasking operating systems, but when we run apps on our phones, we tend to use only one at a time, and are okay with that. Which leads me to question this requirement.

    I’ve been working on a RPi Pico system with ultra-low power Sharp LCD display to use as a daily driver. It won’t be as low power as this, but will have much higher performance available on demand. The plan is to use a minimal program loader and BIOS, and provide a text editor, assembler, and C compiler as I have found interpreters like Python to be no easier, no quicker, and no more robust than C, making their performance costs completely unjustifiable. Ditto for operating systems that do anything more than what I am asking for at any given moment. I have gotten so fed up with operating systems that, when I try to swipe left on a video timeline, instead decide to tell me what the weather is and what stocks I should take a look at, I think it’s time to dump the whole OS infrastructure. Computing was useful and enjoyable on my Tandy Color Computer 2, and has gone nowhere positive since, aside from the speed and capacity of the hardware. Too bad most of that speed and capacity has been absorbed by software giants with their “we know what you need” philosophies.

    1. (And when I say “BIOS”, I mean that in not in the sense it’s used on today’s computers, but the CP/M sense, where it provides the basic functions for doing basic I/O for human interface and filesystem devices.)

        1. If you want to reduce power consumption, I highly recommend switching to an STM32U5 microcontroller. While the Pico SDK is likely more efficient than the STM32 HAL, the STM32U5 microcontrollers are faster and have really nice low-power modes, while the RP2040 has relatively little in that department. The main practical implication of this is that an RP2040 needs to be able to be externally powered off if you want to leave it months at a time without substantially draining the batteries. On the other hand, an STM32U5 microcontroller can shut itself down while keeping its RAM intact and allowing it to be woken up by an external signal in less than a millisecond, while likely draining less energy than its batteries’ natural self-discharge, even if they’re alkaline cells. And when running normally, an STM32U5 is several times more efficient than the RP2040.

          1. I’ll seriously consider these, especially since they have up to 2.5MB of internal RAM and 4MB flash, but at the moment they’re running $15-20. Which means I’ll have to twist my own arm (no pun intended) for a day or two before ordering a couple.

  5. The solar cells are nice, but I do a lot of work in dark places. I have a couple of handgrip style flashlights, which produce light as long as you keep squeezing them, but horror of horrors, they still use incandescent lamps. With a computer that uses only a few milliamps, a minute of squeezing one of these generators would provide enough charge for hours of computing. I can picture adapting this kind of mechanism to a foot pedal.

    1. “Far less” power is doubtful, since USB keyboards are already pretty frugal. “No scanning”??? How do you think PS/2 keyboards know which key you hit?

      1. i’m curious about this too…

        i read the usb 1.1 spec a while ago, and i did not get into the weeds at all…but the general situation for a usb device is that the host is constantly polling for content at some high frequency, 1kHz or so. maybe that’s the “scanning” Casey was referring to? i assume there must be some alternate mode for the bus where it is shut down waiting for an event from the device. but iirc the default mode really is this 1kHz polling, because the device doesn’t have any way to indicate it has a payload ready.

        i’m not sure how expensive that is, since that level of usb is implemented in a relatively small handful of peripheral i/o gates, but if you wind up in that polling mode…it definitely seems like more cost than ps/2, where the lines don’t transition unless you have something to send.

        maybe someone will fill in the details i’m missing…?

        1. You’re probably right; it’s the polling he was objecting to. Point taken. As someone else here mentioned, you can easily set up a keyboard matrix to generate an interrupt when any key is pressed, and therefore don’t have to poll it, while there is no way to do that with USB.

          1. USB has had suspend/resume support since the very beginning. Just because there’s no direct peripheral-controlled transfer mode doesn’t mean the power consumption while not being used can’t be made arbitrarily low.

  6. I spend most of my time coding, and I’ve been using ChatGPT a lot recently to answer questions that I would normally scour the web looking for. This has pretty much eliminated the requirements for a screen needed to display images or video.

    I would totally use something like this for work, with perhaps a bigger screen and a good text based code IDE.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.