E-ink, Low-power CPU, & Solar Power: 3 sides of the same Lid ;)

I’ll try to reply to some of your points, sorry if it’s confusing but it’s hard to quote on mobile.

E-Ink panels don’t have to be refreshed at a constant rate, so yes, there definitely are many displays that can be refreshed only when you need them to be. However, those are not likely to include HDMI connectivity because HDMI requires a constant refresh rate (disregarding emerging technologies like Nvidia G-Sync, which still require a “base” refresh rate and can’t go lower than that). But if Waveshare is releasing a panel with just a driver board, it will probably have inputs other than HDMI that would allow variable refresh rate.

The battery life can’t even be compared to ULV laptops - it should be orders of magnitude better. In fact, it should be better than a smartphone and more similar to a feature phone, assuming you can get a real e-Ink display instead of a “monitor” with constant refresh rate. Both the CPU and the screen consume less power than their smartphone counterparts.

If you’re considering going as low as 10-20MHz, you might as well ditch the idea of having an application processor. At that point, it’s just a waste of energy since you won’t be able to run a multitasking OS on it. I recommend you look into MCUs such as ESP32, they’re cheap and much more efficient than a general purpose SBC.

Saving the contents of RAM into permanent storage before shutting down is a very standard thing in any modern OS and it’s called hibernation :slight_smile:

RCA 1802 sure was power efficient for its time, but modern electronics are much more advanced and much more efficient. Take the aforementioned ESP32 for example: it consumes only about 160mW (compared to over 200mW for RCA 1802) while running at 320MHz compared to the 3MHz you mentioned. That’s literally a hundred times faster while consuming less power :slight_smile: I don’t know how much power your solar panel generates, but if it’s enough for RCA 1802, it should be enough for both.

2 Likes

@pauliunas.

Thanks for your response. I have also been interested in a variable refresh rate ever since FreeSync/G-Sync was released. I was considering HDMI for higher-end laptop builds, but I do prefer alternatives like DSI/GPIO since the power consumption is generally lower. DSI is plug and play but not many makers produce driver boards for it, at least in e-ink.

I keep reading about this ESP32 in various boards. I will consider it more now, since it seems to be in a lot of boards by Adafruit and Sparkfun. I do like the 140mhz range (single core) and the RAM sizes.

While I considered 10-20mhz, I do not actually want it to be stuck at that speed. I think 48mhz+ is more reasonable, but when choosing a thermal design (TDP) envelope for system, I am thinking of all the possible applications/office suites that can can run in that range without getting bogged by higher RAM once modern browser needs are considered. Building a laptop with just an AbiWord program and some other off-line productivity programs is just a much nicer starting point for proof of concept before adding the browser that takes the RAM cake :slight_smile: :

I think the ESP32 will definitely be able to tackle an early 1990s era browser like http://kmeleonbrowser.org/ , https://www.falkon.org/ https://astian.org/en/midori-browser/

Update: it appears the Firebeetle ESP32 uses some of the lowest power of the series:
https://diyi0t.com/reduce-the-esp32-power-consumption/

Found a couple discussions on this:
https://hackaday.io/page/6966-has-anyone-managed-to-get-a-minimal-linux-install-onto-an-esp8266-board (interesting mentions: RetroBSD (from pre-MMU, requires 128KiB RAM)
https://www.esp32.com/viewtopic.php?t=6723

Update 2: Thanks ei2030, who mentioned the Inkplate 10." checked the Inkplate 6" on Crowdsupply uses an ESP32 WROVER and 8MB RAM. I am curious what kind of I/O it can connect, like bluetooth keyboards & mice.

Also, ESP32-S2 uses RISC- https://www.cnx-software.com/2019/12/03/western-digital-risc-v-linux-busybox-boot-sipeed-maix-go-board/

Also, this one can run as low as 80mhz and has 2MB RAM:

Update 3: Some really interesting GUI work on the ESP32! http://www.fabglib.org/
https://hackaday.com/2019/07/08/esp32-gets-advance-windowed-apps-using-this-vga-gui-library/

His recent YouTube videos shows he has now worked on SPI displays in addition to VGA!


That’s some nice findings.

The power consumption comparison that you found is for development boards - they all use the same ESP32 module that uses the same amount of power. The differenxe comes from included peripherals such as USB to TTL bridge which you don’t need for your design.

Another thing to consider is that ESP32 has its own custom instruction set (shared with some other Espressif modules) and not much work has been done on porting PC-like functionality to it, such as word processors or USB host capability. So most of the software would have to be custom programmed. I still think it’s better than an RCA 1802 as it has more clock cycles to spare for I/O and you’d need to write custom USB drivers for both of them. But if you want something more “plug and play”, you might want to stick to SBCs that already run a desktop Linux distro. It may seem counter-intuitive, but buying a more powerful board built on a newer process, such as Khadas VIM3, and downclocking it would result in lower overall power consumption.

2 Likes

Looks like there is another large GUI library https://blog.lvgl.io/2019-01-31/esp32

https://www.osrtos.com/ quite a few RTOS’s here- show compatibility with ESP32 and some have file systems, low powered wifi, and even a GUI, like:

https://en.wikipedia.org/wiki/Zephyr_(operating_system) Zephyr (the ESP32-3C) has RISC-V
https://www.espressif.com/en/products/socs/esp32-c3

While most RTOS seem to have one or two linux capabilities, they don’t seem to offer the entire kernel. That said, it would be interesting if the rest of the kernel/apps could be loaded externally from flash storage.

Update: A Qt based ROTS: https://membarrier.wordpress.com/2017/04/12/qnx-7-desktop/

2 Likes

I’m not an expert in this area, but there are CPU design considerations for running RTOS vs. a regular OS. Simply put, regular OSs run best on application processors such as the one on Raspberry Pi, while RTOSs run better on microcontroller architectures like ESP32 and various Arduino boards. ARM makes both kinds of processors (for example, newer Arduino boards use ARM microcontrollers), but even though they have the same basic instruction set, you can’t run a Linux kernel on an Arduino.

Similarly, as far as I understand from the reading I’ve done, ESP32 won’t run a Linux kernel even if you port it to its instruction set. I think it has to do with the way it handles interrupts, but I’d have to refresh my memory on the differences between application and microcontroller processors.

1 Like

“Similarly, as far as I understand from the reading I’ve done, ESP32 won’t run a Linux kernel even if you port it to its instruction set. I think it has to do with the way it handles interrupts, but I’d have to refresh my memory on the differences between application and microcontroller processors.”

You may be right about that. From what I’ve found:


"RIOT-Xtensa-ESP is a bare metal implementation of RIOT-OS for ESP32 SOCs which supports most features of RIOT-OS. The peripheral SPI and I2C interfaces allow to connect all external hardware modules supported by RIOT-OS, such as sensors and actuators. SPI interface can also be used to connect external IEEE802.15.4 modules to integrate ESP32 boards into a GNRC network.

Although the port does not use the official ESP-IDF (Espresso IoT Development Framework) SDK, it must be installed for compilation. The reason is that the port uses most of the ESP32 SOC definitions provided by the ESP-IDF header files. In addition, it needs the hardware abstraction library (libhal), and the ESP32 WiFi stack binary libraries which are part of the ESP-IDF SDK."

This is a different RTOS, but it seems attempts at a desktop environment have been made:


The size of Razor-Qt, or the smallest desktop environment for linux may fit on the SRAM, but it seems like Zephyr on RISC (as mentioneed by BusyBox link above) might have a more mature set of features that include multi tasking.
http://www.staroceans.org/kernel-and-driver/Embedded%20Linux%20System%20Design%20and%20Development.pdf
Not sure if this is applicable to RTOS:

"Simple GUI applications don’t require any toolkit and should not be a problem
to write in Nano-X. In this section we discuss the toolkit options available
over Nano-X.
FLTK (Fast Light Tool Kit) has a port for Nano-X called FLNX. FLTK provides
C++ abstraction over Nano-X APIs. FLTK also provides a GUI designer called
Fluid that can be used to design GUI forms. The Nano-X/FLTK combination
Listing 9.4 Sample Nano-X Application

340 Embedded Linux System Design and Development
is proven and tested; many embedded applications have successfully employed
this combination. For instance, the ViewML browser is an HTML browser
implemented using the same combination.
NXLIB (Nano-X/X-lib Compatibility Library) allows X11 binaries to run
unmodified using the Nano-X server. This means that many full-featured
applications that run on the X-server would run on the Nano-X server as well
with little or no modifications. The NXLIB is not a complete replacement of
X-lib, because it provides only a subset of X-lib APIs. NXLIB will help reduce
porting time of huge applications that were written using other toolkits built
over X-lib. For example, a program written using Gtk-X will run on Nano-X
without many code changes"


http://www.microwindows.org/ (updated 10/2018)
2 Likes

interesting, didn’t know there was so much work done on making a desktop OS run on ESP32. But it makes sense, after all it has a ridiculously high amount of RAM for a microcontroller and the clock rate is impressive too :slight_smile:

“It may seem counter-intuitive, but buying a more powerful board built on a newer process, such as Khadas VIM3, and downclocking it would result in lower overall power consumption.”

This is a great idea. I digged around today for some newer chips after reading Jay Carlson’s CPU reviews and found the Rock Pi S (RK3308) runs on an ARM A35.
" * The F1C100s has strikingly good power figures — matching the 528-MHz Cortex-A7-endowed i.MX 6UL in terms of efficiency (though certainly not performance). Its 40 nm process appears to be a smaller technology node than what the NUC980, SAM9X60, and SAMA5D27 use.
… * When you move up to the Cortex-A7 or Cortex-A35, you don’t necessarily get any more MHz/mA — instead, you get more DMIPS/MHz, so they consequently perform more DMIPS/mA, too."


https://www.seeedstudio.com/ROCK-PI-S-Mini-Computer-with-Rockchip-RK3308-512MB-RAM-1GB-NAND-Flash-p-4276.html
It has a 1GB NAND flash that allows booting an image (typically an IoT OS, but also an ARM OS that can fit under 1GB- like Armbian: https://www.armbian.com/rockpi-s/

This would be perfect because the SD card apps and docs wouldn’t have to compete for the slow uSD write speeds for system processes.

That said, there is only one Display that is supported, the 3.5" waveshare TFT SPI:https://wiki.radxa.com/RockpiS/hardware/display
I already have a similar knockoff TFT from AliExpress for my Raspberry Pi. It would be nice to know if there is a general purpose display adapter for e-ink via SPI, as their HATs only support still images:
https://www.waveshare.com/wiki/E-Paper_Driver_HAT
The power consumption is reviewed here: https://www.thanassis.space/rockpis.html
"Putting my USB power meter in the loop, I measured the current going in. During boot, this spiked up to around 300mA - and then settled down in idle, to around 80mA.

Put differently: 0.08A x 5V = 0,4W. 400mWatt!

Very impressive!.. Things have really changed since I last measured this; I didn’t keep a detailed journal like I did for this board, but I believe the Orange PI Zero was somewhere around 250mA - more than 3 times this little guy.

As for the consumption during the other benchmarks:

when stress-testing with my renderer loading all CPUs at 100% and fully using the floating point unit on all of them, the current consumption reached a ceiling of 370mA. Simply put, the maximum consumption I managed to force on the ROCK PI S, was a bit less than 2W.

When maximizing the USB bus usage with dd from an external 1TB drive, the current consumption topped at 150mA (0.75W)"
Similar to the Pi Zero. Seems like the idle usage is decent. I suppose the Khadas VM3 might have better idling with LDDR4- though it has a lot of IO ports:

Wavehsare 7.8 HDMI e-ink monitor+external driver board uses an FPGA, and their 10.1 HDMI e-ink seems to run something similar.

Even running an e-ink display to something like this would make it a capable typewriter.

I looked into the M5Stack Core Ink

And the larger https://m5stack.com/products/m5paper-esp32-development-kit-960x540-4-7-eink-display-235-ppi?variant=37595977908396

These are interesting and low cost device with limited programmable microcontroller functions. They can be used as bluetooth keyboards, but I’ve inquired if they bluetooth keyboards can be connected to them- They would make Get FreeWrite Type writers at 1/6th the cost (if you don’t mind typing on a 4.7" screen.)

This may be a poor analogy, but I realize microcontrollers, and real-time operating systems are kind of like a river. There is an input and output, but no real space to “float” in place while working an application, by design. An application processor, is like a lake, or an ocean- scalability is an option with multiple cores and memory. But with the amount of RAM added on microcontrollers, it is curious as to how much information can be stored in something like the M5Paper if it were turned into a simple text editor (or better yet, a word processor with Rich formatting) by outputting the data via bluetooth or some other storage medium expansion ports(HY2.0-4P,M-BUS,HAT expansion) adapters to uSD).

The https://www.seeedstudio.com/Sipeed-Lichee-Nano-Linux-Development-Board-16M-Flash-WiFi-Version-p-2893.html is the smallest linux board i’ve found.
https://www.electronics-lab.com/licheepi-nano-high-performance-sd-card-sized-linux-board-based-on-an-arm9-core/
" F1C100 supports Full HD video playback, including H.264, H.263, MPEG1 / 2/4 decoders. The integrated audio codec and I2S / PCM interface enable the user for an excellent audio experience. The TV-IN and TV-OUT interfaces allow the use of video devices such as the camera and the TV.

  • Display I/F – 40-pin RGB LCD FPC connector supporting 272×480, 480×800, 1024×600 and other resolutions resistive and capacitive displays
  • Video Decoding – H.264 / MPEG up to 720p
  • I/Os via 2.54mm pitch through holes and 1.27mmm pitch castellated holes
  • SDIO for WiFi module
  • 2x SPI, 3x TWI (I2C),3x UART
  • 1x TV out, 2x TV in"

Are there any FPC to e-ink adapters? Nothing above 640x480, not sure if it could handle it.

From Digikey:


https://www.digikey.com/en/products/detail/sharp-microelectronics/LS013B7DH03/5300387 are these drop-in ready for loading linux? lol
I’m a little skeptical this would work, but it is transflective, 39-pin FPC: https://www.aliexpress.com/item/4000419622239.html Cool video:
https://youtu.be/FNHorhEksMY

You picked a bad example. Rock Pi S uses 40nm process, that’s older than Raspberry Pi Zero actually slightly newer, but older than the rest of Raspberry Pi models. Zero uses the same CPU as the first ever Raspberry Pi (model A), that’s why it’s so old and inefficient. You’d have better luck underclocking a Raspberry Pi 2 or something similar. Khadas VIM3 is a better contender, as it’s built on 12nm.

FPC is “Flexible Printed Circuit” - it’s just a very broad generic term describing those flexible (usually yellow) display panel connectors. Every single display panel I’ve seen, including e-Ink, uses one of these, but there is no standard for the pinout. It can have any number of pins and those pins can do absolutely anything. Almost every FPC is different so you won’t find a drop-in replacement for the “supported” module. However, you can make an adapter board (check out JLCPCB, I can help with the board design if you need that) so most display panels will fit as long as they support the electrical standard (SPI). What you’re looking for is an SPI display. Stop looking at HDMI monitors and start looking for e-Ink modules - like this one:

They are usually sold as replacement parts for e-readers and not for custom projects, but you can always look up the datasheet for the model number or ask the seller.

I don’t know if you want an SPI display - just like FPC, SPI is a very broad standard and only defines how to send a single bit. It doesn’t have anything to do with displays, so everything else is loosely defined by the panel you choose to use. DSI, RGB888 and other standards are specifically made for display drivers, but they might not allow partial refresh, which is very important for e-Ink.

Here’s an example of how it’s done:

1 Like

The Khadas VIM3 has 4 A73cores and 2 A53 cores. It would be better to just use a single or dual core A53. Turns out there are exactly two made under on 14nm or lower:


https://en.wikichip.org/wiki/samsung/exynos/9110 Used on Samsung Galaxy Watch. lasts 4 days on a tiny battery, runs Tizen (this is without GPS, which defeats the point):
https://www.tomsguide.com/us/samsung-galaxy-watch,review-5705.html

https://www.sammobile.com/news/samsungs-exynos-7270-processor-now-powers-a-hifi-music-player/

Too bad Samsung doesn’t make SiP dev boards.

There is also the newest process: https://en.wikipedia.org/wiki/ARM_Cortex-A78 (available in 1-4 core clusters)
Like all Arm-chips, it is available for licensing, but it may be a while before someone wants to make a single core variant- the Exynos 1000 uses a combination of 3 chips.

I believe you can disable all cores but one in Linux.

2 Likes

Disabling extra cores is definitely something I can try.

I also have a more ambitious idea, which would require finding some investors. As I recall from this forum’s pdf, “consolidate a cluster of broad talent, and a taxonomy of
IP-holders/chipmakers towards an electronic ink rolodex!”

I have contacted ARM for a quote, however silly that might be, but to get a ballpark estimate of exactly what kind of licensing it would cost to have a a processor dedicated for a device designed for e-ink. The reason I believe it would be best to contact them and not Samsung or E-ink, is that microprocessor IP is and has always been tailor made. I may not know the intricacies of EUV lithography, but as the common need for more e-ink, whether for medical needs or general preference is becoming more clear, it would be an interesting idea to possibly crowdinvest:

This would be not just a system on a chip but heavy focus on the chip architecture itself. I believe an e-ink microprocessor could receive “discounts” if it could even be licensed similar to how the Raspbery Pi Foundation was formed:
“Components, albeit in small numbers, were able to be sourced from suppliers, due to the charitable status of the organization.” [7]

Something to consider, EI2030 :slight_smile:

An Exynos 9110 running on near-threshold voltage might be powerful enough and lightweight enough to run several mobile devices, including e-readers, tablets, note-takers, typewriters, laptops and connect various sorts of e-ink displays if a “more universal” standard were developed, so being able to connect e-ink displays that could be co-developed with the processor such as a standard neutral DSI connector.
" The Display Serial Interface (DSI) is a specification by the Mobile Industry Processor Interface (MIPI) Alliance aimed at reducing the cost of display controllers in a mobile device."


Edit: https://en.wikipedia.org/wiki/Video_Electronics_Standards_Association I understand this is a broad standard, but is there any place for e-ink to fit in any of these royalty-free specifications? https://en.wikipedia.org/wiki/DisplayPort#Cost

I have contacted an academic and industry professional who have developed solar powered microcontrollers, and they say they do not work on application processors, but encouraged me to look elsewhere.

Theoretically, if I wanted to license a derivative IP of a Samsung chip which is licensed by ARM, they would obviously both have to be involved. So, what IPs out there seem like a good e-ink crowdinvesting goal?

"FPC is “Flexible Printed Circuit” - it’s just a very broad generic term describing those flexible (usually yellow) display panel connectors. Every single display panel I’ve seen, including e-Ink, uses one of these, but there is no standard for the pinout. It can have any number of pins and those pins can do absolutely anything. Almost every FPC is different so you won’t find a drop-in replacement for the “supported” module. However, you can make an adapter board (check out JLCPCB, I can help with the board design if you need that) so most display panels will fit as long as they support the electrical standard (SPI). What you’re looking for is an SPI display. Stop looking at HDMI monitors and start looking for e-Ink modules - like this one:

[…] They are usually sold as replacement parts for e-readers and not for custom projects, but you can always look up the datasheet for the model number or ask the seller.

I don’t know if you want an SPI display - just like FPC, SPI is a very broad standard and only defines how to send a single bit. It doesn’t have anything to do with displays, so everything else is loosely defined by the panel you choose to use. DSI, RGB888 and other standards are specifically made for display drivers, but they might not allow partial refresh, which is very important for e-Ink.

Here’s an example of how it’s done:

essentialscrap.com"

I understand FPC and SPI are both very broad standards, but the fact that each device using one is different is precisely the reason I am exploring crowdinvesting for a display driver/microcontroller+standard that can adapt many new e-ink modules along with a system on a chip that uses just enough power to run the apps.

:slight_smile:

Well, if you look at some e-Ink module datasheets, you’ll probably find that many of them use the same few models of driver chips. At least that’s the case for TFT LCD modules, so I think it should be similar for e-Ink. They just all have different pinouts for their FPC connectors, but try to find a common denominator and you just might discover a popular SPI standard with minor changes across different modules.

1 Like

Oh I almost missed your other reply. I think you should scratch the idea of adapting existing display standards as it is unlikely any of them supports partial refresh. Sure you could have a chip that compares the current frame with the previous frame and finds the delta to send to the display panel, but if power efficiency is your goal, maybe adapting a Linux driver to already send only partial updates to the driver chip would be a better idea. I believe that’s what most e-readers do.

1 Like

(Edit: Also Custom SoC design: https://openfive.com/)


“The Quark microcontrollers have a Pentium x86-compatible instruction set without the x87 floating point unit.”
D1000 November 3, 2015 24 2 32-bit (GP) 8kB 32kB/8kB 1 1 1 - 32 MHz 0.0016 W - 0.025 W 0 kB QFN40
“Pentium is very much an x86 architecture. The D1000 was not fully x86-compatible, but it wasn’t the first Quark (that also made the D1000 the most interesting of the bunch, in my opinion, but AFAIK it never even made it to market and was only available to some Intel partners.)”

Found a 22nm programmable low power dev board: https://greenwaves-technologies.com/gap8_gap9/

Can connect screens to them: https://github.com/GreenWaves-Technologies/gap_applications/issues/1

Having something programmable and low power would go a long way to having a flexible platform for connecting a variety of e-ink screens.

" GAP9

GAP9 extends the accessible market of the GAP family to support more complex applications at even lower power consumption. Through a combination of a state-of-the-art 22nm FD-SOI semiconductor process and architecture improvements such as increased memory bandwidth, data compression, and trans-precision floating point support, GAP9 reduces energy consumption by 5 times while enabling inference on neural networks that are 10 times larger. GAP9 delivers a significant performance upgrade while continuing to support the requirements of battery-powered sensors and wearable devices."

Based on https://www.pulp-platform.org/

1 Like

10 years ago, Samsung released a solar powered netbook, the NC215S:


using an Atom N455 processor which used 6.5 watts.

Last month,
https://www.eenewseurope.com/news/micro-magic-risc-v-processor/ (uses a FinFet process- likely 10-20nm)

“10mW when operated in the voltage-threshold region at 350mV.” I’m going to ignore ohms because I don’t know how to calculate and guess that is around 28uA/mhz. At 1ghz. Underclocking it to 100-200mhz may or may not reduce power even further. Maybe 1mW?

That’s excluding the refresh rate of the e-ink and peripherals.

By comparison, the first generation Ambiq Micro’s Apollo 4 Micro Board runs at 34uA/mhz. Their newest range runs at 3uA/mhz. If the solar powered battery-less Game Boy can run at 6uA/mhz, that suggests an instant-on TI-30Xa battery-optional solar powered laptop could be just around the corner…

Hey @scrunch , any updates on the project? What’s the current progress ? Are you doing more prototyping and stuff ?