ODYSSEY-X86J4105 SBC Review with Ubuntu 20.04 – Raspberry Pi & Arduino Headers Tested

We’ve already reviewed ODYSSEY-X86J4105 SBC with Windows 10. When combined with Re_Computer enclosure it’s a typical Intel Gemini Lake mini PC but with a twist: Arduino and Raspberry Pi header. The latter works fine in Windows, but at the time, the Raspberry Pi header does not. So Linux is our only option.

I’ve now had time to install and test Ubuntu 20.04 on ODYSSEY-X86J4105 single board computer. I did not install Ubuntu on the internal eMMC flash where Windows 10 resides, but instead on a 128GB M.2 SATA SSD. I’ll first run some usual command to check system information, then run benchmarks, and check whether all features are working before focusing the review on the Arduino and Raspberry Pi headers.

ODYSSEY-X86J4105 Ubuntu 20.04 Review Arduino & Raspberry Pi Headers

ODYSSEY-X86J4105 Ubuntu 20.04 System Info

We can check some of the information from the system in the terminal:


An Intel Celeron J4105 processor with 8GB RAM and the rootfs on a 127GB partition looks good to me.

Features Testing

Most devices look to be supported, but since there may also be some issues with drivers, I also tested the main hardware features from the board:

  • Multimedia
    • HDMI – Video OK, Audio OK
    • 3.5 audio jack – OK (headphone + mic)
  • Storage
    • eMMC flash – OK (Windows partition, but read-only)
    • MicroSD card slot – Failed (no output from dmesg at all, not shown with lsblk)
    • M.2 SATA SSD – OK (See benchmarks below)
    • M.2 SATA NVMe SSD – Not tested since I don’t own one yet
  • USB
    • USB 2.0 Ports – OK with mouse and keyboard
    • USB 3.0 Port – OK (~94MB/s read/write on USB HDD EXT-4 partition)
    • USB-C 3.0 port – Works but apparently limited to 480 Mbps as per USB 2.0 specs when  tested with MINIX NEO Storage Plus with HDMI video output up to 1024×768, Gigabit Ethernet (192/177Mbps via iperf full-duplex), data via internal 480GB SSD (39MB/s)
  • Networking
    • LAN1 (Close to HDMI) – OK (iperf full-duplex: 883Mbps/811Mbps)
    • LAN2 (Close to DC jack) – OK. Works but iperf full-duplex: 920Mbps/185Mbps. Download only: 947 Mbps; upload only: 854 Mbps
    • WiFi 5 – OK (iperf DL: 326 Mbps; iperf UL: 426 Mbps) – Note: for some reason, much faster than in Windows 10…
    • Bluetooth – OK. Tested with Huawei Y9 Prime 2019 Android phone to transfer files to/from board

ODYSSEY-X86J4105 Dual Display with Ubuntu 20.04

So that’s not too bad, except the MicroSD card is not detected, and USB-C port is limited to USB 2.0 speeds (480 Mbps) meaning performance is limited, and video output is only up to 1024×768 via the USB-C port.


The command line above shows the two USB drives connected to the board. Dev 2 is my 1TB USB DATA drive, and Dev 13 the 480GB SSD embedded into the USB-C hub.  I could confirm the 480GB USB SSD achieves 450MB/s in Windows 10 with CrystalDiskMark, so the USB Type-C issue only happens in Ubuntu.

ODYSSEY-X86J4105 Ubuntu 20.04 Benchmarks

I’ve run the same Phoronix and SBC Bench benchmarks as did in my recent AMD Ryzen Embedded SBC review with Ubuntu 20.04, mostly to make sure there were no issues since we’ve reviewed so many Gemini Lake mini PCs and boards.

Phoronix Test Suite

Let’s start with Phoronix showing the differences between.ODYSSEY-X86J4105 and the AMD board.


You’ll find the full details on OpenBenchmarking,  but the table below compares four of the benchmarks.

DeviceDFI GHF51
MINIX NEO J50C-4 with SSD
ODYSSEY-X86J4105 with SSD
Processor
AMD Ryzen Embedded R1606G
dual-core/quad-thread 2.6 / 3.5 GHz
12W TDP
Intel Pentium J5005
quad-core 1.5 / 2.3 GHz
10W TDP
Intel Celeron J4105
quad-core 1.5/2.5 GHz
10W TDP
CLOMP 3.3
OpenMP benchmark
2.94
2.36
2.07
TSCP 1.81
AI Chess Performance
683,862677,631561,904
7-Zip Compression7,2727,5986,614
PHPBench342,215287,503258,513

As expected ODYSSEY-X86J4105 is the slowest platform due to the processor used but results are within the expected range.

SBC Bench

It’s also useful to run SBC Bench to check for potential CPU throttling.


Again results are as expected, but somehow temperature was not reported correctly by the system as set to 20°C. Check out this comment for SBC Bench results for AMD Ryzen Embedded R1606G and Intel Pentium J5005 systems, as well as Raspberry Pi 4 8GB.

Storage

SATA SSD (Rootfs – EXT4):


In Windows 10, we got 442 MB/s sequential read speed, and 219MB/s sequential write speed, but somehow it’s quite slower in Ubuntu 20.04 with 220MB/s and 134 MB/s.

I wanted to check the eMMC flash performance in Ubuntu as well, but as mentioned earlier the partition would be read-only, and even when remounted as read/write, I would not get the permissions to write any files to it.

GPU Benchmark

Final benchmark for the day: Unigine Heaven Benchmark 4.0.

Unigine Heaven Benchmark 4.0

4.2 fps average / 106 points score compares to 4.7 fps / 119 points on Intel Pentium J5005, and 5.4 fps /  135 points on AMD Ryzen Embedded R1606G. Again no issues here, and I did not get an artifacts during the benchmark contrary to my experience with the Ryzen Embedded SBC.

Arduino Header

We could use the Arduino header in Windows, so I just reproduced the steps in Ubuntu 20.04, except I had to install the Arduino IDE. Make sure to add the current user to the dialout group to avoid permissions issues:


After logging out, I still had a permission denied message in the Arduino IDE, so I rebooted the board, and everything worked.

The important steps in Ubuntu are almost the same as in Windows 10, and once you are in the Arduino IDE, go to:

  1. File->Preferences and add https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json to the Additional Boards Manager URL field
  2. Then Tools->Board->Boards Manager to add support for Seeed SAMD Boards
  3. Select Seeeduino Zero board and /dev/ttyACM0 serial port

I rewired the little circuitry I had on the breadboard to control a LED connected to D6 digital pin…

ODYSSEY-X86J4105 Arduino Header

…and modified the blink sketch accordingly:


Finally, I flashed the program to the Arduino MCU…

Arduino Ubuntu ODYSSEY-X86J4105

… and success! I got the LED blinking. Note the Arduino header is not compatible with Shields, so you can’t just insert a shield on top, and instead, you’d have to so some wiring as I did here. I have no worries about software compatibility because the board embeds a Microchip SAMD21 microcontroller.

Raspberry Pi Header

I was expecting the Arduino part to be easy since it just worked in Windows 10. Time to test the Raspberry Pi header. We should probably check the pinout first if we’re going to connect a Pi HAT.

40-pin header - ODYSSEY-X86J4105 vs Raspberry Pi 2/3/4
40-pin header – ODYSSEY-X86J4105 vs Raspberry Pi 2/3/4 – Click to Enlarge

It’s close enough to the Raspberry Pi header, and I’d expect many Raspberry Pi HAT to be compatible. So I initially decided to go with Grove AI HAT that mostly relies on the SPI interface… But after talking with Seeed Studio whether it was just a question of enabling SPI on the board, and changing the GPIO numbers in the code, the company told me it was more complicated as the x86 framework is not supported yet.

I don’t have any other HAT’s that I haven’t already given away, so I reverted to test Raspberry Pi GPIOs with my breadboard and LED, plus a BH1750 light sensor to test I2C.

ODYSSEY-X86J4105 GPIO & I2C with Ubuntu 20.04

I mostly followed the instructions in the Wiki. Let’s start with GPIO. I connected the LED to GPIO 337 (pin 7), and we’ll need to export the IO, set the direction and value to 1 to turn on the LED:


To turn it off:


All good as this works perfectly. Seeed Studio recommends to unexport the GPIO once you are done, but I don’t see why this may be necessary:


For reference, there are four GPIO blocks defined:


It’s also possible to use Interrupts, and the company provides a Python script for testing which can be installed as follows:


We can now run the test program:


Next up we can try I2C. As previously mentioned, I connected BH1750 I2C light sensor to 3.3V, GND, IC2 clock and data ping, and checked if the board would detect the sensor:


Oops…nothing detected… So I went to the BIOS, and all “special functions” were set to GPIO.

HAT Configuration BIOS GPIO

I can’t quite remember if I changed that earlier since those are not supposed to be the defaults, but in any case, I changed them all to enable I2C, SPI, UART and SPI.

HAT-Configuration-BIOS I2C, I2S, SPI, UART

When I came back to Ubuntu, I still had the same output from i2cdetect command. So I read the Wiki for carefully… and ran two commands to check I2C devices again:


I2C designware 0 is supposed to represent I2C6 (pins 27 and 28), while designware 1 if for I2C5 for pins 3 and 5 to which our light sensor is connected to. So let’s try again with I2C device 2:


Success! The light sensor is detected!

I have not connected anything to SPI, but SPI is detected by the kernel:


If we want to access it from userspace, we’ll need to run a few commands:


Once it’s done, reboot the board, and we can see two SPI devices:


Contrary to the Arduino header, the Raspberry Pi header allows you to insert most Raspberry Pi HAT’s directly on the board, but while low-level software is working, you’ll have to work on system configuration and modifications to the software running on Raspberry Pi to make it work on the x86 board. This includes BIOS and I/Os configurations, modifying the code to match the GPIO names, and so on. AFAIK, nobody has made a “WiringPix86” library that could simplify the process.

Final Words

Seeed Studio ODYSSEY-X86J4105 is a nice, and fairly unique little board I had fun to play with. Those are the main takeaways:

  • In Windows 10, it performs just like a standard Intel Gemini Lake mini PC and everything works with expect performance, but you’ll only be able to control the Arduino header, as currently, the Raspberry Pi GPIO’s are not accessible.
  • In Ubuntu 20.04, the performance matches expectations, but there are also some issues with the MicroSD card not working, and the USB-C port limited to 480 Mbps, at least with MINIX NEO Storage Plus USB-C multifunction adapter. Both Arduino and Raspberry Pi I/O header can be controlled in Linux, but you may have to spend some time on porting the software, especially for the Raspberry Pi I/Os.

Some people may be bothered by the fan noise, although it can be adjusted or disabled in the BIOS.

I’d like to thank Seeed Studio for sending a review sample. If you’re interested there are three variants of the board with price ranging from $188 to $258 plus shipping:

  1. ODYSSEY – X86J4105800 ($188) without eMMC flash (you can boot from M.2 or USB storage)
  2. ODYSSEY – X86J4105864 ($218) with a 64GB eMMC flash pre-loaded with an unactivated version of Windows 10 Enterprise. That’s what I reviewed here.
  3. ODYSSEY – X86J4105864 ($258) with a 64GB eMMC flash pre-load with an activated version of Windows 10 Enterprise. Same hardware as above but with a Windows license.

If you’d like to get a complete mini PC with Re_Computer case, you may consider getting Odyssey Blue J4105 mini PC with a 128GB SATA SSD, just like I tested in this part of the review, for $239 plus shipping.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX Rockchip RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
7 Comments
oldest
newest
fse
fse
4 years ago

Great review! Too bad that one of the I211 is implemented badly 🙁

j tremblant
j tremblant
4 years ago

Nice board. It doesn’t make sense to me to spend $258Usd for a similar Win10 version just to be able to use an Arduino header and a 40 pin Raspberry pi header(GPIO)which BTW seems totally overkill. Intel Celeron j4105! No thanks. My Odroid-H2+ with an updated Intel Celeron J4115 Processor at only $119 is a much better deal(Vs $188 for Odyssey basic version). If you still need to use GPIO on H2+, you need to purchase separately a 16Port I2C GPIO Board for H2+ which costs a measly $5 only.

j tremblant
j tremblant
4 years ago

Both boards come with no RAM, which means H2+ will be always $70 cheaper no matter what configuration you chose for the Odyssey. There’s a big difference between those 2 companies. One is based in China and there are still limitations and restrictions for shipping goods from China to the rest of the world due Covid-19 situation. HK is a south korean company and they have no delays or restrictions to ship to North America for example. HK uses DHL express for international shipping and it’s about $20 USD for shipping an H2+ for example which is a low price… Read more »

Ray Knight
Ray Knight
4 years ago

Not sure what you mean by “Both boards come with no RAM” as all three versions of the Odyssey board come with 8GB LPDDR4 RAM. And the Odyssesy board is available via Amazon for only a $20 markup and free shipping in the US.

j tremblant
j tremblant
4 years ago

You’re right!
8Gb for H2+ is $32
H2+ is $119
You have to buy BT and WIFI modules, that’s extra $12
Extended Warranty/replacement plan for H2+ is $14.99
Total would be $177 for a comparable setup including 1 year extended warranty Vs Odyssey at $188.
Little difference in price then.
It all comes down to reliability, support and warranty between those 2 companies.

back2future
back2future
4 years ago

[would add especially ‘trusted data security’ to that list]

Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...