Skip to content

Orcasound administration

Scott Veirs edited this page Jul 18, 2023 · 3 revisions

Care & feeding of an Orcasound node

A. Define your applications or scientific questions

  • What species do you want to sense & what are the characteristics of their signals?
  • What range of frequencies do you want to resolve?
  • What background noise levels can you tolerate when listening for the signals?
  • What sensitivity and dynamic range do you want in your hydrophone system?
  • Do you want to stream video as well as audio?
  • What other sensors might you eventually want to deploy (e.g. AIS receiver, weather station, M2 system, web cam, etc.)?

B. Review tried & true deployment methods

Cabled 24/7 deployments

"Docks of convienience"

Deeper examples:

  • Port Townsend Marine Science Center
  • Seattle Aquarium
  • Neah Bay

Shallower examples:

  • Sunset Bay
  • MaST Center (Redondo Beach)

Rocky intertidal environments

Examples:

  • Orcasound Lab
  • North San Juan Channel

Sandy beach environments

**Examples: **

  • Point Robinson

End goals

  • Measure lengths for hydrophone & ethernet cables

C. Select & study your site

  • Are there any teams of potential volunteers in the vicinity who could help you, or even host the node?
  • Is there an "easy" way to get to "deep water"?
    • By what route and method could you reach 5-10m below mean lowest low water?
    • Do you think you need a permit for this deployment, or not?
  • Is there a source of power nearby? Will a host pay the bill?
  • Is there an Internet connection nearby?
    • If so what is the upload bandwidth?
    • Who will pay for the service?
    • Are there firewalls or other IT issues that will prevent data streaming?

D. Select & acquire your hydrophone & hardware

E. Set up & bench test your orcanode

DRAFT 2022-2023 -- Work in Progress!

Get a good SD card & a computer with a card reader and >2GB hard drive space.

  • provide links to SD cards we like and/or have tested
  • explain/offer options for SD card readers?
  • Is it true Pi4 can't boot from USB flash drive (but could use it for storage and stream data management?)

Set up your SD card using Raspberry Pi imager.

  • Download the Raspberry Pi imager software for your operating system from https://www.raspberrypi.org/software/ (18 MB for OSX, Oct/2021)
  • Install the imager on the computer where you've attached your SD card
  • Choose an image to burn (Raspberry Pi OS install timing on 2019 Macbook Pro w/1Gbit fiber download bandwidth with Samsung 32GB EVO Select micro SD card in QGeeM card reader's microSD slot: 15:49:30 start; 15:51:00 25% done; 15:52:05 50% done; 15:53:05 85% done; 15:53:30 done install, start verify; 15:54:00 verify 50% done; 15:54:30 verify done, imaging complete.

Or, use your own etching software to burn an image you download from https://www.raspberrypi.org/software/operating-systems/ (For Scott on Macbook Pro this looked like 2021-05-07-raspios-buster-armhf-lite.zip 465MB which unzipped to 2021-05-07-raspios-buster-armhf-lite.img 1.87GB)

Boot up your Raspberry Pi (3b+ or 4) with your new SD card.

  • set your country/language/timezone, adjust screen settings
  • set up LAN access via wireless
  • restart your Pi
  • On the Rpi, open the web browser and a terminal session

Install Docker, docker-compose, and any sound card drivers (if needed).

  • Install Docker
  • Python default is 2.7.16

Steve's favorite guidance -- https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo

  • sudo apt-get update && sudo apt-get upgrade
  • sudo apt-get update took <30 sec
  • sudo apt-get upgrade ask Y/n for ~350 MB upgrades, using +50 MB disk space; start 19:45; took 2 min to fetch 350MB (3.1KB/s)

This can take a while! (~30 min? and sometimes you may be asked to verify Y/n ... e.g. q to quit screenshot...) Unpacking raspberrypi-kernel 1:1.20210928...

  • sudo apt-get install docker-ce docker-ce-cli containerd.io
  • get.docker.com from Raspberry Pi

KEY STEP: sudo reboot before running the "convenience" script!

Add a Non-Root User to the Docker Group. To add the permissions to the current user run: sudo usermod -aG docker ${USER}

Reboot the Raspberry Pi to let the changes take effect, or activate the changes to groups with:

$ newgrp docker

Verify that you can run docker commands without sudo.

$ docker run hello-world

Tested whether docker daemon starts upon reboot by rebooting and then running docker run hello-world again -- successfully.

Install docker-compose.

but this did

  • sudo apt-get install libffi-dev libssl-dev
  • sudo apt install python3-dev
  • sudo apt-get install -y python3 python3-pip

With pip3 and python3 installed, it’s possible to install Docker-Compose via the command:

‍sudo pip3 install docker-compose

docker-compose --version (yielded for Scott: version 1.29.2)

Install Pisound driver?

Integrated into Raspberry Pi kernel v>4.18 (as long as you don't need to use the Pisound button) Default now is

  • check that device is supported via arecord -l
  • What about AMD?

Add dataplicity (or other swarm management tool?)

  • Login to dataplicity.com from Raspberry Pi
  • Create a new node
  • Copy curl command into Rpi terminal

Get and install orcanode code

  • cd ~
  • git clone https://github.com/orcasound/orcanode.git
  • cd orcanode/node
  • Set up .env file
  • Copy default fields from orcanode README
  • Add keys for cloud-storage (and error logging)
  • Customize field settings, but typically start with:
    • BUCKET_TYPE=dev
    • NODE_TYPE=hls-only
  • cp docker-compose.rpi-pull.yml docker-compose.yml
  • docker-compose up -d

F. Beta test end-to-end streaming

G. Put node into production

Care & feeding of Orcasound's live-listening web app

How-to: add a node to the Orcasound web app

Add to the web app

How-to: add a node to Orcasound web sites

  • Add node and associated assets to Orcasound site(s)
    • Create a Portfolio/Project page on the Wordpress site
    • Creat a new static project node page within orcahome?

How-to: add a node to the OrcaHello realtime inference system

  • Add node to ML pipeline, e.g. OrcaHello
    • Create new instance
    • modify OrcaHello Moderator UI's location filter dropdown?

How-to: add a node to Orcasound's analytics

  • Add new Google tracking codes within orcasite?
  • Add display of new node in Google Analytics visualizations, e.g. Orcasound user data dashboard
  • Any changes needed in notifications/subscriptions (e.g. Sendgrid or Mailchimp)?