updated documentation config and structure

This commit is contained in:
Sebastian Wendel 2022-11-11 17:15:51 +01:00
parent a512d572fc
commit 10f946cd53
No known key found for this signature in database
GPG key ID: 1422B7DF78144640
93 changed files with 14723 additions and 132 deletions

View file

@ -1,15 +0,0 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation with MkDocs
mkdocs:
configuration: mkdocs.yml
# Declare the Python requirements required to build your docs
python:
install:
- requirements: docs/requirements.txt

View file

@ -4,9 +4,19 @@ SPDX-License-Identifier: CC-BY-SA-4.0
# An open and affordable imaging platform for citizen oceanography # An open and affordable imaging platform for citizen oceanography
![PlanktoScope Render](docs/readme/planktoscope_cad.webp) | | |
| --- | --- |
| CI/CD | [![CI - Test](https://github.com/PlanktoScope/PlanktoScope/actions/workflows/test.yml/badge.svg)](https://github.com/PlanktoScope/PlanktoScope/actions/workflows/test.yml) [![CD - Build](https://github.com/PlanktoScope/PlanktoScope/actions/workflows/build.yml/badge.svg)](https://github.com/PlanktoScope/PlanktoScope/actions/workflows/build.yml) |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/planktoscope.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/planktoscope/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/planktoscope.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/planktoscope/) |
| Meta | [![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch) [![code style - black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/ambv/black) [![imports - isort](https://img.shields.io/badge/imports-isort-ef8336.svg)](https://github.com/pycqa/isort) [!
![Plankton collage](docs/readme/plankton_collage.webp) [License - GPL](https://img.shields.io/badge/license-GPL-blue.svg)](<https://spdx.org/licenses/>) |
<https://shields.io/badge/reuse-compliant-green>
![PlanktoScope Render](docs/images/readme/planktoscope_cad.webp)
![Plankton collage](docs/images/readme/plankton_collage.webp)
## What is this? ## What is this?
@ -18,7 +28,7 @@ The goal of the PlanktoScope is to allow citizen to engage in scientific program
The PlanktoScope has been described in a paper available on the [bioRxiv preprint server](https://www.biorxiv.org/content/10.1101/2020.04.23.056978v1). The first results of this program and its outline are also available as a [preprint](https://www.biorxiv.org/content/10.1101/2020.08.31.263442v1). The PlanktoScope has been described in a paper available on the [bioRxiv preprint server](https://www.biorxiv.org/content/10.1101/2020.04.23.056978v1). The first results of this program and its outline are also available as a [preprint](https://www.biorxiv.org/content/10.1101/2020.08.31.263442v1).
| [![PlanktoScope Preprint](docs/readme/planktoscope_pub.webp)](https://www.biorxiv.org/content/10.1101/2020.04.23.056978v1) | [![PlanktonPlanet Preprint](docs/readme/planktonplanet_pub.webp)](https://www.biorxiv.org/content/10.1101/2020.08.31.263442v1) | | [![PlanktoScope Preprint](docs/images/readme/planktoscope_pub.webp)](https://www.biorxiv.org/content/10.1101/2020.04.23.056978v1) | [![PlanktonPlanet Preprint](docs/images/readme/planktonplanet_pub.webp)](https://www.biorxiv.org/content/10.1101/2020.08.31.263442v1) |
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
## Key Features ## Key Features

View file

@ -4,7 +4,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0
# Welcome to the PlanktoScope build and use documentation # Welcome to the PlanktoScope build and use documentation
![PlanktoScope](readme/planktoscope_cad.webp) ![PlanktoScope](images/readme/planktoscope_cad.webp)
You can find here more information about how to build your own PlanktoScope. You can find here more information about how to build your own PlanktoScope.
@ -16,7 +16,7 @@ You can find here more information about how to build your own PlanktoScope.
## Build your machine ## Build your machine
- [Assembly Guide](assembly_guide.md) - [Assembly Guide](images/assembly_guide.md)
## Usage ## Usage

View file

@ -4,7 +4,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0
# Assembly guide of the PlanktoScope # Assembly guide of the PlanktoScope
![Complete](assembly_guide/pictures/complete.webp) ![Complete](images/assembly_guide/pictures/complete.webp)
## Step 0: Gather everything you need ## Step 0: Gather everything you need
@ -29,7 +29,7 @@ Soldering deals with high heat and potentially toxic materials, so make sure to
## Step 1: Laser cutting ## Step 1: Laser cutting
![Step1](assembly_guide/pictures/step1.webp) ![Step1](images/assembly_guide/pictures/step1.webp)
Laser cut all components using the .ai file ensuring all cuts are complete. The current design should have a 5mm material thickness. Start by placing laser cut base A on a flat workspace. Make sure all holes are complete, and negative space is clear. Laser cut all components using the .ai file ensuring all cuts are complete. The current design should have a 5mm material thickness. Start by placing laser cut base A on a flat workspace. Make sure all holes are complete, and negative space is clear.
@ -38,120 +38,120 @@ Laser cut all components using the .ai file ensuring all cuts are complete. The
## Step 2: Standoff installation ## Step 2: Standoff installation
![Step2](assembly_guide/pictures/step2.webp) ![Step2](images/assembly_guide/pictures/step2.webp)
![Step2 standoff location](assembly_guide/render/Step2.webp) ![Step2 standoff location](images/assembly_guide/render/Step2.webp)
Place 8 standoffs (M2.5 6mm) into the designated holes on the laser-cut base A. A pair of pliers make the job more comfortable. Do not overtighten as it is possible to crack the base material. Place 8 standoffs (M2.5 6mm) into the designated holes on the laser-cut base A. A pair of pliers make the job more comfortable. Do not overtighten as it is possible to crack the base material.
![Step3](assembly_guide/pictures/step3.webp) ![Step3](images/assembly_guide/pictures/step3.webp)
## Step 3: Motor HAT preparation ## Step 3: Motor HAT preparation
![Step4](assembly_guide/pictures/step4.webp) ![Step4](images/assembly_guide/pictures/step4.webp)
Insert and solder the terminal blocks and headers onto the motor driver PCB. Insert and solder the terminal blocks and headers onto the motor driver PCB.
![Step5](assembly_guide/pictures/step5.webp) ![Step5](images/assembly_guide/pictures/step5.webp)
Place the motor driver PCB on to the indicated standoffs. Place the motor driver PCB on to the indicated standoffs.
## Step 4: Magnets setup ## Step 4: Magnets setup
![Step6](assembly_guide/pictures/step6.webp) ![Step6](images/assembly_guide/pictures/step6.webp)
Now is a good time to think about how the magnets will function within the microscope. The magnets in the sample stage will need to attract to the magnets on the flow cell holder. The magnets in the objective holder will need to attract the magnets on the mount. Keep this in mind as you are adding your magnets and tapping your respective M12 holders so your orientation will be correct. Now is a good time to think about how the magnets will function within the microscope. The magnets in the sample stage will need to attract to the magnets on the flow cell holder. The magnets in the objective holder will need to attract the magnets on the mount. Keep this in mind as you are adding your magnets and tapping your respective M12 holders so your orientation will be correct.
![Step8](assembly_guide/pictures/step8.webp) ![Step8](images/assembly_guide/pictures/step8.webp)
You can now fix your magnets into their appropriate holes on sample stage **B**. You can now fix your magnets into their appropriate holes on sample stage **B**.
It is recommended to glue the magnets in place. If the magnets are too large to fit in, the holes can be widened with a handheld drill. However, they should be quite snug in place. Before you glue them in place make sure that the polarity is maintained, as they will be impossible to remove after gluing. It is recommended to glue the magnets in place. If the magnets are too large to fit in, the holes can be widened with a handheld drill. However, they should be quite snug in place. Before you glue them in place make sure that the polarity is maintained, as they will be impossible to remove after gluing.
## Step 5: Sample stage assembly ## Step 5: Sample stage assembly
![Step9](assembly_guide/pictures/step9.webp) ![Step9](images/assembly_guide/pictures/step9.webp)
Dont be alarmed by the color swap, this is the sample stage **B**. You can now fit the pegs on the driver mounts into the corresponding holes on the sample stage. They should be glued in place with superglue or epoxy. You can spin the shaft to align the driver mounts on the 2 steppers if it helps making the process easier. Dont be alarmed by the color swap, this is the sample stage **B**. You can now fit the pegs on the driver mounts into the corresponding holes on the sample stage. They should be glued in place with superglue or epoxy. You can spin the shaft to align the driver mounts on the 2 steppers if it helps making the process easier.
![Step10](assembly_guide/pictures/step10.webp) ![Step10](images/assembly_guide/pictures/step10.webp)
You should now have a sample stage and motor assembly that looks like this. You should now have a sample stage and motor assembly that looks like this.
## Step 6: Lenses tapping and mounting ## Step 6: Lenses tapping and mounting
![Step12](assembly_guide/pictures/step12.webp) ![Step12](images/assembly_guide/pictures/step12.webp)
You now need to tap the holes for the M12 lenses in stage and mount **M** and **D**. It is helpful for alignment to do both the objeDtive and tube lens mount together. It is important to do this as straight as possible. A drop of mineral or olive oil can help the process. Be careful to use a right-hand tap (that goes down when turning clockwise). You now need to tap the holes for the M12 lenses in stage and mount **M** and **D**. It is helpful for alignment to do both the objeDtive and tube lens mount together. It is important to do this as straight as possible. A drop of mineral or olive oil can help the process. Be careful to use a right-hand tap (that goes down when turning clockwise).
![Step13](assembly_guide/pictures/step13.webp) ![Step13](images/assembly_guide/pictures/step13.webp)
![Step14](assembly_guide/pictures/step14.webp) ![Step14](images/assembly_guide/pictures/step14.webp)
![Step6-2](assembly_guide/render/step6-2.webp) ![Step6-2](images/assembly_guide/render/step6-2.webp)
You can now screw the objective lens (the 25mm one) in part **D**. You can now screw the objective lens (the 25mm one) in part **D**.
![Step14](assembly_guide/pictures/step15.webp) ![Step14](images/assembly_guide/pictures/step15.webp)
## Step 7: Camera preparation ## Step 7: Camera preparation
You can now unscrew the lens from the Pi camera, being careful not to disturb the sensor below. You can now unscrew the lens from the Pi camera, being careful not to disturb the sensor below.
![Image22](assembly_guide/pictures/image22.webp) ![Image22](images/assembly_guide/pictures/image22.webp)
![Image30](assembly_guide/pictures/image30.webp) ![Image30](images/assembly_guide/pictures/image30.webp)
## Step 8: Camera mount ## Step 8: Camera mount
![Step17](assembly_guide/pictures/step17.webp) ![Step17](images/assembly_guide/pictures/step17.webp)
You can mount the camera using the appropriate holes on the camera mount **G**. Be careful to avoid getting oil or dust on the sensor. You can mount the camera using the appropriate holes on the camera mount **G**. Be careful to avoid getting oil or dust on the sensor.
## Step 9: LED preparation ## Step 9: LED preparation
![Step18](assembly_guide/pictures/step18.webp) ![Step18](images/assembly_guide/pictures/step18.webp)
The LED can then be wired up and put into its mount **F**. If you wire the LED yourself, remember to give enough length to reach the motor driver on the other end of the microscope. You can also add a bit of glue to fix **F** to the motor mount **E** at this time to make assembly easier, though it is not required. The LED can then be wired up and put into its mount **F**. If you wire the LED yourself, remember to give enough length to reach the motor driver on the other end of the microscope. You can also add a bit of glue to fix **F** to the motor mount **E** at this time to make assembly easier, though it is not required.
!!! warning !!! warning
![Led](assembly_guide/render/led.webp) ![Led](images/assembly_guide/render/led.webp)
This picture shows the correct wiring for the LED. Please make sure the red wire is on the long pin of the LED. This picture shows the correct wiring for the LED. Please make sure the red wire is on the long pin of the LED.
## Step 10: Vertical slices assembly ## Step 10: Vertical slices assembly
You can now start placing the motor mount/LED assembly- **B**, You can now start placing the motor mount/LED assembly- **B**,
![Step5](assembly_guide/render/step5.webp) ![Step5](images/assembly_guide/render/step5.webp)
**C**, **C**,
![Step6](assembly_guide/render/step6.webp) ![Step6](images/assembly_guide/render/step6.webp)
**D**, **D**,
![Step7](assembly_guide/render/step7.webp) ![Step7](images/assembly_guide/render/step7.webp)
**E**, **E**,
![Step8](assembly_guide/render/step8.webp) ![Step8](images/assembly_guide/render/step8.webp)
**F**, **F**,
![Step8](assembly_guide/render/step9.webp) ![Step8](images/assembly_guide/render/step9.webp)
and **G** into the base **A**. and **G** into the base **A**.
## Step 11: Pump setup ## Step 11: Pump setup
The pump can then be mounted in place on **H**. Thread the wires through the hole with the pump tubing pointed toward the holes on the mount. The pump can then be mounted in place on **H**. Thread the wires through the hole with the pump tubing pointed toward the holes on the mount.
![Step19](assembly_guide/pictures/step19.webp) ![Step19](images/assembly_guide/pictures/step19.webp)
Fix the pump in place. Fix the pump in place.
![Step20](assembly_guide/pictures/step20.webp) ![Step20](images/assembly_guide/pictures/step20.webp)
## Step 12: Pump mounting ## Step 12: Pump mounting
You can now mount the pump on base **A**. You can now mount the pump on base **A**.
![Step15](assembly_guide/render/step15.webp) ![Step15](images/assembly_guide/render/step15.webp)
Your setup should look like this. Don't worry about the wiring, we'll have a look at it in the next step! Your setup should look like this. Don't worry about the wiring, we'll have a look at it in the next step!
![Step21](assembly_guide/pictures/step21.webp) ![Step21](images/assembly_guide/pictures/step21.webp)
## Step 13: Motor HAT wiring ## Step 13: Motor HAT wiring
![Step22](assembly_guide/pictures/step22.svg) ![Step22](images/assembly_guide/pictures/step22.svg)
You will now want to wire the steppers and pump to the terminals on the motor driver board. You will now want to wire the steppers and pump to the terminals on the motor driver board.
@ -168,34 +168,34 @@ You will now want to wire the steppers and pump to the terminals on the motor dr
## Step 14: Raspberry Pi setup and installation ## Step 14: Raspberry Pi setup and installation
![Step24](assembly_guide/pictures/step24.webp) ![Step24](images/assembly_guide/pictures/step24.webp)
At this point, you can insert your flashed SD card into your Raspberry Pi. [Consult the guide for flashing your SD card](https://www.planktoscope.org/replicate/assemble-your-kit) before you do this. The heat sink can also be added to the processor. At this point, you can insert your flashed SD card into your Raspberry Pi. [Consult the guide for flashing your SD card](https://www.planktoscope.org/replicate/assemble-your-kit) before you do this. The heat sink can also be added to the processor.
!!! note !!! note
If you choose the Expert path, you still need to flash your sd card, either with the [lite version](https://downloads.raspberrypi.org/raspios_lite_armhf_latest) of Raspberry OS or with the [desktop version](https://downloads.raspberrypi.org/raspios_armhf_latest). If you choose the Expert path, you still need to flash your sd card, either with the [lite version](https://downloads.raspberrypi.org/raspios_lite_armhf_latest) of Raspberry OS or with the [desktop version](https://downloads.raspberrypi.org/raspios_armhf_latest).
![Step16](assembly_guide/render/step16.webp) ![Step16](images/assembly_guide/render/step16.webp)
Mount the Raspberry Pi containing the flashed SD card on the standoffs attached to the laser cut base A. Mount the Raspberry Pi containing the flashed SD card on the standoffs attached to the laser cut base A.
## Step 15: Standoffs ## Step 15: Standoffs
![Step17](assembly_guide/render/step17.webp) ![Step17](images/assembly_guide/render/step17.webp)
Add 8 standoffs (M2.5 15mm) to fix the motor driver board and the Raspberry Pi to the base. Add 8 standoffs (M2.5 15mm) to fix the motor driver board and the Raspberry Pi to the base.
![Step25](assembly_guide/pictures/step25.webp) ![Step25](images/assembly_guide/pictures/step25.webp)
## Step 16: Camera flex cable ## Step 16: Camera flex cable
![Step26](assembly_guide/pictures/step26.webp) ![Step26](images/assembly_guide/pictures/step26.webp)
At this point you can use the Pi camera flex cable to connect the camera to the Pi. This is done by gently pulling up the tensioners, inserting the cable in the right orientation, then pushing the tensioners back in place to set the cable. Try not to kink or fold the flex cable too much as it is possible to damage it. At this point you can use the Pi camera flex cable to connect the camera to the Pi. This is done by gently pulling up the tensioners, inserting the cable in the right orientation, then pushing the tensioners back in place to set the cable. Try not to kink or fold the flex cable too much as it is possible to damage it.
## Step 17: Power supply wiring ## Step 17: Power supply wiring
![Step29](assembly_guide/pictures/step29.webp) ![Step29](images/assembly_guide/pictures/step29.webp)
The power wires can be wired into place on the motor driver board. The power wires can be wired into place on the motor driver board.
@ -204,19 +204,19 @@ The power wires can be wired into place on the motor driver board.
## Step 18: Prepare the GPS HAT ## Step 18: Prepare the GPS HAT
![Step18-1](assembly_guide/render/step18-1.webp) ![Step18-1](images/assembly_guide/render/step18-1.webp)
Insert the battery to power the GPS HAT and solder the terminal mounts in place. Insert the battery to power the GPS HAT and solder the terminal mounts in place.
## Step 19: Install the GPS HAT ## Step 19: Install the GPS HAT
![Step18](assembly_guide/render/step18.webp) ![Step18](images/assembly_guide/render/step18.webp)
Mount the GPS HAT over the motor driver PCB using the standoffs attached to the laser cut base **A**. Mount the GPS HAT over the motor driver PCB using the standoffs attached to the laser cut base **A**.
## Step 20: Install the Fan HAT ## Step 20: Install the Fan HAT
![Step19](assembly_guide/render/step19.webp) ![Step19](images/assembly_guide/render/step19.webp)
Place the cooling fan HAT above the Raspberry Pi by mounting it to the standoffs on base **A**. Place the cooling fan HAT above the Raspberry Pi by mounting it to the standoffs on base **A**.
@ -225,25 +225,25 @@ Place the cooling fan HAT above the Raspberry Pi by mounting it to the standoffs
## Step 21: Secure the HATS ## Step 21: Secure the HATS
![Step20](assembly_guide/render/step20.webp) ![Step20](images/assembly_guide/render/step20.webp)
Secure the cooling fan HAT and GPS HAT by tightening the 8 screws to the standoffs on base A Secure the cooling fan HAT and GPS HAT by tightening the 8 screws to the standoffs on base A
## Step 22: Install back panel ## Step 22: Install back panel
![Step21](assembly_guide/render/step21.webp) ![Step21](images/assembly_guide/render/step21.webp)
Insert the laser cut border **I** into base **A**. Insert the laser cut border **I** into base **A**.
## Step 23: GPS output connector ## Step 23: GPS output connector
![Step22](assembly_guide/render/step22.webp) ![Step22](images/assembly_guide/render/step22.webp)
Insert the power and GPS connectors into side plate **J**. Insert the power and GPS connectors into side plate **J**.
## Step 24: Install side panel ## Step 24: Install side panel
![Step23](assembly_guide/render/step23.webp) ![Step23](images/assembly_guide/render/step23.webp)
Place the side plate **J** into the designated slots on the base. You can connect the GPS cable to its connector on the board. Place the side plate **J** into the designated slots on the base. You can connect the GPS cable to its connector on the board.
@ -252,19 +252,19 @@ Place the side plate **J** into the designated slots on the base. You can connec
## Step 25: Install the other side panel ## Step 25: Install the other side panel
![Step25](assembly_guide/render/step25.webp) ![Step25](images/assembly_guide/render/step25.webp)
Mount the side plate **K** on base **A** using the assigned slots. Mount the side plate **K** on base **A** using the assigned slots.
## Step 26: Secure the sides together ## Step 26: Secure the sides together
![Step26](assembly_guide/render/step26.webp) ![Step26](images/assembly_guide/render/step26.webp)
Secure the laser cut sides with the screws and nuts. Secure the laser cut sides with the screws and nuts.
## Step 27: Secure the sides to the base plate ## Step 27: Secure the sides to the base plate
![Step27](assembly_guide/render/step27.webp) ![Step27](images/assembly_guide/render/step27.webp)
Secure the laser cut sides to the base plate **A** with the screws and nuts. Secure the laser cut sides to the base plate **A** with the screws and nuts.
@ -273,7 +273,7 @@ Secure the laser cut sides to the base plate **A** with the screws and nuts.
## Step 28: Insert the camera ribbon cable in the camera ## Step 28: Insert the camera ribbon cable in the camera
![Step28](assembly_guide/pictures/step28.webp) ![Step28](images/assembly_guide/pictures/step28.webp)
You can now connect the camera flex cable into the connector on the camera board. Once again, gently pull up the tensioners, insert the cable in the right orientation, and push the tensioners back in place to set the cable. Try not to kink or fold the flex cable too much as it is possible to damage it. You can now connect the camera flex cable into the connector on the camera board. Once again, gently pull up the tensioners, insert the cable in the right orientation, and push the tensioners back in place to set the cable. Try not to kink or fold the flex cable too much as it is possible to damage it.
@ -287,56 +287,56 @@ To assemble, slide the ribbon in its connector and close it off. You need to tig
!!! warning !!! warning
Once assembled, the ribbon should NOT look like this: Once assembled, the ribbon should NOT look like this:
![Ribbon wrong](assembly_guide/pictures/ribbon_wrong.webp) ![Ribbon wrong](images/assembly_guide/pictures/ribbon_wrong.webp)
It should rather look like this: It should rather look like this:
![Ribbon good](assembly_guide/pictures/ribbon_good.webp) ![Ribbon good](images/assembly_guide/pictures/ribbon_good.webp)
## Step 30: Insert the ribbon cable ## Step 30: Insert the ribbon cable
![Step28](assembly_guide/render/step28.webp) ![Step28](images/assembly_guide/render/step28.webp)
Attach the GPIO ribbon to connect the cooling fan HAT to the GPS HAT. Attach the GPIO ribbon to connect the cooling fan HAT to the GPS HAT.
!!! tip !!! tip
You can try to route the flat ribbon from the camera under the ribbon cable you are connecting now. You can try to route the flat ribbon from the camera under the ribbon cable you are connecting now.
![Step31](assembly_guide/pictures/step31.webp) ![Step31](images/assembly_guide/pictures/step31.webp)
## Step 31: Fluidic assembly ## Step 31: Fluidic assembly
![Step29](assembly_guide/render/step29.webp) ![Step29](images/assembly_guide/render/step29.webp)
Feed in the tubing from syringe 1 to form the fluidic path as shown. Feed in the tubing from syringe 1 to form the fluidic path as shown.
![Step30](assembly_guide/render/step30.webp) ![Step30](images/assembly_guide/render/step30.webp)
Feed in the tubing from syringe 2 to form the fluidic path as shown Feed in the tubing from syringe 2 to form the fluidic path as shown
![Step31](assembly_guide/render/step31.webp) ![Step31](images/assembly_guide/render/step31.webp)
Feed in a length of tubing as shown through motor mount **H** and illumination mount **FE** Feed in a length of tubing as shown through motor mount **H** and illumination mount **FE**
![Step34](assembly_guide/pictures/step34.webp) ![Step34](images/assembly_guide/pictures/step34.webp)
## Step 32: Close your PlanktoScope ## Step 32: Close your PlanktoScope
!!! warning !!! warning
Take a moment to check your wiring one last time. Also check the routing, make sure the LED wires and the pump stepper wires are in their dedicated channel. Take a moment to check your wiring one last time. Also check the routing, make sure the LED wires and the pump stepper wires are in their dedicated channel.
![Step33](assembly_guide/render/step33.webp) ![Step33](images/assembly_guide/render/step33.webp)
Place the top **L** into the slots on the PlanktoScope body. Secure it in place with screws and nuts. Place the top **L** into the slots on the PlanktoScope body. Secure it in place with screws and nuts.
![Step34](assembly_guide/render/step34.webp) ![Step34](images/assembly_guide/render/step34.webp)
## Step 33: Enjoy ## Step 33: Enjoy
Congratulations on a job well done. You can have some rest, get a tea and some biscuits! Congratulations on a job well done. You can have some rest, get a tea and some biscuits!
![Step35](assembly_guide/render/step35.webp) ![Step35](images/assembly_guide/render/step35.webp)
You can now plug the machine in and test it. If you have choose the Expert's path, now is a good time to [finish setting up your machine](expert_setup.md). You can now plug the machine in and test it. If you have choose the Expert's path, now is a good time to [finish setting up your machine](expert_setup.md).
## Step 34: Read the getting started guide ## Step 34: Read the getting started guide
[A guide to get started with your machine use is available!](getting_started.md) [A guide to get started with your machine use is available!](images/getting_started.md)

BIN
docs/assets/logo-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

111
docs/contributions.md Normal file
View file

@ -0,0 +1,111 @@
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
-->
# Contributing <!-- omit in toc -->
First of all, thank you for contributing to FabCityOS! The goal of this document is to provide everything you need to know in order to contribute to FabCityOS and its different integrations.
- [Assumptions](#assumptions)
- [How to Contribute](#how-to-contribute)
- [Development Workflow](#development-workflow)
- [Git Guidelines](#git-guidelines)
- [Release Process (for internal team only)](#release-process-for-internal-team-only)
## Assumptions
1. **You're familiar with [git](https://git-scm.com/) and the [Merge Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)(PR) workflow.**
2. **You've read the PlanktoScope [documentation](https://planktonscope.readthedocs.io/) and the [images/readme](/images/readme.md).**
3. **You know about the PlanktoScope [community on Slack](https://planktoscope.slack.com/). Please use this for help.**
## How to Contribute
1. Make sure that the contribution you want to make is explained or detailed in a GitHub issue! Find an [existing issue](https://github.com/PlanktoScope/PlanktoScope/issues) or [open a new one](https://github.com/PlanktoScope/PlanktoScope/issues/new/choose).
2. Once done, [fork the PlanktoScope repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo) in your Github account. Ask a mastertainer if you want your issue to be checked before making a PR.
3. [Create a new Git branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository).
4. Review the [Development Workflow](#development-workflow) section that describes the steps to mastertain the repository.
5. Make the changes on your branch.
6. [Submit the branch as a PR](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) pointing to the `master` branch of the master fabcity-os-core-chart repository. A mastertainer should comment and/or review your Pull Request within a few days. Although depending on the circumstances, it may take longer. We do not enforce a naming convention for the PRs, but **please use something descriptive of your changes**, having in mind that the title of your PR will be automatically added to the next [release changelog](https://github.com/PlanktoScope/PlanktoScope/releases).
## Development Workflow
### Setup <!-- omit in toc -->
In order to use the different tools on this repository, you will first need to:
```sh
```
### Tests and Linter <!-- omit in toc -->
Each PR should pass the linter to be accepted.
```sh
make lint
```
Each PR should also check if the generated file `manifests/fcoscore.yaml` is updated with the new modifications.
You can generated the manifest with the command line:
```bash
helm template fcoscore . | grep -v 'helm.sh/chart:\|app.kubernetes.io/managed-by:' > manifests/FabCityOS.yaml
```
Or just by comment the PR:
```txt
@FabCityOS sync-manifest
```
Additionally, the CI will run a test to check if there are changes introduced to the charts. If changes were introduced, it will require you to update the Chart version.
## Git Guidelines
### Git Branches <!-- omit in toc -->
All changes must be made in a branch and submitted as PR.
We do not enforce any branch naming style, but please use something descriptive of your changes.
### Git Commits <!-- omit in toc -->
As minimal requirements, your commit message should:
- be capitalized
- not finish by a dot or any other punctuation character (!,?)
- start with a verb so that we can read your commit message this way: "This commit will ...", where "..." is the commit message.
e.g.: "Fix the home page button" or "Add more tests for create_index method"
We don't follow any other convention, but if you want to use one, we recommend [this one](https://chris.beams.io/posts/git-commit/).
### Pull Requests <!-- omit in toc -->
Some notes on PRs:
- [Convert your PR as a draft]() if your changes are a work in progress: no one will review it until you pass your PR as ready for review.<br>
The draft PR can be very useful if you want to show that you are working on something and make your work visible.
- The branch related to the PR must be **up-to-date with `master`** before merging. Fortunately, this project [integrates a bot]() to automatically enforce this requirement without the PR author having to do it manually.
- All PRs must be reviewed and approved by at least one mastertainer.
- The PR title should be accurate and descriptive of the changes. The title of the PR will be indeed automatically added to the next [release changelogs]().
## Release Process (for internal team only)
FabCityOS tools follow the [Semantic Versioning Convention](https://semver.org/).
### Automation to Rebase and Merge the PRs <!-- omit in toc -->
This project integrates a bot that helps us manage pull requests merging.<br>
_[Read more about this]()._
### How to Publish the Release <!-- omit in toc -->
⚠️ Before doing anything, make sure you got through the guide about [Releasing an Integration]().
⚠️ Every PR that is merged to `master` introducing changes to the PlanktoScope needs to modify the file [``](), by increasing the version of the chart accordingly.
Every PR that is merged to `master` triggers the automated release process, as specified at [``](). A GitHub Action will be triggered and publish a new release on the GitHub repository [releases](). This will enable users to start using the new version of the chart immediately after publishing.
Thank you again for reading this through, we can not wait to begin to work with you if you made your way through this contributing guide ❤️
- pdfimages -all protocols/PlanktoScope\ -\ Setup\ and\ Sampling\ Guide\ VER3.pdf protocols/dumps/PlanktoScope_Setup_and_Sampling_Guide_VER3
sudo apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra
sudo apt install poppler-utils

View file

@ -9,16 +9,16 @@ Congratulations! You have finished assembling your machine, now is the time to t
## How to connect to and control the machine ## How to connect to and control the machine
On powering up, your PlanktoScope will create its own isolated WiFi network. It should appear on the list of available wifi networks about two minutes after the first startup. On powering up, your PlanktoScope will create its own isolated WiFi network. It should appear on the list of available wifi networks about two minutes after the first startup.
![network list](getting_started/wifi.webp) ![network list](images/getting_started/wifi.webp)
As you can see, its name will be similar to `PlanktoScope-Baba*****_*****`. This name is unique to your machine and is linked to the serial number of the Raspberry CPU. You can connect to this network now. As you can see, its name will be similar to `PlanktoScope-Baba*****_*****`. This name is unique to your machine and is linked to the serial number of the Raspberry CPU. You can connect to this network now.
Once connected, you will not have acces to the Internet, only to the PlanktoScope interface. You can access the page at [http://planktoscope.local:1880/ui](http://planktoscope.local:1880/ui) from your favorite web browser. Once connected, you will not have acces to the Internet, only to the PlanktoScope interface. You can access the page at [http://planktoscope.local:1880/ui](http://planktoscope.local:1880/ui) from your favorite web browser.
!!! tip !!! tip
You are able to configure your machine to connect to another network if you want in the [Wifi settings page](ui_guide.md#wifi). If you do this, your machine will be accessible to anybody connected to this network. Please keep in mind your organisation security policies before doing this. You are able to configure your machine to connect to another network if you want in the [Wifi settings page](images/ui_guide.md#wifi). If you do this, your machine will be accessible to anybody connected to this network. Please keep in mind your organisation security policies before doing this.
From there, you can have a look at the [UI guide](ui_guide.md) to get a handle on how it works. From there, you can have a look at the [UI guide](images/ui_guide.md) to get a handle on how it works.
## How to image plankton ## How to image plankton

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -6,7 +6,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0
Starting with the release of v2.2, a new user interface brings a whole new user interface. This guide will help you get familiar with it. Starting with the release of v2.2, a new user interface brings a whole new user interface. This guide will help you get familiar with it.
![Home](ui_guide/home.webp) ![Home](images/ui_guide/home.webp)
## Home ## Home
@ -18,7 +18,7 @@ From here, you can quickly access any of the available tabs. The buttons are onl
* Administration * Administration
* Hardware Config * Hardware Config
![Tab List](ui_guide/tab_list.webp) ![Tab List](images/ui_guide/tab_list.webp)
!!! tip !!! tip
This list is also available from any other tab and allows you to quickly navigate between tabs. This list is also available from any other tab and allows you to quickly navigate between tabs.
@ -33,29 +33,29 @@ From this page, you can also shutdown the machine when you are done.
To shutdown the machine, first unlock the shutdown button by clicking on "Unlock Button". To shutdown the machine, first unlock the shutdown button by clicking on "Unlock Button".
![Home Shutdown Unlocked](ui_guide/home_unlocked.webp) ![Home Shutdown Unlocked](images/ui_guide/home_unlocked.webp)
You can then click on "Shutdown". The machine will ask for a final confirmation and will then shut itself down. You can then click on "Shutdown". The machine will ask for a final confirmation and will then shut itself down.
![Home Shutdown](ui_guide/home_shutdown.webp) ![Home Shutdown](images/ui_guide/home_shutdown.webp)
## Sample Tab ## Sample Tab
![Sample](ui_guide/sample_pass.webp) ![Sample](images/ui_guide/sample_pass.webp)
In this page, you can enter all the information regarding the current sample you want to image. This includes the project name, the operator, but also the type of collection device you used. In this page, you can enter all the information regarding the current sample you want to image. This includes the project name, the operator, but also the type of collection device you used.
![Sample device selection](ui_guide/sample_selection.webp) ![Sample device selection](images/ui_guide/sample_selection.webp)
Depending on the device you choose, the page will change to reflect the needed information. Depending on the device you choose, the page will change to reflect the needed information.
There is a mechanism of validation of the submitted data. Please be careful to use the format given in example for each input field. There is a mechanism of validation of the submitted data. Please be careful to use the format given in example for each input field.
![Sample validation](ui_guide/sample_validation.webp) ![Sample validation](images/ui_guide/sample_validation.webp)
The GPS status block will give you the current information on the GPS fix and location, your direction and speed. This can be used to grab the location when in the field. The GPS status block will give you the current information on the GPS fix and location, your direction and speed. This can be used to grab the location when in the field.
![Sample net](ui_guide/sample_net.webp) ![Sample net](images/ui_guide/sample_net.webp)
Once all the fields are completed, you can go to the next tab by clicking the -> arrow. This will make sure all the inserted data is valid. Once all the fields are completed, you can go to the next tab by clicking the -> arrow. This will make sure all the inserted data is valid.
@ -63,7 +63,7 @@ Once all the fields are completed, you can go to the next tab by clicking the ->
This page allows you to control the optical setup of the acquisition. This page allows you to control the optical setup of the acquisition.
![Optic configuration](ui_guide/optic_configuration.webp) ![Optic configuration](images/ui_guide/optic_configuration.webp)
In the Optic Characterization block, you can control to turn the light on or not. You also have to choose the optics in use in the machine. In the Optic Characterization block, you can control to turn the light on or not. You also have to choose the optics in use in the machine.
@ -82,7 +82,7 @@ As with all the tabs, once you are satisfied with your focus and your image sett
Finally, this is where the magic happens! You will be able to chose the final parameters of your capture. Finally, this is where the magic happens! You will be able to chose the final parameters of your capture.
![Fluidic Acquisition](ui_guide/fluidic_acquisition.webp) ![Fluidic Acquisition](images/ui_guide/fluidic_acquisition.webp)
First of all, change the Fraction Size of your sample. You can then choose a unique ID for your acquisition, the number of pictures you want to take, the pumped volume (in between images), the delay to stabilize the image and the Flowcell thickness. All those settings will influence the Total imaged volume (the total volume captured during the acquisition) and the Total pumped volume. First of all, change the Fraction Size of your sample. You can then choose a unique ID for your acquisition, the number of pictures you want to take, the pumped volume (in between images), the delay to stabilize the image and the Flowcell thickness. All those settings will influence the Total imaged volume (the total volume captured during the acquisition) and the Total pumped volume.
@ -91,7 +91,7 @@ First of all, change the Fraction Size of your sample. You can then choose a uni
## Gallery ## Gallery
![Gallery](ui_guide/gallery.webp) ![Gallery](images/ui_guide/gallery.webp)
This simple page will allow you to navigate the local directory of the machine and visualize the captured data. This simple page will allow you to navigate the local directory of the machine and visualize the captured data.
@ -99,7 +99,7 @@ This simple page will allow you to navigate the local directory of the machine a
This tab allows you to monitor the physical characteristics of the machine and follow the processor load, CPU temperature, memory use and disk usage. This tab allows you to monitor the physical characteristics of the machine and follow the processor load, CPU temperature, memory use and disk usage.
![System Monitoring](ui_guide/system_monitoring.webp) ![System Monitoring](images/ui_guide/system_monitoring.webp)
You also can find information about the software version you are using, the machine name and its camera. You also can find information about the software version you are using, the machine name and its camera.
@ -121,7 +121,7 @@ Before purging the local data, make sure your data has been backed up at least t
## Wifi ## Wifi
![Administration](ui_guide/wifi.webp) ![Administration](images/ui_guide/wifi.webp)
This page will give you information about the network the PlanktoScope is connected to. It will also allows you to connect your machine to a new WiFi network. This page will give you information about the network the PlanktoScope is connected to. It will also allows you to connect your machine to a new WiFi network.
@ -139,7 +139,7 @@ Clicking on the button `Reset wifi networks` will erase ALL networks saved previ
## Administration ## Administration
![Administration](ui_guide/administration.webp) ![Administration](images/ui_guide/administration.webp)
On this page you can find the logs generated by the python script and also the [Danger Zone](https://www.youtube.com/watch?v=siwpn14IE7E). On this page you can find the logs generated by the python script and also the [Danger Zone](https://www.youtube.com/watch?v=siwpn14IE7E).
@ -149,19 +149,19 @@ You should only touch here if you know what you are doing. The update process ca
After clicking on the button to launch the update, the script will first check that there is an available update. After clicking on the button to launch the update, the script will first check that there is an available update.
![Administration](ui_guide/update_start.webp) ![Administration](images/ui_guide/update_start.webp)
The script will then kill node-red, update its code and restart it. The script will then kill node-red, update its code and restart it.
![Administration](ui_guide/update.webp) ![Administration](images/ui_guide/update.webp)
The python script will also restart the python script. The python script will also restart the python script.
![Administration](ui_guide/update_restarting.webp) ![Administration](images/ui_guide/update_restarting.webp)
Once the message displayed top right show "The segmenter is ready", you're good to go on the latest version! Once the message displayed top right show "The segmenter is ready", you're good to go on the latest version!
![Administration](ui_guide/update_ready.webp) ![Administration](images/ui_guide/update_ready.webp)
## Hardware Configuration ## Hardware Configuration
![Hardware Configuration](ui_guide/hardware_config.webp) ![Hardware Configuration](images/ui_guide/hardware_config.webp)
You can change the hardware settings of your machine here. If you use a Waveshare hat for the steppers, instead of the adafruit one, if you want to invert the stepper output (switch the stepper 1 with the stepper 2 for example) and the Steps per ml settings of the pump. You can change the hardware settings of your machine here. If you use a Waveshare hat for the steppers, instead of the adafruit one, if you want to invert the stepper output (switch the stepper 1 with the stepper 2 for example) and the Steps per ml settings of the pump.

View file

@ -1,35 +1,118 @@
---
# SPDX-License-Identifier: CC-BY-SA-4.0
site_name: PlanktoScope site_name: PlanktoScope
site_description: An open and affordable imaging platform for \
citizen oceanography
site_url: http://PlanktoScope.github.io/PlanktoScope
edit_uri: blob/master/docs
repo_name: PlanktoScope/PlanktoScope
repo_url: https://github.com/PlanktoScope/PlanktoScope
nav: nav:
- Setup: - Introduction:
- Basic Install: easy_install.md - Introduction: introduction.md
- Expert Setup: expert_setup.md - Specs: specs.md
- Remote Access: remote_access.md - Research: research.md
- Assembly: - Hardware:
- Assembly guide: assembly_guide.md - Circularity: build_workshops.md
- Usage: - Planktoscope HAT: hat_hardware.md
- Getting started: getting_started.md - Assembly:
- User Interface: ui_guide.md - Assembly guide: images/assembly_guide.md
- Collection devices: collection_devices.md - Trainer Notes: trainer_notes.md
- Hardware: - Software:
- Planktoscope HAT: hat_hardware.md - Basic Install: easy_install.md
- Under the hood: - Create Master SD Card: create_sd.md
- Software architecture: software_architecture.md - Expert Setup: expert_setup.md
- MQTT Messages: mqtt_messages.md - Remote Access: remote_access.md
- Create Master SD Card: create_sd.md - Internals:
- Update the Device Tree: update_device-tree.md - Software architecture: software_architecture.md
- Changelog: - MQTT Messages: mqtt_messages.md
- Changelog: changelog.md - Update the Device Tree: update_device-tree.md
- Contribute: - Usage:
- Edit this documentation: edit_this_doc.md - Getting started: images/getting_started.md
- Edit the code: edit_the_code.md - User Interface: images/ui_guide.md
- About: - Collection devices: collection_devices.md
- License: license.md - Community:
- people: people.md
- Community: community.md
- Code of Conduct: code_of_conduct.md
- Contribute:
- Hardware: hardware_development.md
- Software: edit_the_code.md
- Documentation: edit_this_doc.md
- Protocols: protocols.md
- About:
- Changelog: changelog.md
- License: license.md
- Funding: funding.md
- Contact: contact.md
theme: theme:
name: readthedocs logo: assets/logo-white.png
locale: en
name: material
font:
text: Roboto
code: Roboto Mono
features:
- content.code.annotate
- navigation.sections
- navigation.expand
- navigation.tabs
- navigation.tabs.sticky
- navigation.instant
palette:
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/weather-night
name: Switch to light mode
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/weather-sunny
name: Switch to dark mode
plugins:
- glightbox
- charts
extra_javascript:
- https://cdn.jsdelivr.net/npm/vega@5
- https://cdn.jsdelivr.net/npm/vega-lite@5
- https://cdn.jsdelivr.net/npm/vega-embed@6
extra:
generator: false
markdown_extensions: markdown_extensions:
- smarty - admonition
- sane_lists - attr_list
- admonition - md_in_html
- toc: - sane_lists
permalink: true - smarty
- tables
- toc:
permalink: true
- pymdownx.details
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- name: vegalite
class: vegalite
format: !!python/name:mkdocs_charts_plugin.fences.fence_vegalite
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
options:
custom_icons:
- overrides/.icons
- pymdownx.tasklist:
custom_checkbox: true