Death Ray Service (DRS) is a service that only turns on the anti-biofouling UVC for 2.5 seconds every minute within a single time during the day, given by the config.json file, on the OBSEA ANERIS EMUAS camera.
- Anti-biofiling UVC light with a
$4.2%$ duty-cycle - Possibility to diside when to use UVC
- Mutable configuration file. The start and end times of the UVC period can be changed in the
config.jsonfile. Any updates done to the configuration can be enabled by restarting the service as such:
sudo systemctl restart deathray.serviceImplement a driver circuit for the UVC in order to obtain a higher duty-cycle.
Connect your PC with the Raspberry Pi you intend to use, either by cable or network. Make sure you have an IP on the same interface as the device you intend to work on. Say if your connected to the Pi through ethernet and the Pi's IP is 192.168.1.2, you can scan the network using arp or wireshark and choose an IP on the same subnet that is available.
Let's say we decide to use 192.168.1.6 (because it's unused) and that we are connected through a network interface on our computer called en8, then in order to add the IP to our interface we can use the following command:
Mac:
sudo ifconfig en8 alias 192.168.1.6 255.255.255.0Linux:
sudo ip addr add 192.168.1.6/24 dev en8for Linux addr add can be substituted with a a if you want to write it quicker.
Windows: If you are really using Windows I can't help you...
NOTE: If you don't know what network interfaces you have available or want to see what IPs are your computer has on different interfaces, you can check this using sudo ifconfig for Mac and
sudo ip addr or sudo ip a for Linux.
To verify that we are able to connect to our Raspberry Pi form our PC we can simply use ping:
ping 192.168.1.2If you get an answer an no packets lost you have successfully connected to the Raspberry Pi!
There are two ways of getting the DRS on the desired Raspberry Pi: a) clone repo onto your PC and copy it over or b) clone it directly to the Pi.
If you don't want to log into git on the host device, there is an option to clone this repo onto your personal computer before copying it over afterwards. In order to do this first clone the repo to a fitting place your computer, either with https or ssh:
https:
git clone https://github.com/OsloMet-OceanLab/deathray.gitSSH:
git clone git@github.com:OsloMet-OceanLab/deathray.gitThe difference is that SSH requires a public key while HTTPS requires a github token, please consult the github documentation github documentation for more on this.
After cloning the repo, we can then copy over the files using the Secure Copy Protocol. Assuming that the host IP is 192.168.1.2 and the username is pi, the copy command will be:
scp -r deathray/ pi@192.168.1.2:This will copy the whole deathray directory into the /home/pi/ directory on the Raspberry Pi.
To clone the github repo directly onto the computer you must first log inn using ssh. Assuming that the host IP is 192.168.1.2 and the username is pi, the copy command will be:
ssh pi@192.168.1.2Once you are logged into the Raspberry Pi you are free to choose if you want to clone using https or SSH:
https:
git clone https://github.com/OsloMet-OceanLab/deathray.gitSSH:
git clone git@github.com:OsloMet-OceanLab/deathray.gitFor our service to be in a place where we can't delete it by accident we would like to move it to the /opt/ directory. On the Raspberry Pi we start by moving the deathray.service file first:
sudo mv deathray/deathray.service /opt/then we move the rest of the directory:
sudo mv deathray/ /opt/When all files are in their intended places, we have to set up a user to run the service and add it to the gpio group so that our service can actually interact with the GPIO pins on the Pi. First check if the user exists:
cat /etc/passwd | grep emuasif this yields no printouts, then we have to create the user and add it to correct groups:
sudo useradd -r -s /usr/sbin/nologin emuasAdd user to gpio:
sudo usermod -aG gpio emuasTo verify that the user has been created and added to the correct groups simply run:
groups emuasThe printout should then read emuas : emuas gpio. With the group in place we can now give it permission to own the /opt/deathray/ directory and the files containing it. This is easy using:
sudo chown -R emuas:emuas /opt/deathray/Verify ownership by running
sudo ls -l /opt/deathray/Now that our user has been set up with the right permissions it is time to actually start the service. First we have to create a symlink from /opt/deathray.service to /etc/systemd/system/deathray.service, to do this we can run:
sudo systemctl link /opt/deathray.servicewe then have to enable the service to let it run and reload the system daemon:
sudo systemctl enable deathray.service
sudo systemctl daemon-reloadWhen this is done we can start our service
sudo systemctl start deathray.serviceIn order to check that the service has started up correctly, the status of the service can be checked using:
sudo systemctl status deathray.serviceIf you wish to stop the service this can be done using:
sudo systemctl stop deathray.serviceor restart the service using:
sudo systemctl restart deathray.serviceAfter all this is done the service should be up and running.