19 inch rack build added to build document

master
marcel 9 months ago
parent 74b67599c3
commit 4fdf4463a1
  1. 73
      build_doc/aprs_digipeater.html
  2. 43
      build_doc/aprs_digipeater.md
  3. BIN
      build_doc/images/assembled_prototype.jpg
  4. BIN
      build_doc/images/assembled_prototype_annotated.jpg
  5. BIN
      build_doc/images/assembled_prototype_annotated.png
  6. BIN
      build_doc/images/assembled_prototype_small.jpg
  7. BIN
      build_doc/images/diplexer_inside.jpg
  8. BIN
      build_doc/images/eth-usb-hub-hat.jpg
  9. 22
      build_doc/installation_pe1rxf_aprs_weather_server.html
  10. 4
      build_doc/installation_pe1rxf_aprs_weather_server.md
  11. BIN
      hardware/front_diplexer.odg

@ -5,8 +5,8 @@
<meta name="generator" content="pandoc" /> <meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="M.T. Konstapel" /> <meta name="author" content="M.T. Konstapel" />
<meta name="dcterms.date" content="2024-02-14" /> <meta name="dcterms.date" content="2024-02-27" />
<title>APRS digipeater</title> <title>APRS igate</title>
<link rel="stylesheet" href="./css/mvp.css" /> <link rel="stylesheet" href="./css/mvp.css" />
<style type="text/css"> <style type="text/css">
:root { :root {
@ -47,10 +47,10 @@
<a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="./images/mees_logo.svg" height="70"></a> <a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="./images/mees_logo.svg" height="70"></a>
</nav> </nav>
<h1 class="title">APRS digipeater</h1> <h1 class="title">APRS igate</h1>
<p class="subtitle">with weather and PE1RXF telemetry server</p> <p class="subtitle">with weather and PE1RXF telemetry server</p>
<p class="author">M.T. Konstapel</p> <p class="author">M.T. Konstapel</p>
<p class="date">2024-02-14</p> <p class="date">2024-02-27</p>
</header> </header>
<main> <main>
<article> <article>
@ -127,6 +127,17 @@ schematic</figcaption>
</figure> </figure>
<p><a href="./images/RPi-LoRa-shield_schematic.pdf">PDF version of <p><a href="./images/RPi-LoRa-shield_schematic.pdf">PDF version of
schematic</a></p> schematic</a></p>
<p>To make this board work for this build, all the power button stuff
has to go. That is all the transistors and the surrounding resistors,
capacitors and diodes. And the 555 timer must also be removed. The RTC
should be mounted on the bottom of the board instead of the top. After
that, a Waveshare ethernet/USB hat is sandwiched between the pcb of the
shield and the Raspberry Pi.</p>
<figure>
<img src="./images/eth-usb-hub-hat.jpg"
title="Waveshare ethernet/USB hat" alt="Waveshare ethernet/USB hat" />
<figcaption aria-hidden="true">Waveshare ethernet/USB hat</figcaption>
</figure>
<h2 id="peripherals">Peripherals</h2> <h2 id="peripherals">Peripherals</h2>
<p>The Raspberry Pi needs some extra hardware for interfacing the <p>The Raspberry Pi needs some extra hardware for interfacing the
various peripherals, like the transceiver, the ModBus and the Rnode various peripherals, like the transceiver, the ModBus and the Rnode
@ -188,24 +199,6 @@ what I need.</p>
alt="LilyGO LoRa32" /> alt="LilyGO LoRa32" />
<figcaption aria-hidden="true">LilyGO LoRa32</figcaption> <figcaption aria-hidden="true">LilyGO LoRa32</figcaption>
</figure> </figure>
<h2 id="more-than-brains-alone">More than brains alone</h2>
<p>The Raspberry Pi with all the extra hardware is housed in a small
plastic housing. On the back panel behind the SMA connectors and the
power jack, I placed a copper strip. This acts as the star grounding
strip on which all other ground wires are connected. This prevents a lot
of RF and EMC problems.</p>
<figure>
<img src="./images/raspberry_pi_proto_small.jpg"
title="Inside the brains" alt="Inside the brains" />
<figcaption aria-hidden="true">Inside the brains</figcaption>
</figure>
<p><a href="./images/raspberry_pi_proto.jpg">Large version of
photo</a></p>
<figure>
<img src="./images/raspberry_pi_proto_backside.jpg" title="Back side"
alt="Back side" />
<figcaption aria-hidden="true">Back side</figcaption>
</figure>
<h2 id="external-hardware">External hardware</h2> <h2 id="external-hardware">External hardware</h2>
<h3 id="meter-transceiver">2 meter transceiver</h3> <h3 id="meter-transceiver">2 meter transceiver</h3>
<p>The 2 meter transceiver is an old Alinco DJ-580 hand held radio with <p>The 2 meter transceiver is an old Alinco DJ-580 hand held radio with
@ -235,9 +228,22 @@ example).</p>
<li>Adjust C4 and C5 for the best SWR</li> <li>Adjust C4 and C5 for the best SWR</li>
<li>Repeat the two steps, as both ports influence each other</li> <li>Repeat the two steps, as both ports influence each other</li>
</ul> </ul>
<h4 id="specifications">Specifications</h4>
<ul>
<li>Insertion loss: &lt; 0.2dB</li>
<li>Port isolaion (2m to 70cm): &gt; 55dB</li>
<li>Port isolation (70cm to 2m): &gt; 30dB</li>
<li>Maximum power: 30W</li>
</ul>
<figure>
<img src="./images/diplexer.svg" title="Diplexer schematic"
alt="Diplexer schematic" />
<figcaption aria-hidden="true">Diplexer schematic</figcaption>
</figure>
<figure> <figure>
<img src="./images/diplexer.svg" title="Diplexer" alt="Diplexer" /> <img src="./images/diplexer_inside.jpg" title="Diplexer prototype"
<figcaption aria-hidden="true">Diplexer</figcaption> alt="Diplexer prototype" />
<figcaption aria-hidden="true">Diplexer prototype</figcaption>
</figure> </figure>
<h3 id="antenna">Antenna</h3> <h3 id="antenna">Antenna</h3>
<p>This is a simple 2m/70cm dual band antenna from Diamond, the X30.</p> <p>This is a simple 2m/70cm dual band antenna from Diamond, the X30.</p>
@ -246,16 +252,27 @@ example).</p>
<figcaption aria-hidden="true">Antenna</figcaption> <figcaption aria-hidden="true">Antenna</figcaption>
</figure> </figure>
<h1 id="the-build">The build</h1> <h1 id="the-build">The build</h1>
<h2 id="hardware">Hardware</h2>
<p>To make the system easy to handle and somewhat robust, it is
assembled on a piece of MDF board, which can be bolted in a 19” open
frame housing.</p>
<figure>
<img src="./images/assembled_prototype_annotated.jpg"
title="Assembled prototype" alt="Assembled prototype" />
<figcaption aria-hidden="true">Assembled prototype</figcaption>
</figure>
<p><a href="./images/assembled_prototype.jpg">Large version of
photo</a></p>
<h2 id="software">Software</h2> <h2 id="software">Software</h2>
<p>The instalation of all the needed software on the Raspberry Pi is <p>The instalation of all the needed software on the Raspberry Pi is
complicated, so I wrote a separate document: <a complicated, so I wrote a separate document: <a
href="./installation_pe1rxf_aprs_weather_server.html">installation_pe1rxf_aprs_weather_server.html</a></p> href="./installation_pe1rxf_aprs_weather_server.html">installation_pe1rxf_aprs_weather_server.html</a></p>
<h1 id="the-specifications">The specifications</h1> <h1 id="the-specifications">The specifications</h1>
<ul> <ul>
<li>2 meter transceiver with 5 Watt output power</li> <li>2 meter transceiver with 37dBm (5W) output power</li>
<li>70 cm LoRa transceiver with 20 dBm output power</li> <li>70 cm LoRa transceiver with 20 dBm (100mW) output power</li>
<li>Raspberry Pi Zero 2 W</li> <li>Raspberry Pi Zero 2 W</li>
<li>APRS cross band digipeater software</li> <li>APRS igate software</li>
<li>Weather station via ModBus</li> <li>Weather station via ModBus</li>
<li>Rnode TCP/IP over 70 cm LoRa for internet</li> <li>Rnode TCP/IP over 70 cm LoRa for internet</li>
</ul> </ul>
@ -278,7 +295,7 @@ option) any later version.</p>
</main> </main>
<footer> <footer>
<p>&copy; <p>&copy;
2024-02-14 2024-02-27
M.T. Konstapel M.T. Konstapel
<a href="https://meezenest.nl/mees/">https://meezenest.nl/mees/</a> <a href="https://meezenest.nl/mees/">https://meezenest.nl/mees/</a>
</p><p>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>. </p><p>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.

@ -1,8 +1,8 @@
--- ---
title: APRS digipeater title: APRS igate
subtitle: with weather and PE1RXF telemetry server subtitle: with weather and PE1RXF telemetry server
author: M.T. Konstapel author: M.T. Konstapel
date: 2024-02-14 date: 2024-02-27
website: https://meezenest.nl/mees/ website: https://meezenest.nl/mees/
page_back: https://meezenest.nl/mees/aprs_digipeater.html page_back: https://meezenest.nl/mees/aprs_digipeater.html
logo: ./images/mees_logo.svg logo: ./images/mees_logo.svg
@ -45,6 +45,10 @@ Although stand alone in operation, to read the measurements the weather station
[PDF version of schematic](./images/RPi-LoRa-shield_schematic.pdf) [PDF version of schematic](./images/RPi-LoRa-shield_schematic.pdf)
To make this board work for this build, all the power button stuff has to go. That is all the transistors and the surrounding resistors, capacitors and diodes. And the 555 timer must also be removed. The RTC should be mounted on the bottom of the board instead of the top. After that, a Waveshare ethernet/USB hat is sandwiched between the pcb of the shield and the Raspberry Pi.
![Waveshare ethernet/USB hat](./images/eth-usb-hub-hat.jpg "Waveshare ethernet/USB hat")
## Peripherals ## Peripherals
The Raspberry Pi needs some extra hardware for interfacing the various peripherals, like the transceiver, the ModBus and the Rnode modem. The Raspberry Pi needs some extra hardware for interfacing the various peripherals, like the transceiver, the ModBus and the Rnode modem.
@ -79,16 +83,6 @@ As a ham, I use the 433 MHz version, of course.
![LilyGO LoRa32](./images/lilygo-ttgo-lora32.jpg "LilyGO LoRa32") ![LilyGO LoRa32](./images/lilygo-ttgo-lora32.jpg "LilyGO LoRa32")
## More than brains alone
The Raspberry Pi with all the extra hardware is housed in a small plastic housing. On the back panel behind the SMA connectors and the power jack, I placed a copper strip. This acts as the star grounding strip on which all other ground wires are connected. This prevents a lot of RF and EMC problems.
![Inside the brains](./images/raspberry_pi_proto_small.jpg "Inside the brains")
[Large version of photo](./images/raspberry_pi_proto.jpg)
![Back side](./images/raspberry_pi_proto_backside.jpg "Back side")
## External hardware ## External hardware
### 2 meter transceiver ### 2 meter transceiver
@ -112,8 +106,16 @@ All the inductors are made from 1mm copper wire (preferably silver plated) and w
- Adjust C4 and C5 for the best SWR - Adjust C4 and C5 for the best SWR
- Repeat the two steps, as both ports influence each other - Repeat the two steps, as both ports influence each other
#### Specifications
![Diplexer](./images/diplexer.svg "Diplexer") - Insertion loss: < 0.2dB
- Port isolaion (2m to 70cm): > 55dB
- Port isolation (70cm to 2m): > 30dB
- Maximum power: 30W
![Diplexer schematic](./images/diplexer.svg "Diplexer schematic")
![Diplexer prototype](./images/diplexer_inside.jpg "Diplexer prototype")
### Antenna ### Antenna
@ -123,16 +125,25 @@ This is a simple 2m/70cm dual band antenna from Diamond, the X30.
# The build # The build
## Hardware
To make the system easy to handle and somewhat robust, it is assembled on a piece of MDF board, which can be bolted in a 19" open frame housing.
![Assembled prototype](./images/assembled_prototype_annotated.jpg "Assembled prototype")
[Large version of photo](./images/assembled_prototype.jpg)
## Software ## Software
The instalation of all the needed software on the Raspberry Pi is complicated, so I wrote a separate document: [installation_pe1rxf_aprs_weather_server.html](./installation_pe1rxf_aprs_weather_server.html) The instalation of all the needed software on the Raspberry Pi is complicated, so I wrote a separate document: [installation_pe1rxf_aprs_weather_server.html](./installation_pe1rxf_aprs_weather_server.html)
# The specifications # The specifications
- 2 meter transceiver with 5 Watt output power - 2 meter transceiver with 37dBm (5W) output power
- 70 cm LoRa transceiver with 20 dBm output power - 70 cm LoRa transceiver with 20 dBm (100mW) output power
- Raspberry Pi Zero 2 W - Raspberry Pi Zero 2 W
- APRS cross band digipeater software - APRS igate software
- Weather station via ModBus - Weather station via ModBus
- Rnode TCP/IP over 70 cm LoRa for internet - Rnode TCP/IP over 70 cm LoRa for internet

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

@ -111,8 +111,8 @@ scan_ssid=1
ssid=&quot;Your WiFi Name&quot; ssid=&quot;Your WiFi Name&quot;
psk=&quot;Your WiFi Password&quot; psk=&quot;Your WiFi Password&quot;
}</code></pre> }</code></pre>
<h3 id="activate-auto-power-off-button">Activate Auto power off <h3 id="activate-auto-power-off-button-obsolete">Activate Auto power off
button</h3> button (obsolete)</h3>
<pre><code>$ nano config.txt</code></pre> <pre><code>$ nano config.txt</code></pre>
<p>Add the following text:</p> <p>Add the following text:</p>
<pre><code>dtoverlay=gpio-poweroff,gpiopin=21,active_low=&quot;y&quot; <pre><code>dtoverlay=gpio-poweroff,gpiopin=21,active_low=&quot;y&quot;
@ -126,7 +126,7 @@ id="insert-the-sd-card-in-the-raspberry-pi-and-press-the-power-button">Insert
the SD card in the Raspberry Pi and press the power button</h3> the SD card in the Raspberry Pi and press the power button</h3>
<p>During the first boot, the Pi will reboot once. Because of the <p>During the first boot, the Pi will reboot once. Because of the
external power button, this will not work: the Pi will shutdown. Power external power button, this will not work: the Pi will shutdown. Power
up the Pi by pressing the external power button again.</p> up the Pi by pressing the external power button again. (obsolete)</p>
<h1 id="the-pi-is-booted-for-the-first-time">The Pi is booted for the <h1 id="the-pi-is-booted-for-the-first-time">The Pi is booted for the
first time</h1> first time</h1>
<p>Search for the ip address of the Raspberry Pi (for exammple by <p>Search for the ip address of the Raspberry Pi (for exammple by
@ -228,7 +228,10 @@ $ sudo nano /etc/ax25/axports</code></pre>
<p>add:</p> <p>add:</p>
<pre><code>ax0 PE1RXF-1 9600 255 2 144.800 MHz APRS (1200 bps) <pre><code>ax0 PE1RXF-1 9600 255 2 144.800 MHz APRS (1200 bps)
ax1 PE1RXF-3 9600 255 2 433.775 MHz APRS (LORA)</code></pre> ax1 PE1RXF-3 9600 255 2 433.775 MHz APRS (LORA)</code></pre>
<h3 id="aprx-software">APRX software</h3> <h3
id="aprx-software-aprx-is-no-longer-needed-as-the-pe1rxf_aprs-software-has-the-same-functionality">APRX
software (aprx is no longer needed as the pe1rxf_aprs software has the
same functionality)</h3>
<pre><code>$ sudo apt-get install aprx <pre><code>$ sudo apt-get install aprx
$ sudo systemctl enable aprx $ sudo systemctl enable aprx
@ -373,10 +376,13 @@ $ sudo apt install python3-pip</code></pre>
~/ham/weather_station/python-ax25:</p> ~/ham/weather_station/python-ax25:</p>
<pre><code>$ cd ~/ham/weather_station/python-ax25 <pre><code>$ cd ~/ham/weather_station/python-ax25
$ sudo ./install.sh</code></pre> $ sudo ./install.sh</code></pre>
<p>Install other libraries:</p> <p>Install other libraries system wide, as the pe1rxf_aprs software has
<pre><code>$ pip3 install minimalmodbus --break-system-packages to run as root:</p>
$ pip3 install retrying --break-system-packages <pre><code>$ sudo pip3 install minimalmodbus --break-system-packages
$ pip3 install pyaml --break-system-packages</code></pre> $ sudo pip3 install retrying --break-system-packages
$ sudo pip3 install pyaml --break-system-packages
$ sudo pip3 install schedule --break-system-packages
$ sudo pip install aprslib --break-system-packages</code></pre>
<p>Add /home/marcel/.local/bin to path:</p> <p>Add /home/marcel/.local/bin to path:</p>
<pre><code>$ nano .bashrc <pre><code>$ nano .bashrc

@ -64,7 +64,7 @@ Add the following text:
psk="Your WiFi Password" psk="Your WiFi Password"
} }
### Activate Auto power off button ### Activate Auto power off button (obsolete)
$ nano config.txt $ nano config.txt
@ -78,7 +78,7 @@ When GPIO16 goes low (external button pressed), RPi goes into shutdown.
### Insert the SD card in the Raspberry Pi and press the power button ### Insert the SD card in the Raspberry Pi and press the power button
During the first boot, the Pi will reboot once. Because of the external power button, this will not work: the Pi will shutdown. Power up the Pi by pressing the external power button again. During the first boot, the Pi will reboot once. Because of the external power button, this will not work: the Pi will shutdown. Power up the Pi by pressing the external power button again. (obsolete)
# The Pi is booted for the first time # The Pi is booted for the first time

Binary file not shown.
Loading…
Cancel
Save