diff --git a/arduino-linux-setup-10.sh b/arduino-linux-setup-10.sh
new file mode 100644
index 0000000..8ace655
--- /dev/null
+++ b/arduino-linux-setup-10.sh
@@ -0,0 +1,248 @@
+# arduino-linux-setup.sh : A simple Arduino setup script for Linux systems
+# Copyright (C) 2015 Arduino Srl
+#
+# Author : Arturo Rinaldi
+# E-mail : arturo@arduino.org
+# Project URL : https://github.com/artynet/arduino-linux-setup
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Release v10 changelog :
+#
+# + Adding support for Slackware
+# + Changed distribution not supported message
+# + Changed distribution check sort order
+#
+# Release v9 changelog :
+#
+# + Adding support for ArchLinux
+# + Adding support for systemd
+# + Fixing a couple of wrong kernel entries
+#
+# Release v8 changelog :
+#
+# + rules are now created in /tmp folder
+#
+# Release v7 changelog :
+#
+# + Adding project URL
+# + minor bugfixing
+#
+# Release v6 changelog :
+#
+# + removing sudocheck function and control
+#
+# Release v5 changelog :
+#
+# + adding UDEV rule for stm32 DFU mode
+#
+# Release v4 changelog :
+#
+# + The rules are generated in a temporary folder
+#
+# + the user should run it without sudo while having its permissions
+#
+# Release v3 changelog :
+#
+# + The most common linux distros are now fully supported
+#
+# + now the script checks for SUDO permissions
+#
+
+# !/bin/bash
+
+# if [[ $EUID != 0 ]] ; then
+# echo This must be run as root!
+# exit 1
+# fi
+
+refreshudev () {
+
+ echo ""
+ echo "Restarting udev"
+ echo ""
+
+ sudo udevadm control --reload-rules
+ sudo udevadm trigger
+
+ if [ -d /lib/systemd/ ]
+ then
+ sudo systemctl restart systemd-udevd
+ else
+ sudo service udev restart
+ fi
+
+}
+
+groupsfunc () {
+
+ echo ""
+ echo "******* Add User to dialout,tty, uucp, plugdev groups *******"
+ echo ""
+
+ sudo usermod -a -G tty $1
+ sudo usermod -a -G dialout $1
+ sudo usermod -a -G uucp $1
+ sudo groupadd plugdev
+ sudo usermod -a -G plugdev $1
+
+}
+
+acmrules () {
+
+ echo ""
+ echo "# Setting serial port rules"
+ echo ""
+
+cat < /tmp/90-extraacl.rules
+
+ openocdrules > /tmp/98-openocd.rules
+
+ avrisprules > /tmp/avrisp.rules
+
+ dfustm32rules > /tmp/40-dfuse.rules
+
+ dfuarduino101rules > /tmp/99-arduino-101.rules
+
+ sudo mv /tmp/*.rules /etc/udev/rules.d/
+
+ refreshudev
+
+ echo ""
+ echo "*********** Please Reboot your system ************"
+ echo ""
+fi