PI4B Mini Tower NAS Acce

From Waveshare Wiki
Jump to: navigation, search
PI4B Mini Tower NAS Acce
PI4B Mini Tower NAS Acce





Mini Tower NAS Kit For Raspberry Pi 4B, Support Up To 2TB M.2 SATA SSD, Strong Heat Dissipation, OLED Screen Display.


Dedicated Mini Tower NAS Kit for Raspberry Pi 4B, including M.2 SATA SSD Expansion Board, ICE Tower Cooler, Mini Tower Case, 0.96inch OLED, and GPIO Edge Extension header. It can perfectly match your Raspberry Pi 4B and can be assembled into a mini and good looking Desktop NAS which supports up to 2TB M.2 NGFF SSD solid-state drive, with an excellent cooling system, OLED screen, cool RGB LED lights, speed-adjustable PWM fan, and 40PIN GPIO extension header.


  • Comes with the SATA SSD expansion board which can expand the mass storage for your Raspberry Pi.
  • ABS material case and two sides of the transparent acrylic baffle.
  • With 0.96-inch OLED screen already mounted on the case, 28 x 64 pixels, default I2C address: 0x3C.
  • M.2 SATA SSD 2280/2260/2240 mass storage adapter board, supports up to 2TB M.2 SATA SSD solid-state drive.
A Specific driver is required for the RGB lights on the fan and mood lights on the OLED screen driver board.
The OLED display needs to be enabled to display information. Please read the manual carefully and follow the steps to enable it.

Front Side


More details


User Guide

How to Assemble the Case

Package content


Installation steps


How to enable OLED Display

  • We assume you are using Raspberry Pi OS,(32bit/64bit).

1. Turn on `i2c function` by using `sudo raspi-config` -> `interface options` -> `i2c` -> `enable` -> `yes`. 2. Check if the screen has been recognized by Raspberry Pi

i2cdetect -y 1 

if encount `command not found` error, please install `i2c-tools` by using `sudo apt update && sudo apt -y install i2c-tools`.
3. Install dependencies libraries:

sudo apt -y install python3 python3-pip python3-pil libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libopenjp2-7 libtiff5

4. Grant privileges to user `pi`

sudo usermod -a -G gpio,i2c pi

5. Download sample code from this repo:

git clone https://github.com/rm-hull/luma.examples.git
cd luma.examples/

6. Install the dependencies

sudo -H pip3 install -e .

7. Entering into the example folder and test it.

cd examples/
python3 clock.py

8. At this time, the OLED screen is displaying a clock.

If there is a black screen or nothing displayed on the screen, please check whether the cable is connected properly, and then check if you have enabled the I2C function, and you can just type: i2cdetect -y 1 in a terminal and check if there is an address like "3C" on screen. if not, please reconnect the cable and reboot the raspberry pi. If you can not download the repository from GitHub, please check the internet connection and please make sure you can access github.com. If you have an issue with using the OLED display, please contact us first.

Minitower clock.jpg

How to enable fan light and mood light

Connection Details

Circuit wiring0128.jpg

NOTE: The RGB lights in the fan are connected to the ambient lights on the screen driver board. Turning on any one of the lights is equivalent to turning on the entire light group.
  • 1. The lights are connected to GPIO18 which can be found by typing: pinout in a terminal.

  • 2. Make sure your Raspberry Pi can access the internet.
  • 3. Download demo code project sources from Git Hub.
cd ~
git clone https://github.com/jgarff/rpi_ws281x
  • 4. Build:

Build with SCons

  • Install Scons (on raspbian)
 sudo apt update && sudo apt -y install scons 
  • Make sure to adjust the parameters in main.cto suit your hardware.
  • Signal rate (400kHz to 800kHz). Default 800kHz.
  • ledstring.invert=1 if using a inverting level shifter.
  • Width and height of LED matrix (height=1 for LED string).
  • Type scons from inside the source directory.
cd rpi_ws281x/
sudo scons

Build and install with CMake

  • Install CMake
  • Configure your build:

For example:

mkdir build
cd build

See also for available options in CMakeLists.txt.

cmake --build .
to build
  • To install built binaries and headers into your system type:
sudo make install
  • Running:
sudo ./test 
(default uses PWM channel 0).

That's it. You should see a moving rainbow scroll across the display.

More options are available,
./test -h 
should show them:
./test version 1.1.0
Usage: ./test
-h (--help)    - this information
-s (--strip)   - strip type - rgb, grb, gbr, rgbw
-x (--width)   - matrix width (default 8)
-y (--height)  - matrix height (default 8)
-d (--dma)     - dma channel to use (default 10)
-g (--gpio)    - GPIO to use
                 If omitted, default is 18 (PWM0)
-i (--invert)  - invert pin output (pulse LOW)
-c (--clear)   - clear matrix on exit.
-v (--version) - version information

How to Install All Drivers Automatically

git clone https://github.com/geeekpi/absminitowerkit.git 
cd absminitowerkit/
sudo ./install.sh 

How to change display information

 If you want to change the display information, please follow the steps below.
  • Open a terminal and navigate to /lib/systemd/system/ folder.
  • Edit the' minitower_oled.service' file and add your script.

And the demo codes are located at: /usr/local/luma.examples/examples/, or you can put your own code in the same location and change the parameter of ExecStart variable and restart the service.


For example, Default ExecStart's parameters are called /usr/local/luma.examples/examples/animated_gif.py file, we can just comment it out with # (hashtag) and remove the hast tag before ExecStart=/bin/bash -c 'python3 /usr/local/luma.examples/examples/sysinfo.py &' and save it and quit.


you can also replace the file name with the file names in the folder: /usr/local/luma.examples/examples/

  • Reload system service and minitower_oled.service
sudo systemctl daemon-reload
sudo systemctl restart minitower_oled.service
  • You will find the content of the OLED display has been changed.
Minitower infor.jpg

  • For More demo code please access your local folder in: /usr/local/luma.examples/examples/ folder, there is plenty of funny code inside the folder.

How to part disk and mount it

  • Detect the disk recognized by Raspberry Pi.
sudo lsblk

As you can see there is a device called:"/dev/sda", which is recognized by Raspberry Pi as the first hard disk device.

  • Create a new partition by using: fdisk command.
 sudo fdisk /dev/sda 

and create a new partition by using the following command: press "n" and press "enter", and then input "p" and then press "enter", input "1" and then press "enter", and press "enter" again, which means make the whole disk as a partition. finally, press "w" to write the partition table to your disk.

  • Update kernel info for your device.
 sudo partprobe /dev/sda 
  • Format disk to ext4 file system.
 sudo mkfs -t ext4 /dev/sda1 
NOTE: /dev/sda1 means the first partition of the device /dev/sda 
  • Create a mounting point.
 mkdir /home/pi/mydata 
  • Grant access permission to the location.
chmod +rwx /home/pi/mydata
chown -R pi:pi /home/pi/mydata
  • Mount the device to the mounting point:
sudo mount -t ext4 -o rw -v  /dev/sda1 /home/pi/mydata 
  • Check if the device is mounting properly.
df -Th 

How to enable automount of the device when rebooting the Raspberry Pi

 NOTE: wrong configure in /etc/fstab will crash your OS, please beware of the operations.
  • If you want to mount the device automatically, please modify "/etc/fstab" and add the following line.
 /dev/sda1    /home/pi/mydata     ext4     defaults,noatime    0   0  
  • Check if the file is correct.
sudo mount -a 
df -Th



1. Please check if the cable is connected properly as Wiki instructions for assembling steps.
2. Please check if you have installed the driver and made it run at booting time.
3. Could you please try to set up your lights by following this repo: https://github.com/geeekpi/absminitowerkit



1. Please check the cable's connection, and make sure the cable is connected to raspberry pi's GPIO in the right position and direction.
2. Please make sure you have enabled I2C by using 'raspi-config' tool.
3. Please type 'i2cdetect -y 1' in a terminal and check if there is '3c' mark in the address table.
4. Please download the demo examples code from: https://github.com/rm-hull/luma.examples.git and set it up according to wiki instructions.



1. Please make sure you have using M.2 SATA SSD but not M.2 NVME SSD.
2. Please make sure you have connected the USB adapter to Raspberry Pi and NAS adapter board.
3. Please try to check the device information by using: "lsblk" command or "sudo fdisk -l" command.



1. Open a terminal.
2. Typing: sudo systemctl stop minitower_moodlight.service.



1. Please try to open a terminal.
2. Typing: sudo systemctl restart minitower_moodlight.service.



Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)