Low Cost PCB's Low Cost Components

Author Topic: Battery powered linux product suggestions?  (Read 389 times)

0 Members and 1 Guest are viewing this topic.

Offline t-ray

  • Newbie
  • Posts: 1
  • Country: us
Battery powered linux product suggestions?
« on: August 12, 2017, 09:12:08 AM »
Hi forum! I'm curious if anyone has suggstions for a processor (module prefered) that runs Linux (can be very minimal) that would make sense to put in a handheld battery powered device. Imagine something like standard DVMM (I know its Dave's favorite topic) and has a battery life of say 100hrs on 2x AA's.

To be specific
  • 20-30mW Average Power
  • Very idle, update segmented LCD or dotmatrix LCD every second or so but still "on" (could be sleeping though..)
  • Small amount of background tasks (ADC's, I2C, SPI)
  • BT 4.0+
  • Segmented LCD of graphic display
  • USB but off/idle at this power level

The resononing is its a thing that would be doing the above slow things 98% of the time. But the other 2% a much higher end device that could say serve a basic web page or have very flexible USB (keyboard, flash drive, etc) and maybe regular video out (VGA, HDMI). This 2% of the time could be while its powered by something else.

I keep thinking smart watches but I'm not sure if those run linux or just a low level RTOS. And a custom CPU is not really an option.



Any suggestions? I know this is probably shooting for the moon but figured I'd ask anyway.

TIA,
T-Ray
 

Online NANDBlog

  • Super Contributor
  • ***
  • Posts: 3259
  • Country: be
Re: Battery powered linux product suggestions?
« Reply #1 on: August 12, 2017, 09:20:32 AM »
Nope. DDR memory alone is a huge power hog. Any kind of DDR memory. We are talking about 200mW-0.5W for a small memory chip, just on standby. Maybe with some exotic components like PCM, but those are unobtanium.

There is one or two order of magnitude power consumption difference between a MCU and an MPU.
 

Offline blueskull

  • Supporter
  • ****
  • Posts: 7182
  • Country: cn
  • Power Electronics PhD Candidate
Re: Battery powered linux product suggestions?
« Reply #2 on: August 12, 2017, 09:31:12 AM »
iMX6UL has an internal gating mode and an idle driver that will clock-gate the CPU when Linux is idling, so your system remains "responsive" when idle while not consuming much power. Check out their power measurement app note for more details. I think their CPU+RAM combo can achieve <31mW in that mode at 700MHz (696MHz, exactly), and <29mW at 500MHz (528MHz, exactly).

Though there's not official app notes for iMX6ULL, I believe it behaves the same as iMX6UL, though its max frequency is 528MHz, and there's no official 696MHz version (there's a 696MHz part number on Mouser, but not mentioned in datasheet).

I don't think iMX6ULL nor iMX6UL can directly drive a segment LCD, you you need external drivers. They do have an eInk driver module, and that could potentially be hacked to drive LCD, but I don't know how, and since eInk is patented technology, you need to contact NXP to get full documentation and driver for that module.

It doesn't support BT4, but it has a load of SPI/I2C, and 2 USBs, so adding BT4 shouldn't be hard. Beware of USB BT chips as they don't sleep well. To get lowest possible power consumption, check out SPI BT chips.

Its USB ports are OTG with integrated XCVR, so you only need external ESD diodes and connectors to get them to work as device, and additional boost converter to get them to work as host.

iMX6UL also has a deep sleep mode that consumes less than 1mW (plus 13mW for DDR3L), but Linux kernel won't be able to schedule in this mode. You need 32kHz crystal to periodically wake up the main CPU and oscillator. If you wan find a DDR3L chip with lower self refreshing current, you can further reduce power consumption in this mode (this is also true for the previously mentioned low power mode which Linux still runs, but CPU is partially gated when idle process is being executed).

iMX6UL/iMX6ULL don't have VGA not HDMI, AFAIK, so you need parallel LCD interface to VGA/HDMI converters. It has a MIPI port, but I think it's CSI only, not DSI.
SIGSEGV is inevitable if you try to talk more than you know. If I say gibberish, keep in mind that my license plate is SIGSEGV.
 
The following users thanked this post: thm_w, t-ray

Offline evb149

  • Super Contributor
  • ***
  • Posts: 1568
  • Country: us
Re: Battery powered linux product suggestions?
« Reply #3 on: August 12, 2017, 02:00:51 PM »
It is an interesting and good suggestion.  And applicable to some use cases.
But still if a device is battery cell powered then for an 18650 that's around 2000mAh, so that's about 7000mJ.
So at 31mW consumption your cell would still go from fully charged to empty in 225 hours even low power idle sleeping the whole time.  So assume you're actually using 50% of the energy in high power conumption mode and that's something like 100 hours or 4 days before your cell is flat discharged.  And that doesn't add anything in for peripheral power consumption just the SOC benchmarks blueskull mentioned.  So assume XX% worse than that.

I guess that works OK if you have a device that you pretty much are in the habit of recharging every day or every couple of days but it'd be border line annoying for going to use something after X days idle or Y amount of heavy use during a single day and having it depleted when you want to use it.

Yeah you could add a few more cells, maybe make it charging mat compatible, but it is still pretty niche use cases where you can benefit from such a powerful processor but also want it mobile and battery powered and also get enough benefit from the powerful CPU that you don't mind having to charge it without fail a few times a week or whatever.

Smart phones are the primary example I can think of with ARM application processor SOCs that run basically LINUX and yet which are battery powered and use idle states and power management when possible to stretch out the active power consumption that would otherwise have the cells depleted after a few hours of continual use to make it somewhat usable for a couple of days maybe before charging.

But with this and a simple segment display I don't know if the "killer feature" for the SOC ARM-A CPU is really there?

Compare the possibility of having a cortex M4F or similar MCU with orders of magnitude less power consumption both sleep, idle, and active, and also integrated Bluetooth radio capability and ability to talk to peripherals like USB, SD card, segment LCD, etc.

Then you could go from X hours active power capacity to more than a couple of days.   You'd go from requiring charging a couple of times a week to once every couple of weeks or whatever.  And the cost would probably be a good bit less too though in low volumes I guess cost is mostly irrelevant compared to ease of design and programming.

For the sake of convenience to the user for charging I'd look at a MCU.  For the sake of developing with powerful SW tools I'd use something like Raspberry PI or iMX6 equivalent SBC.  If you really have something that benefits from a powerful CPU maybe make a hybrid system, MCU + bluetooth mobile battery powered device that is low power, then have it use a smartphone or non battery powered SBC or whatever as a UI or "cloud computing" processor or such so that you don't have to implement a SOC system and its power management yourself but delegate that to an existing solution or make the battery powered SOC need irrelevant and save the cell power for the gizmo.




iMX6UL has an internal gating mode and an idle driver that will clock-gate the CPU when Linux is idling, so your system remains "responsive" when idle while not consuming much power. Check out their power measurement app note for more details. I think their CPU+RAM combo can achieve <31mW in that mode at 700MHz (696MHz, exactly), and <29mW at 500MHz (528MHz, exactly).

iMX6UL also has a deep sleep mode that consumes less than 1mW (plus 13mW for DDR3L), but Linux kernel won't be able to schedule in this mode. You need 32kHz crystal to periodically wake up the main CPU and oscillator. If you wan find a DDR3L chip with lower self refreshing current, you can further reduce power consumption in this mode (this is also true for the previously mentioned low power mode which Linux still runs, but CPU is partially gated when idle process is being executed).

 

Offline ejeffrey

  • Super Contributor
  • ***
  • Posts: 1438
  • Country: us
Re: Battery powered linux product suggestions?
« Reply #4 on: August 13, 2017, 12:29:40 PM »
There are ways to do this, but it is hard -- it takes a lot of work both in hardware and software to get a system that is functional, powerful, and low power.

Maybe a good example to think of is the Amazon Kindle.   According to this page:

http://www.devicespecifications.com/en/model-cpu/92752e19

It has an ARM Cortex-A8 class CPU, yet lasts for weeks or months on a charge. 

Those specs list 256 MB of RAM.  Thats enough to run Linux, although I don't know what the Kindle does.  Of course this will be some low power ram (LPDDRX takes much less power in "suspend mode"), but even that doesn't get you the kind of lifetime the kindle has.  Probably it uses a combination of techniques: a low power microcontroller that can take over some tasks without waking the application processor, and an OS optimized for instant-on so that it can go into a super-low power mode that shuts off RAM refresh, yet recover quickly when the user demands it.  Many (most? all?) ARM application processors have the ability to configure the CPU cache as an SRAM that you can execute from.  This can allow you to have a minimal execution environment for simple tasks without powering up the DRAM. 

So these techniques can all limit the standby power, but remember that all of the code that runs in the MCU, or is executing from cache in the APU don't have the benefit of the full Linux environment.  As you move more and more of the everyday functionality into those reduced power enviornments, you are going to wonder if it is actually worth the trouble to have the applications processor at all.  I am the guy who thinks it is silly how people like to use tiny microcontrollers in non-power and space constrained applications, then faff around with 1980s style C, and then worry about running out of their 8K of RAM when they could just use a bigger processor and written their code faster and more functional.  But battery powered application processors are hard.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf