Skip to content

Software installation

Edward edited this page Sep 11, 2019 · 2 revisions

SD Card

First we need to prepare a boot image for the raspberry pi w zero's boot micro SD card. I recommend an 16GB+ at least U1 speed SD card for this project. The image itself typically takes up to 4G. The rest will be the storage for you projects and patches.

Create bootable image

For this project I used Comitup linux distribution.
Link: https://davesteele.github.io/comitup/
It's a nice environment that supports Wifi broadcasting. We need this because we can not access content on boot SD by just plugging into the computer. This wifi broadcasting enables us to access files on the OP-1 Manager on the go by just connecting to it's WIFI hotspot.

Installing bootable image are quite easy with Etcher. So, I am not including it’s installation steps here.

Monitor-less SSH Setup

Once the image is installed on to the SD card go ahead plug it into the SD card slot on raspberry pi. And power it up. After it's fully booted. Connect to its wifi hotspot. Then you can access the system with SSH.

Check for the Raspberry pi's IP address for SSH access.
ssh pi@xxx.xxx.xxx

Raspberry configuration

Enable ports:

Enter the raspi-config interface to change password, turn on i2c, serial, and SSH services.

sudo raspi-config

Change your password

Change your login password is important because when SSH is enabled. The default password is basically known by whoever own a reapberry pi. You will want your valuable patches, and project to be SECURE right!!? So please do not forget to change your password.

sudo raspi-config

Then go to option 1 "Change User Password" to change your password.

Enable I2C

Enable I2C for OLED, and fuel gauge devices.
Then go to option 5 Interfacing Options and then I2C to enable your i2c port.

Enable SSH

Enable SSH for remote access.
Then go to option 5 Interfacing Options and then SSH to enable your i2c port.
First No then Yes.

Enable Serial port (Optional if you are using MIDI in/out)

Then go to option 5 Interfacing Options and then Serial to enable your serial port.

Midi Configuration (Optional)

If you are using the MIDI. We need to make ensure the bluetooth is not halting the serial port. These commands moves bluetooth to a slower uart port.

sudo nano /boot/config.txt

Goto the bottom of the script and add following lines

enable_uart=1
dtoverlay=pi3-miniuart-bt
dtoverlay=midi-uart0

Then reboot...

sudo reboot

Some more apt-get packages to install

sudo apt-get update
sudo apt-get install python3-pip git libasound-dev libjack-dev 
    libatlas3-base python3-dev python3-pip libfreetype6-dev libjpeg-dev 
    build-essential libopenjp2-7 libtiff5

Setup OLED Display

I2C tools for the display The OLED display uses Luma display driver. Luma is a python module that are capable to drive various oled displays. This project is tested and work with SSD1306 and SH1106 oled 128x64 i2c displays.
Following commands installs Luma oled driver.

sudo apt-get install -y python-smbus    
sudo apt-get install -y i2c-tools 
sudo pip3 install luma.oled

Clone Project

DO NOT use sudo other wise you won't be able to r/w at SFTP session. And and will need to chmod 0777 -r /path/to/folder to change the access permission.

git clone https://github.com/adwuard/OP_Manager.git

pip3 libs installation

Enter the OP_Manager Folder

cd OP_Manager

install python pip libraries

sudo pip3 install -r requirement.txt

Then reboot..

sudo reboot

check if the project runs

sudo python3 OP_Manager/run.py
# Exit with keyboard interrupt

Setup on boot service

sudo nano OP_Manager/opmanager.service

Then add following service and ensure python project path is correct.

[Unit]
Description=OPManager
After=raspi-config.service

[Service]
ExecStart=/usr/bin/sudo /usr/bin/python3 -u run.py
WorkingDirectory=/home/pi/OP1_File_Organizer
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Then exit the editor

Copy the service to systemd list

sudo cp opmanager.service /etc/systemd/system/opmanager.service

Start the service

sudo systemctl enable opmanager.service

Once it is enabled the program should start on boot. you can now reboot and test it.