diff --git a/BUILD.md b/BUILD.md
index 18f6371..d3d26a1 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -29,6 +29,13 @@ $ javac -h . RcmSmash.java
  $ cd 'NS-USBloader/JNI sources/linux'
  $ make install clean
 ```
+**Build for Raspberry Pi (Raspberry Pi host):**
+``` 
+ $ cd 'NS-USBloader/JNI sources/linux'
+ $ mv Makefile_rapsberry Makefile
+ $ make install clean
+```
+
 **Build for Windows (on x86_64 host):**
 
 [ This part should be updated ]
diff --git a/JNI sources/linux/Makefile_raspberry b/JNI sources/linux/Makefile_raspberry
new file mode 100644
index 0000000..f89ee4b
--- /dev/null
+++ b/JNI sources/linux/Makefile_raspberry	
@@ -0,0 +1,31 @@
+# Compiler
+CC=arm-linux-gnueabihf-gcc
+# Flags
+CFLAGS=-O2
+MKDIR_P = mkdir -p
+APP_NAME = smashlib.so
+
+ifeq ($(JAVA_HOME),)
+  JAVA_LIB_PATH := "/usr/lib/jvm/default-java/include"
+  JAVA_LIB_PATH_LINUX := "/usr/lib/jvm/default-java/include/linux"
+else
+  JAVA_LIB_PATH = ${JAVA_HOME}/include
+  JAVA_LIB_PATH_LINUX = ${JAVA_HOME}/include/linux
+endif
+
+all: arm
+
+arm:
+        test $(JAVA_LIB_PATH)
+        $(MKDIR_P) ./arm
+        $(CC) -c -fPIC -I$(JAVA_LIB_PATH) -I"$(JAVA_LIB_PATH_LINUX)" smashlib.c -o smashlib_arm.o
+        $(CC) ${CFLAGS} -shared -fPIC -o ./arm/${APP_NAME} smashlib_arm.o -lc
+
+clean:
+        rm -rf smashlib_arm.o ./arm
+
+install: arm
+        install ./arm/${APP_NAME} ../../src/main/resources/native/linux/arm/
+
+uninstall:
+        rm ../../src/main/resources/native/linux/arm/${APP_NAME}
\ No newline at end of file
diff --git a/README.md b/README.md
index e0f62b0..2cabead 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
 NS-USBloader is:
 * A PC-side installer for **[Adubbz/TinFoil (v0.2.1)](https://github.com/Adubbz/Tinfoil/)**, **[Huntereb/Awoo-Installer](https://github.com/Huntereb/Awoo-Installer)** (USB and Network supported) and **[XorTroll/GoldLeaf](https://github.com/XorTroll/Goldleaf)** (USB) NSP installer. 
 Replacement for default **usb_install_pc.py**, **remote_install_pc.py**, **GoldTree**/**Quark**. 
-* This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64).
+* This application also could be used as RCM payload on Windows, MacOS and Linux (supported arch: x86, x86_64 and Raspberry Pi).
 * And of course it's a tool for split files! 
 * And also for merging split-files into one :) 
 
@@ -90,6 +90,14 @@ root # udevadm control --reload-rules && udevadm trigger
 
 Please note: you may have to change 'plugdev' group from example above to the different one. It's depends on you linux distro.
 
+##### Raspberry Pi
+
+1. Install JDK: `sudo apt install default-jdk`
+
+2. For UI install JavaFX:
+
+3. See steps 3 and 4 from 'Linux' section to  update 'udev'.
+
 ##### macOS
 
 Double-click on downloaded .jar file. Follow instructions. Or see 'Linux' section.
diff --git a/pom.xml b/pom.xml
index f7a8f1c..48cdd9f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
     <name>NS-USBloader</name>
 
     <artifactId>ns-usbloader</artifactId>
-    <version>4.0-SNAPSHOT</version>
+    <version>4.1-SNAPSHOT</version>
 
     <url>https://github.com/developersu/ns-usbloader/</url>
     <description>
diff --git a/src/main/java/nsusbloader/NSLMain.java b/src/main/java/nsusbloader/NSLMain.java
index cd24e2c..f18f653 100644
--- a/src/main/java/nsusbloader/NSLMain.java
+++ b/src/main/java/nsusbloader/NSLMain.java
@@ -32,7 +32,7 @@ import java.util.ResourceBundle;
 
 public class NSLMain extends Application {
 
-    public static final String appVersion = "v4.0";
+    public static final String appVersion = "v4.1";
     public static boolean isCli;
 
     @Override
diff --git a/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java b/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java
index 8a3a31b..d8229ff 100644
--- a/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java
+++ b/src/main/java/nsusbloader/Utilities/JNIRcmLoader.java
@@ -43,6 +43,9 @@ public class JNIRcmLoader {
                 case "amd64":
                     osArch = "amd64";
                     break;
+                case "arm":
+                    osArch = "arm";
+                    break;
                 default:
                     return false;
             }
diff --git a/src/main/resources/native/linux/arm/smashlib.so b/src/main/resources/native/linux/arm/smashlib.so
new file mode 100755
index 0000000..1fa4551
Binary files /dev/null and b/src/main/resources/native/linux/arm/smashlib.so differ