Ever wanted to run Linux in an exceptionally small footprint? Then [Reimu NotMoe] from [SudoMaker] has something for you! She’s found an unbelievably small Linux-able chip in BGA, and designed a self-contained tiny SoM (System on Module) breakout with power management and castellated pads. This breakout contains everything you need to have Linux in a 16x16x2mm footprint. For the reference, a 16mm square is the size of the CPU on a Raspberry Pi.
This board isn’t just tiny, it’s also well-thought-out, helping you put the BGA-packaged Ingenic X1501 anywhere with minimal effort. With castellated pads, it’s easy to hand-solder this SoM for development and reflow for production. An onboard switching regulator works from 6V down to as low as 3V, making this a viable battery-powered Linux option. It can even give you up to 3.3V/1A for all your external devices.
The coolest part yet – the X1501 is surprisingly friendly and NDA-free. The datasheets are up for grabs, there are no “CONFIDENTIAL” watermarks – you get a proper 730-page PDF. Thanks to this openness, the X1501 can run mainline Linux with minimal changes, with most of the peripherals already supported. Plus, there’s Efuse-based Secure Boot if your software needs to be protected from cloning.
More after the break…
What’s so cool about the X1501? The Ingenic X1501 is an adorable little BGA with RAM built-in – no high-speed routing hassles. Sure, you only get 8M of RAM, but you can strip Linux down a whole lot – half of that RAM is free for your own use. You can do quite a bit with small amounts of RAM on Linux, as we’ve seen this year with the $15 Linux computer.
We’ve seen Ingenic-made chips bring Linux to a slew of cheap products, from game consoles to small hackable security cameras. If you’re tired of your MCU giving you headaches, perhaps you’d like to benefit from all the interfaces, libraries, languages, and frameworks that Linux offers. This SoM is a wonderful stepping stone for ease of development.
You get a 1GHz MIPS32r2 core, with a spare 300MHz core for all your real-time tasks; 2MB of internal flash fits Uboot and a Linux kernel with plenty of room to spare. You can connect a MicroSD card for troves more storage. You also get all the interfaces like USB, SPI, I2C, and SDIO, as well as analog and digital audio support. There’s a bit of a DMA hiccup, but nothing that can’t be solved with a bit of time and help from a community.
Speaking of a community – [Reimu] says she’s pitched this board for CrowdSupply, so be on the lookout. If anyone’s interested in helping polish the kernel quirks, a few developer-aimed units are on the table for sure! After the crowdfunding completes, all the design files will be open-sourced – otherwise, such a board would be trivial for others to clone. If you’d like some cool project ideas for such a module – how about a tiny Linux-powered mobile phone? This one has an Ingenic X1000 inside.
Would you like to know how such boards are created? We’ve seen an impressive write-up about taming small ARM chips with custom PCBs and Linux!
Got USB host mode working on the #X1501 Pico. Patches coming in Linux kernel v5.19. pic.twitter.com/QILjcZ4PfV
— ReimuNotMoe (@ReimuNotMoe) May 30, 2022
26 thoughts on “New Part Day: X1501 Makes For A Tiny And Open Linux SoM”
Very interesting board. 64 MiB RAM is enough for lots of things in Linux without GUI and using BusyBox. My only complaint is the small 2 MiB flash, that will barely fit uboot, and a stripped down compressed kernel. I’m not sure you can also put Busybox in there, what forces you to use an sdcard. At least 16 MiB of flash would have been enough to also fit the OS image with simple applications.
that’d be 8MiB of RAM – my bad, confused the units!
I am afraid that nope. 2MiB is very little for a Linux kernel. It is quite possible to fit it in 2MiB but it is a very tight fit if you want any drivers. I did try and succeeded in fitting it into 1MiB (u-boot had its own region) and there was hardly anything compiled in, not even an ext filesystem.
Hi. I’m the author of this project. The uboot is stripped down to around 100KB, and a fresh 5.18 kernel with a few USB gadgets and [HID or ALSA] enabled fits in 1MB. So there’s about 800KB for user code – that’s plenty if you use squashfs for filesystem, and dietlibc or musl for libc. And yes, of course it runs busybox. It aims to be a much faster and easier-to-use replacement of the MCUs with a similar physical size, not a full featured Linux system.
Thank you for working on this, Reimu NotMoe! Looking forward to support you on CrowdSupply.
Thank you, that’s very interesting. I will definitely look at it to learn, what I could improve in my configuration.
A few years ago we did our work on an ARM SBC and we head really hard time squeezing the kernel below 900 KiB. As for the userland, we wrote a tiny init (~60 kB xz compressed) that uncompressed a zip from a FAT-formatted SD card onto initramfs.
This looks most amazing.. excellent work!
What is the power consumption?
Will it run *muLinux version 14r0* ?
Ingenic Semiconductor is a Chinese fabless semiconductor company based in Beijing, China founded in 2005. They purchased licenses for the MIPS architecture instruction sets in 2009 and design CPU-microarchitectures based on them. They also design system on a chip products including their CPUs and licensed semiconductor intellectual property blocks from third parties, such as Vivante Corporation, commission the fabrication of integrated circuits at semiconductor fabrication plants and sell them.
Ingenic already sells various castellated DevKit modules with associated carrier boards. But at $135-$300 USD each the module prices are IMO quite high, and the Linux kernels at 3.10.14 – 4.94 are far from mainstream.
I wish [Reimu NotMoe] luck with her Ingenic X1501 development efforts, especially because when it comes to affordable Linux-capable machines it seems Raspberry Pi has been knocked out, probably due to the never-ending chip shortage.
1. Ingenic Semiconductor – Wikipedia
2. Ingenic Semiconductor – English Home
3. Purchase Process of the Development Kit
4. Raspberry Pi Zero 2 W @ PiShop $15.00 ea. NO STOCK
5. Raspberry Pi Zero 2 W @ Adafruit $15.00 ea. NO STOCK
This seems like a rather different SOC than a Pi, wouldn’t say there is a great deal of overlap in use really.
And with how powerful, small (especially the compute modules) and cheap Pi’s are, when anything with silicon in is being produced as normal anyway, this is going to find it hard to compete for many things.
This thing is interesting though, got some very nice features skimming through its specs, enough to get me wanting to look at it in more detail at some point as for some projects ideas it aught to be a better choice than the pi’s)
This seems like a nice mid point between the Pi Zero and the Pico. IMO the convenience of a full OS and peripherals on the Zero is nice, but it’s also way overkill for a lot of projects I might want to do with it. Meanwhile the Pico is also interesting but not really suitable for the same sorts of projects.
Very true, and what I was thinking too, but when in normal times at least a Zero is so cheap, the CM4 has massive horsepower in a reasonably small footprint and isn’t that expensive its one of those mid-points that while it might be the best fit electronically sometimes (even often when looking at the Zero) its got a serious price challenge on its hands – really needs to be cheaper than an Zero to get more folks interested, as with the enduring availability, support and great community the Pi eco-system adds value to their products, for the teach your kids, industrial embedded and quick and dirty projects markets lots of value..
The CM4 is great… but it can have major issues with mounting onto the target board. The CM4 has 2 fine pitch 100pin Hirose connectors that do not have alignment pins. The result is that placing each connector accurately spaced from one another and aligned is very challenging. Secondly, it is usually a big mechanical no-no to use these connectors like the arrangement used for long term reliable connections. For sure one must use the mounting holes with suitable hardware, but even so Rpi Foundation made a bad decision with this type of connectoring arrangement.
CM4 seems like a perfectly reasonable connector choice to me, I agree they are not the easiest things to work with in the world, but that style of connector is the goto for almost all board interconnects for good reason, compact, pin dense, durable and positionally forgiving enough – I don’t know of anything substantially different that could provide nearly enough pins. Its just not as easy for any budding builder to get it in place with just a soldering iron.
Also don’t see a mechanical no-no in there either – very similar connectors get used in damn nearly everything, often without the option of the bolt holes so all the force is on the PCB pads and connectors, and its fine because the mass of the connected object is low and there is little leverage, both of which are true on the CM4.
So really for what the CM4 is for I’d say its got one of the best connectors it could have, in a usable layout, what connector would you use that is so magically better and actually meets the requirements?
Hey! The X1501 only has 8MB of RAM (~3MB will be occupied by Linux kernel, and you have 5MB for your apps), not 64MB! ;-; Please make sure to read the datasheets mentioned in this article by yourself!
To be extremely clear, it’s 8 MiB, or 64 Mbit.
My bad – fixed!
This seems to have the potential for some interesting usb gadgets. The 8MB RAM / 2MB flash shouldn´be a problem, but maybe it is possible to connect like a 16MB flash chip to the SOC and boot / execute code from that ?
Of course, you can even connect a 32GB microSD to it. However XIP is not supported. But the good news is, since it runs Linux and has a MMU, it can swap!
There are also quite a few small mips devices running openwrt, typicaly 32 or 64MB ram and 4-16MB SPI flash. google for a5-v11, vocore,, vocore2 zsun wifi card reader.
This module is fantastic but I fear modules like these will result in litany of vulnerable “non-upgradable” devices in the future. If it’s a standalone device, it’s great but the second it connects to something else, you’re wading into dangerous waters.
What’s the advantage compared with allwinner f1c100s that is dirt cheap and with more RAM?
What’s the performance of the f1c100s? Does it ever have 1100 CoreMark with stock frequency? Does it have a hardware FPU? Is it stable within -40 to 85 degress C? Does it have mainline Linux support with more than 2/3 of the peripherals supported? Can you get the **detailed** datasheets with a google search?
I used LinuxAP/OpenAP/LinuxA-eh back in 2000, we were able to fit a Linux distro in 1MB of flash and 4MB of RAM, but that was sport. 8MB used to be just enough for OpenWRT.
The Linux kernel developers don’t care too much about embedded, OpenWRT devs complained about the size of the kernel going larger and larger release after release.
There are some obvious tricks to cut the bloat, such as removing the TCP/IP stack if you don’t need it. It’s a simple to double in size!
meybe send this working device (with board ) to Linus Torwalds, meybe he make optimisation?
Linus tends to do other things, he has plenty of duties with the Linux kernel, for instance. However, the Linux kernel team is giant – there’s many people that work on all the different parts of the Linux kernel. And most importantly, there’s also a whole lot of enthusiasts who work on Linux devices like these and help add support into the kernel, even outside of the Linux team itself! So, it’s most likely that someone doing Linux hacking on the side will take a look at this ^__^
Please be kind and respectful to help make the comments section excellent. (Comment Policy)