MINIX NEO S1 & S2 are USB-C hubs with the usual HDMI and USB outputs, but also a built-in 120 GB & 240 GB SSD respectively. The company has sent me a sample of each, and in order to test the platform, I decided to do on a Khadas board running Ubuntu 18.04 with LXDE desktop environment (aka Lubuntu). I’ll start by checking out the packages’ content, before going through my experience with the MINIX NEO S2 USB-C hub in Ubuntu 18.04 with LXDE desktop environment.
MINIX NEO S1 & S2 Unboxing
Both packages are basically identical except for the different color, and one shows 120GB SSD capacity, while the other has 240GB
The back side has some more details about the USB-C hub.
I’ll focus on the 240GB model since it’s just the same, but around $13 to $20 more expensive, and it offers double the capacity, as well as slightly higher performance.
The USB-C hub ships with a carrying pouch and a user manual in English and German. You can check out the user manual here. The USB-C hub comes with a USB-C port for external power supply, an HDMI output port up to 4K @ 60 Hz, and two USB 3.0 ports.
The back of the device has some important information, also present in the manual, namely power output limitations:
- 5V/1A when bus-powered
- 5V/2A when powered by an extra USB-C power supply
This is indeed important as we’ll find in the second part of the review
MINIX NEO S2 on Ubuntu 18.04 + XFCE in Khadas Edge SBC
MINIX NEO S2 is not the first MINIX USB-C hub I’ve tested, as I previously reviewed MINIX NEO-C Plus USB-C adapter in Android 7.1 with NanoPC-T4 SBC powered by Rockchip RK3399 processor.
So this time, I thought it might be good to try the new hub with Ubuntu instead. Since I had Amlogic A311D based Khadas VIM3 on my desk I thought it might be a good idea to try it out but while the SSD was recognized, I had no video output at all, so I asked Khadas for feedback:
The VIM3 USB-C doesn’t support the USB DP (display), only Edge/-V supports now.
Oops, my bad… Luckily, I had previously reviewed Khadas Edge + Captain SBC and still had the sample on hand. So I downloaded and flashed the latest Ubuntu 18.04 image (Edge_Ubuntu-lxde-bionic_Linux-4.4_arm64_EMMC_V20190116.7z) and connected MINIX NEO S2 to its DisplayPort Alt. Mode capable USB-C port.
I first tried it in bus-powered mode (5V/1A) with the USB-C hub getting its power from Khadas Edge USB-C port. I had to disconnect my USB 3.0 hard drive as the board would just not boot that way. That means I only had the HDMI port and a USB RF dongle connected to the hub.
The good news is that dual display works out of the box that way but in mirrored mode. Most people would likely want to use extended desktop instead.
There’s no such option in the Display Settings of LXDE desktop environment, where we can just turn on and off video output, and adjust the resolution & frame rate.
But there’s a solution involving the installation of arandr Xrandr GUI:
1 |
sudo apt install arandr |
We can now go to Preferences > Arandr to launch the Screen Layout Editor and organize our displays HDMI-1 and DP-1 as needed.
Click on the Apply icon (green tick), and we’re all good.
The SSD is also properly detected and mounted as shown in GParted screenshot below.
But I did notice the drive would unmount and remount itself from time to time and display would go blank and come back.
Running iozone immediately failed as well.
1 2 3 4 5 6 7 8 9 10 11 |
iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 ... random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 Error writing block 18201, fd= 3 write: Input/output error iozone: interrupted exiting iozone |
The display was completely off, so that looks like a power issue, so let’s power MINIX NEO S2 with via its USB-C input. Khadas Edge + Captain supports the connection of multiple power supplies with different priorities for each. At first, I decided to connect a 12V power supply to the DC jack of Captain baseboard and use the SBC’s power supply for the USB-C hub. For some unknown reason(s), the board would not boot. Finally, I went back to power the board via USB-C, while using my phone’s 5V/2A USB-C power supply to power MINIX NEO S2.
I could run iozone without issues on the SSD:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.429 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Sun Aug 11 07:47:10 2019 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 102400 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 26040 31726 31929 31971 22338 31641 102400 16 59828 93656 110333 106376 61531 93372 102400 512 95190 304815 284463 288320 254913 306086 102400 1024 98995 333140 318290 321235 290759 318688 102400 16384 129459 380641 373332 374345 371894 373111 iozone test complete. |
Read results were are expected at 373332 KB/s since in theory the SSD is capable of 400MB/s sequential reads. Sequential writes were for whatever reasons limited to ~129 MB/s, but not rewrites, nor random writes.
I had another issue however, I would get no video output to DP-1. The port was still detected in Lubuntu, but my TV would show “no signal”. I tried to mix HDMI cable, connect the port to another TV, through an A/V receiver, etc.. but no luck. This is the output I got in dmesg while trying to reconnect HDMI via the USB-C port.
1 2 3 4 5 6 |
[ 419.168706] wl_run_escan: LEGACY_SCAN sync ID: 9, bssidx: 0 [ 472.991672] fusb302 8-0022: attention, dp_status 1a [ 472.992158] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not connected. Disabling cdn [ 481.162720] fusb302 8-0022: attention, dp_status 9a [ 481.170344] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Connected with sink. Re-train link [ 482.152384] wl_run_escan: LEGACY_SCAN sync ID: 10, bssidx: 0 |
I did notice that both displays would show at the login screen, but as soon as I would input the password and click on OK, the USB-C video output would just go blank. In a last-ditch effort, I decided to boot the board first, then only connect the USB-C hub after login, and somehow it worked and appears to be stable.
If you pay close attention to the photo above, you’ll notice I connected the USB 3.0 drive as well and ran iozone and both the SSD and HDD at the same time. No problem at all with the displays, and storage performance (SSD: ~370MB/s; HDD: ~92MB/s).
Conclusion
MINIX NEO S1 & S2 USB-C hubs are specifically designed for Apple Macbook, Macbook Air, and Macbook Pro, but since they follow USB-C specifications they should work with compatible devices. You must note your experience may vary, as we’ve seen MINIX NEO S2 “works” with Khadas Edge running Ubuntu 18.04 + XFCE, but stability, at least with regards to driving an extra display may be an issue. An external power supply is almost certainly needed unless you only use the product as a USB-C SSD.
MINIX NEO S1 & S2 can be purchased on various shops including GearBest, GeekBuying, and Amazon starting at respectively $79.99 and $97.99.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
The power issues you are seeing are probably a result of the hub failing to have adequate derating logic, power path controlling based on Source Capability/Request limits, and input load regulation.
SSD are very “spikey” in their current draw, sometimes loading 3a+ spikes for microseconds during use. You’d need a high bandwidth oscilloscope with current loop to see this. That could be wreaking havoc with the output voltage regulator on your computer’s USB-C port, explaining the need for external power. (The USB-C spec specifies the max current slew rate.)
Also if you’re connected to a weak source that only advertises 500-900mA, does the hub intelligently disable power to internal components to stay within that limit? I think not. Usually these request far to little and turn on everything without derating it.
Your video issues may be the result of inadequate MST support or link training issues with your display. Without seeing debug logs, I can’t say. On Intel GFX, try running “echo 0x6 > /sys/module/drm/parameters/debug” then looking at dmesg output.
Engineering docks like this is a lot harder than people think…
Do you maybe know why all docks like that doesn’t allow custom cable to the host device? It’s always built-in cable or straight male usb-c plug. The only exception is upcoming hub from Sony but it’s not on the market yet.
Because having that would require the manufacturer to pay more for (a) an eMarked and SI qualified cable (b) code the USB-PD logic to probe said eMarker (to ensure someone didn’t plug in a USB2.0 cable without enoigh wires) and (c) pay for a DP and USB3.1 high-bandwidth rated retimer and mux chip (to flip signal paths depending on cable orientation).
But to put it into perspective, most good-quality Type-C SoCs do (a) (b) and have (c) built in for free, and even (c) TCPCI compliant retimer costs maybe $.10 max.
But that’s $.10 more profit the dongle maker could have… so they don’t do it.
Thanks, appreciate your response. Before from my outside perspective I was guessing it’s to avoid problems/returns/low ratings with shady 3rd party cables.
So I guess I will have to wait another year for my dream setup. I’m waiting since galaxy s5 heh. First for android phone with usb-c 3.x (that x another mess) later for portable HDD drives, card readers, hubs. Still waiting for nice hub – even the Sony one – just two slave ports – only one usb-c, about 11×5 cm. It has to handle 100w but still…sometimes I feel like the industry tried to eat to much in one bite with usb-c.
Have a good day!
Btw. In the meantime phone industry turned into fashion industry and is now selling glass sandwiches…meh.
Nice review. I was wondering about a sollution for multiple hdmi displays on SBC’s.
I don’t think any of my SBC’s support DP. (VIM3, VIM2, N2, NanoPi M4, RockPi4B, …)
Again something to look for in a next SBC.
Greetings, NicoD
If you’d like even more HDMI displays, the MINIX NEO C has two HDMI ports, but both ports show the same content. DisplayPort is less common. ODROID-H2 SBC does have HDMI and DisplayPort, and several industrial SBCs also have options for DisplayPort