
Today I’m very excited to review the ODROID M1 board. I bought this board for a couple of reasons. The first was that it is one of the top rated (and the top rated) boards on my Pi Benchmarks storage benchmarking website.
The second reason was a recommendation from you guys on one of my articles to check out and review the board! This will be my very first ODROID board. Definitely let me know if there’s more boards I need to check out that I haven’t covered as I’m actively investigating alternative SBCs to the Raspberry Pi due to the ongoing shortage.
Let’s begin!
Hardware Used

This is the 4 GB version of the ODROID M1. Includes a full size (2280) M.2 slot (PCIe 3.0 2 lanes), a Neural Processing Unit (NPU) and contains a RK3568B2 SOC. There is a slot for eMMC cards on the board as well and these perform very well.
Links: Amazon.com*, AliExpress.com*

This is the 8 GB version of the ODROID M1. Includes a full size (2280) M.2 slot (PCIe 3.0 2 lanes), a Neural Processing Unit (NPU) and contains a RK3568B2 SOC. There is a slot for eMMC cards on the board as well and these perform very well.
Links: Amazon.com*, AliExpress.com*

You will need a 12V 2A power adapter for the ODROID M1
Links: Amazon.com*

The ODROID takes a CR2032 LiCB battery for the backup / system clock battery slot (not included with board)
Links: Amazon.com*
Getting ODROID Images
One aspect of all these different SBCs I’ve been paying special attention to is the quality of the official images and how old the kernels in them are. Today will be no exception.
The official ODROID images are available here. For the M1 board it looked like this at time of writing:

Here we see Gnome Desktop, Gnome Desktop with NPU, ROS2-foxy and Server. These are all Ubuntu images but are meant for different setups. The “Server” one is meant for headless setups and has a minimal installation. You may also choose Android 11.
In a perfect world I would recommend the Gnome Desktop with NPU. What is a NPU you may say? It is a “Neural Processing Unit” and the M1 board does have one. Here’s what ODROID says about the onboard NPU:
Since Machine Learning has been a trend in this industry, there is a neural network processing unit (NPU) which can deliver up to 0.8 TOPS on the M1 single board computer. We could run various TensorFlow Lite and ONNX models on Ubuntu Linux OS.
https://www.hardkernel.com/shop/odroid-m1-with-8gbyte-ram/
Unfortunately this image would not boot for me. It would just immediately cut to black when I chose to boot “Ubuntu 20.04”. Therefore I do not recommend the NPU image. This will presumably be fixed at some point but for now avoid the NPU image.
I then tried the regular desktop image without the NPU. This image worked. However it cannot upgrade to Ubuntu 22.04.1 successfully and will give crazy package errors (and ones that won’t be easily fixed by sudo apt install –fix-broken or dpkg –configure -a). Therefore I do not recommend the desktop image either even if you want a desktop.
I recommend you use the server image and upgrade it to 22.04.1 and then install the desktop with:
sudo apt install ubuntu-desktop
Only install the desktop after you’ve fully upgraded releases. That way you end up with both 22.04 and a desktop environment! Keep in mind that the NPU and desktop both can be enabled later. You will have a much easier time if you start with the “Server” image and upgrade it to 22.04.1 first and then install the desktop and configure the NPU.
Alternative Images
BEST IMAGE: I have an alternative Ubuntu 22.04.1 image available here.
ODROID has a list of alternative images available here. These include
Armbian Distribution
There was not a Armbian image available at time of writing but people are working on it. You can build the earlier versions yourself already but they have some issues that are being ironed out.
Imaging
Imaging these is a little different than many other boards. You actually have several options. You can plug the ODROID M1 in via USB cable directly to a PC. You can directly image the SSD before mounting it in the ODROID (with a NVMe to USB enclosure like my ASUS ROG Strix M.2 NVMe enclosure*).
The way I did it for this article was to put the image onto a USB drive and boot the ODROID and image it from the shell. For this review I’ll be using my 1 TB Samsung 960 EVO M.2 NVMe drive. This is the exact same drive that I used in my Compute Module 4 PCIE 1x NVMe testing article which should make for a good comparison.
First you need to extract the image from the xz format so we get the raw image which ends with .img. If you are in Linux you can do this with:
xz -d ubuntu-20.04-server-odroidm1-20220531.img.xz
This gave me ubuntu-20.04-server-odroidm1-20220531.img. This is the file you want to copy to your USB drive. The server image is only about 1GB but the desktop images are much larger so keep that in mind for the size of your USB drive.
Installing the M.2 is completely straightfoward. You simply remove one screw, mount the drive and then use the screw you unscrewed to mount it to the board. We are going to power up the M1 with the USB drive plugged in.
First Startup / Final Imaging
Connect the M1 to a display for this part as we are going to go into the shell to image the M.2 drive. When you connect the power you will see this menu:

This is called the Petitloader bootloader. We are going to choose the very last option on the menu to enter the shell. Now we are going to image our SSD with the following command:
dd if=/usr/var/petitboot/mnt/dev/sda1/ubuntu-20.04-server-odroidm1-20220531.img of=/dev/nvme0n1 bs=4M
sync
If you are having any trouble finding the USB drive (or another drive you are using to hold the image) use the command:
df
to get a full listing of all attached drives and paths to them. You should find that it’s pointing to /usr/var/petitboot/mnt/dev/sda1 as the USB drive mount path (mine was and I definitely used a regular USB flash drive).
Now type “exit” to go back to the main menu. Choose the “Rescan Devices” option and it should find your NVMe boot partition. Select “Ubuntu 20.04” and press enter and with any luck you should see the Ubuntu logo!
First Login / Updates
The credentials to sign in to the image are:
Username: odroid
Password: odroid
There is also a root user that also has the password of odroid.
The first thing I recommend doing when signing in is updates:
sudo apt update && sudo apt upgrade -y
sudo apt install ubuntu-release-upgrader-core pciutils -y
sudo reboot
Now to upgrade releases open a terminal and use:
sudo do-release-upgrade
Provided you are using the “Server” image you should be able to successfully upgrade to 22.04.1!
Performance Testing / Benchmarking

After a couple of hours fighting with reimaging and getting a successful upgrade to 22.02.1 I was finally ready to benchmark the device!
The way to run the Pi Benchmarks storage benchmark is the following command:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
The result was a score of: 15,978. The full benchmark is available here: Pi Benchmarks – Benchmark #62071
Now this is a fantastic score (compared to any Pi 4 score and most other SBC scores) but it is disappointing. Why? Allow me to explain.
I have previously done NVMe testing using a PCIe 1x adapter on the Raspberry Pi Compute Module 4 (CM4). Using that setup (which is not nearly as nice as a PCIe 3.0 2-lane dedicated M.2 slot built directly into the board) I was able to achieve a score of 19,957. This is with the exact same 1 TB drive (literally the same module).
Something is bottlenecking it here. It could be firmware related, a bug, something with the kernel (which is why I updated to the latest 22.04.1 version to try to prevent something like this from happening) or many other possibilities.
Still not convinced it should be faster? I recently wrote an article detailing various Compute Module 4 boards and their capabilities. One of those boards is the Waveshare $38 Compute Module 4 board and it scored 15,925. Again, with the exact same drive. It beat the $38 Waveshare CM4 IO board* but only by a hair.
The Compute Module 4 setup remains the undisputed champion of performance in the SBC world for now.
Pros / Cons
Pros
- Onboard NVMe slot works as advertised
- Has Petitboot boot loader simplifying many boot operations and adding capabilities such as network booting
- Powerful CPU and GPU capable of excellent desktop performance
Cons
- Not overclockable
Conclusion
It should be performing faster than it is. I’m not sure what is holding it back. There’s likely improvements that can and will be made in software and firmware to improve this over time. I got this board pretty early in the lifecycle so maybe I didn’t do ODROID any favors by buying a board that hasn’t been out for years like some of their other popular boards. Nevertheless this was the experience and I’m honestly happy with the result and will keep using the board.
I would really like to see ODROID put a current Ubuntu 22.04.1 image on the “Downloads” page. I’m sure this is only a matter of time but I did not have a clean upgrade experience my first time and spent a couple of hours fighting with this. I strongly recommend following my recommended route of using the “Server” image and adding the desktop and other capabilities later.
I think the ODROID M1 is a good board for experienced SBC users given the current price of Pis. I would not recommend it for first timers because it’s not quite as polished of an experience as an Orange Pi or a Raspberry Pi yet. If you are generally comfortable with Linux and troubleshooting you will be just fine. For experienced users the power and performance you get with this board for the price is excellent.
I expect the M1 experience will improve over time and that many of the issues I encountered with the images in this article will likely disappear as soon as ODROID posts an updated image on their site. The M1 is not that old of a board compared to a lot of other boards in ODROID’s lineup. I definitely intend to try some of the other ones that are more established and expect I will not have as much trouble.
Using NVMe on the Pi 4 is kind of difficult and clunky without powered USB hubs and enclosures especially with higher capacities. Given that the ODROID M1 is literally cheaper than a 4 GB Pi 4 on Amazon there’s no question to me that it’s smarter to buy the ODROID M1 at the moment. It’s not as smooth of sailing as with the Pi though which is why I would choose another board for first timers (or wait until better and more stable images are available for the M1).
I’d like to try the eMMC slot. That’s one thing we didn’t cover today because I don’t have the right adapter board to connect a eMMC to it. I plan on getting this as the performance on eMMC with the M1 is supposed to be fantastic as well.
If any of you also have the M1 board and know any tricks to possibly optimize the performance that I can try let me know in the comments! This is literally my first ODROID experience and I just wanted to review the board and share what it was like using it and what the outcome was. I’m sure I will learn and share more tricks to get more out of these as I become more familiar with them!
Other Resources
I highly recommend my Ubuntu 22.04.1 Legendary ODROID M1 image for your M1!
Definitely check out my testing with a official Hardkernel eMMC using the M1
The ODROID XU4Q is definitely a more approachable board for beginners
Check out my Orange Pi Zero 2 review here for a board that’s more approachable for beginners
If you want to see a really cheap headless board for under $10 that is the Orange Pi i96 Getting Started Guide
ASUS Tinker Boards are quite cheap right now at time of writing as well at roughly half the cost of a Pi
Default kernel for ODroid M1 is their 4.19 build.
There is however also a newer 5.18 kernel in the ODroid repositories.
Hey Jan,
Absolutely! It’s kind of ridiculous they still haven’t packaged anything above 20.04 for the ODROID M1. The N2+ gets much, much better treatment and has literally dozens of 22.04 images available. I’m not sure why this is being treated as a second class board (I thought this would be released like a week or two after I wrote this and it has already been much longer). It’s actually a little concerning. Maybe this board didn’t do that well in sales and is going to end up with terrible or non-existent support. They wouldn’t be the first and I’ve released entire images to fix messes like this before.
My N2+ was dead simple to get on 22.04. This one was actually the hardest of all of them and it’s because their released 20.04 images are completely broken (for desktop). It was much harder than the XU4Q as well because those ones will actually do a
sudo do-release-upgrade
and the M1 desktop images won’t.On this one I highly recommend installing the server version and then upgrading. The desktop image is completely broken and won’t do a clean upgrade. This will get you on the newer kernel and I’ve even reimaged my official M1 eMMC this way (as well as my NVMe drive). Hopefully that helps!
Fully agree , unfortunately there is no info on what software / packages you need for NPU support so while you can upgrade from server to desktop , server to NPU is not possible.
Server upgrade 20.04 to 22.04 went smooth for me though.
Hey Jan-Albert,
That is definitely unfortunate! I will definitely have to investigate using the NPU as I need to learn more about them as well. I have not worked with those much and since I own a couple of boards that have them now it’s time.
If it’s an installed package in dpkg (even if it’s not from apt) we should be able to find a list of files (dpkg-query -L npupackage) and figure out what it’s doing (and there’s a few other tricks I could try on it). It may take a little forensics but even if we had to compare the ODROID image’s filesystem to a base OS image filesystem this should be possible (whether it will be extremely easy or quite hard I am not sure yet).
I’m glad the server upgrade went smoothly at least!
James, thanks for the review! Look at Ameridroid for accessories, and check out odroid go super/advance 😉
Hey Max,
Ahh yes I remember you mentioned them once before, I absolutely will check them out. It looks like I would have saved money ordering the M1 from there and they have some tough to find parts. Thanks for the thanks as well as the recommendations!
EDIT: I’m ordering a XU4Q from them to try out! I think I will try one!
Way ahead from the raspberry pi
Hey Jim,
Definitely! I am guessing that it’s going to improve over time as well. People don’t remember very much now but when the Pi 4 came out it had *all* kinds of issues. Some of them were hardware issues and were fixed in later hardware revisions of the board even.
Take care!
Sata and m2 ports and sdr104 raspberry pi is zero compared to that.
Also Odroid xu4 is a beast!!!
I have an odroid c4 but it im not really using it
Hey Jim,
That’s awesome that you would mention the XU4! That was actually the one I was thinking of getting to try one of their older more established boards. It looks like an amazing value. The fact that you mentioned it here just made it much more likely that is indeed the next one I will test/review!
I actually ordered some Hardkernel eMMC modules off of eBay yesterday as well. I believe these modules will also work with the XU4 unless I’m mistaken. The eMMC experience on these boards is supposed to be amazing as well!
If you dont need anymore xu4 after the review let .me know i wanted to buy this before but its very hard to find it/get it.
When xu4 was released they said it was 10 times faster than the raspberry pi3,i wonder how many times faster is from raspberry pi4.
Hey Jim,
Let’s find out! I ended up getting the XU4Q but it said it was a preorder so I’ve no idea how long I will have to wait exactly yet. I also got a ODROID Advance handheld gaming system ordered and that was not a preorder. That one looked pretty fun and I haven’t covered anything really like it. That should be coming hopefully next week I think!
XU4Q is 10% slower than then xu4,make sure you put a fan next to it,coz with the heatsink only its not Enough and it lowers the frequency
Odroid advance is a must it takes ubuntu,emulation station etc,i have years now a bittboy 3.5 if you know it, though is not a match for Odroid advance,the gameboy emulation is pixel perfect.
You took them from hardkernel official site or a distributor?
Hey Jim,
Thanks for the heads up! I definitely believe it after seeing how hot some of these SBCs get. I’ve been using the copper heatsinks in my pictures and some of them get VERY hot as they have no fan. Some of the boards I’ve been testing definitely would benefit from active cooling. It sounds like this may be one of them as well!
Just do what i do put a usb fan next to the cpu ,if you dont have a usb fan you can convert easy an old pc fan just take an old usb cable that you don’t need cut it cut the fan cable also strip the wires and connect only the red and the black one together,12v fans work with 5v with less efficiency but quiet.
I have a 50x25x10mm heatsink in Rpi4 covering both ram and cpu and a quiet fan like this cooling it down efficient.