Commit 8ed5cd75 authored by Guillaume Blanchy's avatar Guillaume Blanchy
Browse files

Reorganise documentation

Showing with 0 additions and 426 deletions
+0 -426
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
File deleted
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: ca7e0a74d2b6886c0b281f49e446eff0
tags: 645f666f9bcd5a90fca523b33c5a78b7
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OhmPi project &mdash; OhmPi open hardware resistivity-meter documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="OhmPi V 1.01 (limited to 32 electrodes)" href="V1_01.html" />
<link rel="prev" title="OHMPI: Open source and open hardware resistivity-meter" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
OhmPi
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">OhmPi project</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#authors"><strong>Authors:</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="#partners"><strong>Partners:</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="#citing-ohmpi"><strong>Citing OhmPi:</strong></a></li>
<li class="toctree-l2"><a class="reference internal" href="#introduction"><strong>Introduction :</strong></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li>
<li class="toctree-l1"><a class="reference internal" href="V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li>
<li class="toctree-l1"><a class="reference internal" href="V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
<li class="toctree-l1"><a class="reference internal" href="V2024_rc.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
<li class="toctree-l1"><a class="reference internal" href="api.html">API reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">OhmPi</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">OhmPi project</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/Ohmpi.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="ohmpi-project">
<h1>OhmPi project<a class="headerlink" href="#ohmpi-project" title="Permalink to this heading"></a></h1>
<blockquote>
<div><a class="reference internal image-reference" href="_images/logo_ohmpi.JPG"><img alt="Logo OhmPi" class="align-center" src="_images/logo_ohmpi.JPG" style="width: 250px; height: 180px;" /></a>
</div></blockquote>
<div class="line-block">
<div class="line"><br /></div>
</div>
<section id="authors">
<h2><strong>Authors:</strong><a class="headerlink" href="#authors" title="Permalink to this heading"></a></h2>
<div class="line-block">
<div class="line">Rémi CLEMENT, Vivien DUBOIS, Nicolas Forquet, INRAE, REVERSAAL, Villeurbanne, France</div>
<div class="line">Olivier KAUFMANN, Arnaud WATLET, Université de Mons, Mons, Belgium</div>
<div class="line">Yannick FARGIER, GERS-RRO, Univ Gustave Eiffel, IFSTTAR, Lyon, France</div>
<div class="line">Hélène GUYARD, IGE Grenoble, Université Grenoble Alpes, Grenoble, France</div>
<div class="line">Guillaume BLANCHY, ILVO, Merelbeke, Belgium</div>
</div>
</section>
<section id="partners">
<h2><strong>Partners:</strong><a class="headerlink" href="#partners" title="Permalink to this heading"></a></h2>
<table class="docutils align-center">
<tbody>
<tr class="row-odd"><td><img alt="_images/logo_inrae.jpg" src="_images/logo_inrae.jpg" />
</td>
<td><img alt="_images/logo_univ_gustave.png" src="_images/logo_univ_gustave.png" />
</td>
<td><img alt="_images/logo_ilvo.png" src="_images/logo_ilvo.png" />
</td>
</tr>
<tr class="row-even"><td><img alt="_images/logo_univ_mons.png" src="_images/logo_univ_mons.png" />
</td>
<td><img alt="_images/ige.png" src="_images/ige.png" />
</td>
<td></td>
</tr>
</tbody>
</table>
</section>
<section id="citing-ohmpi">
<h2><strong>Citing OhmPi:</strong><a class="headerlink" href="#citing-ohmpi" title="Permalink to this heading"></a></h2>
<div class="line-block">
<div class="line"><br /></div>
</div>
<p><em>Rémi Clement, Yannick Fargier, Vivien Dubois, Julien Gance, Emile Gros, et al.. OhmPi: An open</em>
<em>source data logger for dedicated applications of electrical resistivity imaging at the small and laboratory</em>
<em>scale. HardwareX, Elsevier, 2020, 8, 24 p. ff10.1016/j.ohx.2020.e00122ff.</em></p>
<div class="line-block">
<div class="line"><br /></div>
</div>
</section>
<section id="introduction">
<h2><strong>Introduction :</strong><a class="headerlink" href="#introduction" title="Permalink to this heading"></a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules.
OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be
held responsible for any material or human damage which would be associated with the use or the assembly of OhmPi.
The OhmPi team cannot be held responsible if the equipment does not work after assembly. You may redistribute and
modify this documentation and make products using it under the terms of the CERN-OHL-P v2. This documentation is
distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS
FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-P v2 for applicable conditions.</p>
</div>
<p>This documentation presents the development of a low-cost, open hardware resistivity meter to provide the scientific community with a robust and flexible tool for small-scale experiments. Called OhmPi, this basic resistivity meterfeatures current injection and measurement functions associated with a multiplexer that allows performing automatic measurements with up to 64 electrodes.OhmPi’s philosophy is to provide a fully open source and open hardware toolto the near surface scientific community.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Anyone who wants to get involved is welcome to join the OhmPi project!</p>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="OHMPI: Open source and open hardware resistivity-meter" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="V1_01.html" class="btn btn-neutral float-right" title="OhmPi V 1.01 (limited to 32 electrodes)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2022, the OhmPi Team..</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>STEP n°1 : Raspberry Pi configuration &mdash; OhmPi open hardware resistivity-meter documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="STEP n°2: Measurement board" href="V2023_step_02.html" />
<link rel="prev" title="OhmPi V2023 (64 electrodes and 12V)" href="../V2023.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
OhmPi
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../Ohmpi.html">OhmPi project</a></li>
<li class="toctree-l1"><a class="reference internal" href="../V1_01.html">OhmPi V 1.01 (limited to 32 electrodes)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../V1_02.html">OhmPi V 1.02 (limited to 32 electrodes)</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../V2023.html">OhmPi V2023 (64 electrodes and 12V)</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../V2023.html#the-philosophy-of-ohmpi">The philosophy of OhmPi</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../V2023.html#hardware">Hardware</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../V2023.html#specifications">Specifications</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="../V2023.html#building-an-ohmpi-v2023-step-by-step">Building an OhmPi V2023 step by step</a><ul class="current">
<li class="toctree-l4 current"><a class="current reference internal" href="#"><strong>STEP n°1</strong> : Raspberry Pi configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="V2023_step_02.html"><strong>STEP n°2</strong>: Measurement board</a></li>
<li class="toctree-l4"><a class="reference internal" href="V2023_step_03.html"><strong>STEP n°3:</strong> MUX board</a></li>
<li class="toctree-l4"><a class="reference internal" href="V2023_step_04.html"><strong>STEP n°4:</strong> assemble the OhmPi</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../V2023.html#software-and-operation">Software and operation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">OhmPi</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li>
<li class="breadcrumb-item active"><strong>STEP n°1</strong> : Raspberry Pi configuration</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/Ohmpi_V2023/V2023_step_01.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="step-n1-raspberry-pi-configuration">
<h1><strong>STEP n°1</strong> : Raspberry Pi configuration<a class="headerlink" href="#step-n1-raspberry-pi-configuration" title="Permalink to this heading"></a></h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p>
</div>
<section id="part-a-os-installation">
<h2><strong>PART A:</strong> OS installation<a class="headerlink" href="#part-a-os-installation" title="Permalink to this heading"></a></h2>
<table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p><strong>Required components</strong></p></td>
<td><p><strong>Quantity</strong></p></td>
</tr>
<tr class="row-even"><td><p>Raspberry Pi 4 Model B</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>Micro SD 32 Go</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>HDMI Cable</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>Computer mouse</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>Computer Keyboard</p></td>
<td><p>1</p></td>
</tr>
</tbody>
</table>
<p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system).
For this step, the installation instructions are well described on the Raspberry website</p>
<ol class="arabic simple">
<li><p>Watch the video <a class="reference external" href="https://www.youtube.com/watch?v=wjWZhV1v3Pk">how to set up your raspberry Pi</a>.</p></li>
<li><p>The authors recommend installing the latest stable and complete version of Raspberry Pi OS (Previously called Raspbian) by using Raspberry Pi Imager.</p></li>
<li><p>or you can visit this <cite>website &lt;https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up&gt;</cite>.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>All the development tests were performed on Raspberry Pi 3 Model B, we used the following version of Raspbian:</p>
<figure class="align-center">
<a class="reference internal image-reference" href="../_images/raspbian_version.jpg"><img alt="alternate text" src="../_images/raspbian_version.jpg" style="width: 800px; height: 400px;" /></a>
</figure>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Once the OS has been installed, <strong>1-wire, spi and GPIO remote option</strong> must be deactivated and <strong>I2C option</strong> must be activated via the Raspbian GUI settings menu. Failure to carry out this task may cause damage to the relay shield cards during measurements.</p>
</div>
</section>
<section id="part-b-virtual-environment-and-packages">
<h2><strong>PART B:</strong> Virtual Environment and packages<a class="headerlink" href="#part-b-virtual-environment-and-packages" title="Permalink to this heading"></a></h2>
<p>A virtual environment is a way to have multiple, parallel instances of the Python interpreter, each with different package sets and different configurations.
Each virtual environment contains a discrete copy of the Python interpreter, including copies of its support utilities. It also protects your system in case of problems with the packages.</p>
<p>All dependencies are specified in requirements.txt</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>All instructions below should be typed in the terminal</p>
</div>
<p>It is first necessary to ensure that the libatlas-base-dev library is installed:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">libatlas</span><span class="o">-</span><span class="n">base</span><span class="o">-</span><span class="n">dev</span>
</pre></div>
</div>
<p>We strongly recommend users to create a virtual environment to run the code and installed all required dependencies. It can be done either in a directory gathering all virtual environments used on the computer or within the ohmpy directory.</p>
<p>Create the virtual environment:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">venv</span> <span class="n">ohmpy</span>
</pre></div>
</div>
<p>Activate it using the following command:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">source</span> <span class="n">ohmpy</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">activate</span>
</pre></div>
</div>
<p>Install packages within the virtual environment. Installing the following package should be sufficient to meet dependencies:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">CFLAGS</span><span class="o">=-</span><span class="n">fcommon</span>
<span class="n">sudo</span> <span class="n">pip</span> <span class="n">install</span> <span class="n">RPi</span><span class="o">.</span><span class="n">GPIO</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">blinka</span> <span class="n">numpy</span> <span class="n">pandas</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">circuitpython</span><span class="o">-</span><span class="n">ads1x15</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">circuitpython</span><span class="o">-</span><span class="n">tca9548a</span> <span class="n">adafruit</span><span class="o">-</span><span class="n">circuitpython</span><span class="o">-</span><span class="n">mcp230xx</span> <span class="n">gpiozero</span>
</pre></div>
</div>
<p>Check that requirements are met using</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="nb">list</span>
</pre></div>
</div>
<p>You should run you code within the virtual environment
to leave the virtual environment simply type:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">deactivate</span>
</pre></div>
</div>
</section>
<section id="part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi">
<h2><strong>PART C:</strong> Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Permalink to this heading"></a></h2>
<p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p>
<p>1- Run the Thonny Python IDE software, Click on raspberry access <strong>menu &gt; programming&gt; Thonny pythonIDE</strong></p>
<p>2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))</p>
<figure class="align-center">
<a class="reference internal image-reference" href="../_images/thonny_first_interface.jpg"><img alt="alternate text" src="../_images/thonny_first_interface.jpg" style="width: 600px; height: 450px;" /></a>
</figure>
<p>3-Click on <strong>Run&gt;select interpreter</strong>, a new window opens click on interpret</p>
<figure class="align-center">
<a class="reference internal image-reference" href="../_images/thonny_option.jpg"><img alt="alternate text" src="../_images/thonny_option.jpg" style="width: 600px; height: 450px;" /></a>
</figure>
<p>4-On the new open windows select <strong>alternative Python3 or virtual environment</strong></p>
<figure class="align-center">
<a class="reference internal image-reference" href="../_images/thonny_interpreter.jpg"><img alt="alternate text" src="../_images/thonny_interpreter.jpg" style="width: 600px; height: 450px;" /></a>
</figure>
<p>5- New buttons appeared, selected <strong>“locate another python executable “</strong></p>
<p>6- A new window opens, find the folder where there is the python 3 file in the virtual environment folder previously created <strong>/home/pi/ohmpi/bin/python3</strong>.</p>
<p>7- In the <strong>known interpreter</strong> tab the path of the virtual environment should appear</p>
<figure class="align-center">
<a class="reference internal image-reference" href="../_images/thonny_interpreter_folder.jpg"><img alt="alternate text" src="../_images/thonny_interpreter_folder.jpg" style="width: 600px; height: 450px;" /></a>
</figure>
<p>8- Close the window by clicking on <strong>ok</strong>.</p>
<p>9- Close Thonny to save modifications</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../V2023.html" class="btn btn-neutral float-left" title="OhmPi V2023 (64 electrodes and 12V)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="V2023_step_02.html" class="btn btn-neutral float-right" title="STEP n°2: Measurement board" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2022, the OhmPi Team..</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment