diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..ef8b394 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,61 @@ +name: release docs + +on: + push: + tags: + - hatch-v* + - hatchling-v* + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + + - name: Ensure latest pip + run: python -m pip install --upgrade pip + + - name: Install env + run: pip install -e . + + - name: Configure Git for GitHub Actions bot + run: | + git config --local user.name 'github-actions[bot]' + git config --local user.email 'github-actions[bot]@users.noreply.github.com' + - name: Build documentation + run: hatch run docs:build + env: + GH_TOKEN_MKDOCS_MATERIAL_INSIDERS: ${{ secrets.GH_TOKEN_MKDOCS_MATERIAL_INSIDERS }} + + - name: Create archive + run: git archive -o site.zip gh-pages + + - uses: actions/upload-artifact@v3 + with: + name: documentation + path: site.zip + + publish: + runs-on: ubuntu-latest + needs: + - build + + steps: + - uses: actions/download-artifact@v3 + with: + name: documentation + + - name: Unpack archive + run: python -m zipfile -e site.zip site + + - uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site + commit_message: ${{ github.event.head_commit.message }} + enable_jekyll: false + allow_empty_commit: false diff --git a/docs/hardware/assembly_guide.md b/docs/hardware/assembly_guide.md index 69e0ea8..7f0cde1 100644 --- a/docs/hardware/assembly_guide.md +++ b/docs/hardware/assembly_guide.md @@ -206,6 +206,7 @@ Inspect the case parts and panels for any damage or imperfections that may have ![planktoscope-assembly-023.png](../images/assembly_guide/planktoscope-assembly-023.png) To secure the PlanktoScope on slippery grounds using the adhesive pads, follow these steps. Gather all the necessary materials. You will need: +- Time: 1 min - 👁 and Take the Part I - 🟠 Take the four adhesive pads present in the bag A. - 🟣 Locate the four pockets that will receive the four adhesive pads. @@ -230,6 +231,8 @@ To secure the PlanktoScope on slippery grounds using the adhesive pads, follow t Now it's time to assemble the ground plate for the Raspberry Pi as the PlanktoScope main processing unit. +- Time: 5 min + --- ![planktoscope-assembly-027.png](../images/assembly_guide/planktoscope-assembly-027.png) @@ -283,6 +286,8 @@ Keep going for each of the **four holes**. ![planktoscope-assembly-035.png](../images/assembly_guide/planktoscope-assembly-035.png) +- Time: 2 min + Locate the **Raspberry Pi 4 Model B** packaging. !!! warning @@ -343,6 +348,8 @@ Push the **micro SD card** in the **Raspberry Pi** port to a point of resistance ## Chapter 6: Mount the **Raspberry Pi** on the **Part A** +- Time: 1 min + ![planktoscope-assembly-044.png](../images/assembly_guide/planktoscope-assembly-044.png) - ✅ Make sure to position the Raspberry Pi properly on the four standoffs screwed on the Part A. @@ -384,6 +391,8 @@ Screw by hand a Standoff M2.5 - 16mm on the **Raspberry Pi**. ## Chapter 7: Attach the **Ribbon Cable** to the **Raspberry Pi** +- Time: 2 min + ![planktoscope-assembly-051.png](../images/assembly_guide/planktoscope-assembly-051.png) Locate the **Raspberry Pi Camera HQ** packaging. @@ -451,6 +460,8 @@ Insert the **Ribbon Cable** you just detached from the **Raspberry Pi Camera** i ![planktoscope-assembly-059.png](../images/assembly_guide/planktoscope-assembly-059.png) +- Time: 2 min + Locate the **PlanktoScope HAT** present in **bag I**. --- @@ -516,6 +527,7 @@ Screw the four **A4** screws through the **PlanktoScope HAT** onto the **Standof ![planktoscope-assembly-068.png](../images/assembly_guide/planktoscope-assembly-068.png) +- Time: 2 min - Locate the **DC Power Jack** from the **Bag K**. - Remove the **Lock Ring** from the **DC Power Jack** @@ -554,6 +566,8 @@ Screw the four **A4** screws through the **PlanktoScope HAT** onto the **Standof ![planktoscope-assembly-074.png](../images/assembly_guide/planktoscope-assembly-074.png) +- Time: 2 min + --- ![planktoscope-assembly-075.png](../images/assembly_guide/planktoscope-assembly-075.png) diff --git a/docs/hardware/kit_preparation_guide.md b/docs/hardware/kit_preparation_guide.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/hardware/manufacturing.md b/docs/hardware/manufacturing.md index d54dddd..6ceecce 100644 --- a/docs/hardware/manufacturing.md +++ b/docs/hardware/manufacturing.md @@ -60,7 +60,7 @@ Rubio Monocoat Plus is also environmentally friendly, with a low VOC (volatile o We use Rubio Monocoat Plus as a finishing product for Valchromat. -### Workflow +### CNC workflow Here is a step-by-step guide on how to configure the feed rate and the diameter of the end mill of a CNC milling machine for the production of a workpiece, using the specified tools and configuration: @@ -92,6 +92,74 @@ By following these steps, you can properly configure the feed rate and the diame ![planktoscope_case_00.png](../images/hardware/planktoscope_case_00.png) +### Finnish of the case parts + +#### Requirements for case parts + +##### Case tools + +- Hammer +- Air Compressor +- Rubber gloves +- Paper carpet pad +- Clean piece of cotton fabric +- Support material for drying the parts + +##### Case part parts + +- all case parts +- Rubio Monocoat Oil Plus 2C +- Rubio Monocoat Accelerator Component B +- Magnets +- Square nuts + +#### Clean + +![](../images/manufacturing_guide/IMG_20230205_114522_026.jpg) + +#### Stir + +![](../images/manufacturing_guide/IMG_20230205_121506_912.jpg) +![](../images/manufacturing_guide/IMG_20230205_121600_985.jpg) + +#### Apply + +![](../images/manufacturing_guide/IMG_20230205_121740_849.jpg) +![](../images/manufacturing_guide/IMG_20230205_122339_866.jpg) +![](../images/manufacturing_guide/IMG_20230205_123231_263.jpg) + +#### Dry + +![](../images/manufacturing_guide/IMG_20230205_141852_172.jpg) + +#### Inserting the screws + +![](../images/manufacturing_guide/IMG_20230206_182410_394.jpg) +![](../images/manufacturing_guide/IMG_20230206_194436_007.jpg) +![](../images/manufacturing_guide/IMG_20230206_195227_606.jpg) + +#### Inserting the magnets + +![](../images/manufacturing_guide/IMG_20230206_185209_322.jpg) +![](../images/manufacturing_guide/IMG_20230206_185827_022.jpg) +![](../images/manufacturing_guide/IMG_20230206_190002_449.jpg) +![](../images/manufacturing_guide/IMG_20230206_191831_326.jpg) +![](../images/manufacturing_guide/IMG_20230206_191905_086.jpg) +![](../images/manufacturing_guide/IMG_20230206_191911_092.jpg) +![](../images/manufacturing_guide/IMG_20230206_192122_827.jpg) +![](../images/manufacturing_guide/IMG_20230206_191942_446.jpg) +![](../images/manufacturing_guide/IMG_20230206_192115_770.jpg) +![](../images/manufacturing_guide/IMG_20230206_192048_827.jpg) +![](../images/manufacturing_guide/IMG_20230206_190821_839.jpg) +![](../images/manufacturing_guide/IMG_20230206_191601_928.jpg) +![](../images/manufacturing_guide/IMG_20230206_192512_587.jpg) +![](../images/manufacturing_guide/IMG_20230206_192610_421.jpg) + +#### Package Housing part + +![](../images/manufacturing_guide/IMG_20230206_212202_209.jpg) +![](../images/manufacturing_guide/IMG_20230206_211854_910.jpg) + ## PlanktoScope Hat Welcome to the PCB production manual for the PlanktoScope Hat! @@ -252,22 +320,22 @@ To ensure the quality of the produced PCB, request data validation from the cust ### Assembly of the Thru-Hole components -#### Requirements +#### Thru-Hole Requirements -##### Tools +![](../images/manufacturing_guide/IMG_20230210_130428_325.jpg) + +##### Thru-Hole tools - [professional Soldering iron](https://en.wikipedia.org/wiki/Soldering_station) - [solder](https://en.wikipedia.org/wiki/Solder) with flux -- [Helping hand]() +- [Helping hand]() or [Breadboard](https://en.wikipedia.org/wiki/Breadboard) -##### Parts +##### Thru-Hole parts | Files | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | | [Planktoscope-Hat-throughhole.csv](https://code.curious.bio/curious.bio/planktoscope/raw/branch/din_spec_3105_1/hardware/hat/Planktoscope-Hat-throughhole.csv) | The list of used SMD components | -#### Step by step guide - !!! warning When you solder this for the first time, take special care not to damage the board. @@ -275,3 +343,241 @@ To ensure the quality of the produced PCB, request data validation from the cust !!! info To learn how to solder we recommend you the awesome [Comic "Soldering is easy" by Mitch Altmal, Andie Nordgren and Jeff Keyzer](https://mightyohm.com/soldercomic/) + +#### Soldering of the stepper motor driver + +![](../images/manufacturing_guide/IMG_20230210_131022_517.jpg) + +Unpack the motor driver and the connector strips and take the breadboard aside. + +--- + +![](../images/manufacturing_guide/IMG_20230210_131109_910.jpg) + +Plug the connectors with the appropriate distance to the breadboard. + +!!! Info + + The breadboard supports you during soldering to ensure the spacing and angle of the connectors, alternatively you can also use a third hand. + +--- + +![](../images/manufacturing_guide/IMG_20230210_133453_815.jpg) + +Now position the motor driver on the connector strips of the beadboard. + +!!! Warning + + Make sure that the larger chip labeled trimatik is positioned on the bottom of the board and the four smaller chips are positioned on the top of the board as shown in the picture. + +--- + +![](../images/manufacturing_guide/IMG_20230210_133632_016.jpg) + +Now solder all pins of the connector strip. + +!!! Info + + Soldering is sometimes like eating with chopsticks 🥢. It takes a bit of practice, but with time you learn how to hold the workpiece in place with one free finger and apply the solder with another, and then use the other hand to move the soldering iron to the workpiece and solder it. + +!!! Tip + + You can also solder one pin on one side and then the opposite one to fix your workpiece, this ensures that nothing accidentally moves. + +--- + +#### Soldering of the motor driver sockets + +![](../images/manufacturing_guide/IMG_20230210_134008_727.jpg) + +Now take the PlanktoScope Hat board and the female connector of the stepper motor driver and position them as shown in the picture. + +--- + +![](../images/manufacturing_guide/IMG_20230210_134140_898.jpg) + +Now put the previously soldered motor driver on the socket connector to fix it for the soldering process. Turn the board as shown in the picture and place it carefully. + +--- + +![](../images/manufacturing_guide/IMG_20230210_134243_277.jpg) + +Now solder all pins of the connector strip. + +!!! Info + + Soldering is sometimes like eating with chopsticks 🥢. It takes a bit of practice, but with time you learn how to hold the workpiece in place with one free finger and apply the solder with another, and then use the other hand to move the soldering iron to the workpiece and solder it. + +!!! Tip + + You can also solder one pin on one side and then the opposite one to fix your workpiece, this ensures that nothing accidentally moves. + +--- + +![](../images/manufacturing_guide/IMG_20230210_135810_493.jpg) + +Repeat the procedure with the second motor driver. The end result should look like this. + +--- + +#### Soldering the connection sockets + +![](../images/manufacturing_guide/IMG_20230210_135925_885.jpg) + +Now solder the motor driver sockets, inserting the connector into the holes as shown. + +--- + +![](../images/manufacturing_guide/IMG_20230210_140051_746.jpg) + +Turn the board over and hold the loose connector while soldering it. Repeat the procedure with the second motor connector. + +!!! Info + + Soldering is sometimes like eating with chopsticks 🥢. It takes a bit of practice, but with time you learn how to hold the workpiece in place with one free finger and apply the solder with another, and then use the other hand to move the soldering iron to the workpiece and solder it. + +--- + +![](../images/manufacturing_guide/IMG_20230210_140238_720.jpg) + +Repeat the procedure with the power connector. The end result should look like this. + +--- + +![](../images/manufacturing_guide/IMG_20230210_140454_602.jpg) + +Repeat the procedure with the led connector. The end result should look like this. + +--- + +#### Soldering the Raspberry Pi connector + +![](../images/manufacturing_guide/IMG_20230210_141753_889.jpg) + +Now solder the Raspberry Pi header connector with all 20 pins. + +!!! Warning + + Be extremely careful when soldering the connections, make sure you don't accidentally bridge several contacts because you used too much solder or have cold solder joints because you had too little solder or too little heat. + +--- + +#### Install and solder the cooling fan + + + +Install the fan with the four screws and nuts. + +!!! Warning + + Pay attention to the running direction with the arrow marking on the side of the fan. The fan should blow on the cooler of the Raspberry Pi. + +--- + + + +Cut off the excess cable of the fan and leave about 6 cm. + +--- + +![](../images/manufacturing_guide/IMG_20230210_144404_281.jpg) + +Feed the fan cable through the hole provided, check if you can reach the contacts on the board without any problems and trim it further if necessary and enisolate the ends. + +--- + +![](../images/manufacturing_guide/IMG_20230210_144605_565.jpg) + +Solder the fan cables according to the marking and color codes ⚫ GND, 🔴 VCC, 🟡 RPM, 🔵 PWM. + +!!! note + + If your fan doesn't have a 🔵 PWM connector, then that's not a problem, you can just leave it out. + +--- + +#### Solder the display connector + +![](../images/manufacturing_guide/IMG_20230210_144803_799.jpg) + +Insert the pin headers into the holes provided, hold them in place, carefully turn the board over and solder the connector. + +!!! note + + If you do not use an OLED display, you do not need to solder the connector. + +--- + +#### Solder the configuration option jumpers + + + +Insert the pin headers into the holes provided, hold them in place, carefully turn the board over and solder the connector. + +!!! note + + If you do not use an OLED display, you do not need to solder the connector. + +--- + +#### You have finished soldering the components + +![](../images/manufacturing_guide/IMG_20230210_144924_538.jpg) + +The assembly of the thru-hole components for the planktoscope hat is now complete. The end result should look like this. + +--- + +## PlanktoScope Hard case + +### Hard case Requirements + +#### Hard case tools + +- double sided adhesive tape + +#### Hard case parts + +- Hard case + +![Case and double sided adhesive tape](../images/manufacturing_guide/IMG_20230129_163747_902.jpg) + +### Foam preparation + +![Divide foam](../images/manufacturing_guide/IMG_20230129_163501_186.jpg) + +Cut the foam block at the outer edge by gently tearing it apart with your fingers. + +!!! Warning + + Be careful the foam tears easily and can not be repaired. + +!!! Tip + + You can try in the middle of the foam block to see how the material can be cut through before you peel off with the edge. + +--- + +![Foam glue](../images/manufacturing_guide/IMG_20230129_163337_964.jpg) + +Now lay a layer of two-sided adhesive tape on the upper inside edge of the case, with which we can later attach the show fabric. + +--- + +![Insert foam](../images/manufacturing_guide/IMG_20230129_163710_699.jpg) + +Now insert the foam edge in to the case and glue it to the outer wall. + +!!! Note + + Before you fix the foam, position it completely and check that it is placed flush with the edge of the case. + +--- + +## Kit composition + + + +Now divide all the components for a kit and pack it in the hard case. + +--- diff --git a/docs/images/manufacturing_guide/IMG_20230129_163337_964.jpg b/docs/images/manufacturing_guide/IMG_20230129_163337_964.jpg new file mode 100644 index 0000000..e5c2d30 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230129_163337_964.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230129_163501_186.jpg b/docs/images/manufacturing_guide/IMG_20230129_163501_186.jpg new file mode 100644 index 0000000..180b475 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230129_163501_186.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230129_163710_699.jpg b/docs/images/manufacturing_guide/IMG_20230129_163710_699.jpg new file mode 100644 index 0000000..f4000ad Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230129_163710_699.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230129_163747_902.jpg b/docs/images/manufacturing_guide/IMG_20230129_163747_902.jpg new file mode 100644 index 0000000..4ce104f Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230129_163747_902.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230129_225616_283.jpg b/docs/images/manufacturing_guide/IMG_20230129_225616_283.jpg new file mode 100644 index 0000000..656389d Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230129_225616_283.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_114522_026.jpg b/docs/images/manufacturing_guide/IMG_20230205_114522_026.jpg new file mode 100644 index 0000000..09fd984 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_114522_026.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_121506_912.jpg b/docs/images/manufacturing_guide/IMG_20230205_121506_912.jpg new file mode 100644 index 0000000..363415c Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_121506_912.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_121600_985.jpg b/docs/images/manufacturing_guide/IMG_20230205_121600_985.jpg new file mode 100644 index 0000000..e5981f9 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_121600_985.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_121740_849.jpg b/docs/images/manufacturing_guide/IMG_20230205_121740_849.jpg new file mode 100644 index 0000000..eb5c819 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_121740_849.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_122339_866.jpg b/docs/images/manufacturing_guide/IMG_20230205_122339_866.jpg new file mode 100644 index 0000000..26e3506 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_122339_866.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_123231_263.jpg b/docs/images/manufacturing_guide/IMG_20230205_123231_263.jpg new file mode 100644 index 0000000..ec1893e Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_123231_263.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230205_141852_172.jpg b/docs/images/manufacturing_guide/IMG_20230205_141852_172.jpg new file mode 100644 index 0000000..d235373 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230205_141852_172.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_182410_394.jpg b/docs/images/manufacturing_guide/IMG_20230206_182410_394.jpg new file mode 100644 index 0000000..449d110 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_182410_394.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_185209_322.jpg b/docs/images/manufacturing_guide/IMG_20230206_185209_322.jpg new file mode 100644 index 0000000..5ac8eca Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_185209_322.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_185827_022.jpg b/docs/images/manufacturing_guide/IMG_20230206_185827_022.jpg new file mode 100644 index 0000000..5828750 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_185827_022.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_190002_449.jpg b/docs/images/manufacturing_guide/IMG_20230206_190002_449.jpg new file mode 100644 index 0000000..07e8794 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_190002_449.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_190821_839.jpg b/docs/images/manufacturing_guide/IMG_20230206_190821_839.jpg new file mode 100644 index 0000000..debe2d4 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_190821_839.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_191601_928.jpg b/docs/images/manufacturing_guide/IMG_20230206_191601_928.jpg new file mode 100644 index 0000000..f063583 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_191601_928.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_191831_326.jpg b/docs/images/manufacturing_guide/IMG_20230206_191831_326.jpg new file mode 100644 index 0000000..9fa6166 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_191831_326.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_191905_086.jpg b/docs/images/manufacturing_guide/IMG_20230206_191905_086.jpg new file mode 100644 index 0000000..8dd2305 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_191905_086.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_191911_092.jpg b/docs/images/manufacturing_guide/IMG_20230206_191911_092.jpg new file mode 100644 index 0000000..bcbe7ad Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_191911_092.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_191942_446.jpg b/docs/images/manufacturing_guide/IMG_20230206_191942_446.jpg new file mode 100644 index 0000000..349e144 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_191942_446.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_192048_827.jpg b/docs/images/manufacturing_guide/IMG_20230206_192048_827.jpg new file mode 100644 index 0000000..a4d10f1 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_192048_827.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_192115_770.jpg b/docs/images/manufacturing_guide/IMG_20230206_192115_770.jpg new file mode 100644 index 0000000..1d09a62 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_192115_770.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_192122_827.jpg b/docs/images/manufacturing_guide/IMG_20230206_192122_827.jpg new file mode 100644 index 0000000..9192b74 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_192122_827.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_192512_587.jpg b/docs/images/manufacturing_guide/IMG_20230206_192512_587.jpg new file mode 100644 index 0000000..9e91e01 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_192512_587.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_192610_421.jpg b/docs/images/manufacturing_guide/IMG_20230206_192610_421.jpg new file mode 100644 index 0000000..e53d87b Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_192610_421.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_194436_007.jpg b/docs/images/manufacturing_guide/IMG_20230206_194436_007.jpg new file mode 100644 index 0000000..a083d14 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_194436_007.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_195227_606.jpg b/docs/images/manufacturing_guide/IMG_20230206_195227_606.jpg new file mode 100644 index 0000000..dd499ef Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_195227_606.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_204210_174.jpg b/docs/images/manufacturing_guide/IMG_20230206_204210_174.jpg new file mode 100644 index 0000000..faa52a9 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_204210_174.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_211854_910.jpg b/docs/images/manufacturing_guide/IMG_20230206_211854_910.jpg new file mode 100644 index 0000000..6305e1e Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_211854_910.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230206_212202_209.jpg b/docs/images/manufacturing_guide/IMG_20230206_212202_209.jpg new file mode 100644 index 0000000..1a17854 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230206_212202_209.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_130428_325.jpg b/docs/images/manufacturing_guide/IMG_20230210_130428_325.jpg new file mode 100644 index 0000000..e4ba877 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_130428_325.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_131022_517.jpg b/docs/images/manufacturing_guide/IMG_20230210_131022_517.jpg new file mode 100644 index 0000000..139b63a Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_131022_517.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_131109_910.jpg b/docs/images/manufacturing_guide/IMG_20230210_131109_910.jpg new file mode 100644 index 0000000..d4dadec Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_131109_910.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_133453_815.jpg b/docs/images/manufacturing_guide/IMG_20230210_133453_815.jpg new file mode 100644 index 0000000..1576f17 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_133453_815.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_133632_016.jpg b/docs/images/manufacturing_guide/IMG_20230210_133632_016.jpg new file mode 100644 index 0000000..506668c Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_133632_016.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_134008_727.jpg b/docs/images/manufacturing_guide/IMG_20230210_134008_727.jpg new file mode 100644 index 0000000..748f996 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_134008_727.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_134140_898.jpg b/docs/images/manufacturing_guide/IMG_20230210_134140_898.jpg new file mode 100644 index 0000000..4f14107 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_134140_898.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_134243_277.jpg b/docs/images/manufacturing_guide/IMG_20230210_134243_277.jpg new file mode 100644 index 0000000..adcdb33 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_134243_277.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_135810_493.jpg b/docs/images/manufacturing_guide/IMG_20230210_135810_493.jpg new file mode 100644 index 0000000..5bac869 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_135810_493.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_135925_885.jpg b/docs/images/manufacturing_guide/IMG_20230210_135925_885.jpg new file mode 100644 index 0000000..0b77e0d Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_135925_885.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_140051_746.jpg b/docs/images/manufacturing_guide/IMG_20230210_140051_746.jpg new file mode 100644 index 0000000..8c9c3a5 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_140051_746.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_140238_720.jpg b/docs/images/manufacturing_guide/IMG_20230210_140238_720.jpg new file mode 100644 index 0000000..3899fc9 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_140238_720.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_140454_602.jpg b/docs/images/manufacturing_guide/IMG_20230210_140454_602.jpg new file mode 100644 index 0000000..5dc21f8 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_140454_602.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_141753_889.jpg b/docs/images/manufacturing_guide/IMG_20230210_141753_889.jpg new file mode 100644 index 0000000..202386e Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_141753_889.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_144404_281.jpg b/docs/images/manufacturing_guide/IMG_20230210_144404_281.jpg new file mode 100644 index 0000000..6ab7f22 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_144404_281.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_144605_565.jpg b/docs/images/manufacturing_guide/IMG_20230210_144605_565.jpg new file mode 100644 index 0000000..2e1ce70 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_144605_565.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_144803_799.jpg b/docs/images/manufacturing_guide/IMG_20230210_144803_799.jpg new file mode 100644 index 0000000..5af87b8 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_144803_799.jpg differ diff --git a/docs/images/manufacturing_guide/IMG_20230210_144924_538.jpg b/docs/images/manufacturing_guide/IMG_20230210_144924_538.jpg new file mode 100644 index 0000000..06570f1 Binary files /dev/null and b/docs/images/manufacturing_guide/IMG_20230210_144924_538.jpg differ diff --git a/docs/images/planktoscope-buildworkshops-tfom23-expo.jpg b/docs/images/planktoscope-buildworkshops-tfom23-expo.jpg new file mode 100644 index 0000000..2cb37e5 Binary files /dev/null and b/docs/images/planktoscope-buildworkshops-tfom23-expo.jpg differ diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-000.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-000.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-000.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-000.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-015.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-015.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-015.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-015.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-019.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-019.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-019.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-019.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-020.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-020.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-020.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-020.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-023.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-023.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-023.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-023.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-024.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-024.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-024.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-024.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-027.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-027.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-027.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-027.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-028.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-028.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-028.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-028.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-031.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-031.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-031.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-031.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-032.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-032.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-032.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-032.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-035.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-035.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-035.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-035.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-036.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-036.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-036.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-036.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-039.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-039.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-039.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-039.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-040.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-040.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-040.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-040.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-043.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-043.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-043.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-043.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-044.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-044.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-044.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-044.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-047.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-047.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-047.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-047.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-048.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-048.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-048.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-048.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-051.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-051.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-051.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-051.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-054.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-054.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-054.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-054.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-055.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-055.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-055.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-055.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-058.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-058.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-058.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-058.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-059.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-059.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-059.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-059.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-062.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-062.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-062.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-062.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-063.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-063.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-063.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-063.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-066.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-066.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-066.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-066.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-069.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-069.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-069.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-069.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-070.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-070.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-070.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-070.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-073.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-073.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-073.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-073.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-074.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-074.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-074.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-074.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-077.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-077.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-077.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-077.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-078.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-078.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-078.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-078.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-083.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-083.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-083.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-083.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-086.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-086.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-086.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-086.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-087.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-087.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-087.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-087.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-090.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-090.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-090.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-090.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-091.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-091.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-091.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-091.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-096.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-096.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-096.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-096.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-097.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-097.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-097.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-097.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-100.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-100.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-100.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-100.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-101.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-101.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-101.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-101.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-104.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-104.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-104.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-104.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-105.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-105.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-105.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-105.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-108.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-108.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-108.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-108.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-109.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-109.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-109.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-109.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-112.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-112.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-112.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-112.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-113.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-113.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-113.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-113.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-118.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-118.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-118.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-118.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-119.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-119.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-119.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-119.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-124.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-124.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-124.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-124.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-127.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-127.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-127.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-127.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-128.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-128.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-128.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-128.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-131.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-131.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-131.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-131.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-132.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-132.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-132.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-132.png diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-137.jpg b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-137.jpg similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-137.jpg rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-137.jpg diff --git a/docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-138.png b/docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-138.png similarity index 100% rename from docs/images/protocol_primer/PlanktoScope_Setup_and_Sampling_Guide_VER3-138.png rename to docs/images/protocol_primer/old/PlanktoScope_Setup_and_Sampling_Guide_VER3-138.png diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-01.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-01.png new file mode 100644 index 0000000..343769d Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-01.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-02.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-02.png new file mode 100644 index 0000000..29c3def Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-02.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-03.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-03.png new file mode 100644 index 0000000..3375b07 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-03.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-04.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-04.png new file mode 100644 index 0000000..2f90b95 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-04.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-05.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-05.png new file mode 100644 index 0000000..8f60c8d Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-05.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-06.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-06.png new file mode 100644 index 0000000..2b5f2b1 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-06.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-07.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-07.png new file mode 100644 index 0000000..21d9646 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-07.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-08.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-08.png new file mode 100644 index 0000000..34a6fef Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-08.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-09.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-09.png new file mode 100644 index 0000000..152a102 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-09.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-10.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-10.png new file mode 100644 index 0000000..9c5808c Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-10.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-11.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-11.png new file mode 100644 index 0000000..c5de009 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-11.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-12.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-12.png new file mode 100644 index 0000000..3446f6e Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-12.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-13.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-13.png new file mode 100644 index 0000000..3f744c3 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-13.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-14.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-14.png new file mode 100644 index 0000000..23c1dcc Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-14.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-15.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-15.png new file mode 100644 index 0000000..c847957 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-15.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-16.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-16.png new file mode 100644 index 0000000..fd2786b Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-16.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-17.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-17.png new file mode 100644 index 0000000..6fbaf4a Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-17.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-18.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-18.png new file mode 100644 index 0000000..c877ccb Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-18.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-19.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-19.png new file mode 100644 index 0000000..d0b256c Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-19.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-20.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-20.png new file mode 100644 index 0000000..db32567 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-20.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-21.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-21.png new file mode 100644 index 0000000..033e480 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-21.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-22.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-22.png new file mode 100644 index 0000000..7413fc4 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-22.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-23.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-23.png new file mode 100644 index 0000000..b1c14dd Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-23.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-24.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-24.png new file mode 100644 index 0000000..2d2fa1f Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-24.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-25.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-25.png new file mode 100644 index 0000000..7ffc405 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-25.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-26.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-26.png new file mode 100644 index 0000000..a7bb4c0 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-26.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-27.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-27.png new file mode 100644 index 0000000..ca021f8 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-27.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-28.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-28.png new file mode 100644 index 0000000..bc64182 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-28.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-29.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-29.png new file mode 100644 index 0000000..903fdaf Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-29.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-30.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-30.png new file mode 100644 index 0000000..69bc162 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-30.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-31.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-31.png new file mode 100644 index 0000000..35a4d2c Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-31.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-32.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-32.png new file mode 100644 index 0000000..5b9f31d Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-32.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-33.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-33.png new file mode 100644 index 0000000..e7060aa Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-33.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-34.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-34.png new file mode 100644 index 0000000..0f76476 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-34.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-35.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-35.png new file mode 100644 index 0000000..90bcca1 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-35.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-36.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-36.png new file mode 100644 index 0000000..f8905dd Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-36.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-37.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-37.png new file mode 100644 index 0000000..ba5c1e5 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-37.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-38.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-38.png new file mode 100644 index 0000000..9b33caa Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-38.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-39.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-39.png new file mode 100644 index 0000000..001d95a Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-39.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-40.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-40.png new file mode 100644 index 0000000..dd3fb4f Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-40.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-41.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-41.png new file mode 100644 index 0000000..cdabea3 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-41.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-42.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-42.png new file mode 100644 index 0000000..cb0aeed Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-42.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-43.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-43.png new file mode 100644 index 0000000..224f21d Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-43.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-44.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-44.png new file mode 100644 index 0000000..2ebeff8 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-44.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-45.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-45.png new file mode 100644 index 0000000..4239462 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-45.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-46.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-46.png new file mode 100644 index 0000000..7be7320 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-46.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-47.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-47.png new file mode 100644 index 0000000..c0fab30 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-47.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-48.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-48.png new file mode 100644 index 0000000..abe5e5f Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-48.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-49.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-49.png new file mode 100644 index 0000000..eb9aa72 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-49.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-50.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-50.png new file mode 100644 index 0000000..4360ea2 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-50.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-51.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-51.png new file mode 100644 index 0000000..b0eac9b Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-51.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-52.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-52.png new file mode 100644 index 0000000..2957b3e Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-52.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-53.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-53.png new file mode 100644 index 0000000..88f44e9 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-53.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-54.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-54.png new file mode 100644 index 0000000..4778093 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-54.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-55.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-55.png new file mode 100644 index 0000000..641c597 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-55.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-56.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-56.png new file mode 100644 index 0000000..0d0d5c4 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-56.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-57.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-57.png new file mode 100644 index 0000000..d50077e Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-57.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-58.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-58.png new file mode 100644 index 0000000..ff71977 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-58.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-59.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-59.png new file mode 100644 index 0000000..d4a087e Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-59.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-60.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-60.png new file mode 100644 index 0000000..86c03c2 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-60.png differ diff --git a/docs/images/protocol_primer/protocol-for-plankton-imaging-61.png b/docs/images/protocol_primer/protocol-for-plankton-imaging-61.png new file mode 100644 index 0000000..19da838 Binary files /dev/null and b/docs/images/protocol_primer/protocol-for-plankton-imaging-61.png differ diff --git a/docs/index.md b/docs/index.md index 13a9e04..0643856 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,9 +33,9 @@ Here are some key features of the PlanktoScope: ### Size -- height: 150 mm -- wide: 350 mm -- depth: 150 mm +- height: 105 mm +- wide: 275 mm +- depth: 125 mm ### Hardware diff --git a/docs/protocol.md b/docs/protocol.md new file mode 100644 index 0000000..d6586f1 --- /dev/null +++ b/docs/protocol.md @@ -0,0 +1,1690 @@ +### FEB 14, 2023 + +# Planktoscope protocol for plankton imaging V. + +## Lombard Fabien ,Will Major,Anna Oddone , + +## Clémence Clausse + +``` +Sorbonne Université, Centre National de la Recherche Scientifique, +Laboratoire d’Océanographie de Villefranche (LOV), Villefranche-sur-Mer, +France; +Institut Universitaire de France, 75231 Paris, France; +National Oceanography Centre, European Way, Southampton SO14 3ZH; +Plankton Planet +``` + +``` +LOVComplex +``` + +Lombard Fabien +**DOI:** +dx.doi.org/10.17504/protocol +s.io.bp2l6bq3zgqe/v + +**External link:** +https://www.planktoscope.org +/ + +**Protocol Citation:** Lombard +Fabien, Will Major, Anna +Oddone, Clémence Clausse 2023. Planktoscope protocol +for plankton imaging. +**protocols.io** +https://dx.doi.org/10.17504/p +rotocols.io.bp2l6bq3zgqe/v2V +ersion created by Lombard +Fabien + +``` +1,2 3 4 +4 +``` + +``` +1 +``` + +``` +2 +3 +4 +``` + +### DISCLAIMER + +``` +this protocols applies to the version 2.5 of the planktoscope and the 2. +version of software. it is optimised to image 40μm-200μm organisms using the +25mm lens (as tube lens) and 16mm one as objective one and may be +inaccurate with other configurations or light. Please note that the segmenter in +currently also optimised for this and may need to be recoded (or adjusted) for +other configurations, notably the size threshold but also the intensity threshold +``` + +### ABSTRACT + +``` +this protocol is for using planktoscope and collect usable result for quantitative +imaging of plankton +see also https://www.planktoscope.org/ +``` + +``` +IMAGE ATTRIBUTION +Fabien Lombard, Thibaut Pollina, Karine Leblanc, Will Major +``` + +``` +GUIDELINES +Planktoscope is an optical instrument. As it optical elements (camera, lenses, +flowcell) are highly sensible to dust and dirt. we recommend that you never touch +any of those component with fingers and store the planktoscope in a dust free and +humidity free area (or in a box when not used) +complete manual of assembly and software could be found at +https://planktonscope.readthedocs.io/en/latest/ +``` + +## VERSION 2 + +``` +protocols.io | +``` + +**MANUSCRIPT CITATION:** +Pollina T, Larson AG, Lombard +F, Li H, Le Guen D, Colin S, de +Vargas C, Prakash M (2022) +PlanktoScope: Affordable +Modular Quantitative Imaging +Platform for Citizen +Oceanography. Frontiers in +Marine Science 9. doi: +10.3389/fmars.2022. + +Pollina T, Larson A, Lombard +F, Li H, Colin S, Vargas C de, +Prakash M (2020) +PlanktonScope: Affordable +modular imaging platform for +citizen oceanography. bioRxiv +2020.04.23.056978. doi: +10.1101/2020.04.23. + +Mériguet Z, Oddone A, Le +Guen D, Pollina T, Bazile R, +Moulin C, Troublé R, Prakash +M, de Vargas C, Lombard F +(2022) Basin-Scale Underway +Quantitative Survey of Surface +Microplankton Using Affordable +Collection and Imaging Tools +Deployed From Tara. Frontiers +in Marine Science 9. doi: +10.3389/fmars.2022. + +de Vargas C, Le Bescot N, +Pollina T, Henry N, Romac S, +Colin S, Haëntjens N, +Carmichael M, Berger C, Le +Guen D, Decelle J, Mahé F, +Poulain J, Malpot E, Beaumont +C, Hardy M, Guiffant D, +Probert I, Gruber DF, Allen AE, +Gorsky G, Follows MJ, Pochon +X, Troublé R, Cael BB, +Lombard F, Boss E, Prakash +M, the Plankton Planet core +team, Bazile R, Boss E, +Bourdin G, Cael B, Casati R, +Colin S, Vargas C de, Gorsky +G, Guiffant D, Haentjens N, +Henry N, Larson A, Bescot NL, +Lombard F, Mirambeau G, +Moulin C, Oddone A, Prakash +M, Prazuck C, Raimbault V, +Trellu C, Troublé R (2022) +Plankton Planet: A frugal, +cooperative measure of +aquatic life at the planetary +scale. Frontiers in Marine +Science 9 + +### MATERIALS + +``` +Plankton net +200μm sieve +Squizing bottle +micrometer slide (or millimetric ruller) +Optical paper +Dry gas dispenser +``` + +``` +SAFETY WARNINGS +``` + +``` +Planktoscope is an electronic device, powered with electricity. It is +therefore sensible to water. +``` + +- Place it in an environment where water can not enter in contact with + the instrument and secure its electrical part. +- Be careful when manipulating samples, take care of having the exhaust + tube in a "trash" contained to avoid spillage +- glass parts are present (flowcell) and should be manipulated with + caution (can break and injure you), but also should be kept clean (avoid + touching it with fingers) + +### BEFORE START INSTRUCTIONS + +``` +-Test the protocol before acquisition of your first sample +-Calibrate your instruments to ensure coherent measures +-Create an Ecotaxa account and request the right to create project way before +-Collect a plankton sample using a net +``` + +**License:** This is an open +access protocol distributed +under the terms of +the Creative Commons +Attribution License, which +permits unrestricted use, +distribution, and reproduction +in any medium, provided the +original author and source are +credited + +**Protocol status:** Working +We use this protocol and it's +working + +**Created:** Oct 06, 2022 + +**Last Modified:** Feb 14, 2023 + +**PROTOCOL integer ID:** +70911 + +**Keywords:** Planktoscope, +plankton, microscopy, +quantitative imaging, +microplankton + +# 1 PreparationPreparation + +``` +1. Plug in the Planktoscope +2. Connect to Planktoscope’s Wi-Fi go to step #3. +3. Type Planktoscope URL http://192.168.4.1:1880/ui/ +4. Check WB (in OPTIC CONFIGURATION) go to step #3. +5. Put 20 mL sample, add the air pump go to step #7. +6. Check Focus (in OPTIC CONFIGURATION) go to step #7. +``` + +# 1.1 AcquisitionAcquisition + +``` +1. Fill sample details (in SAMPLE) go to step #7. +2. Fill acquisition parameters (in FLUIDIC ACQUISITION) go to step #7. +3. pump to drain sedimented organisms go to step #7. +4. START! go to step #7. +``` + +# Quick usage version + +``` +protocols.io | +``` + +# 1.2 Cleaning Cleaning go to step + +``` +1. Drain the syringe (disconnect your system) +2. Drain the content +3. Replace with fresh water and drain several times (blowing in the syringe may helps) +4. Replace the system and drain first with tap water and then air +5. Empty waste container +``` + +``` +Plus, if not used immediately: +1. Put 20 mL diluted bleach +2. Leave 15’ +3. Drain the content (high pump speed) +``` + +``` +1. Put 10 mL fresh water +2. Drain the content (high pump speed) +``` + +# 1.3 AnalysisAnalysis + +``` +1. Fill segmentation parameters (in SEGMENTATION) go to step # +2. Start segmentation +3. Back-up data go to step # +4. Import on ecotaxa go to step # +``` + +# 1.4 Shut downShut down + +``` +1. Turn OFF (HOME) +2. Unplug the Planktoscope +``` + +# 2 + +``` +The Planktoscope is a frugal, microfluidic microscope designed with an open-hardware, open- +software approach. It was conceived within the idea of equipping the thousands of sailors +exploring the oceans with a high quality instrument suitable for deepening our knowledge of the +sea around us. +In this manual you will learn how to operate the Planktoscope and take images of plankton. +``` + +``` +Material:Material: +``` + +# Planktoscope, overview. + +protocols.io | + +``` +The device and its different parts are shown in the following figure. +``` + +``` +The PlanktoScope kit also includes a bubbler, power cable, waste container, falcon tube of tap +water, syringe (containing the sample), sample holder, flowcell holder and flowcell. +``` + +``` +The User InterfaceThe User Interface +There are several tabs on the UI that can be used to adjust setting, run samples +and take images. To navigate around the UI, all tabs are available from the Home +tab, including the Shutdown button which we will use when we have finished using the +PlanktoScope. +We can also use the 'Hamburger Menu', situated in the top-left corner of the UI, to +navigate between tabs. +``` + +``` +The 'Home' tab of PlanktoScope's User Interface +``` + +protocols.io | + +``` +The "Optic configuration" page allows you to control the various features of PlanktoScope. You +can focus, turn on the LED or start the pump. +``` + +``` +The "Segmentation" page is used to start the segmentation of the images taken in the previous +phase. The images will then be processed to extract only the plankton thumbnails. +``` + +protocols.io | + +``` +In the "Gallery" you can find the different files of the Planktoscope: the exports for EcoTaxa, the +original images and the extracted thumbnails. +``` + +``` +The "System monitoring" page allows you to check the correct operation of the device. You will +not use this step in standard use. +``` + +``` +The "Wifi" page gives you access to the characteristics of the wifi generated by the +PlanktoScope to which you will connect in order to control the device. You will not have to +modify anything on this page. The procedure for connecting will be detailed later in this manual. +``` + +protocols.io | + +``` +You will only need the "Hardware settings" page to replace the comma with a dot in the "pixel +size calibration" box. Do not change anything else. +``` + +# 3 Open the planktoscope box and check all the part first + +# 3.1 if not installed, place the pump tube in place (the pump could be turned to be open). caution, + +``` +clean the grease afterward +``` + +# 3.2 assemble the fluidic system + +# Initial connection and setup + +protocols.io | + +# 3.3 assemble the flow cell with care and step by step, note that a short length of the tube may + +``` +need to be cut to get the right distance from the syringe to the flowcell +``` + +# 3. + +``` +Safety information +``` + +``` +to protect the flow cell during assemblage, first be gentle with it, and second place a +spacer between magnets to avoid accidental breakage (here 3 layers of duck tape) +``` + +protocols.io | + +# 3.5 finally assemble all the system + +# 3.6 Power your Planktoscope by connecting power cable to the power input and turning on the + +``` +wall switch. Within 1 minute of turning on your PlanktoScope, you should see the LED flash +once. +``` + +``` +After a few minutes, you should see a new option for Wi-fi appearing on your computer. +Connect to it using the password: "copepode". +``` + +``` +For more information and alternative methods of connection, see the designer's Connectivity +Tutorial here: PlanktoScope - Connectivity Tutorial (1).pdf +``` + +# 3.7 Open the PlanktoScope's User Interface (UI) on your web browser (Chrome, Firefox, Edge etc.) + +``` +using the following webpage link (either click on the link or copy and paste into your browser): +``` + +``` +http://192.168.4.1:1880/ui/ +``` + +``` +There are several tabs on the UI that can be used to adjust setting, run samples and take +``` + +protocols.io | + +``` +images. To navigate around the UI, all tabs are available from the Home tab, including the +Shutdown button which we will use when we have finished using the PlanktoScope. +``` + +``` +We can also use the 'Hamburger Menu', situated in the top-left corner of the UI, to navigate +between tabs. +``` + +``` +The 'Home' tab of PlanktoScope's User Interface. +``` + +``` +The 'Hamburger Menu' icon, situated in the top-left corner of the screen, can be used to +navigate around the User Interface +``` + +# 3.8 Once the UI has loaded on your browser, navigate to the Optic Configuration tab and we will + +``` +make sure the PlanktoScope is operating correctly. +``` + +``` +To test the PlanktoScope, navigate to the Optic Configuration tab: +``` + +protocols.io | + +``` +a) Under Optic Characterisation, switch on the Light by clicking 'On'. You should see the +Preview image turning from dark to light. The Preview image could be any colour so do not +worry if yours does not show blue; it will be adjusted later. +``` + +``` +The Optic Configuration tab which can be used to adjust the camera settings. If only Preview +is visible on your screen, the other options should be available below by scrolling down or by +adjusting 'Zoom' on your browser (usually Ctrl + scroll UP or DOWN on Windows or command ++ scroll UP or DOWN on Mac). +``` + +protocols.io | + +``` +b) Under Focus Adjustment, click 'UP 1MM' and 'DOWN 1MM' to ensure focus buttons turn the +focus motor. You should see the mount moving further from (UP) or closer to (DOWN) the +camera. +``` + +``` +c) Under Fluidic Manual Manipulation, click clockwise arrow to check that the Peristaltic Pump +is working. You should see the pump rotating in an clockwise direction. +``` + +``` +The red box highlights the location for turning on the LED. You will need to do this every time +you use your PlanktoScope. +``` + +``` +Red boxes highlight 'UP 1MM' and 'DOWN 1MM' that will move the Mount (pictured below). +``` + +protocols.io | + +``` +d) Under Camera Settings, change the ISO value. You should see changes to the Preview +image. After this test, Set ISO to 100. +``` + +``` +The red square highlights the location of the clockwise arrow that will rotate your Peristaltic +Pump in the same direction. +``` + +``` +The red box highlights the location of the ISO setting. You should see your Preview image +change colour when you adjust this setting. +``` + +protocols.io | + +``` +Safety information +``` + +``` +Make sure it is set to 100 once you have tested this. +``` + +# 3. + +``` +Safety information +``` + +``` +Now we will align the lenses in your PlanktoScope. To do this: +``` + +``` +a) Remove the Fluidic Path from the mount and gently lay to the side. +``` + +``` +Remove the Fluidic Path and lay to the side +``` + +``` +Mis-aligned lenses will create an inhomogeneous illumination and will create lots of +artefacts if not corrected. We advise to check this every times you set back your +planktoscope to use (closing the box may move the lenses) +``` + +protocols.io | + +``` +Remove the Fluidic Path and lay to the side +``` + +``` +b) Make sure we have enough space to remove the lenses by clicking the 'UP 1MM' button +under Focus Adjustment. +``` + +protocols.io | + +``` +Red box highlights 'UP 1MM' button that will move the Mount away from the lenses. +``` + +``` +Move the Mount away from the lenses using the 'UP 1MM' button to allow for outer lens +removal. +``` + +protocols.io | + +``` +c) Remove the outermost lens (16MM). +``` + +protocols.io | + +``` +Remove the outermost (16MM) lens. +``` + +``` +d) On the Preview image on the Optic Configuration tab, you should see a light spot surrounded +by darkness. By moving the 25MM lens on your PlanktoScope, you can move the light spot on +the Preview image. Try to get the light spot as close to the centre of the Preview image as +possible. +``` + +protocols.io | + +``` +With the 16MM lens removed, your Preview image should resemble this picture. If the light +spot is not centred, gently reposition the 25MM lens until it is as close to centre as you can get +it. +``` + +``` +Gently reposition the inner (25MM) lens. +``` + +protocols.io | + +``` +e) Once centred, place the outermost lens back to where you removed it from in step 3. +``` + +``` +Place the outer (16MM) lens back into position. +``` + +``` +f) On the Preview, you may see darker areas in the corners. To get rid of the darker areas in the +corner, reposition the outermost lens (16MM) while holding the innermost lens (25MM) +steady; the darker corners should disappear. Try to achieve homogenous light across the +Preview image. +``` + +``` +g) Place the Fluidic Path back into position. +``` + +protocols.io | + +# 3.10 + +``` +Safety information +``` + +``` +Manually adjust the white balance of your PlanktoScope. Try pressing the Auto White Balance +button to its 'on' and 'off' positions on the Optic Configuration tab; you will likely see the +Preview image changing colour. +``` + +``` +We need to achieve the Preview image colour that the Auto White Balance feature provides, +without using the Auto White Balance. Not using Auto White Balance enhances the +performance of the PlanktoScope over time (the camera will try to adjust it in between every +images...) +``` + +``` +Planktoscope are normally cross-calibrated for white balance initially, this information +could be recovered from the provider. We strongly encourage you to note the initial values +before trying to change those and this procedure should not be done without reasons +(incorrect image with initial calibration; reboot or update of the software. +Note your calibration here: +WB RED: +WB blue: +``` + +protocols.io | + +``` +To manually set to the White Balance, turn off the Auto White Balance and adjust WB: Red and +WB: Blue until it looks white. Then switch AWB back on to see if it matches. Repeat this +process until there is no colour change when clicking the AWB button. +``` + +``` +Set the AWB button to 'off' once you have completed this step. +``` + +``` +The red box highlights how to manually adjust the white balance of the Preview image. In this +example, the correct setting was WB: Red = 4 and WB: Blue = 1.21. The AWB button should be +set to 'off' once you have completed this step. +``` + +# 3.11 + +``` +Safety information +``` + +``` +Setup the 'Bubbler': the flow of air needs to be adjusted to 1 bubble/sec approximately, +bubbling the bottom of the syringe. We encourage adapting a rigid tube at the end to ensure +the flexible part does not get aspired by the water flow +``` + +``` +Planktoscope image fluid at low speed. +Not agitating your sample will let plankton to sediment and could even block the fluidic +part. More importantly, the organisms concentration will be inhomogeneous, and because +you will first get the sinking plankton, will lead your measurements to over-estimate true +concentrations. +``` + +protocols.io | + +``` +Plug the Bubbler into one of the USB ports on the PlanktoScope. Place the tubing into the +``` + +``` +the bubbler +``` + +``` +Tie knot to adjust air flow (basic way, +not recommended) +``` + +``` +examples of other possibilities to regulate air +(choose preferred one) and adaptation at the +end of tubing +``` + +protocols.io | + +``` +Syringe so that it reaches the bottom. Affix the tubing to the Syringe using an elastic band, +string or similar. +``` + +# 4 Pump calibration:Pump calibration: + +``` +Safety information +``` + +``` +Peristaltic pump tubes flexibility varies with age, care and type of liquid used (e.g. lugol may +age it quicker), calibrating the pump regularly could be needed but is not highly important to +get good quantitative count since it is the number of images (therefore the volume imaged) +which is important (not the pumped volume) +``` + +# 4.1 -prepare a large volume of tap water and put in in the syringe targeting a total volume of e.g. + +``` +20ml +-on the optic configuration tab: tell him that you want to pass 10ml and record the exact +volume it finally ends to pass (eg. by looking on the graduation of the syringe) note X= final +volume passed for a 10ml instruction +``` + +``` +final volume (here X=20-12.2) +``` + +# Calibration + +protocols.io | + +# 4.2 -then on the hardware setting, note the “pump step per ml” parameter (old step) + +``` +-calculate the "calibrated" pump step per ml such as = 10*old step/ X +-replace the “pump step per ml” parameter with this value +``` + +``` +hardware settings page (pump per step is at the bottom) +``` + +# 5 Size calibration:Size calibration: + +``` +Safety information +``` + +``` +Size calibration is an important process to get good data and should be absolutely done and +noted. Please however note that currently calibrations is currently bugged and you need to +manually replace the comma by a point in the hardware setting at every startmanually replace the comma by a point in the hardware setting at every start +``` + +# 5.1 - tilt the planktoscope on the side (camera on the bottom) + +- remove the flowcell and place a micro metric ruler (or a millimetric one) on the sample stage + such as the ruler is either vertical or horizontal but not in diagonal but not in diagonal (using the 20mm/16mm + combo of lenses the camera field of view should be about 3mm by 4mm). Make the focus on + +protocols.io | + +``` +the scale +``` + +``` +tilted position for calibration +``` + +``` +focusing on the scale +``` + +# 5.2 -take few images (select the test or culture mode in sample tab), goes on acquisition and put 1 + +``` +or 2 images +``` + +protocols.io | + +``` +example of metadata entered in "sample" page +``` + +``` +here two images are acquired (and random information entered on the pumping one) +``` + +# 5.3 -download images on a computer and measure how much pixels are needed to obtain the + +``` +longest path possible on the image (e.g. using imageJ https://imagej.nih.gov/ij/index.html) +(see section 7 for communicating with your planktoscope and downloading the rawee section 7 for communicating with your planktoscope and downloading the raw +imagesimages) +``` + +protocols.io | + +``` +downloading resulting images (using Filezilla) +``` + +``` +using imageJ open your image (File/open), draw a line as long as possible (here 3mm on the +scale) and measure it (analyse/measure). The line is 3476 pixel length (i.e. one pixel is 0.86 +with this example) +``` + +# 5.4 -calculate how much microns are represented by each pixels (should not be strongly different + +``` +from 1.01 which is the default value for 25/16mm lenses combo) +``` + +# 5.5 Enter the calibrated pixel size value in the hardware setting + +protocols.io | + +``` +Safety information +``` + +``` +Known bug: note here that the comma should be replaced by point at everynote here that the comma should be replaced by point at every +restart of the systemrestart of the system +``` + +# 6 Use a net to collect plankton + +# Get your sample + +protocols.io | + +``` +Safety information +``` + +``` +Using logsheets: +-Record Latitude Longitude Latitude Longitude (taking photos of the GPS when launching and recovering the +net could serve, if UTC time is on the GPS this could also be interesting) +-if vertical netvertical net, record min and max depthmin and max depth +-if horizontal records initial/final positionsinitial/final positions, speed and length (min) of deploymentspeed and length (min) of deployment +-if you have flowmeterflowmeter, record the initial/final digits of the flowmeter initial/final digits of the flowmeter and calculate the +filtered volumefiltered volume +``` + +``` +in all cases the diameter of the net opening diameter of the net opening will be needed +``` + +``` +Those are critical informations to get to quantitative sampling (see step 5.4)Those are critical informations to get to quantitative sampling (see step 5.4) +``` + +# 6.1 + +``` +Get the content of the collector. +Pass the volume through a 200μm sieve +``` + +``` +Safety information +``` + +``` +larger organisms may clog the flowcell +``` + +protocols.io | + +``` +filtration through a 200μm mesh +``` + +``` +detail of the (home made) filter +``` + +protocols.io | + +# 6.2 Rinse the sieve using seawater and a squeezing bottle (helps to pass small objects) + +# 6.3 Recover the fluid / measure its volume/ record it on logsheets (will be entered latter as + +``` +"concentrated sample volumeconcentrated sample volume") +``` + +``` +Safety information +``` + +``` +Those are critical informations to get to quantitative samplingThose are critical informations to get to quantitative sampling +``` + +``` +concentrated final volume of plankton +``` + +# Pass the sample on planktoscope + +protocols.io | + +# 7 assemble and start the planktoscope (see go to step #3 ) + +# 7.1 check for lenses alignment : remove the objective lens, start the light and check if the light + +``` +source is centred. +``` + +- if yes place back the objective lens and flowcell +- if no adjust the position of the tube lens to center the light source (magnets allows for 1-2mm + adjustments) + +``` +Safety information +``` + +``` +unaligned tube lens could create strong inhomogeneous background in final images, +leading to creating lots or artefact during segmentation of the different plankton objects. +Unfortunately the magnets lets a 1-2 mm degree of freedom which is responsible for this +``` + +``` +severely unaligned lens final results and final artefact object created +``` + +# 7.2 Fill the sample on the sample holder. For this you can just remove the full sample holder (and + +``` +fill it on top of a sink (to not risk spills on-top of the planktoscope). +Replace the full sample holder and reconnect it to the pump, open the stopper, place the +bubbler and adjusts it flow. +``` + +protocols.io | + +# 7.3 Go to optic configuration. + +``` +turn the light on +verify focus on dry slide (tip, if the slide is slightly wet, you can check for the focus +simultaneously on the water traces on the two sides of the flowcell) +Add your sample in the syringe (and keep it suspended by agitating it manually regularly or +by gently inserting an air bubbler with 1 bubble/second in it) +pump until you see your sample passing by and flowing through the peristaltic pump +Eventually get rid of air bubble by pinching the tubing half way between the flowcell and the +pump while pumping (see also 5.7). +finely adjust the focus on the organisms passing by (tip#1tip#1: start using the "1mm" buttons, +then the 100μm buttons and finish by typing 25 or 50μm adjustments in the middle box +(and pressing external arrows of focus; tip#2tip#2: you can connect your phone or a tablet to +the planktoscope to have controls on the focus while checking a zoomed portion on the +streamed image on another device) +``` + +``` +Safety information +``` + +``` +not agitating your sample will let plankton sediment and could even block the fluidic part. +More importantly, the organisms concentration will be inhomogeneous, and because you +will first get the sinking plankton, will lead your measurements to over-estimate true +concentrations. you should agitate your sample using bubbling and use pumping rate +enough to avoid sinking/clogging of sample +``` + +# 7.4 adjust the concentration of the sample: ideally not more than 20-30 objects ideally not more than 20-30 objects should be + +``` +present per frame. If the sample is over-concentrated, dilute it by a factor 2 (add in a jar 1/2 of +the sample -after agitating it- and 1/2 of seawater). Note dilution in metadata in 7.5Note dilution in metadata in 7.5 +``` + +protocols.io | + +``` +Safety information +``` + +``` +Having too much object per frame will : +1. increase the probability that objects are touching (making them impossible to count or +identify) +2. increased the probability of clogging the fluidic system +3. create artefacts during the segmentation step +``` + +# 7.5 Go to "sample" page and fill metadata + +``` +This step is critical because those data are the ones that will make your sample usable or not +``` + +- fill the sample identification fill the sample identification (project, name, boat used, your name and the station + number) + +``` +-note how you sampled the plankton how you sampled the plankton (recording mesh size with "minimal fraction sizeminimal fraction size" +(will be used afterwards in the segmentation process, objects smaller than this won't be +segmented; "Maximal fraction sizeMaximal fraction size" is the size of the mesh used in step +go to step #6.1 ; Filtered Filtered volume is important if you recorded it but could be calculated^ +from other parameters. Make sure to either have filled it or to have filled either min and maxmin and max +depth depth if using a vertical net; initial/final positionsinitial/final positions, speed and length (min) ofspeed and length (min) of +deployment deployment if using a horizontal towed net +``` + +``` +known bug:known bug: if filtered volume is provided but also initial/final size, calculation from this latter +may replace the measured filtered volume +``` + +``` +in all cases the diameter of the net opening diameter of the net opening will be needed to calculate the filtered volume +``` + +- Note the mesh size used for collection in "minimal fraction size " (it will be used afterwards in + the segmentation process, object smaller than this won’t be segmented); + +protocols.io | + +``` +-The "Maximal fraction size " is the mesh size used to filter the sample during preparation (It +must have been done at 200μm so as not to block the fluidic circuit); +-The “Filtered volume” is the volume passed through the net during sampling. It is better if you +recorded it but could be calculated from other parameters. So make sure to either have filled it +or to have filled either min and max depth if using a vertical net; initial/final positions, speed +and length (min) of deployment if using an horizontal towed net; and in all cases the diameter +of the net opening (to be able to calculate the volume afterwards). +-“Concentrated sample volume”Concentrated sample volume” is the volume of sample recovered after all the steps of +concentration or dilution. +``` + +- If dilution have been done, note the “dilution factor” (if not, write “1”). + +``` +Dilution factor if a dilution has been done in go to step #7.4 +``` + +``` +Fill the net initial and final position (if towed horizontally) remember to validate both of them +(readings disappear after validation, but are recorded) +``` + +protocols.io | + +# 7.6 Go to fluidic acquisition and set parameters + +``` +-number of images to acquire-number of images to acquire (to be chosen depending on the desired final object number +and the observed concentration on images) +``` + +``` +Safety information +``` + +``` +pump significantly between two images will help to : +``` + +``` +1. avoid plankton sedimentation in the fluidic system +2. avoid imaging two times the same plankton +``` + +``` +Target a sample size (by setting the number of images to acquire) that finallyTarget a sample size (by setting the number of images to acquire) that finally +have something like 1000-2000 final objectshave something like 1000-2000 final objects (e.g. if you have 10 objects per image, +imaging 100-200 frames would be enough) +Getting lower numbers +``` + +protocols.io | + +- Volume to pumpVolume to pump is the volume pumped in between two images: it should be large enough to + : avoid taking two time the same object in photo; avoid large sedimentation in the fluidic + system; avoid objects to stick on the flowcell. We recommand to test it in order that the + volume passed between two images correspond at least to 5-10 times to the volume imaged + (see here the discrepancy between imaged volume/pumped volume) +- Delay to stabilise imageDelay to stabilise image is the time lag in between the stop of the pump and the + acquisition of the image. it should be large enough to avoid object moving while imaged. + +``` +Safety information +``` + +``` +The Planktoscope is operation using a "rolling shutter camera" which means that there is +a small delay in between the first line of pixel imaged and the last line of pixel imaged. To +overcome this, it use a "stop and go" strategy where the imaging only takes place when +the flow of the pump is stopped. Not setting this properly will generate artefacts, +swimming organisms will also suffer from this (example bellow) +``` + +``` +diatom imaged when moving +``` + +protocols.io | + +``` +copepode nauplius moving while imaged +``` + +# 7.7 go to optic configuration and pump with high flow rate a good amount of water (goal: remove + +``` +plankton that have sunk in the fluidic system) +``` + +# 7.8 Go to fluidic acquisition and start the acquisition. + +``` +Wait for the acquisition to be done +Results can be consulted by consulting the gallery +``` + +``` +Safety information +``` + +``` +If your fluidic system is not optimised to avoid plankton sedimentation, some plankton +could accumulate in the fluidic system. This can be checked by pinching the tube half way +in between the flowcell and the pump during 1-2 seconds (to accumulate suction +pressure) and releasing it. If a large quantity of plankton pass suddenly this means that +plankton have sedimented between the syringe and the flowcell. +``` + +protocols.io | + +# 8 Go on segmentation and clic on the "update acquisition's folder list" + +``` +Select the samples you wish to segment +Setup the different options of the segmenter +``` + +``` +1. Recursive folder means that it will segment all samples within a selected sample +2. Ecotaxa archive: it will create a zip file containing all files needed for a easy importation within +ecotaxa +3. Force rework: if yes it will re-segment samples already segmented +4. Keep objects: it will keep the final segmented images visible in the planktoscope (that could be +accessed by the gallery in the objects folder) +``` + +# Segment the acquisition + +protocols.io | + +``` +scroll down and clic on start segmentation +Wait for the segmenter status to turn to "done" +``` + +# 9 You will need a computer connected to the planktoscope together with free software FileZilla + +``` +(https://filezilla-project.org/) +``` + +``` +Open FileZilla +Either clic on the top right to create a new connection or use the quick-connection fields below +``` + +``` +Enter the following informations: +Host: sftp://192.168.4.1 (note images were taken with a previous version, the adress does not +correspond to images) +Username: pi +Password: copepode +Port: 22 +``` + +# Download the results + +protocols.io | + +``` +clic on connect +on the bottom panels you have (on the left) the access to what is in your computer and (on the +right) the access to what is in the planktoscope (clic and slide to transfer data in between both) +``` + +``` +Exports file for EcoTaxa are in /home/pi/data/export/ecotaxa +Raw images files are in /home/pi/data/img +Different control files to check the segmentation process (images after background substraction, +masks of the different objects etc) are in /home/pi/data/clean +Final vignettes are in /home/pi/data/objects +``` + +# 10 1. Drain the sample out of the syringe + +``` +2. Disconnect the syringe and clean it with tap water (or even distilled water) +3. Pump (at high speed!)at high speed!) the full content of the fluidic system to remove any liquid +4. Reconnect the syringe +5. Fill it with tap water (or distilled water) +6. Pump (at high speed!)at high speed!) while regularly pinch the tubing to detach any plankton in the system +(see go to step #7.8 ) +7. Drain again the syringe (repeat steps 2-7 at least 2 more timesrepeat steps 2-7 at least 2 more times until no plankton is visible +on the camera) +8. Finally drain the system +``` + +# Clean the planktoscope + +# Upload your images on EcoTaxa + +protocols.io | + +# 11 At First connection:At First connection: + +``` +Create an account on EcoTaxa (https://ecotaxa.obs-vlfr.fr/) by clicking on the top right "log +in/register" +``` + +``` +Put your real name and a valid mail so that you can be contacted +``` + +protocols.io | + +# 11.1 Once logged you can consult the project on which you are registered (e.g. your own projects + + +``` +the ones you have been invited by the different data owners) by clicking onto "contribute to acontribute to a +projectproject" on the main page +``` + +# 11.2 Needs to be done only once:Needs to be done only once: basic rights don't include the "create project". As a protection + +``` +against bots, To create a new project and upload images in it, please contact the user +manager(s): +PlQv (piqv@imev-mer.fr) +The rights to create projects will be activated (by a human, please be patient few days) soon +and you will see the following right appearing +``` + +protocols.io | + +``` +without the right to create projects +``` + +``` +with the right to create projects +``` + +# 11.3 You can now create your own project on which you will be able to import, visualise and classify + +``` +images +``` + +# 11.4 upload the ecotaxa archives (see step 6-7) on the EcoTaxa ftp + +``` +using Filezilla (see ) create a connection by using the following informations: +Select File > Site Manager... +``` + +protocols.io | + +``` +Create a New Site called : Ecotaxa_VLFR +In General tag : +Host : plankton.obs-vlfr.fr +Protocol : FTP – File Transfer Protocol +Encryption : Only use plain FTP (insecure) +Logon Type : Normal +User : ftp_plankton +Password : Pl@nkt0n4Ecotaxa +``` + +``` +Once this is done you could use FileZilla to load the Zip files downloaded from the +Planktoscope onto the EcoTaxa ftp server (e.g. /Ecotaxa_Data_to_import/PLANKTONSCOPE) +``` + +``` +Safety information +``` + +``` +Please eventually create your own folder to "try" to keep it clean and tidy +``` + +``` +Please think to regularly remove those temporary files from the ftp, at this point they +are not secured at all and everybody can access them (and disk space is not free) +``` + +# 11.5 In your project/ on your project options button, select import images and metadata + +# 11.6 locate your file on the ecotaxa ftp folders and import it (only works for one zip file at a time for + +protocols.io | + +``` +now) +``` + +# 12 Configure your project efficiently: in Project/project settingsConfigure your project efficiently: in Project/project settings + +``` +Select a data sharing license (we recommend one of the CC-BY one or CC-0 if you want data +to have a future use for science) +Define if the project is visible for visitors (only "validated" images will be visible) +Add a preset list of taxa for manual sorting (could be copied from any other project, or taxa +added manually): those will be present in the taxonomic filter (see 10.1) +Add useful sorting variables : in "Fields available for sorting": add at least those parameters +that are pretty useful and will be added to the Quickfilters (see 10.1) +area=area +meanhue=meanhue +meansaturation=meansaturation +meanvalue=meanvalue +``` + +# How to use efficiently ecotaxa + +protocols.io | + +``` +Define a person of contact (mandatory) +Define what pre-trained Deep Learning features to use on your project (we recommend to use +«Planktoscope_2022-09 » unless you see a more recently trained model on planktoscope +``` + +``` +image) +``` + +``` +And invite people to manage the project with you (will have the same rights than you), to help +you to annotate images (won't have options below "export" in the project see +go to step #11.5 ), or just view the project (both validated and non validated) +``` + +# 12.1 Use filters wiselyUse filters wisely + +protocols.io | + +``` +there are three layers of filters in EcoTaxa: the quick access filters (top bar) +``` + +``` +The taxonomic filter tab (allows to filter by taxonomic groups) and the other filter tabs +``` + +``` +taxonomic filters +``` + +protocols.io | + +``` +Filters are additive, so you can add filters on geography, date, who validated them, taxonomic +group and every numeric fields/ text fields entered in ecotaxa to search for specific things (and +you can get rid of them easily too, see grey fields on to of the next image) +``` + +``` +other filters +``` + +protocols.io | + +``` +quickfilters are pretty useful since you can sort objects by specific values (eg. mean saturation +below) to quickly observe objects that have here lots of chlorophyll (ps. you can revert the +sorting order of those filters by ascending or descending order) +``` + +# 12.2 The different validation "states" in ecotaxaThe different validation "states" in ecotaxa and how to validate + +``` +image arrives in EcoTaxa with the status "unclassified" (grey surrounding of the image) +``` + +protocols.io | + +``` +However they could be also set as "predicted" (blue surrounding; classified automatically by +taking as example one pre-existing project), "validated" (green surrounding; checked and +annotated by a human), or dubious (orange surrounding; checked and annotated as dubious +by a human) +``` + +``` +-validating consist in selecting one or several picture and attributing them a taxonomic or +morphological identity by either displacing them in the list of taxa present in the « taxonomic +filter » tab (in which you can force some categories to be present by using the « preset » in the +project settings... or just by typing the name using the keyboard (which should use right away +the research on top of the »taxonomic filter ». Whatever happens you need to save (ctrl.S or +save button at the bottom of the page) before your action gets finally implemented. +``` + +``` +photo here to illustrate +``` + +``` +typing "copepo" brings several results +``` + +protocols.io | + +``` +-validation could be tedious and requires large taxonomic expertise, however there are plenty +of tools to help you! Filters are one of those tools, but the more interesting one is to use +previous project to « predict » some taxonomic identity on your new images, in best cases you +will face thousands of rightly predicted images and will be able to validate thousands per +``` + +``` +once validated the name appears in red below the images +``` + +``` +sliding into existing categories also works +``` + +``` +dont forget to save your validations +``` + +protocols.io | + +``` +minutes! +``` + +``` +example of (well) predicted objects which would be easily validated +``` + +# 12.3 Do not hesitate to "predict" your project right awayDo not hesitate to "predict" your project right away (even with a project/instrument that + +``` +has nothing to do) +``` + +``` +-How to do prediction (and help you to boost your validation ability) : +In the project (or "Filtered", in this case only the filtered vignettes would be used), select "Train +and Predict classifications" +``` + +``` +You can select any of the pre-existing project (including your own project) as a template for +image recognition. By experience, using another project is only a first-aid, but won't replace +prediction on images that you acquired with the same instrument/ same location / same +plankton communities +Note that currently, only few "sorted" planktoscope projects exist (especially acquired with +the same segmentation procedure than here), we therefore strongly encourage you after a +``` + +protocols.io | + +``` +first trial of prediction to quickly validate to re-predict on your own project. +what could be used for first prediction : +``` + +``` +#6818 - MOOSE-GE-2022_tests_ID_vignettes (Med sea; Processed with current segmenter; +Fully validated) +#4605 - Planktoscope NOAA WCOA21 rita-net (coastal US West coast from Vancouver to +San Diego; Processed with current segmenter; Partly validated; Contains lots ofContains lots of +artefacts due to lens mis-alignmentartefacts due to lens mis-alignment ) +#6765 - _Planktoscope Reference (Processed with other segmenter, works only withworks only with +adding Deep Learning features into playadding Deep Learning features into play); Fully validated) +``` + +``` +Push the button "select project below then click me. You then have the possibility to select +what types of object to consider. It is recommended to try to avoid selecting too much +objects to partly correct the usual strong imbalance between categories (here as an +example limited to 100 example per group) (If you use project #4605 as an example, please +remove artefacts) +``` + +``` +click on "continue to the classifier option screen ". Activate the pre-trained Deep Learning +features (if not available see step 10). Inactivate variables that are not relevant for +prediction and relate to position of the vignette in the initial images (bx, by, depth min/max, +label, local centroid col/row, x, y) +``` + +protocols.io | + +``` +Once done, images are now "predicted" (blue) but still wait for validation. Note that while +classifying the different objects, the classifier also gives a classification "scorescore" which +determine if the label is attributed with high or low confidence. Using this score as a quick-filter +is usually a good idea to be able to validate quickly well recognised images (and quickly start +new predictions) +``` + +``` +Doing repeated predictions on your own samples is better than doing some globalDoing repeated predictions on your own samples is better than doing some global +one on random example projectone on random example project +``` + +``` +Quickly validate objects to start to predict on your own plankton composition: the classifier is +quite efficient and starts to give reasonable results starting from 30-50 images as example. +``` + +``` +example of images sorted by score of prediction +``` + +protocols.io | + +``` +Ecotaxa is then optimised to operate regular prediction rounds which could be heavily guided +by the human (e.g. by doing prediction only on selections, stopping to predict some organisms +etc). +``` + +``` +-once fully validated, export your results (lots of different solutions exist, the easiest to +understand being the summary export with count per sample) +``` + +# 13 Clean tubing and flowcell from insideClean tubing and flowcell from inside + +``` +imaging plankton will lead to have a lot of organic material and seawater in the fluidic system. +Some may clog or accumulates in some parts of the fluidic system. +1. Don't let it dry and try to get rid of it as soon as possible (if its occurs during sample acquisition, +``` + +# Maintenance of your planktoscope + +protocols.io | + +``` +even abort this latter, take care of the clog, maybe dilute the sample and restart +acquisition while noting that the sample got diluted in the metadata ) +2. Pump tap or distilled water with high pumping rates helps to unclog the system. make sure no +plankton organisms remain in the fluidic system and especially on the internal walls of the +flowcell. If it is the case don't hesitate to pinch (during 1-2 second) and release the tubing +between the flowcell and the pump while pumping to create a sudden variation of pressure +(e.g. ) +3. Over time, wet conditions and organic matter may create favorable condition for the growth of +a bacterial film. The flowcell and tubing will look dirty from the inside. You can avoid this by +pumping diluted bleach sometimes, let it act for 1-2 hours and carefully rinse the whole system +``` + +``` +4. Water, bacteria, and bleach together may favour the apparition of a calcium carbonate film +inside the tubing and flowcell. It may either appear as dispersed cristals attached inside the +flowcell or a white coating inside the tubing. To remove and clean this, pump some acidic +solution (vinegar, citrus juice or other kind of other acids), let it rest for a few hours and rinse +the system +``` + +``` +Clean flowcell outside:Clean flowcell outside: +The flowcell is an optical critical component, keeping it clean is an absolute necessity. Don't touch +it with fingers or other kind of dirty material. If dirty: +1. if only dry dusts are present, gently blow the flowcell (ideally with dry gas dispenser at a large +distance - dry gas dispenser are also creating thermal chocs if used from too close, test it on +other material before) +2. if dirt in not only dry dusts it could be cleaned with optical paper and ethanol. DO NOT USEDO NOT USE +CLASSICAL WIPING PAPER CLASSICAL WIPING PAPER which are usually enriched in silica fibers for solidity ... and +may create scratches on the flowcell. (disposable nose tissue are better alternative if optical +paper is not available) +``` + +``` +Clean optical lensesClean optical lenses +as for the flowcell, optical lenses are critical elements of your planktoscope and should be kept as +clean as possible. It starts by never touching them with fingers (cleaning those would requires a +lot of patience, efforts and may even lead to unexpected disappointments) +1. dry dust: dry gas (with even more caution than previously +2. others: only used optical paper +``` + +``` +clean the camera sensorclean the camera sensor +... critical part if any, NEVER touch it, only use dry gas +``` + +``` +regularly calibrate the pumpregularly calibrate the pump +``` + +# Troubleshooting + +protocols.io | + +# 14 My flow cell is clogged with plankton, what to do? + +``` +Why this happens (preventive solutions):Why this happens (preventive solutions): +``` + +- first this may happens if your sample does not have been "pre-filtered (we recommand pre- + filtration to 200μm). Make sure to do this. go to step #6.1 +- It may aslo happens if your sample is too concentrated. If you got more than 20 plankton objects + per image this may already be the case, dilute your sample and fill the dilution factor in the + sample metadata go to step #7.5 +- it may also happens if you forget to agitate your sample using a bubble ( go to step #3.11 ) + or if you let sample to stagnate for too long in the fluidic system. + +``` +unclogging the flowcell:unclogging the flowcell: +-try to pinch the tube in between the flowcell and the pump (while the pump is running). see +go to step #7.8^ +-try to do the same while pumping in the reverse direction (eventually at high speed- see pump +controls in optical configuration page) +-dismount the flowcell but keeping the luerlock connectors on it. on the side which was connected +with the pump, either blow in it or connect a syringe and pass air/water to chase the blocked +plankton. +``` + +# 15 Planktoscope website + +``` +https://www.planktoscope.org/ +``` + +``` +Planktoscope github +https://github.com/PlanktonPlanet/PlanktoScope +``` + +``` +Planktoscope complete assembly guide and complete documentations +https://planktoscope.curious.bio/ (v2.5) +``` + +``` +Planktoscope Slack channel (to exchange ideas/protocols/solutions) +https://forms.gle/qvh5jwuMvmyBKMQC7 +``` + +``` +Plankton Planet website +https://planktonplanet.org/ +``` + +``` +EcoTaxa tutorials: +https://sites.google.com/view/piqv/ecotaxa?authuser=0 +``` + +# External links + +protocols.io | + +``` +https://www.youtube.com/watch?v=PSO6ZS765tk +https://www.youtube.com/watch?v=RaWUqIoKk0E +``` + +protocols.io | diff --git a/docs/software/debugging.md b/docs/software/debugging.md new file mode 100644 index 0000000..fb798ce --- /dev/null +++ b/docs/software/debugging.md @@ -0,0 +1,56 @@ +/home/pi/PlanktoScope/scripts/raspimjpeg/bin/ra + +## Error + +If you see this, there probably is an error either with your camera or with the python service. Please restart your machine. + +## Services + +```sh +sudo systemctl status dnsmasq.service +sudo systemctl status gpsd.service +sudo systemctl status nodered.service +sudo systemctl status mosquitto.service +``` + +## Processes + +```sh +/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf +/usr/sbin/gpsd -n -r /dev/serial0 /dev/pps0 +node-red +python -uc import os import json import sys c +python3 -u /home/pi/PlanktoScope/scripts/main.py +python3 -u /home/pi/.node-red/node_modules/node-red-node-pi-gpio/nrgpio.py out 5 1 +python3 -u /home/pi/.node-red/node_modules/node-red-node-pi-gpio/nrgpio.py pwm 13 25000 +``` + +## Sockets + +``` +tcp 0 0 0.0.0.0:80 0.0.0.0:_ LISTEN 0 19373 766/nginx: master p +tcp 0 0 0.0.0.0:1880 0.0.0.0:_ LISTEN 1000 21978 543/node-red +tcp 0 0 0.0.0.0:1883 0.0.0.0:_ LISTEN 0 18618 533/mosquitto +tcp 0 0 0.0.0.0:8000 0.0.0.0:_ LISTEN 1000 22945 1257/python3 +tcp 0 0 0.0.0.0:8001 0.0.0.0:\* LISTEN 1000 21494 1258/python3 +``` + +## Services + +http://10.50.1.24:8000/stream.mjpg + +## Q&A + +- frist tests scripts +- frist tests gui +- gpsd config +- glue for preparing the glas tubing + +# Error + +> If you see this, there probably is an error either with your camera or with the python service. Please restart your machine. + +## + +- 5-Minuten-Epoxy +- 3mm diff --git a/docs/software/easy_install.md b/docs/software/easy_install.md index 09f4cbc..a71a683 100644 --- a/docs/software/easy_install.md +++ b/docs/software/easy_install.md @@ -2,19 +2,47 @@ ## Download the image -For ease of setup, a preconfigured image is provided. You can download it from [here](https://drive.google.com/file/d/1y0k_NDXN0yT5caZrXhjLYXgQVxu-D5ql/view?usp=sharing). +For ease of setup, a preconfigured image is provided. You can download it from [s3.bazile.io/planktoscope/images/planktoscope-v2.3-final.img.gz](https://s3.bazile.io/planktoscope/images/planktoscope-v2.3-final.img.gz). + +```sh +wget s3.bazile.io/planktoscope/images/planktoscope-v2.3-final.img.gz +``` ## Writing the image to the SD card -Download the latest version of [balenaEtcher](https://www.balena.io/etcher/) and install it. +### Using balenaEtcher -Connect an SD card reader with the micro SD card inside. +1. Download and install [balenaEtcher](https://www.balena.io/etcher/). +2. Connect an SD card reader with the micro SD card inside. +3. Open balenaEtcher and select from your hard drive the previously downloaded img file file you wish to write to the SD card. +4. Select the SD card you wish to write your image to. +5. Review your selections and click 'Flash!' to begin writing data to the SD card. -Open balenaEtcher and select from your hard drive the previously downloaded img file file you wish to write to the SD card. +### Using ddrescue -Select the SD card you wish to write your image to. +If you prefer a command line tool, you can also use ddrescue instead of balenaEtcher. -Review your selections and click 'Flash!' to begin writing data to the SD card. +#### Install ddrescue on apt based distributions + +```sh +sudo apt install -y gddrescue +``` + +#### Uncompress the image + +```sh +gunzip planktoscope-v2.3-final.img.gz +``` + +#### Write the image to the SD-Card + +```sh +sudo ddrescue planktoscope-v2.3-final.img /dev/mmcblk0 --force +``` + +!!! warning + + Be extremely careful when choosing the storage medium and check if you really use the device path of the memory card. Once the image has been written, these data blocks cannot be recovered. ## Inserting the SD card diff --git a/hardware/hat/Planktoscope-Hat-bom-thrue-hole.csv b/hardware/hat/Planktoscope-Hat-bom-thrue-hole.csv new file mode 100644 index 0000000..a35db12 --- /dev/null +++ b/hardware/hat/Planktoscope-Hat-bom-thrue-hole.csv @@ -0,0 +1,9 @@ +Qty,Value,Device,Parts +2,1984633,CONN_04SCREW,"MOT1-2, MOT2" +2,282834-2,282834-2,"LED1, LED2" +1,22-28-4041,DIP-BLACK-MALE-HEADER-VERT(4P-2.54),OLED +1,SSQ-120-04-T-D,PINHD-2X20,K1 +1,282837-2,282837-2,INPUT +2,TMC5160_SILENTSTEPSTICK,TMC5160_SILENTSTEPSTICK,"CTRL1, CTRL2" +2,801-87-002-10-001101,TMC5160_SILENTSTEPSTICK_HEADERS,"CTRL1, CTRL2" +4,801-87-008-10-001101,TMC5160_SILENTSTEPSTICK_HEADERS,"CTRL1, CTRL2" diff --git a/nix/docs.nix b/nix/docs.nix new file mode 100644 index 0000000..46962b8 --- /dev/null +++ b/nix/docs.nix @@ -0,0 +1,13 @@ +{ + mkdocs, + python3, +}: let + mkdocsOutput = mkdocs.build { + src = ../.; + siteDir = "site"; + }; +in { + package = python3.pip.buildPackages rec { + mkdocs = mkdocsOutput; + }; +} diff --git a/okh.toml b/okh.toml index 3acbca3..0819aec 100644 --- a/okh.toml +++ b/okh.toml @@ -40,7 +40,7 @@ tsdc = "CNC" source = "/hardware/case/PlanktoScope-Case.f3z" export = ["/hardware/case/PlanktoScope-Case.dxf"] outer-dimension-dim = "mm" -outer-dimension = "cube(size = [350,150,150])" +outer-dimension = "cube(size = [275,125,105])" [[part]] name = "PlanktoScope-HAT" diff --git a/pyproject.toml b/pyproject.toml index 6f43456..6fd707d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,11 @@ [build-system] -requires = ["hatchling", "hatch-vcs", "hatch-containers"] +requires = [ + "hatchling", + "hatch-containers", + # "hatch-requirements-txt", + "hatch-vcs", +] build-backend = "hatchling.build" [project] @@ -9,7 +14,7 @@ name = "PlanktoScope" description = "An open and affordable imaging platform for citizen oceanography" license = { text = "GPL-3.0-or-later" } requires-python = ">=3.7" -authors = [{ name = "Romain Bazile", email = "planktoscope@gmail.com" }] +authors = [{ name = "Romain Bazile" }, { name = "Sebastian Wendel" }] keywords = [] classifiers = [ "Development Status :: 5 - Production/Stable", @@ -142,3 +147,6 @@ build = "mkdocs build --clean --strict" serve = "mkdocs serve --dev-addr localhost:8000" validate = ["linkchecker --config .linkcheckerrc site"] check = ["build --no-directory-urls", "validate"] + +# [tool.hatch.metadata.hooks.requirements_txt] +# files = ["software/planktoscope-backend/requirements.txt"]