NanoPi M4 performance and consumption review


Recommended Posts

Armbian is a community driven open source project. Do you like to contribute your code?

Hi,  I'd like to attach 3 samsung evo 1tb ssd to NanoPi M4 making whole thing as compat as possible (as such I don't consider miniITX on Intel)

The cost is less important than size. Now choosing which way:

 

1) via usb3

using https://www.aliexpress.com/item/USB-3-0-SATA-3-Cable-Sata-to-USB-Adapter-Up-to-6-Gbps-Support-2/32958928071.html?spm=a2g0s.8937460.0.0.2df52e0eq5jx9C 

and power by https://www.aliexpress.com/item/5A-USB-Cable-3-in-1-Fast-Charging-Fabric-Braide-Type-C-Micro-USB-Charger-Cable/32963726182.html?spm=a2g0s.8937460.0.0.2df52e0eq5jx9C which claims to output 5A

- pro: I hope to power everything from usb (I read ssds are quite power-effecient: https://www.anandtech.com/show/8747/samsung-ssd-850-evo-review/10

- contra: I'm not sure if this all works. From the first topic "even connect 2 SBCs to the USB -> the board crashed", but this guy used only 2A

Any thoughts, if the usb-c power supply above is ok? 

As I got from the thread NanoPi M4 cannot request more power from PSU, can it?

 

2) via NanoPi_M4_SATA_HAT

- pro: no need to sata-usb converters

- contra: I have to power sata. I don't know from where, since I'd like not to use standard desktop PSU.

Could you suggest a compact PSU for the sata hat?

Edited by razum2um
typo
Link to post
Share on other sites
On 4/29/2019 at 8:57 AM, razum2um said:

Hi,  I'd like to attach 3 samsung evo 1tb ssd to NanoPi M4 making whole thing as compat as possible (as such I don't consider miniITX on Intel)

The cost is less important than size. Now choosing which way:

 

1) via usb3

using https://www.aliexpress.com/item/USB-3-0-SATA-3-Cable-Sata-to-USB-Adapter-Up-to-6-Gbps-Support-2/32958928071.html?spm=a2g0s.8937460.0.0.2df52e0eq5jx9C 

and power by https://www.aliexpress.com/item/5A-USB-Cable-3-in-1-Fast-Charging-Fabric-Braide-Type-C-Micro-USB-Charger-Cable/32963726182.html?spm=a2g0s.8937460.0.0.2df52e0eq5jx9C which claims to output 5A

- pro: I hope to power everything from usb (I read ssds are quite power-effecient: https://www.anandtech.com/show/8747/samsung-ssd-850-evo-review/10

- contra: I'm not sure if this all works. From the first topic "even connect 2 SBCs to the USB -> the board crashed", but this guy used only 2A

Any thoughts, if the usb-c power supply above is ok? 

As I got from the thread NanoPi M4 cannot request more power from PSU, can it?

 

2) via NanoPi_M4_SATA_HAT

- pro: no need to sata-usb converters

- contra: I have to power sata. I don't know from where, since I'd like not to use standard desktop PSU.

Could you suggest a compact PSU for the sata hat?

 

I was using the Sabrant USB 3 -> SSD adapters, running Armbian (and OpenMediaVault) and kept having issues with the drive going off-line.  From googling and not really knowing what I'm doing, it appeared it was caused by  SSD power save stuff and I didn't know how to shut it off.  So I switched over to use the SATA hat (which I had previously tested as having equivalent performance via hdparm) and powered it with an old 12V power adapter with the correct barrel connector.  Works great and no crashes since.   

Link to post
Share on other sites
1 hour ago, bezyr5lvfk said:

I'm especially interested in that, because I want to know what performance I could expect if the Nanopi M4 is used as access point?


AC speeds at 5Ghz, client number limitation unknown.

 

Spoiler

Wiphy phy0
	max # scan SSIDs: 10
	max scan IEs length: 2048 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports T-DLS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CMAC (00-0f-ac:6)
	Available Antennas: TX 0 RX 0
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * P2P-client
		 * P2P-GO
		 * P2P-device
	Band 1:
		Capabilities: 0x1020
			HT20
			Static SM Power Save
			RX HT20 SGI
			No RX STBC
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT RX MCS rate indexes supported: 0-7
		HT TX MCS rate indexes are undefined
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
	Band 2:
		Capabilities: 0x1020
			HT20
			Static SM Power Save
			RX HT20 SGI
			No RX STBC
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT RX MCS rate indexes supported: 0-7
		HT TX MCS rate indexes are undefined
		VHT Capabilities (0x0f815832):
			Max MPDU length: 11454
			Supported Channel Width: neither 160 nor 80+80
			RX LDPC
			short GI (80 MHz)
			SU Beamformer
			SU Beamformee
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 0 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 0 Mbps
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5180 MHz [36] (20.0 dBm)
			* 5200 MHz [40] (20.0 dBm)
			* 5220 MHz [44] (20.0 dBm)
			* 5240 MHz [48] (20.0 dBm)
			* 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
			* 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
			* 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
			* 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
			* 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
			* 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
			* 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
			* 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
			* 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
			* 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
			* 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
			* 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
			* 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
			* 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
			* 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
			* 5720 MHz [144] (20.0 dBm) (no IR, radar detection)
			* 5745 MHz [149] (20.0 dBm)
			* 5765 MHz [153] (20.0 dBm)
			* 5785 MHz [157] (20.0 dBm)
			* 5805 MHz [161] (20.0 dBm)
			* 5825 MHz [165] (20.0 dBm)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * set_bss
		 * join_ibss
		 * set_pmksa
		 * del_pmksa
		 * flush_pmksa
		 * remain_on_channel
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * tdls_mgmt
		 * tdls_oper
		 * start_p2p_device
		 * connect
		 * disconnect
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0xd0
		 * managed: 0x40 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	WoWLAN support:
		 * wake up on anything (device continues operating normally)
		 * wake up on pattern match, up to 8 patterns of 1-255 bytes,
		   maximum packet offset 255 bytes
	software interface modes (can always be added):
	valid interface combinations:
		 * #{ AP } <= 2, #{ managed } <= 2, #{ P2P-client, P2P-GO } <= 2, #{ P2P-device } <= 1, #{ IBSS } <= 1,
		   total <= 4, #channels <= 2
	Device supports scan flush.
	Supported extended features:

 

 

Link to post
Share on other sites
9 hours ago, Igor said:


AC speeds at 5Ghz, client number limitation unknown.

 

  Reveal hidden contents


Wiphy phy0
	max # scan SSIDs: 10
	max scan IEs length: 2048 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports T-DLS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CMAC (00-0f-ac:6)
	Available Antennas: TX 0 RX 0
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * P2P-client
		 * P2P-GO
		 * P2P-device
	Band 1:
		Capabilities: 0x1020
			HT20
			Static SM Power Save
			RX HT20 SGI
			No RX STBC
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT RX MCS rate indexes supported: 0-7
		HT TX MCS rate indexes are undefined
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
	Band 2:
		Capabilities: 0x1020
			HT20
			Static SM Power Save
			RX HT20 SGI
			No RX STBC
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT RX MCS rate indexes supported: 0-7
		HT TX MCS rate indexes are undefined
		VHT Capabilities (0x0f815832):
			Max MPDU length: 11454
			Supported Channel Width: neither 160 nor 80+80
			RX LDPC
			short GI (80 MHz)
			SU Beamformer
			SU Beamformee
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 0 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 0 Mbps
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5180 MHz [36] (20.0 dBm)
			* 5200 MHz [40] (20.0 dBm)
			* 5220 MHz [44] (20.0 dBm)
			* 5240 MHz [48] (20.0 dBm)
			* 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
			* 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
			* 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
			* 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
			* 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
			* 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
			* 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
			* 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
			* 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
			* 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
			* 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
			* 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
			* 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
			* 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
			* 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
			* 5720 MHz [144] (20.0 dBm) (no IR, radar detection)
			* 5745 MHz [149] (20.0 dBm)
			* 5765 MHz [153] (20.0 dBm)
			* 5785 MHz [157] (20.0 dBm)
			* 5805 MHz [161] (20.0 dBm)
			* 5825 MHz [165] (20.0 dBm)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * set_bss
		 * join_ibss
		 * set_pmksa
		 * del_pmksa
		 * flush_pmksa
		 * remain_on_channel
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * tdls_mgmt
		 * tdls_oper
		 * start_p2p_device
		 * connect
		 * disconnect
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0xd0
		 * managed: 0x40 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	WoWLAN support:
		 * wake up on anything (device continues operating normally)
		 * wake up on pattern match, up to 8 patterns of 1-255 bytes,
		   maximum packet offset 255 bytes
	software interface modes (can always be added):
	valid interface combinations:
		 * #{ AP } <= 2, #{ managed } <= 2, #{ P2P-client, P2P-GO } <= 2, #{ P2P-device } <= 1, #{ IBSS } <= 1,
		   total <= 4, #channels <= 2
	Device supports scan flush.
	Supported extended features:

 

 

Thank you Igor!

 

This sounds like you are using the Nanopi M4 as access point yourself (or at least have). Would you mind sharing your hostapd.conf (or create_ap.conf)? That would be really awesome!

 

And if you use it or have used for a longer time, did you notice any problems or did it work really well? Also regarding any noticeable range limitations compared to a standard wireless router.

Link to post
Share on other sites
1 hour ago, bezyr5lvfk said:

This sounds like you are using the Nanopi M4 as access point yourself (or at least have). Would you mind sharing your hostapd.conf (or create_ap.conf)? That would be really awesome!


Sadly, I do everything else but using it - actually I was using it as AP during the holiday and I don't recall any troubles (2-3 clients max) :) I am always using hostapd configuration made by the tool I made. If I find a problem with that tool, I fix it:

Spoiler

 

 

 

Link to post
Share on other sites
1 hour ago, Igor said:

Sadly, I do everything else but using it - actually I was using it as AP during the holiday and I don't recall any troubles (2-3 clients max) :) I am always using hostapd configuration made by the tool I made. If I find a problem with that tool, I fix it:

Just Wow! I'm just amazed by the tool! I didn't know that it could do that.

Thank you very much! Now I'm definitely getting one of those boards!

 

One more question, there is also an NVME extension board available connected via PCIe. I couldn't find any direct information, but from what I found, if one wants to boot from the NVME, one does still need an SD card for the boot partition, but can place the system on the SSD. It is not possible to boot completely from the SSD without any SSD or eMMC, right?

Link to post
Share on other sites
7 minutes ago, bezyr5lvfk said:

One more question, there is also an NVME extension board available connected via PCIe. I couldn't find any direct information, but from what I found, if one wants to boot from the NVME, one does still need an SD card for the boot partition, but can place the system on the SSD. It is not possible to boot completely from the SSD without any SSD or eMMC, right?


No, you need eMMC or SD or SPI.

Also beware that all RK3399 boards have not fully matured support, mainline kernel is here but there are bugs here and there, sometimes we break some functionality, not exactly critical ... but if you want to have latest and greatest, this is the price you have to pay. By the time you get the board, some of the current problems will be fixed anyway ;)

 

Link to post
Share on other sites
6 minutes ago, Igor said:


No, you need eMMC or SD or SPI.

Also beware that all RK3399 boards have not fully matured support, mainline kernel is here but there are bugs here and there, sometimes we break some functionality, not exactly critical ... but if you want to have latest and greatest, this is the price you have to pay. By the time you get the board, some of the current problems will be fixed anyway ;)

 

Thanks for the fast reply and the warning!

Link to post
Share on other sites
On 4/1/2020 at 9:53 PM, bezyr5lvfk said:

One more question, there is also an NVME extension board available connected via PCIe. I couldn't find any direct information, but from what I found, if one wants to boot from the NVME, one does still need an SD card for the boot partition, but can place the system on the SSD. It is not possible to boot completely from the SSD without any SSD or eMMC, right?

 

You always need and SD card / eMMC to start the boot, then it switches to the system on the NVMe disk.

 

Here the general steps on how to set it up:

parted -l
parted /dev/nvme0n1 mklabel msdos
parted -a opt /dev/nvme0n1 mkpart primary ext4 0% 100%
armbian-config # -> system -> install -> boot from (eMMC/SD) run from NVMe.
reboot
cd /media/mmcboot
rm -rf bin etc home lib media mnt opt proc root run sbin selinux srv sys usr var dev tmp

 

Enjoy.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...