-
Notifications
You must be signed in to change notification settings - Fork 121
Raspberry Pi
MaslowCNC Wiki: Electronics | Firmware | Mechanics | Software | Community Garden
These instructions were written using a Raspberry Pi 3, (and has been tested on a 2b) but the instructions should be similar for other operating systems.
Download the latest KivyPie image from http://kivypie.mitako.eu/kivy-download.html
Burn the KivyPie to an SD card. There are many guides about how to do this on the internet, the official one is here.
Boot the Raspberry Pi and log in using the default user name and password:
Login: sysop Password: posys
Note both the login and password are lower-case
Connect your Pi to the internet by plugging in an Ethernet port or by following these instructions to connect to wifi from the command line.
If you have an issue, try a hint from the KivyFAQ (also see Section 7 below), and to set the SSID and password,
sudo pipaos-setwifi SSID PASSWORD
then reboot.
As of this writing the current version of KivyPi does not actually come with Kivy installed for python 2 which seems like an oversight. Install Kivy with the commands:
sudo apt-get update
sudo apt-get install python2-kivypie
sudo ln -sf /usr/bin/python2 /usr/bin/kivy
To remedy double-typing of characters and double-clicking of buttons when using a USB HID input device (keyboard/mouse) edit the Kivy ini file with the following command:
sudo nano ~/.kivy/config.ini
Which will open the ini file in a text editor. Comment the line that reads
%(name)s=probesysfs,provider=hidinput
so it will now read
#%(name)s=probesysfs,provider=hidinput
Save the file by pressing Ctrl+x then y then press enter.
Repeat the process for root.
sudo nano /root/.kivy/config.ini
Install PySerial with the command sudo apt-get install python-serial
Update PySerial with the command sudo pip install --upgrade pyserial
Download Ground Control with the command git clone https://www.github.com/MaslowCNC/GroundControl.git
Backup the existing theme file with the command
sudo mv /usr/local/lib/python2.7/dist-packages/kivy/data/images/defaulttheme-0.png /usr/local/lib/python2.7/dist-packages/kivy/data/images/defaulttheme-0.old.png
Copy one of two theme files from Ground Control.
For the Maslow Theme, use the command
sudo cp ~/GroundControl/Images/MaslowTheme.png /usr/local/lib/python2.7/dist-packages/kivy/data/images/defaulttheme-0.png
For the standard Kivy Theme (with a replacement cursor), use the command
sudo cp ~/GroundControl/Images/ArrowTheme.png /usr/local/lib/python2.7/dist-packages/kivy/data/images/defaulttheme-0.png
Launch Ground Control with the command
cd /home/sysop/GroundControl/
sudo python main.py
NOTE: To not run with sudo, try adding the user to the dialout and input groups
$ sudo usermod -a -G input,dialout myuser
where myuser is the userID you use to run GroundControl. myuser would be sysop if running as user sysop.
See the KivyPie FAQ for more information about how to do things like make Ground Control launch on startup turning your Raspberry Pi into a touch screen controller, or how to VNC into your Raspberry Pi.
One option to run GroundControl can be to define a small script in our home directory, (for example: gc)
cd /home/sysop/GroundControl
python main.py
cd
If you want it to run with sudo, use 'sudo python main.py' instead of the above 'python main.py'
To update GroundControl to the latest version, you can use a similar script, gc-update which contains
rm -rf GroundControl.old
mv GroundControl GroundControl.old
git clone https://www.github.com/MaslowCNC/GroundControl.git
For example, to get a new updated GroundControl, from the home directory of sysop issue: $ sh gc-update
The directory GroundControl.old is there for a temporary safeguard. If it fails, delete the partially installed Ground Control and put the old one back into place.
rm -rf GroundControl
mv GroundControl.old GroundControl
To start GroundControl using the gc script, from the sysop home directory command line, issue:
$ sh gc
I am using the current Rasbian Strech with Desktop from :https://www.raspberrypi.org/downloads/raspbian/ after install of the OS,
So rasberry pi offical screen is upside down, to flip the screen:
In Terminal, type:
sudo nano /boot/config.txt
Add the line:
lcd_rotate=2
to the top of the file.
Press: CTRL+X. Then Y. Then Enter. And reboot
The following dependencies must be installed. (just copy and paste, Nice part about having the desktop version ;) )
sudo apt-get update
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
pkg-config libgl1-mesa-dev libgles2-mesa-dev \
python-setuptools libgstreamer1.0-dev git-core \
gstreamer1.0-plugins-{bad,base,good,ugly} \
gstreamer1.0-{omx,alsa} python-dev libmtdev-dev \
xclip xsel
sudo apt-get install python-serial
sudo pip install --upgrade pyserial
sudo pip install cython pygments docutils
Step 8.6: Installing Kivy (setup can take a while since you are building the program from source, so just a FYI)
git clone https://github.com/kivy/kivy
cd kivy
python setup.py build
sudo python setup.py install
To enable touch, you'll need to make a modification to the default Kivy configuration file. To create that file, first run an example:
python ~/kivy/examples/demo/pictures/main.py
(If this gives you a segmentation fault you need to remove and downgrade your libsdl2 version and re-build kivy)
Quit the example with Ctrl+C and then open the newly-created config.ini file in your /.kivy/ folder in your home folder (FYI this will be hidden, so you can right click and "show hidden" if you are going through the file explorer instead of terminal) for editing:
nano ~/.kivy/config.ini
Go into the [input] section, remove the following sections of lines (there will be a mouse line and another line under it) replace those 2 lines with the following:
mouse = mouse
mtdev_%(name)s = probesysfs,provider=mtdev
hid_%(name)s = probesysfs,provider=hidinput
Launch the multi touch pictures demo again. this time verify that the Tap, drag, pinch, and rotate are working:
python ~/kivy/examples/demo/pictures/main.py
Type Control+C to exit the pictures demo.
see steps 5 and 6 above, then you are all complete.
*NOTE the mouse does not currently work with the 3b+, feel free to update this if someone can figure it out!
Special thanks to #mrichardson23 and his Git Hub help on how to enable touch pad with Python.