Linux on Teensy 3/4?

skypuppy

Member
A couple of times I've wished I could run Linux on a Teensy 3 or 4. Wonder how hard a port would be? Yeah, I know, Teensy is a different animal, but so was the RPi back in the beginning. One Teensy as a general purpose computer, mated with another Teensy as the dedicated microcontroller would have been just the thing for a couple of projects...
 
Wonder how hard a port would be?

Linux on Teensy would be somewhere between "not worth the incredible effort" to "pretty much impossible".

There is no MMU, so you're immediately resigned to not-so-useful ucLinux. The best case (but unlikely) scenario is a Linux system that's incompatible with most Linux software and lacks the stability of real Linux running with protected memory. Ports of ucLinux are usually called a success if the kernel boots and runs a shell, even if no other software is capable of running. Odds of actually achieving anything even at good are pretty slim.

The next big hurdle would be the memory size. Maybe it could be done on Teensy 4.1 with PSRAM chips added, so you're working with 8MB flash and 17MB RAM. All the other Teensy models aren't going to have anywhere near enough memory.

Then there's the small matter of getting all the drivers working. Some might come over from Linux support for iMX6 - iMX8 processors. But many hardware details, like DMA, are completely different than NXP implemented on those application processors.

Nobody has shown any interest in this incredibly long and difficult journey which has little change of arriving at a not very satisfying result.
 
Wow! Well thought out reply! You make a very strong case against. All practical and honest reasons. Using an RPi or equivalent is much more logical indeed.

But you busted my widdle bubble. :) :)

I get these whimsical ideas once in a while and they're fun to play with, anyway.
 
Hi,

new user. I've been curious about it because SliTaz made a port for the Raspberry Pi that ran on 7MB RAM: https://www.cnx-software.com/2012/12/15/slitaz-armhf-46mb-linux-distribution-for-raspberry-pi/

I've been looking into whether it could be ported to the ESP32-S2-WROVER, which has 4.5MB RAM. There is a more barebone version: https://github.com/SliTaz-official/tiny-slitaz that runs on 4MB RAM, but would likely need additional packages (FLTK/FLWM would be nice).

Nonetheless, it would be interesting because I'd like to build a laptop out of it.
 
.... because I'd like to build a laptop out of it.

What is your reason for wanting to build this special laptop?

If your goal is to publish something like a magazine article or youtube videos showing that this seemingly impossible feat can be done in some extremely limited way that technically does manage to boot up and run Linux, or as just a personal challenge or learning exercise, then maybe the tremendous effort could be worthwhile. On a technical level, you'll probably win a lot of respect, and probably get lots of temporary fame in the geek world and maybe youtube views.

But if you're imagining ending up with a laptop you could realistically use for even relatively simple productivity applications, right now is the best moment to come to your senses.

Seriously, you should only embark on this long & difficult journey if it really is about the journey and not the destination!
 
What is your reason for wanting to build this special laptop?

If your goal is to publish something like a magazine article or youtube videos showing that this seemingly impossible feat can be done in some extremely limited way that technically does manage to boot up and run Linux, or as just a personal challenge or learning exercise, then maybe the tremendous effort could be worthwhile. On a technical level, you'll probably win a lot of respect, and probably get lots of temporary fame in the geek world and maybe youtube views.

But if you're imagining ending up with a laptop you could realistically use for even relatively simple productivity applications, right now is the best moment to come to your senses.

Seriously, you should only embark on this long & difficult journey if it really is about the journey and not the destination!

Reason for building: Yes, it is more about the journey, not the destination! It's part art project, part proof of concept. It's only as practical as an e-reader is considered a marketable product- it's leisurely reading and writing, not photoshop or productivity. Yet e-readers are still a popular product sold today. I haven't really understood why computers use so much more memory and have ever-greater requirements, even if I do not use all the apps. This post (if you use Chrome browser's translate function, it can translate from Russian https://habr.com/ru/company/embox/blog/466379/) nicely wonders the same: "Well, if you remember the well-known phrase “640 kb should be enough for everyone”, then a reasonable question arises - why is modern desktop software so gluttonous? For example, a calculator in windows 10 in idle mode consumes as much as 16 MB of memory."

My first computer was a Pentium with 8MB of RAM, and had a suite of applications- calculator, solitare, tons of programs that used no where near that 8MB of RAM. I think it would be nice to demonstrate a product that shows how far computers have gone, and how simple they used to be, and yet were able to give the user-space an extraordinary amount of freedom to move a cursor around a screen with so little memory. Today apps several times larger than that only let you tap a couple boxes on a screen at a time.

https://medium.com/this-should-exis...-ink-laptop-for-thinkers-writers-4182a62d63b2 <--I kind of want to build what this blogger wrote about.

I think the proof of concept part is more about showing what's possible, and then as semiconductors get more efficient, more apps can be shown to run on it. I looked at every possible way to make it unique, and I added even more challenges. That isn't just the only thing I want to do. I want it to run on solar panels, and not just that, but ambient indoor light! I've documented my progress here:

https://forum.ei2030.org/t/e-ink-low-power-cpu-solar-power-3-sides-of-the-same-lid/82 If it became like an open source project, then it could be used to build other custom laptops, like a mobile-ITX motherboard.

I appreciate the feedback- I wrote this post more as a gauge to see whether some are skeptical or curious. I think you gave the most balanced response- if it were productivity and performance/speed I would probably fail, and it's the journey that interest me. :)
 
You could probably develop an e-reader / writer without the OS in a fraction of the time.

I just got some interesting suggestions on Reddit: "If you just want Linux on an ESP32, one easy option is u/Spritetm's MiniPDP11 project. Or you can port u/dmitrygr's uARM project. It was written for AVR, but it shouldn't take much modifying of the PC version to work, because the ESP32 has enough RAM/"
https://spritesmods.com/?art=minipdp11&page=3

I also found a pretty impressive terminal on ESP32: https://hackaday.io/project/168193-epdiy-976-e-paper-controller I wouldn't mind developing an e-writer - the Inkplate is developing an e-reader: https://www.crowdsupply.com/e-radionica/inkplate-10/updates/read-e-books-with-inkplate-10
 
Final Cartridge 3 on c64 could also run a desktop with movabe cursor and had tools as calculator notepad etc.
And only run on 64k memory.
 
Final Cartridge 3 on c64 could also run a desktop with movabe cursor and had tools as calculator notepad etc.
And only run on 64k memory.

Thank you manicksan! I am amazed by the resourcefulness of early computers. I found from the Final Cartridge 3 wikipedia article, "Unless RUN/STOP key was held down during power-on or reset, the cartridge presented a graphical WIMP desktop."
"Windows, Icons, Menu, Pointer" https://en.wikipedia.org/wiki/WIMP_(computing)

"Though the acronym has fallen into disuse, it has often been likened to the term graphical user interface (GUI). Any interface that uses graphics can be called a GUI, and WIMP systems derive from such systems. However, while all WIMP systems use graphics as a key element (the icon and pointer elements), and therefore are GUIs, the reverse is not true. Some GUIs are not based in windows, icons, menus, and pointers. For example, most mobile phones represent actions as icons and menus, but do not often don't rely on a conventional pointer or containerized windows to host program interactions.[citation needed]"

I spent over a month on various RTOS and linux forums trying to explain I want "linux with a GUI", even saying I want a "linux with userspace", but windows, icons, menu, pointer" (WIMP) is far more precise.

The ironic thing about this is that many microcontrollers have much more RAM today than 64k, and it is often viewed that running apps with windows and tiles would somehow be more limiting than a non-WIMP GUI. But I think of this like the glass half empty/half full. The microcontroller can't run a full Ubuntu or Raspbian Lite. But what is gained from having a windows, icons, menus and pointers? Granularity of control over apps.

I feel like I am asking someone that I want to fly somewhere(anywhere) and someone tell me, "Sorry, there aren't any flights available to the moon right now." :D

There's another aspect to this, which I won't deny.

"#Criticism
Some human–computer interaction researchers consider WIMP to be ill-suited for multiple applications, especially those requiring precise human input or more than three dimensions of input.[9] Drawing and writing are example of these limitations; a traditional pointer is limited by two dimensions, and consequently doesn't account for the pressure applied when using a physical writing utility. Pressure sensitive graphics tablets are often used to overcome this limitation.[10]"

Another issue with WIMP-style user interfaces is that many implementations put users with disabilities at a disadvantage. For example, visually impaired users may have difficulty using applications when alternative text-based interfaces are not made available. People with motor impairments, such as Parkinson's disease, may not be able to navigate devices precisely using the traditional mouse pointer for input. To overcome these barriers, researchers continue to explore ways to make modern computer systems more accessible.[11] Recent developments in artificial intelligence, specifically machine learning, have opened new doors for accessibility in technology, or assistive technology.[12][13]"

This makes wonderful sense. I agree with this 100%. But it doesn't mean I want to get rid of it. I think mobile phones have in a way almost given rise to the abandonment of desktop window development. I view touchscreens/haptic technologies as an additive feature, rather than a feature that should subtract other features like WIMP. Mobile phones become useless when the touchscreen fails, leading to e-waste. Which isn't to say that they can't be fixed, but who bothers? It would be more environmental to reuse hardware made for phones and allow it to be compatible with a laptop chassis so that a standardized mobile motherboard can be reused, if someone doesn't want to use the phone's broken case anymore. This phonemaker uses a reusable chassis: https://www.fairphone.com/en/
Phones are far more powerful than many decade-old laptops, so they could also be repurposed as productivity devices like a lightweight laptop: https://www.zdnet.com/product/lenovo-yoga-c630/ Some phones have the option to allow a keyboard to be added via bluetooth. A mouse may not be as useful, since navigating to different screens might require scrolling to the end of the screen and it might require some input to indicate window switching. Many RTOS like the M5Stack have many IoT features. It would be very practical to be able to navigate the apps in a way that doesn't depend on the touch screen. Something like FLTK would be lightweight but also slightly more RAM intensive, maybe 2-4MB of RAM might be needed.

But back to my solar laptop idea, using microcontroller may seem be limiting if one is looking at microprocessors from the outside in, but having enough RAM- some microcontrollers have 384kB and up to 2MB RAM in some cases- The Ambiq Apollo 4, for example. Considering Windows 1.0 ran on 1MB of RAM, it was used for Office/business productivity at one time. It would be interesting to see what kind of applications could run. I remember a term in the 1990s, "https://en.wikipedia.org/wiki/Multimedia_computer
"Multimedia capabilities were not common on IBM PC compatibles until the advent of Windows 3.0 and the MPC standards in the early 1990s. The original PCs were devised as "serious" business machines and colorful graphics and powerful sound abilities weren't a priority. "
The term multimedia is taken for granted. Every PC today is multimedia. I admit it is still is asking a lot to expect a microcontroller to do multimedia, but multimedia isn't necessarily what an IBM or early Windows OS necessarily sought to do. They were marketed towards accountants and memo writers. Which isn't to say I want to do my taxes on Excel 1.0 lol. :D But I think it would still be a positive improvement- an addition, rather than a subtraction. In this way, the added feature would be that it wouldn't require a DC, USB-C or micro-USB charger, if it could be powered by indoor light, like a TI-30Xa. It would be subtractive if I removed the USB/DC charger altogether. A hybrid represents options.

The flexibility of having multiple apps, via flash or external storage, would increase the versatility of the device. I found this AVR microcontroller running Contiki:

https://en.wikipedia.org/wiki/Contiki#Features Pretty interesting! Contiki-avr.png Thanks for your time!
 
Last edited:
Linux on Teensy would be somewhere between "not worth the incredible effort" to "pretty much impossible".

There is no MMU, so you're immediately resigned to not-so-useful ucLinux.
I can't imagine anyone putting this effort in on a MCU without a MMU. The lowest end Cortex with MMU is the A8. This is by design. By definition the Cortex M series processors do not include an MMU, nor are they ever likely to. See this from the arm community site: https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-37-85/Cortex_2D00_M-for-Beginners-_2D00_-2017_5F00_EN_5F00_v2.pdf
 
What is your reason for wanting to build this special laptop?

If your goal is to publish something like a magazine article or youtube videos showing that this seemingly impossible feat can be done in some extremely limited way that technically does manage to boot up and run Linux, or as just a personal challenge or learning exercise, then maybe the tremendous effort could be worthwhile. On a technical level, you'll probably win a lot of respect, and probably get lots of temporary fame in the geek world and maybe youtube views.

But if you're imagining ending up with a laptop you could realistically use for even relatively simple productivity applications, right now is the best moment to come to your senses.

Seriously, you should only embark on this long & difficult journey if it really is about the journey and not the destination!

I’m late to this thread, haven’t browsed much here for a while. Just want to observe that hobby electronics, like all hobbies, is always about the journey, isn’t it? Life’s destination is grim, some fun and interest along the way is precious. I offer you my belated birthday greetings and thank you (and all the very interesting posters here) for adding to the fun and interest along my way.
 
I’m late to this thread, haven’t browsed much here for a while. Just want to observe that hobby electronics, like all hobbies, is always about the journey, isn’t it? Life’s destination is grim, some fun and interest along the way is precious. I offer you my belated birthday greetings and thank you (and all the very interesting posters here) for adding to the fun and interest along my way.

Thank you @Spudlicious! I've been continuing on this research in a project: https://forum.ei2030.org/t/low-power-e-paper-os/138

There is also a more active laptop project that I would like to merge it with in the future: https://forum.ei2030.org/t/papertop-laptop/136/3
 
Wow! Well thought out reply! You make a very strong case against. All practical and honest reasons. Using an RPi or equivalent is much more logical indeed.

But you busted my widdle bubble. :) :)

I get these whimsical ideas once in a while and they're fun to play with, anyway.

Its worth remembering that although some Teensy's have fairly fast processors, they have thousands of times less RAM
than even modest modern computers. If you could go back in time ~30 years to early versions of Linux, then yes
you'd find something that would fit on a Teensy quite well - but modern Linux is able to run on stock server hardware
and use all those resources effectively. The lack of MMU is pretty much the clincher though, Linux is a full-blown
operating system, based on the process abstraction, and without memory protection you don't have processes, you
only get cooperative threads.

Having said that someone somewhere is working on this probably!
 
When I started using Linux in 1994 with Slackware 1.1, I had to download it at a university and write 51 floppy disks for the install process.
 
Its worth remembering that although some Teensy's have fairly fast processors, they have thousands of times less RAM
than even modest modern computers. If you could go back in time ~30 years to early versions of Linux, then yes
you'd find something that would fit on a Teensy quite well - but modern Linux is able to run on stock server hardware
and use all those resources effectively. The lack of MMU is pretty much the clincher though, Linux is a full-blown
operating system, based on the process abstraction, and without memory protection you don't have processes, you
only get cooperative threads.

Having said that someone somewhere is working on this probably!

Yes, hopefully someone is working on it :) The way I see it is there are hundreds (or thousands of linux distros that are designed for large RAM (1GB+ nowadays), but very little development is made towards making open-source hardware like e-readers. For example, the Inkplate 6" is runs on an ESP32 and effectively is a pdf viewer with some image conversion: https://www.crowdsupply.com/e-radionica/inkplate-6
https://inkplate.io/

What I think gets missed in this conversation is that most linux distros, except for embedded ones, are designed to support every app, when there are very few products (linux OSs )designed to run a handful of apps. I think it is biting off more than one can chew, and I have many options when I want a distro that can handle many apps. So why not make more distros that do single or few apps? The binary can always be flashed to install a different app- I've looked into ways where the uSD card is a persistent multi-boot- loading a kernel tailored for individual apps- the minimum uclinux footprint can be as low as 2MB: https://www.emcraft.com/stm32f429discovery/what-is-minimal-footprint

https://www.electronicdesign.com/te...tical-advice-on-running-uclinux-on-cortexm3m4

https://bootlin.com/pub/conferences...opdenacker-embedded-linux-45minutes-riscv.pdf

That said, I'd like to see 8-16MB RAM on a microcontroller's SRAM/IC, and there are companies that specialize in low power RAM, like apmemory: https://ambiq.com/ap-memory-and-ambiq-partner-to-enable-richer-experiences-in-intelligent-endpoints

Adding conventional, $1.75 PSRAM onto an SPI module of an ultra-low power microcontroller like the Ambiq Micro Apollo3 is like adding 737-800 twin engines onto a Cessna. They use far more power than the MCU, so this is more a multidimensional design consideration than strictly needing any MCU to run with PSRAM, since there are more efficient options, like the Rock Pi S, which runs at 400mW at 4 core: https://www.thanassis.space/rockpis.html

For example, the https://github.com/tudssl/engage used 512KB FRAM added onto the PCB allowing 896KB of RAM to emulate Gameboy ROMs. I imagine a couple apps could run on less than 1MB, but ideally portable devices can do more with less RAM, or at least devices that use lots of RAM need not be the primary communication device. Like if I just want to have my phone to send texts and make calls, and send emails a much lighter phone could do that. It may be considered unenvironmental to carry 2 phones around-one for heavy multimedia/multi tasking, and another for long battery life, but there is a strong dependency on phones for doing lots of complex apps, even viewing office docs (excel/word/powerpoint). That isn't a problem, but there are many more apps that are kind of a waste of notification awareness- with hundreds of apps notifying or updating of a new version is turning phones into a dependent ecosystem of communication. I can definitely uninstall and do uninstall or disable apps that I don't use, but I remember in the 90s how phones were useful for making calls and texts, but now it's like more prone to procrastinate or distract. Laptops can be the same way. An e-ink or less bright backlit laptop would be less stimulating to "new" notifications when a simplified monitor UI could be designed to focus on the apps that matter. I can think of https://elementary.io/ as an example that is a nice retreat from infinite options that OS's seem to be designed around. Even to pursue infinite apps there could be more organization around app themes that remind the user what type of app they're using and why, to help reflect on productivity, rather than have a million shortcuts on a wallpaper. Semantic file systems, window managers and GUIS, based on https://www.w3.org/OWL/ perhaps...
 
Question I have is, what is the OP trying to achieve? Not cost, certainly, as you can pick up a pi zero with 512k ram for $5 on Adaruit. If you're designing your own board, you can get an A8 CPU with a MMU for the same or less cost than a stm32F7, around $7-8 in 100 quantity, or $10 qty 1. And you can get a Linux board package for that A8 CPU to run Linux even on a completely custom board without a lot of work. If the OP is just trying to do what no one is done before, that's fine. I just don't see any real world application for this.
 
Question I have is, what is the OP trying to achieve? Not cost, certainly, as you can pick up a pi zero with 512k ram for $5 on Adaruit. If you're designing your own board, you can get an A8 CPU with a MMU for the same or less cost than a stm32F7, around $7-8 in 100 quantity, or $10 qty 1. And you can get a Linux board package for that A8 CPU to run Linux even on a completely custom board without a lot of work. If the OP is just trying to do what no one is done before, that's fine. I just don't see any real world application for this.

Well I do have a goal in mind. This may help explain (I'm the 2nd person in the slides): https://alexsoto.dev/static/community-built-eink-laptop-project/slides.html
 
"Not cost, certainly, as you can pick up a pi zero with 512k ram for $5 on Adaruit."

That is true, however, whenever there is a utility for a system on a chip that has an edge to a Raspberry Pi, there is a development around that. for example, the Pico Rio is designed around a lower power footprint: https://riscv.org/blog/2020/11/picorio-the-raspberry-pi-like-small-board-computer-for-risc-v/

Obviously $5 is affordable for most, yet ultra-low power consumption is somewhat still a niche application: https://youtu.be/hxW3WaUJ3TI?t=996

I can't predict the future, but I think that power consumption is becoming less convenient to ignore, and efficiency is opening up ways for energy harvesting as a predominant form of power source.

IoT & Wearables is the current market for ultra low-power processors, but I think it runs deeper than that. https://www.extremetech.com/computi...iquitous-almost-zero-energy-computing-by-2020 " This year, the company has discussed the shrinking energy cost of computation as well as a point when it believes the energy required for “meaningful compute” will approach zero and become ubiquitous by the year 2020."

Looking back at this, I am conscious of the fact that as semiconductors continue to be manufactured at ever smaller process nodes (although using large amounts of power to produce EUV), the amount of power each transistor uses at sub 20nm FinFet suggests ambient-light powered processors. there are already solar power managers such as the AEM10941 that can cold-start at 3uA, charging a 40-60mAh battery with out needing outdoor sunlight. That interests me because human physiological needs evolve much slower than semiconductors: that is, humans only prefer a nominal amount of light in indoor settings- with a circadian rhythm and a need to avoid blue light in the late hours of the day, artificial LCD lights for 8-12hrs a day is an unnatural state for humans, despite the productivity gains that it allows. Much like the light bulb, the incandescent bulb altered the sleep schedule by extending the amount of time of cheap light (i.e fewer candle wicks needed to be burned to have evening and early morning light). Therefore, the dependency on more transistors to expect more productivity/features is a law of diminishing returns. Productivity has human limits. Features and OS refinements encounter diminishing "wow factors." Diminishing effects should not be viewed as an underperforming aspect of OS development (improvement), but rather, as a way to limit technologies ubiquity into all of human habits. I imagine future PCs will be powered by ambient light, and continue to adopt Moore's Law but replace the gains in power consumption with fewer transistors. Otherwise, the power consumption will remain at 95, 105, or 125 for Intel and AMD sockets, yet use increasingly, 100-1 trillion transistors. While that might sound outlandish, it's not farfetched to see 100 billion transistors by 2030 or 2040. We're already at 36 billion.

While this may be off topic, and apologies for straying off the OP 1st post, it's a logical deduction to suggest Linux on a teensy is more an introspection as to how much memory is needed and what role the Teensy has in the 21st century when 600mhz was entry-level Pentium III speeds.
 
Well I do have a goal in mind. This may help explain (I'm the 2nd person in the slides): https://alexsoto.dev/static/community-built-eink-laptop-project/slides.html
I read the paper... it looks like an interesting and challenging project. And I agree with you, power is exceedingly important. But as much as I love my Teensy-s, they are not an optimal solution for you.
A few things to consider:
- Clock speed is a poor predictor of modern CPU performance, and CPU/GPU performance is a poor predictor of user experience, other than for gaming. There are Linux distros that will acceptably run a GUI on a low end single core 500mHz mobile chip. And there are others that are only happy on a multi-GHz CPU and GPU. This its one of the strengths of Linux - you can configure it to run on almost anything.
- Having a processor with a MMU does not mean you can't have low power, at least not in the way you have specified it in your presentation. For instance, Technologic Systems Inc. sells an industrial board with a Marvell PXA166 running at 800MHz. This would not work for you as it is stuffed with FPGA and other features, and is high cost. Point is, even with all that stuff onboard, it will happily putt along on 1W, with a max of 2.5W. The Teensy 4 has a max consumption of around 3W, and this is without Wifi or large amounts of DRAM.
- On a very fundamental level, ARM Cortex is designed for real time control tasks. A-series chips are designed to run an OS. Neither does the other's task well.

It seems to me that it would be easiest to reach your goal using one of the many low power mobile-chipset based boards that contain a MPU with an MMU, ie any ARM A-series chip, preferably multi-core. They would cost no more, run no slower, and require no more power than a Teensy or other Cortex chip. Mobile chipsets are designed explicitly for this purpose - run an Operating System on as little power as possible. Take a look at this, go to the power draw section:
https://magpi.raspberrypi.org/articles/raspberry-pi-specs-benchmarks. A Pi Zero W runs on 0.8 (idle) to 1.6 (load) watts. Even a quad core Pi 2 runs on 1.6w (idle), 3.7W (full load), similar to a Teensy 4. And that power budget includes Wifi (on the Zero at least) and DRAM. There are many other boards out there, from different manufacturers, all using different, but usually mobile, chipsets. Look at Odroid, Banana-Pi, Beagleboard, Raspberry Pi, Cubie Board... there are many others. I am sure you can find one that meets your power & performance requirements at a reasonable price. And all of them can run Linux out-of-the-box. That would limit your development to the essence of your project - the E-ink display, drivers, and related software.
 
If anyone wants to see the incredibly difficult bring-up of the linux kernel on a new architecture have a look at this current bring-up: https://twitter.com/AsahiLinux and https://asahilinux.org and https://www.youtube.com/channel/UCxS98ISZNcuaJRCvy6JV6Fw

Marcan is the lead on this port to bring native linux kernel booting to Apples Silicon processor used in the latest Macs. These apple processors are ARMv8 with custom Apple Silicon and the GPU and NPU are totally custom from what I have read. It's pretty cool how he documenting his progress.
 
I read the paper... it looks like an interesting and challenging project. And I agree with you, power is exceedingly important. But as much as I love my Teensy-s, they are not an optimal solution for you.
A few things to consider:
- Clock speed is a poor predictor of modern CPU performance, and CPU/GPU performance is a poor predictor of user experience, other than for gaming. There are Linux distros that will acceptably run a GUI on a low end single core 500mHz mobile chip. And there are others that are only happy on a multi-GHz CPU and GPU. This its one of the strengths of Linux - you can configure it to run on almost anything.
- Having a processor with a MMU does not mean you can't have low power, at least not in the way you have specified it in your presentation. For instance, Technologic Systems Inc. sells an industrial board with a Marvell PXA166 running at 800MHz. This would not work for you as it is stuffed with FPGA and other features, and is high cost. Point is, even with all that stuff onboard, it will happily putt along on 1W, with a max of 2.5W. The Teensy 4 has a max consumption of around 3W, and this is without Wifi or large amounts of DRAM.
- On a very fundamental level, ARM Cortex is designed for real time control tasks. A-series chips are designed to run an OS. Neither does the other's task well.

It seems to me that it would be easiest to reach your goal using one of the many low power mobile-chipset based boards that contain a MPU with an MMU, ie any ARM A-series chip, preferably multi-core. They would cost no more, run no slower, and require no more power than a Teensy or other Cortex chip. Mobile chipsets are designed explicitly for this purpose - run an Operating System on as little power as possible. Take a look at this, go to the power draw section:
https://magpi.raspberrypi.org/articles/raspberry-pi-specs-benchmarks. A Pi Zero W runs on 0.8 (idle) to 1.6 (load) watts. Even a quad core Pi 2 runs on 1.6w (idle), 3.7W (full load), similar to a Teensy 4. And that power budget includes Wifi (on the Zero at least) and DRAM. There are many other boards out there, from different manufacturers, all using different, but usually mobile, chipsets. Look at Odroid, Banana-Pi, Beagleboard, Raspberry Pi, Cubie Board... there are many others. I am sure you can find one that meets your power & performance requirements at a reasonable price. And all of them can run Linux out-of-the-box. That would limit your development to the essence of your project - the E-ink display, drivers, and related software.

I do agree that application processors are a logical choice for applications...the main reason I took a deep dive into microcontrollers, something I've never done before three months ago, is that one of the only companies commercially selling near-threshold voltage processors is Ambiq Micro. Their Apollo series uses a patented tech called Sub-threshold Power Optimized (SPOT). The power consumption is far lower, and on 22nm, 3uA/mhz is far lower than any other processor- microcontroller or microprocessor included.

The aforementioned links from Emcraft and Bootlin are just two examples of companies that can run linux on MCUs. But if I am going to go with an application processor and skip some of the difficulties with MCUs, what I really want is the leading edge process node (e.g 5-10nm). These process nodes are "reserved" for the most resourced companies, and even Raspberry Pi 4 is on a 28nm node. Power consumption is a relative thing- if there is lots of reliable energy access- the need to use magnitudes less power is really not a priority. But needing a larger battery still leads to higher bill of materials. If I were to use a modern architecture, like a 10nm ARM A-53 in dual core, I find : https://en.wikichip.org/wiki/samsung/exynos/9110

https://www.gsmarena.com/samsung_galaxy_watch-review-1820p3.php The Samsung Galaxy Watch uses the Exynos 9110. With a coin cell-sized battery that gets 4 days of battery life, then a laptop designed around a very lightweight ARM-A53 Exynos 9110 would be much faster than a Raspberry Pi Zero, and use far less power.

There aren't any single board computers that have a 10nm or even 14nm chip in them. The Khadas VIM is an exception but has a lot of other processors and peripherals installed. If perhaps a crowdfunded development could seek to sell a 10nm, dual core ARM A-53 (which on the Exynos 9110's Mali T720 is able to play youtube), then an application processor will be very interesting again. But that node and design is only available to those with EUV foundry access and an architectural license. Maybe there is a generic ARM A53 core available that runs quite efficiently on a lower process node that doesn't require a custom architecture, one that could be developed by a consortium of open source hardware enthusiasts who are less concerned about using a RISC-V for pure open hardware but instead, like the Raspberry Pi development, used closed architecture and closed video codecs to allow a larger educational community to develop on a cheaper computer board. That is the same thing I have in mind here, except with developing a platform for various e-paper and reflective display (RLCD)monitors. The low power CPU and the type of e-paper monitor are not necessarily related, but ideally would both benefit the development of a third technology, solar power, which I consider technological convergence (much like how cameras became standard on a mobile phone)- it being a driving force for optimizing the performance/watt design of the Single Board Computer.

Edit: It seems the Odroid N2+ & HC4 has 12nm: https://www.hardkernel.com/shop/odroid-hc4/
 
Last edited:
If anyone wants to see the incredibly difficult bring-up of the linux kernel on a new architecture have a look at this current bring-up: https://twitter.com/AsahiLinux and https://asahilinux.org and https://www.youtube.com/channel/UCxS98ISZNcuaJRCvy6JV6Fw

Marcan is the lead on this port to bring native linux kernel booting to Apples Silicon processor used in the latest Macs. These apple processors are ARMv8 with custom Apple Silicon and the GPU and NPU are totally custom from what I have read. It's pretty cool how he documenting his progress.


Cool, I realize Apple on Silicon is being talked about a lot because of the M1. I saw this a couple weeks ago-NetBSD on Apple Silicon: https://twitter.com/jmcwhatever/status/1368317794543165440
 
It gets even more interesting if you have to bring up the OS and the compiler at the same time. I.e. the chip you are bringing up is not a descendant of an existing chip, and you have to worry is the compiler tool chain correct, does the ISA that the chip implements match what the chip designers designed, does the chip match the simulator the OS/compiler teams used before the silicon is available, etc.

Now, granted, I haven't done that in the last 15 years, but I have worked on some compilers for completely new hardware. This was complicated because the users who paid for the compiler work were in different companies than the company I was working on (and often in different timezones, and were not native English speakers).
 
Back
Top