aktueller Stand vom Server

This commit is contained in:
2022-12-01 15:55:22 +01:00
parent b72681a5c8
commit 482f67184f
221 changed files with 11471 additions and 1373 deletions
+181
View File
@@ -0,0 +1,181 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Qudio - A QR-enabled Audio Player for Children</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.css" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,800' rel='stylesheet' type='text/css' />
<link href="https://fonts.googleapis.com/css?family=Roboto+Slab:400,700" rel="stylesheet" type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<style type="text/css" media="all">
<!--
body {
background-color: #FFFFFF;
color: black;
font-family: 'Roboto Slab', serif;
font-size: 160%;
}
p {
margin-top: 1.5em;
}
h1 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
text-align: center;
color: #303030;
}
h2, h3, h4 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
color: #303030;
margin-top: 1em;
}
#subtitle {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
font-weight: 800;
text-align: center;
color: #303030;
font-size: 120%;
margin-bottom: 2em;
}
.gallery {
text-align: center;
margin-top: 2em;
margin-bottom: 2em;
}
.timestamp {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-align: right;
color: #888;
margin-top: 2em;
}
.fancybox-title {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.fancybox-caption {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
-->
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.js"></script>
<div id="content" class="container">
<h1>Qudio Player</h1>
<h2>Inbetriebnahme</h2>
<p>
Sobald das Netzteil eingesteckt wird, fährt der Player hoch. Damit man auch etwas hören kann, muss außerdem der Power-Button auf der Rückseite versenkt sein, so dass die grüne LED auf der Vorderseite leuchtet.
Der Lautsprecher geht automatisch in Stand-By, wenn eine Weile lang kein Signal kam (dann erlischt das grüne Licht). Man kann das Gerät im Normalfall also einfach anlassen.
</p>
<a data-fancybox style="float:right;margin: 2em;" href="images/qudio-assistant.png"><img src="images/qudio-assistant.png" width="240" /></a>
<p>
Nach zwei bis drei Minuten ist das Gerät gestartet. Wenn kein bekanntes WLAN-Netzwerk gefunden wird, öffnet der Player einen Hotspot namens <em>volumio</em>, mit dem man sich z.B. mit dem Smartphone verbinden kann.
</p>
<p>
Sobald man sich mit dem Hotspot verbunden hat, öffnet sich die Bedienoberfläche. Am einfachsten ist es, über das Zahnrad auf der rechten Seite die Einstellungen zu öffnen und im Untermenü <em>SYSTEM</em> den Einrichtungsassistenten erneut auszuführen.
</p>
<p>
Der Assistent fragt den Gerätenamen und die WLAN-Einstellungen. Als Ausgabegerät muss <em>Generic I2S DAC</em> ausgewählt bleiben. Netzlaufwerke können natürlich erst verbunden werden, wenn der Player sie über das WLAN erreichen kann.
</p>
<p>
Wenn der Player ins lokale WLAN eingebunden ist, kann man ihn über <em>hostname.local</em> erreichen, voreingestellt ist <a href="http://qudio.local">http://qudio.local</a>. Jetzt kann man in den Einstellungen unter <em>MEINE MUSIK</em> Netzlaufwerke hinzufügen oder unter <em>PLUGINS</em> Erweiterungen für Dienste wie Spotify oder Youtube installieren.
</p>
<h2>Musik abspielen</h2>
<p>
Zum Abspielen wird einfach eine Karte mit dem QR-Code nach unten auf das Fenster an der Oberseite des Players gelegt. Sobald der Infrarot-Sensor abgedeckt ist, wird die Beleuchtung im Innern angeschaltet und der Erkennungsprozess gestartet. Wenn ein QR-Code erkannt wird, erlischt das Licht und die Musik wird abgespielt. Ansonsten gibt das Gerät nach vier Sekunden ein enttäuschtes Quaken von sich.
</p>
<p>
Hier führt Jacob das mal vor:
</p>
<div style="text-align:center">
<iframe src="https://player.vimeo.com/video/318207633" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
<p>
Natürlich kann man auch über die Weboberfläche Musik aus der Bibliothek zum Abspielen auswählen.
</p>
<h2>Musik hinzufügen</h2>
<p>
Am einfachsten kann man Musik der Bibliothek hinzufügen, indem man ein Netzlaufwerk in den Einstellungen verbindet. Das Verzeichnis wird automatisch nach Inhalten durchsucht, die man dann zum Abspielen auswählen kann.
</p>
<p>
Webstreams kann man in der Musikbibliothek unter <em>Internetradio</em> aus dem Verzeichnis heraussuchen oder direkt per URL unter <em>Meine Radiosender</em> hinzufügen.
</p>
<p>
Eine weitere Möglichkeit sind Streaming-Dienste wie Spotify oder Youtube, auf die über Plugins zugegriffen werden kann. Zum Abspielen von Spotify wird ein Premium-Account benötigt, die Zugangsdaten konfiguriert man in den Plugin-Einstellungen.
</p>
<p>
Zu guter Letzt können Inhalte auch direkt auf der Speicherkarte abgelegt werden. Wenn man den Player nicht gerade auseinander bauen will, muss man sich dafür über SSH verbinden.
Der Zugang via SSH kann auf der Seite <a href="http://qudio.local/dev">http://qudio.local/dev</a> aktiviert werden, Benutzername und Passwort sind <em>volumio</em>.
Alles, was im Verzeichnis <code>/data/INTERNAL</code> abgelegt wird, taucht in der Musikbibliothek auf, nachdem man in den Einstellungen unter <em>MEINE MUSIK</em> einen Rescan durchgeführt hat.
</p>
<h2>Neue Karten</h2>
<p>
Der Code auf den Karten kann auf eine URI, eine Datei oder ein Verzeichnis verweisen.
</p>
<h3>URIs</h3>
<p>
Stream-Adressen von Webradios können dem Player direkt per QR-Code übergeben werden, z.B. <code>http://stream.laut.fm/kinderradio</code>. Außerdem werden Spotify-URIs erkannt und abgespielt, sofern das Plugin installiert und konfiguriert ist. Die Spotify-URI kann man für jedes Album/Track/Playlist über das <em>Share</em>-Menü abrufen.
</p>
<h3>Verzeichnisse und einzelne Dateien</h3>
<p>
Der Pfad zum Verzeichnis muss wie in der Musikbibliothek angegeben werden, also z.B. <code>INTERNAL/qudio/sounds/armstrong.mp3</code> oder <code>NAS/share/Kinder/Der Grüffelo</code>. Wenn man nicht sicher ist, kann man die Musik über die Weboberfläche aus der Bibliothek starten und dann unter <a href="http://qudio.local/dev">/dev</a> nachschauen, welche URI in der aktellen Abspielliste steht.
</p>
<a data-fancybox style="float:right;margin: 2em;" href="images/curb.png"><img src="images/curb.png" width="320" /></a>
<p>
Das Umwandeln in einen QR-Code kann man mit jedem beliebigen Generator machen; online z.B. mit <a href="http://goqr.me/de/">http://goqr.me/de/</a>. (Der Player akzeptiert Codes in UTF-8-Codierung, so dass Umlaute und Sonderzeichen im Pfad keine Probleme machen, solange sie korrekt kodiert sind.)
</p>
<h3>Maße</h3>
<p>
Die Auflagefläche für die Karten ist 34 cm breit. In der Regel ist es eine gute Idee, Karten mit 33 cm Breite zu drucken, damit sie etwas Spielraum haben. Außerdem passen dann exakt 9 Karten nebeneinander auf ein DIN-A4-Blatt. Der QR-Code ist 10 mm breit und hat einen Abstand von 16 mm zur Oberkante der Karte.
</p>
<p>
Für die Karten gibt es eine <a href="misc/QR-Card_Template.odt">Vorlage für Open/Libre Office</a>. Um größere Mengen an Karten mit möglichst wenig Aufwand zu erzeugen, habe ich einen Generator geschrieben, der eine Liste von Verzeichnissen nach Covern durchsucht und die Karten mit den Codes automatisch erzeugt. Ich versuche, den Generator demnächst mal online zu stellen.
</p>
</div>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 943 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

+560
View File
@@ -0,0 +1,560 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Qudio - A QR-enabled Audio Player for Children</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://tilman.de/projekte/qudio/" />
<meta property="og:title" content="Qudio - A QR-enabled Audio Player for Children" />
<meta property="og:description" content="The update for my music player. Again, music can be played with QR code cards and it is now easier to use for parents as well. Oh, and there is a rocket again, too. But this time it is optional." />
<meta property="og:image" content="http://tilman.de/projekte/qudio/images/qudio-01-space-02.jpg" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.css" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,800' rel='stylesheet' type='text/css' />
<link href="https://fonts.googleapis.com/css?family=Roboto+Slab:400,700" rel="stylesheet" type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<style type="text/css" media="all">
<!--
body {
background-color: #FFFFFF;
color: black;
font-family: 'Roboto Slab', serif;
font-size: 160%;
}
p {
margin-top: 1.5em;
}
h1 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
text-align: center;
color: #303030;
}
h2, h3, h4 {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
color: #303030;
margin-top: 1em;
}
#subtitle {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 800;
font-weight: 800;
text-align: center;
color: #303030;
font-size: 120%;
margin-bottom: 2em;
}
.gallery {
text-align: center;
margin-top: 2em;
margin-bottom: 2em;
}
.timestamp {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
text-align: right;
color: #888;
margin-top: 2em;
}
.fancybox-title {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.fancybox-caption {
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
-->
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.js"></script>
<div id="content" class="container">
<p class="timestamp">2019-06-20</p>
<h1>Qudio Player</h1>
<p id="subtitle">An easy-to-use music player for children based on the Raspberry Pi Zero and the JBL On Stage IIIp (again)</p>
<p class="well" style="text-align: center;">In spring 2016 I finalized the <a href="http://tilman.de/projekte/musikrakete/">&quot;Musikrakete&quot;</a>, a music player that our boys could operate without assistance. This is the third version, with all of the improvements I came up with during the last three years. It is easier and cheaper to build, the case is way smaller and much more robust. By switching to volumio the player now supports remote control from the phone and streaming services like Spotify. All of this combined with the existing features like playing MP3s from the local network and, most importantly, being easy to use even for small children. So if your children love music and audio books just like mine, this might be a project for you.</p>
<h2 id="history">The Idea</h2>
<a data-fancybox style="float:right;margin: 2em;" href="images/qudio-01-space.jpg" data-caption="The Qudio player (with the additional rocket). The QR cards are placed on the window on top of the case, where they are detected by a photo sensor that triggers the recognition process. After the code has been read by the webcam, the music starts playing."><img src="images/qudio-01-space-02.jpg"
width="320" alt="The Qudio player (with the additional rocket). The QR cards are placed on the window on top of the case, where they are detected by a photo sensor that triggers the recognition process. After the code has been read by the webcam, the music starts playing." /></a>
<p>
This project started in 2016, when Anica asked me if buying a <a href="https://de-de.hoerbert.com/">hörbert</a> MP3 player would be a good idea. At the time our boys wasted two to three CDs every week, trying to get some music out of the small player in their room. And the player in the living room also seemed to reach its end of life pretty soon due to their enthusiasm. Still, I wasn't too sure about this hörbert thing. In order to get new files on the SD card of the player, the case had to be opened, the navigation with 11 buttons seemed a little confusing and a single speaker operated with four batteries also did not seem promising to me.
</p>
<p>
I had seen a <a href="http://www.die-schembergs.de/index.php?page=qr-music">project description of an MP3 player for small children</a> shortly before: A Raspberry Pi mini computer, connected to a webcam and speakers, reads QR codes and plays the respective track or playlist. So this was what I suggested and to my surprise it was considered a better solution right away. And I had a project.
</p>
<p>
As good as the project description seemed to be, I wanted to make some improvements on the original design: The player should detect the QR card automatically, it should have buttons for play/pause and skipping and all components should be put together in a single case. Most importantly, the MP3 files should be delivered directly from our home server. No SD card replacement needed.
</p>
<p>
Since we had an old <a href="https://www.manualslib.com/manual/684236/Jbl-On-Stage-Iiip.html">JBL <em>On Stage IIIP</em></a> speaker lying around that wasn't used anymore due to its outdated iPhone dock connector, I decided to use this as a base. After playing around with <a href="https://www.onshape.com/">Onshape</a>, soldering and programming for three months, I had the <a href="http://tilman.de/projekte/musikrakete/">Musikrakete</a> ready by end of March 2016. It was a huge success with the boys and has been in heavy use ever since.
</p>
<p>
Over the last years I came up with some improvements on the original design and created a <a href="http://www.tilman.de/projekte/audiosphere/">second version</a>. But I always had some things in the back of my mind that I wanted to make better about both the hard- and the software and when the little brother moved into a room of his own, I knew it was time to bring all that to life. So this is the smaller, better and cheaper third version. The rocket on top is optional, by the way. But little brother would never have accepted a player that did not somehow include a rocket, since the original, rocket-shaped design is still used by the older one.
</p>
<div style="margin: 2em; text-align: center;">
<a data-fancybox href="images/qudio-assembly.gif"><img src="images/qudio-assembly.gif"
width="480" alt="Assembling the Qudio player" /></a>
<!--video controls><source src="Video to follow" type="video/mp4" /></video-->
</div>
<h2 id="piplayer3">PiPlayer 3.0: Qudio</h2>
<p>
This third version now relies on <a href="https://volumio.org/">volumio</a> which can play music from streaming services like Spotify Premium or LastFM, has a nice web interface and makes configuration easy. The case is much smaller than before, which makes it sturdier and easier to print. The electronic parts are all easily obtainable standard compontents and even cheaper than before. Again, it is built on top of the JBL On Stage IIIP speaker, that can still be found on ebay for little money and provides a perfect base for a player like this.
</p>
<p>
The main component is now a Raspberry Pi Zero W, that can be run off the dock connector without an additional power source. I replaced the Pimoroni PHAT DAC with a dirt cheap audio module based on the same chip. The IR sensor that detects the QR cards is now a ready-made module which makes assembly easier. The buttons have been replaced by the ubiqitous 12 mm standard components that come with every Arduino starter kit.
</p>
<h2 id="parts">Parts list</h2>
<a data-fancybox style="float:right;margin: 2em;" href="images/IMG_20190122_094245.jpg"><img src="images/IMG_20190122_094245.jpg"
width="380" alt="Electronic parts for the Qudio player" /></a>
<ul>
<li>JBL On Stage IIIP - can be found on ebay for little money<br/><span style="color:red;">Caution:</span> The older On Stage III with the mini USB port will probably <em>not work!</em><br/>I tried several and they either did not power the Raspberry Pi properly or I had noise issues that I could not resolve.</li>
<li>The <a href="https://github.com/tliero/qudio/tree/master/case">case, which consists of four parts</a>. I printed mine in standard PLA. You can also <a href="https://cad.onshape.com/documents/2762d09f63c9b517c9286983/w/eb40037adee1466d85023e8d/e/802477ccf62b15a257cef26e">copy and modify it on OnShape.com</a></li>
<li>Raspberry Pi Zero W with a micro SD card a pin header</li>
<li><a href="images/IMG_20190122_091336.jpg" data-fancybox="part" data-caption="CJMCU-5102 with 10 k&#8486; resistor">CJMCU-5102 plus a 10 k&#8486; resistor</a>, some PCM5102A based module or any other I2S DAC that is supported by volumio. Search for 'pHAT DAC'. A USB sound card will not work, since the USB port is used by the webcam.</li>
<li><a href="images/IMG_20190122_091612.jpg" data-fancybox="part" data-caption="TCRT5000 sensor module">TCRT5000 reflective sensor module</a></li>
<li>The ultra-cheap <a href="images/IMG_20190122_082801.jpg" data-fancybox="part" data-caption="USB webcam">USB webcam</a> that can be found on ebay, aliexpress and the like (just sort for price). Some versions come with a small cable reel. This fits perfectly in the holder at the bottom of the case.</li>
<li><a href="images/IMG_20190122_091508.jpg" data-fancybox="part" data-caption="Micro USB adapter that goes directly into the plug">USB A to micro USB adapter</a> that connects the webcam to the Raspberry Pi's micro USB port</li>
<li><a href="images/IMG_20190123_110730.jpg" data-fancybox="part" data-caption="30-pin Apple dock adapter to micro USB and 3.5 mm audio">30-pin Apple dock adapter to micro USB and 3.5 mm audio</a></li>
<li><a href="images/IMG_20190122_093929.jpg" data-fancybox="part" data-caption="3 mm white LED (with optional 220 &#8486; resistor)">White LED (preferably diffused) for illumination of the QR cards with a proper resistor</a></li>
<li>3 <a href="images/IMG_20190122_082511.jpg" data-fancybox="part" data-caption="Push buttons with 12 mm caps">push buttons with 12 mm caps</a></li>
<li>Jumper cables: 6x 10 cm M-F or F-F for the buttons, 5x 10 cm F-F for the audio module, 5x 20 cm F-F for the sensor and the LED</li>
<li>A small sheet of acrylic glass / plexiglass (around 2 mm)</li>
<li><a href="images/IMG_20190122_093439.jpg" data-fancybox="part" data-caption="M3 screws and nuts">2 M3&times;20 screws, 6 M3&times;8 screws and 3 nuts</a></li>
<li>5 M3 <a href="images/IMG_20190122_091418.jpg" data-fancybox="part" data-caption="Threaded inserts">threaded heat-set inserts</a></li>
<li>Soldering iron, drill, screwdriver, glue gun, box cutter</li>
<li>And, finally, the <a href="https://github.com/tliero/qudio/tree/master/code">code</a></li>
</ul>
<h2 id="components">Assembling the Components</h2>
<h3 id="mount">Preparing Speaker and Printed Case</h3>
<h4 id="jbl">Disassembling the JBL and Mounting the Bottom of the Case</h4>
<p>
In order to mount the case on the JBL, we have to disassemble the speaker and drill some holes. The screw in the center is hidden in the battery case, while the eight others are hidden under the rubber pads. Just peel them off carefully, we can glue them back on later.
</p>
<p>
After removing the screws you can upen up the case. <!--(<a href="images/IMG_20190123_154258.jpg" data-fancybox="mounting" data-caption="The holes are placed where the drill should not hit the circuit board.">It is possible to drill the holes without removing the circuit board from the case. However, it might be a good idea to play it safe and get it out.</a>)--> The circuit board is fastened with another four screws that have to be removed. Then the board can be pulled out of the case carefully. The power button of the speaker is the most sensitive part here. To make life easier, you can also pull off the speaker cables from the board. Now the cover is completely separated from the bottom and the circuit board.
</p>
<p>
The next step is to drill the three mounting holes into the cover, for which you can use <a href="misc/JBL_screws_drilling_template.pdf">this template</a>. (Make sure to print without scaling.) Finally, we need to mount the base of the printed case to the speaker case using three M3 screws with nuts. Afterwards, we can put the circuit board back in the case and put all the screws back in place.
</p>
<p class="gallery">
<!--a href="images/IMG_20181211_093736_cr.jpg" data-fancybox="mounting" data-caption="The backside of the JBL speaker. The screws are hidden under the rubber pads and in the battery case."><img src="images/IMG_20181211_093736_cr.jpg"
width="320" alt="The backside of the JBL speaker. The screws are hidden under the rubber pads and in the battery case." /></a-->
<a href="images/IMG_20181211_094955_cr.jpg" data-fancybox="mounting" data-caption="The rubber pads can be peeled off the speaker bottom. Remove all glue residues. The pads can be glued back on later."><img src="images/IMG_20181211_094955_cr.jpg"
width="320" alt="The rubber pads can be peeled off the speaker bottom. Remove all glue residues. The pads can be glued back on later." /></a>
<a href="images/IMG_20181211_100827_cr.jpg" data-fancybox="mounting" data-caption="Carefully remove the circuit board from the case"><img src="images/IMG_20181211_100827_cr.jpg"
width="320" alt="Carefully remove the circuit board from the case" /></a>
<a href="images/IMG_20181211_113036_cr.jpg" data-fancybox="mounting" data-caption="Drilling the holes using the template"><img src="images/IMG_20181211_113036_cr.jpg"
width="320" alt="Drilling the holes using the template" /></a>
</p>
<p class="gallery">
<a href="images/IMG_20181211_113151_cr.jpg" data-fancybox="mounting" data-caption="The speaker case with the mounting holes"><img src="images/IMG_20181211_113151_cr.jpg"
width="320" alt="The speaker case with the mounting holes" /></a>
<a href="images/IMG_20181211_113620_cr.jpg" data-fancybox="mounting" data-caption="Attaching the printed base"><img src="images/IMG_20181211_113620_cr.jpg"
width="320" alt="Attaching the printed base" /></a>
<a href="images/IMG_20181211_114121_cr.jpg" data-fancybox="mounting" data-caption="The JBL case before reassembly"><img src="images/IMG_20181211_114121_cr.jpg"
width="320" alt="The JBL case before reassembly" /></a>
</p>
<h4 id="inserts">Putting the Threaded Inserts into the Printed Parts</h4>
<p>
Now is also a good moment to put the threaded inserts into the printed parts. This is done by carefully pushing them into the plastic with a heated soldering iron. As soon as the plastic has cooled down, the inserts will stay in place and allow to close and open the connections without tearing the plastic apart. <a href="https://www.3dhubs.com/knowledge-base/how-assemble-3d-printed-parts-threaded-fasteners#inserts">This video on 3Dhubs shows how it is done</a>.
</p>
<p>
We put two M3 inserts into the bottom of the case, one into the cover to hold the TCRT5000 sensor and the remaining two into the curb that goes on top of the case.
</p>
<p class="gallery">
<a href="images/IMG_20181212_091832_cr.jpg" data-fancybox data-caption="The printed curb after adding two threaded inserts with a soldering iron"><img src="images/IMG_20181212_091832_cr.jpg"
width="320" alt="The printed curb after adding two threaded inserts with a soldering iron" /></a>
</p>
<h4 id="inserts">Installing the Window</h4>
<p>
For the window on top of the case, we need to cut a 50 &times; 28 mm part of acrylic glass. This can be done with a normal cutter knife by (carefully!) repeatedly cutting along your marker line with a ruler until you can break it off.
</p>
<p>
When the glass fits into the case, point through the screw holes to mark where you have to drill. The acrylic glass can then be drilled just like the speaker case in the first step. With all the parts of the case now being ready, you can to a first test on putting everything together and closing the case.
</p>
<p class="gallery">
<a href="images/IMG_20181211_122139_cr.jpg" data-fancybox="window" data-caption="Cutting the window glass"><img src="images/IMG_20181211_122139_cr.jpg"
width="320" alt="Cutting the window glass" /></a>
<!--a href="images/IMG_20181211_122508_cr.jpg" data-fancybox="window" data-caption=""><img src="images/IMG_20181211_122508_cr.jpg"
width="320" alt="" /></a-->
<a href="images/IMG_20181211_130234_cr.jpg" data-fancybox="window" data-caption="The two screws hold both the window and the curb in place"><img src="images/IMG_20181211_130234_cr.jpg"
width="320" alt="The two screws hold both the window and the curb in place" /></a>
<a href="images/IMG_20181211_130454_cr.jpg" data-fancybox="window" data-caption="The empty case, fully assembled"><img src="images/IMG_20181211_130454_cr.jpg"
width="320" alt="The empty case, fully assembled" /></a>
</p>
<h3 id="wiring">Wiring</h3>
<p style="font-size:small">
<a href='misc/qudio.fzz'>Fritzing schema of the wiring</a>
</p>
<p class="gallery">
<a href="misc/qudio_connections.png" data-fancybox data-caption="All Qudio component connections in a <a href='misc/qudio.fzz'>Fritzing schema</a>"><img src="misc/qudio_connections.png"
width="640" alt="All Qudio component connections in a Fritzing schema" /></a>
</p>
<h4 id="audio-module">Audio Module</h4>
<p>
If you are also using the CJMCU-5102 module, you will have to <a href="https://blog.sengotta.net/connecting-a-pcm5102a-breakout-board-to-a-raspberry-pi/">pull the XMT pin to high by connecting it to the 3.3V pin via a 10 k&#8486; resistor.</a> This will unmute the audio output. Also, the FLT, DMT, SCL and FMT pins should be <a href="images/IMG_20190122_120812.jpg" data-fancybox data-caption="While not being the nicest soldering job known to man, the connection of the FLT, DMT, SCL and FMT pins to GND serves its purpose.">connected to the module's GND pin on the backside</a>. That way, only a single cable connection to GND on the Raspberry Pi is needed.
</p>
<p>
The other pins are connected to the Raspberry Pi as follows:
</p>
<ul>
<li>VCC &harr; pin 2 (5V)</li>
<li>GND &harr; pin 6 (GND)</li>
<li>FLT &harr; GND</li>
<li>DMP &harr; GND</li>
<li>SCL &harr; GND</li>
<li>BCK &harr; pin 12 (GPIO 18)</li>
<li>DIN &harr; pin 40 (GPIO 21)</li>
<li>LCK &harr; pin 35 (GPIO 19)</li>
<li>FMT &harr; GND</li>
<li>XMT &harr; 10k Resistor &harr; 3,3V of the PCM5102A board</li>
</ul>
<p class="gallery">
<a href="images/IMG_20181214_084813_cr.jpg" data-fancybox data-caption="The CJMCU-5102 audio module needs a 10 k&#8486; resistor between XMT and 3.3V to unmute. I just soldered the biggest one I had directly on the board. The FLT, DMT, SCL and FMT pins are all connected to the GND pin on the backside."><img src="images/IMG_20181214_084813_cr.jpg"
width="320" alt="The CJMCU-5102 audio module needs a 10 k&#8486; resistor between XMT and 3.3V to unmute. I just soldered the biggest one I had directly on the board. The FLT, DMT, SCL and FMT pins are all connected to the GND pin on the backside." /></a>
</p>
<h4 id="camera">Camera</h4>
<p>
Before the <a href="http://www.penguin.cz/~utx/hardware/USB_Camera_AX2311/">camera</a> can be put into the case, the clip on the backside has to be removed. Simply push out the pin and take it off. Now you can clip off the clip holders from the camera case.
</p>
<p>
Unfortunately, the cable also has to be moved from the back of the case, in order to be able to place the camera on top of the speaker. You can just make a small cutout with a sharp knife to make space for the cable. However, if you want to play it safe it might be better to open the case up with a screwdriver before cutting it.
</p>
<p>
With the cable out of the way, the camera can be shoved into the holder at the center of the bottom part.
</p>
<p class="gallery">
<a href="images/IMG_20190122_221540.jpg" data-fancybox data-caption="We have to put a small hole into the camera case in order to move the cable from the back to the top. The clip is also being removed."><img src="images/IMG_20190122_221540.jpg"
width="320" alt="We have to put a small hole into the camera case in order to move the cable from the back to the top. The clip is also being removed." /></a>
</p>
<p>
Finally, the focus has to be adjusted. The best way for that is connect the camera to another computer to get a live picture. You can also do it later on, but then you will have to take a snapshot and readjust the lens in turns. It is just easier with direct feedback.
</p>
<p>
Put the cover on top for the correct distance, then check if you get a clear picture. If not, turn the lens a bit and check again until you have a sharp image.
</p>
<h4 id="micro-usb-adapter">Dock Adapter Cable</h4>
<p>
Now insert the adapter cable on the dock connector in front of the camera. It should fit in nicely without any adjustments.
</p>
<h4 id="buttons">Buttons</h4>
<p>
The three buttons go directly in the small pockets on the bottom part of the printed case. While the front pins are put into the small holes in order to fasten them tightly, the pins on the other end should be bent up and soldered to the male end of the jumper wires. Connect the buttons to pins 10 (for PREV), 9 (for PLAY/PAUSE) and 11 (for NEXT). The other sides go to the ground pins 20, 30 and 34.
</p>
<p class="gallery">
<a href="images/IMG_20190122_213553.jpg" data-fancybox="buttons" data-caption="The straightened pins can be directly soldered onto the M-F jumper wires"><img src="images/IMG_20190122_213553.jpg"
width="320" alt="The straightened pins can be directly soldered onto the M-F jumper wires" /></a>
<a href="images/IMG_20190123_163719.jpg" data-fancybox="buttons" data-caption="The straightened pins need to be bent upwards in order to leave enough space for the camera and the dock adapter"><img src="images/IMG_20190123_163719.jpg"
width="320" alt="The straightened pins need to be bent upwards in order to leave enough space for the camera and the dock adapter" /></a>
<!--a href="images/IMG_20181211_134417_cr.jpg" data-fancybox="buttons" data-caption="In the case, the straightened pins need to be bent even more upwards in order to leave enough space for the camera"><img src="images/IMG_20181211_134417_cr.jpg"
width="320" alt="In the case, the straightened pins need to be bent even more upwards in order to leave enough space for the camera" /></a-->
</p>
<h4 id="sensor">Sensor</h4>
<p>
The TCRT5000 sensor module is connected as follows:
</p>
<ul>
<li>VCC &harr; pin 4 (5V)</li>
<li>GND &harr; pin 14 (GND)</li>
<li>DO &harr; 29 (GPIO 5)</li>
</ul>
<p>
The pins of the module need to be bent up to fit in the case. (For some reason all the modules have 90 degree pins.) We can then use the M3 screw hole to fasten it to the top. The little potentiometer on board allows to adjust the sensitivity of the sensor in place, if needed.
</p>
<p>
My sensor permanently fired whenever I tightened the screw. Apparently the threaded insert connected two of the pins. I solved this by covering the pins on the back side with some hot glue.
</p>
<p>
The next problem was a little red power LED on the module. While being tiny, it put the whole printed case in a permanent red glow that did not look pretty and also would have been disturbing given that the player was to be put on a nightstand. I bypassed the LED with a tiny piece of wire that you can see in the pictures.
</p>
<p class="gallery">
<!--a href="images/IMG_20181214_132419_cr.jpg" data-fancybox="sensor" data-caption=""><img src="images/IMG_20181214_132419_cr.jpg"
width="320" alt="" /></a-->
<a href="images/IMG_20181214_103426_cr.jpg" data-fancybox="sensor" data-caption="With the small wire replacing the red LED the permanent glow was stopped"><img src="images/IMG_20181214_103426_cr.jpg"
width="320" alt="With the small wire replacing the red LED the permanent glow was stopped" /></a>
<!--a href="images/IMG_20181214_083437_cr.jpg" data-fancybox="sensor" data-caption=""><img src="images/IMG_20181214_083437_cr.jpg"
width="320" alt="" /></a-->
<a href="images/IMG_20181214_132353_cr.jpg" data-fancybox="sensor" data-caption="Some hot glue on the back of the pins prevents the brass insert from shortening them"><img src="images/IMG_20181214_132353_cr.jpg"
width="320" alt="Some hot glue on the back of the pins prevents the brass insert from shortening them" /></a>
<a href="images/IMG_20181212_092149_cr.jpg" data-fancybox="sensor" data-caption="The pins on the sensor board have to be bent up before fastening it inside the cover"><img src="images/IMG_20181212_092149_cr.jpg"
width="320" alt="The pins on the sensor board have to be bent up before fastening it inside the cover" /></a>
</p>
<h4 id="led">LED</h4>
<p>
The led is put in the small holder at the front side inside the cover. Connect the long leg to pin 15 (GPIO 22) of the Raspberry Pi (with a resistor in between, if needed), the short one to pin 9 (GND). I dimmed the LED with a 220 &#8486; resistor even though mine could operate directly on 3.3 V because it was just too bright. The QR recognition does not need much light.
</p>
<h4 id="cables">Closing the Case</h4>
<p>
Now it is time to put the remaining parts in place: Hook up the camera to the Raspberry Pi using the micro USB adapter. Also connect the two ends of the dock adapter cable to the audio module and the Raspberry Pi. Move all the cables in a place where they do not block the camera, bring up your best origami and close the case. You might need two or three attemps until everything is in the right place, but it fits in, believe me.
</p>
<p class="gallery">
<a href="images/IMG_20181212_092937_cr.jpg" data-fancybox="close" data-caption="All these wires need to go somewhere..."><img src="images/IMG_20181212_092937_cr.jpg"
width="320" alt="All these wires need to go somewhere..." /></a>
<a href="images/IMG_20181219_102734_cr.jpg" data-fancybox="close" data-caption="This is not how this should look like"><img src="images/IMG_20181219_102734_cr.jpg"
width="320" alt="This is not how this should look like" /></a>
<a href="images/IMG_20181214_083322_cr.jpg" data-fancybox="close" data-caption="Our player, ready to go"><img src="images/IMG_20181214_083322_cr.jpg"
width="320" alt="Our player, ready to go" /></a>
</p>
<p>
OK, well done. Now reopen the case, the player is still missing its SD card with the software.
</p>
<h2 id="software">Software Installation and Configuration</h2>
<h3 id="volumio">Volumio</h3>
<p>
First of all, you will have to download the <a href="https://volumio.org/get-started/">volumio image for Raspberry Pi</a> and put it on your micro SD card. (I use <a href="https://www.balena.io/etcher/">balenaEtcher</a> for that, which works fine.) Once you have done that, put it in and start the Raspberry Pi by powering the speaker.
</p>
<p>
The initial configuration is pretty straight forward. Connect to the WiFi network &quot;volumio&quot; that has been opened up. If it asks for a password, enter &quot;volumio2&quot;, then click through the installation assistant. Set the output to "Generic I2S DAC", activate the software mixer and connect your network share (if any). You can also already set up plugins for streaming services like Spotify. Finally, activate SSH on the developer page <a href="http://qudio.local/dev">qudio.local/dev</a> (or whatever your hostname was) for the next steps.
</p>
<p class="gallery">
<a href="images/Screenshot_20190207-095549.png" data-fancybox="volumio-screenshots" data-caption="Connect to the WiFi hotspot &quot;volumio&quot; that the player creates"><img src="images/Screenshot_20190207-095549.png" height="320" alt="Connect to the WiFi hotspot &quot;volumio&quot; that the player creates" /></a>
<a href="images/Screenshot_20190207-095601.png" data-fancybox="volumio-screenshots" data-caption="You can give the system a hostname that will define its URL in the local network"><img src="images/Screenshot_20190207-095601.png" height="320" alt="You can give the system a hostname that will define its URL in the local network" /></a>
<a href="images/Screenshot_20190207-095620.png" data-fancybox="volumio-screenshots" data-caption="For the CJMCU-5102 audio module, simply select &quot;Generic I2S DAC&quot; as output device"><img src="images/Screenshot_20190207-095620.png" height="320" alt="For the CJMCU-5102 audio module, simply select &quot;Generic I2S DAC&quot; as output device" /></a>
</p>
<p class="gallery">
<a href="images/Screenshot_20190207-095707.png" data-fancybox="volumio-screenshots" data-caption="Connect to your local network"><img src="images/Screenshot_20190207-095707.png" height="320" alt="Connect to your local network" /></a>
<!--a href="images/Screenshot_20190207-095713.png" data-fancybox="volumio-screenshots" data-caption=""><img src="images/Screenshot_20190207-095713.png" height="320" alt="" /></a-->
<a href="images/Screenshot_20190207-095721.png" data-fancybox="volumio-screenshots" data-caption="You can add network shares as data source"><img src="images/Screenshot_20190207-095721.png" height="320" alt="You can add network shares as data source" /></a>
<!--a href="images/Screenshot_20190207-095725.png" data-fancybox="volumio-screenshots" data-caption=""><img src="images/Screenshot_20190207-095725.png" height="320" alt="" /></a-->
<a href="images/Screenshot_20190207-095730.png" data-fancybox="volumio-screenshots" data-caption="After restart, the system should be accessible in your local network"><img src="images/Screenshot_20190207-095730.png" height="320" alt="After restart, the system should be accessible in your local network" /></a>
</p>
<!--p class="gallery">
<a href="images/Screenshot_20190207-103422.png" data-fancybox="volumio-screenshots" data-caption=""><img src="images/Screenshot_20190207-103422.png" height="320" alt="" /></a>
<a href="images/Screenshot_20190207-103433.png" data-fancybox="volumio-screenshots" data-caption=""><img src="images/Screenshot_20190207-103433.png" height="320" alt="" /></a>
<a href="images/Screenshot_20190207-103442.png" data-fancybox="volumio-screenshots" data-caption=""><img src="images/Screenshot_20190207-103442.png" height="320" alt="" /></a>
</p-->
<p>
Before you leave the SD card in the Raspberry Pi for good, you might want to shutdown volumio, put the card back into your computer and copy over the contents of the <a href="https://github.com/tliero/qudio/tree/master/code">/code</a> directory to /data/INTERNAL/qudio. (The data directory is only available after first start, which is why we had to complete the installation assistant first.)
</p>
<p>
Alternatively you can copy over the code via ssh, but doing it directly on the SD card might be easier. In addition to that, you can put some music directly on the SD card, if you want to. Everything in the INTERNAL directory will be available in volumio after a <a href="images/Screenshot_20190207-103442.png" data-fancybox data-caption="You can rescan your data sources under &quot;My Music&quot;.">rescan</a>.
</p>
<h3 id="configuration">Configuration und Test</h3>
<p>
After putting the SD card back in and booting up the player you can connect to the Raspberry Pi via SSH as user volumio. The initial password is <em>volumio</em> which you might want to change with <code>passwd</code>.
</p>
<p>
The next step is to install the necessary software packages:
</p>
<pre><code>sudo apt-get update
sudo apt-get install fswebcam zbar-tools</code></pre>
<p>
Now look for the camera (it should be available under <code>/dev/video0</code>) and make a test photo. You can check it out from your computer at <a href="http://qudio.local/backgrounds/webcam-test.jpg">http://qudio.local/backgrounds/webcam-test.jpg</a> (if you set <em>Qudio</em> as hostname, like me).
</p>
<pre><code>lsusb && ls /dev/video*
fswebcam -r 320x240 -d /dev/video0 -v /data/backgrounds/webcam-test.jpg</code></pre>
<p>
Before we go on, we need Python 3.6 on the Raspberry Pi. Earlier versions have a bug in socketio-client (which we need for remote control of volumio) and the current version 3.7 has a <a href="https://stackoverflow.com/a/34580922/3761783">problem with OpenSSL</a>, so 3.6 it is. Unfortunately, we will have to built it from the source, which takes a while.
</p>
<pre><code>sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
cd ~
wget wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5
./configure
make
sudo make altinstall
</code></pre>
<p>
When this is completed entering <code>python3.6 --version</code> should result in &quot;Python 3.6.5&quot; on the command line. Now add the required libraries:
</p>
<pre><code>sudo easy_install-3.6 -U pip
sudo pip3.6 install --upgrade pip
sudo pip3.6 install socketio-client
sudo pip3.6 install RPi.GPIO
</code></pre>
<p>
Now it the system should be able to run the test scripts:
</p>
<pre><code># Turn the LED on and off
python3.6 /data/INTERNAL/qudio/test/led_on.py
python3.6 /data/INTERNAL/qudio/test/led_off.py
</code></pre>
<pre><code># Test the buttons
python3.6 /data/INTERNAL/qudio/test/buttons.py
# Pressing the buttons should now result in an output. After testing, stop the script with Ctrl-C.
</code></pre>
<pre><code># Test the sensor
python3.6 /data/INTERNAL/qudio/test/sensor.py
# Putting a card on the window should make the signal go from HIGH to LOW. After testing, stop the script with Ctrl-C.
</code></pre>
<p>
If everything works fine, we can set up the script that glues everything together as a system service. Create a service description file with <code>sudo nano /lib/systemd/system/qudio.service</code> and put in the following content:
</p>
<pre><code>[Unit]
Description=qudio
After=volumio.service
Requires=volumio.service
[Service]
Type=simple
ExecStart=/bin/bash -c 'exec python3.6 /data/INTERNAL/qudio/qudio.py > /tmp/qudio.log 2>&1'
User=volumio
[Install]
WantedBy=multi-user.target</code></pre>
<p>
Close the nano editor with Ctrl-X, activate the service and restart the system:
</p>
<pre><code>sudo systemctl daemon-reload
sudo systemctl enable qudio.service
sudo reboot</code></pre>
<p>
After rebooting, the player is ready to go. Now you can do a final test with <a href="misc/QR-Card_Template.pdf">example QR code cards</a>
</p>
<h2 id="qr-cards">QR Cards</h2>
<p>
The QR code on the cards should be about 10&times;10 mm large with 16 mm padding on top of the card:
</p>
<p class="gallery">
<a href="images/curb.png" data-fancybox data-caption="The window is 24&times;24 mm, the camera should see at least 10&times;10 mm in the center"><img src="images/curb.png" width="320" alt="The window is 24&times;24 mm, the camera should see at least 10&times;10 mm in the center" /></a>
</p>
<p>
While the curb leaves 34 mm space for the card's width, it is a good practice to print the cards with a width of 33 mm. That way they do not get stuck and you can place exactly 9 cards in a line on an A4 sheet.
</p>
<p>
You can use <a href="misc/QR-Card_Template.odt">this ODT template</a> for creating your own cards.
</p>
<h2 id="future">What's left</h2>
<p>
Since the creation of the cards can be a bit of a hassle when the collection grows larger, I have written a card generator for Spotify links. It takes a list of Spotify URIs as input and generates a PDF with the QR codes, the title and the album art. The information is printed both on the front and the back of the cards in order to make sorting of card stacks easier. I will put the generator online as soon as possible.
</p>
<p>
If you have any questions or improvements please send me an e-mail to <a href="mailto:tliero@gmx.net">tliero@gmx.net</a>.
</p>
<pre style="display:none;background-color:#ffff99">
Intro-Video
Live-Bild Kamera-Einstellung
LED im Case
deactivate microphone?
deactivate RasPi LED
helpful commands: tail -f /tmp/qudio.log etc.
</pre>
</div>
</body>
</html>
+424
View File
@@ -0,0 +1,424 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="23.699999mm"
height="31.499998mm"
viewBox="0 0 23.699999 31.499998"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="CJMCU-5102.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6"
inkscape:cx="65.849554"
inkscape:cy="43.665915"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1853"
inkscape:window-height="1025"
inkscape:window-x="67"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-43.9,-99.400002)">
<rect
style="opacity:1;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.16500001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect815"
width="31.499998"
height="23.699999"
x="99.400002"
y="-67.599998"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path819"
cx="102.45"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<circle
r="0.75"
cy="-45.399998"
cx="104.99001"
id="circle821"
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle823"
cx="107.53001"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<circle
r="0.75"
cy="-45.399998"
cx="110.07001"
id="circle825"
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle827"
cx="112.61001"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<circle
r="0.75"
cy="-45.399998"
cx="115.15"
id="circle829"
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle831"
cx="117.69"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<circle
r="0.75"
cy="-45.399998"
cx="120.23"
id="circle833"
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle835"
cx="122.77"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<circle
r="0.75"
cy="-45.399998"
cx="125.31"
id="circle837"
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="rotate(90)" />
<circle
style="opacity:1;fill:#333333;fill-opacity:1;stroke:#808000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle839"
cx="127.85"
cy="-45.399998"
r="0.75"
transform="rotate(90)" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:4.23333311px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="47.152531"
y="101.53906"
id="text899"><tspan
sodipodi:role="line"
x="47.152531"
y="105.35226"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:1.41111112px;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458332"
id="tspan919" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot925"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:16px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
transform="scale(0.26458333)"><flowRegion
id="flowRegion927"><rect
id="rect929"
width="123.57143"
height="73.928574"
x="198.03572"
y="499.66254" /></flowRegion><flowPara
id="flowPara931" /></flowRoot> <g
aria-label="VCC 3.3V GND FLT DMP SCL BCK DIN LCK FMT XMT"
transform="matrix(0.37801832,0,0,0.37801832,-24.976663,-38.662694)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:5.33333349px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.69992197"
id="flowRoot1133">
<path
d="m 191.84701,375.71613 h -0.42188 l -1.22917,-3.66927 h 0.42969 l 0.83333,2.58334 q 0,0 0.0625,0.23177 l 0.0599,0.20833 q 0,0 0.0573,0.20833 0,0 0.0547,-0.20312 0,0 0.0573,-0.20573 l 0.0677,-0.23958 0.82812,-2.58334 h 0.42969 z"
style="stroke-width:0.69992197"
id="path1180"
inkscape:connector-curvature="0" />
<path
d="m 194.78451,372.39842 q -0.25521,0 -0.45313,0.10417 -0.19792,0.10417 -0.33073,0.29688 -0.13281,0.1927 -0.20312,0.46354 -0.0677,0.27083 -0.0677,0.60156 0,0.33073 0.0729,0.60677 0.0755,0.27344 0.21094,0.47136 0.13802,0.19791 0.33854,0.30729 0.20052,0.10937 0.45052,0.10937 0.17448,0 0.31771,-0.0547 0.14323,-0.0573 0.26042,-0.15885 0.11719,-0.10156 0.20833,-0.23958 0.0911,-0.14063 0.16146,-0.3099 l 0.33333,0.20313 q -0.0807,0.20573 -0.20052,0.38281 -0.11979,0.17708 -0.28125,0.30729 -0.16145,0.13021 -0.36458,0.20573 -0.20312,0.0729 -0.45573,0.0729 -0.36458,0 -0.64062,-0.14063 -0.27344,-0.14323 -0.45834,-0.39583 -0.18229,-0.25521 -0.27604,-0.60417 -0.0911,-0.34896 -0.0911,-0.76302 0,-0.42969 0.0964,-0.77604 0.099,-0.34636 0.28385,-0.58854 0.1875,-0.24479 0.46094,-0.375 0.27344,-0.13282 0.6224,-0.13282 0.47916,0 0.80208,0.22917 0.32292,0.22917 0.47396,0.67969 l -0.38542,0.15625 q -0.0417,-0.13021 -0.11458,-0.2474 -0.0729,-0.11979 -0.18229,-0.21093 -0.10938,-0.0912 -0.25521,-0.14584 -0.14583,-0.0547 -0.33333,-0.0547 z"
style="stroke-width:0.69992197"
id="path1182"
inkscape:connector-curvature="0" />
<path
d="m 197.94076,372.39842 q -0.25521,0 -0.45313,0.10417 -0.19792,0.10417 -0.33073,0.29688 -0.13281,0.1927 -0.20312,0.46354 -0.0677,0.27083 -0.0677,0.60156 0,0.33073 0.0729,0.60677 0.0755,0.27344 0.21094,0.47136 0.13802,0.19791 0.33854,0.30729 0.20052,0.10937 0.45052,0.10937 0.17448,0 0.31771,-0.0547 0.14323,-0.0573 0.26042,-0.15885 0.11719,-0.10156 0.20833,-0.23958 0.0911,-0.14063 0.16146,-0.3099 l 0.33333,0.20313 q -0.0807,0.20573 -0.20052,0.38281 -0.11979,0.17708 -0.28125,0.30729 -0.16145,0.13021 -0.36458,0.20573 -0.20312,0.0729 -0.45573,0.0729 -0.36458,0 -0.64062,-0.14063 -0.27344,-0.14323 -0.45834,-0.39583 -0.18229,-0.25521 -0.27604,-0.60417 -0.0911,-0.34896 -0.0911,-0.76302 0,-0.42969 0.0964,-0.77604 0.099,-0.34636 0.28385,-0.58854 0.1875,-0.24479 0.46094,-0.375 0.27344,-0.13282 0.6224,-0.13282 0.47916,0 0.80208,0.22917 0.32292,0.22917 0.47396,0.67969 l -0.38542,0.15625 q -0.0417,-0.13021 -0.11458,-0.2474 -0.0729,-0.11979 -0.18229,-0.21093 -0.10938,-0.0912 -0.25521,-0.14584 -0.14583,-0.0547 -0.33333,-0.0547 z"
style="stroke-width:0.69992197"
id="path1184"
inkscape:connector-curvature="0" />
<path
d="m 192.41732,381.36977 q 0,0.2526 -0.0677,0.45052 -0.0651,0.19792 -0.19531,0.33594 -0.13021,0.13541 -0.32032,0.20833 -0.1901,0.0703 -0.4375,0.0703 -0.27864,0 -0.47135,-0.0833 -0.1901,-0.0859 -0.3151,-0.22396 -0.1224,-0.14062 -0.1849,-0.31771 -0.0625,-0.17968 -0.0807,-0.36979 l 0.39583,-0.0443 q 0.0182,0.14583 0.0625,0.26563 0.0469,0.11979 0.125,0.20572 0.0807,0.0859 0.19532,0.13282 0.11718,0.0469 0.27343,0.0469 0.29167,0 0.45573,-0.17448 0.16667,-0.17448 0.16667,-0.51823 0,-0.20312 -0.0755,-0.32552 -0.0729,-0.125 -0.18229,-0.19271 -0.10938,-0.0703 -0.23959,-0.0937 -0.1276,-0.0234 -0.23697,-0.0234 h -0.21875 v -0.40625 h 0.20833 q 0.10937,0 0.22656,-0.026 0.11979,-0.0287 0.21615,-0.099 0.0964,-0.0729 0.15885,-0.19532 0.0651,-0.12239 0.0651,-0.3125 0,-0.29427 -0.14323,-0.46354 -0.14323,-0.17187 -0.42188,-0.17187 -0.25521,0 -0.41146,0.15885 -0.15625,0.15886 -0.18229,0.44792 l -0.38542,-0.0365 q 0.0234,-0.24219 0.10678,-0.42187 0.0859,-0.17969 0.21614,-0.29688 0.13281,-0.11979 0.30208,-0.17708 0.16928,-0.0599 0.35938,-0.0599 0.2526,0 0.43229,0.0781 0.18229,0.0755 0.29688,0.20833 0.11458,0.13021 0.16927,0.30729 0.0547,0.17708 0.0547,0.37761 0,0.16145 -0.0365,0.30208 -0.0365,0.14062 -0.11459,0.2526 -0.0755,0.11198 -0.19531,0.19271 -0.11719,0.0807 -0.28385,0.1224 v 0.0104 q 0.18229,0.0234 0.3151,0.10157 0.13542,0.0755 0.22396,0.1901 0.0885,0.11458 0.13021,0.26042 0.0443,0.14583 0.0443,0.30729 z"
style="stroke-width:0.69992197"
id="path1186"
inkscape:connector-curvature="0" />
<path
d="m 193.01367,382.38279 v -0.57031 h 0.41927 v 0.57031 z"
style="stroke-width:0.69992197"
id="path1188"
inkscape:connector-curvature="0" />
<path
d="m 196.07357,381.36977 q 0,0.2526 -0.0677,0.45052 -0.0651,0.19792 -0.19531,0.33594 -0.13021,0.13541 -0.32032,0.20833 -0.1901,0.0703 -0.4375,0.0703 -0.27864,0 -0.47135,-0.0833 -0.1901,-0.0859 -0.3151,-0.22396 -0.1224,-0.14062 -0.1849,-0.31771 -0.0625,-0.17968 -0.0807,-0.36979 l 0.39583,-0.0443 q 0.0182,0.14583 0.0625,0.26563 0.0469,0.11979 0.125,0.20572 0.0807,0.0859 0.19532,0.13282 0.11718,0.0469 0.27343,0.0469 0.29167,0 0.45573,-0.17448 0.16667,-0.17448 0.16667,-0.51823 0,-0.20312 -0.0755,-0.32552 -0.0729,-0.125 -0.18229,-0.19271 -0.10938,-0.0703 -0.23959,-0.0937 -0.1276,-0.0234 -0.23697,-0.0234 h -0.21875 v -0.40625 h 0.20833 q 0.10937,0 0.22656,-0.026 0.11979,-0.0287 0.21615,-0.099 0.0964,-0.0729 0.15885,-0.19532 0.0651,-0.12239 0.0651,-0.3125 0,-0.29427 -0.14323,-0.46354 -0.14323,-0.17187 -0.42188,-0.17187 -0.25521,0 -0.41146,0.15885 -0.15625,0.15886 -0.18229,0.44792 l -0.38542,-0.0365 q 0.0234,-0.24219 0.10678,-0.42187 0.0859,-0.17969 0.21614,-0.29688 0.13281,-0.11979 0.30208,-0.17708 0.16928,-0.0599 0.35938,-0.0599 0.2526,0 0.43229,0.0781 0.18229,0.0755 0.29688,0.20833 0.11458,0.13021 0.16927,0.30729 0.0547,0.17708 0.0547,0.37761 0,0.16145 -0.0365,0.30208 -0.0365,0.14062 -0.11459,0.2526 -0.0755,0.11198 -0.19531,0.19271 -0.11719,0.0807 -0.28385,0.1224 v 0.0104 q 0.18229,0.0234 0.3151,0.10157 0.13542,0.0755 0.22396,0.1901 0.0885,0.11458 0.13021,0.26042 0.0443,0.14583 0.0443,0.30729 z"
style="stroke-width:0.69992197"
id="path1190"
inkscape:connector-curvature="0" />
<path
d="m 197.94076,382.38279 h -0.42188 l -1.22917,-3.66927 h 0.42969 l 0.83333,2.58333 q 0,0 0.0625,0.23177 l 0.0599,0.20834 q 0,0 0.0573,0.20833 0,0 0.0547,-0.20313 0,0 0.0573,-0.20572 l 0.0677,-0.23959 0.82812,-2.58333 h 0.42969 z"
style="stroke-width:0.69992197"
id="path1192"
inkscape:connector-curvature="0" />
<path
d="m 190.39909,387.19788 q 0,-0.42968 0.0937,-0.77604 0.0964,-0.34635 0.28385,-0.58854 0.19011,-0.24479 0.46875,-0.375 0.28125,-0.13281 0.65104,-0.13281 0.27865,0 0.48698,0.0599 0.20834,0.0599 0.36198,0.17188 0.15365,0.11198 0.26042,0.27344 0.10677,0.15885 0.18229,0.35937 l -0.38802,0.14063 q -0.0547,-0.13542 -0.13542,-0.2448 -0.0781,-0.11197 -0.1901,-0.1901 -0.10938,-0.0781 -0.25521,-0.11979 -0.14583,-0.0443 -0.33333,-0.0443 -0.27344,0 -0.47656,0.10416 -0.20313,0.10417 -0.33594,0.29688 -0.13021,0.19271 -0.19531,0.46354 -0.0651,0.27083 -0.0651,0.60156 0,0.33073 0.0703,0.60677 0.0703,0.27344 0.20834,0.47396 0.13802,0.19792 0.34375,0.3099 0.20833,0.10937 0.47916,0.10937 0.17709,0 0.32552,-0.0365 0.15105,-0.0365 0.27084,-0.0937 0.12239,-0.0599 0.21354,-0.13021 0.0911,-0.0729 0.15365,-0.14584 v -0.66145 h -0.89844 v -0.41667 h 1.27344 v 1.26562 q -0.10157,0.125 -0.23698,0.23959 -0.13282,0.11198 -0.30209,0.19791 -0.16927,0.0859 -0.36979,0.13542 -0.20052,0.0495 -0.42969,0.0495 -0.3802,0 -0.66406,-0.14063 -0.28385,-0.14322 -0.47396,-0.39583 -0.1875,-0.25521 -0.28385,-0.60417 -0.0937,-0.34895 -0.0937,-0.76302 z"
style="stroke-width:0.69992197"
id="path1194"
inkscape:connector-curvature="0" />
<path
d="m 195.89388,389.04945 -1.60937,-3.125 q 0,0 0.0104,0.2526 0.005,0.10677 0.008,0.22656 0.003,0.11719 0.003,0.20834 v 2.4375 h -0.36198 v -3.66927 h 0.47396 l 1.625,3.14583 q -0.005,-0.12761 -0.013,-0.25521 -0.005,-0.10937 -0.0104,-0.23698 -0.003,-0.13021 -0.003,-0.24739 v -2.40625 h 0.36718 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1196"
inkscape:connector-curvature="0" />
<path
d="m 199.68815,387.17705 q 0,0.45833 -0.11458,0.8099 -0.11198,0.34895 -0.3099,0.58593 -0.19531,0.23438 -0.46354,0.35677 -0.26823,0.1198 -0.57552,0.1198 h -1.125 v -3.66927 h 0.99479 q 0.34896,0 0.64063,0.10677 0.29166,0.10416 0.5026,0.32552 0.21354,0.21875 0.33073,0.55729 0.11979,0.33854 0.11979,0.80729 z m -0.41146,0 q 0,-0.3724 -0.0885,-0.63542 -0.0859,-0.26562 -0.24479,-0.43489 -0.15625,-0.16927 -0.3776,-0.2474 -0.21875,-0.0807 -0.48178,-0.0807 h -0.57812 v 2.8724 h 0.67187 q 0.23698,0 0.4375,-0.0937 0.20053,-0.0937 0.34636,-0.27865 0.14844,-0.18489 0.23177,-0.46093 0.0833,-0.27605 0.0833,-0.64063 z"
style="stroke-width:0.69992197"
id="path1198"
inkscape:connector-curvature="0" />
<path
d="m 190.94336,392.45308 v 1.36459 h 1.67969 v 0.41145 h -1.67969 v 1.48698 h -0.40625 v -3.66927 h 2.13802 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1200"
inkscape:connector-curvature="0" />
<path
d="m 193.21419,395.7161 v -3.66927 h 0.40625 v 3.26302 h 1.52084 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1202"
inkscape:connector-curvature="0" />
<path
d="m 196.50586,392.45308 v 3.26302 h -0.40365 v -3.26302 h -1.03385 v -0.40625 h 2.47135 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1204"
inkscape:connector-curvature="0" />
<path
d="m 193.12565,400.51036 q 0,0.45834 -0.11458,0.8099 -0.11198,0.34896 -0.3099,0.58594 -0.19531,0.23437 -0.46354,0.35677 -0.26823,0.11979 -0.57552,0.11979 h -1.125 v -3.66927 h 0.99479 q 0.34896,0 0.64063,0.10677 0.29166,0.10417 0.5026,0.32552 0.21354,0.21875 0.33073,0.55729 0.11979,0.33854 0.11979,0.80729 z m -0.41146,0 q 0,-0.37239 -0.0885,-0.63541 -0.0859,-0.26563 -0.24479,-0.4349 -0.15625,-0.16927 -0.3776,-0.2474 -0.21875,-0.0807 -0.48178,-0.0807 h -0.57812 v 2.87239 h 0.67187 q 0.23698,0 0.4375,-0.0937 0.20053,-0.0937 0.34636,-0.27864 0.14844,-0.1849 0.23177,-0.46094 0.0833,-0.27604 0.0833,-0.64063 z"
style="stroke-width:0.69992197"
id="path1206"
inkscape:connector-curvature="0" />
<path
d="m 196.25065,402.38276 v -2.44792 q 0,-0.13281 0.003,-0.27083 0.003,-0.13802 0.005,-0.25261 0.005,-0.13281 0.013,-0.25781 -0.0286,0.13281 -0.0625,0.26302 0,0 -0.0625,0.23698 -0.0312,0.12761 -0.0651,0.22917 l -0.77604,2.5 h -0.28646 l -0.78906,-2.5 q -0.013,-0.0391 -0.026,-0.0912 l -0.0286,-0.11198 -0.0339,-0.11979 -0.0312,-0.11979 q -0.0365,-0.13802 -0.0703,-0.28646 0.003,0.14584 0.008,0.28906 0.005,0.1224 0.005,0.25782 0.003,0.13281 0.003,0.23437 v 2.44792 h -0.36198 v -3.66927 h 0.53646 l 0.79948,2.54427 q 0.0156,0.0521 0.0365,0.13542 0.0208,0.0807 0.0391,0.16666 0.0208,0.0859 0.0365,0.16406 0.0156,0.0755 0.0234,0.11719 0.005,-0.0417 0.0208,-0.11979 0.0182,-0.0781 0.0417,-0.16406 l 0.0443,-0.16667 q 0.0208,-0.0807 0.0391,-0.13281 l 0.78385,-2.54427 h 0.52344 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1208"
inkscape:connector-curvature="0" />
<path
d="m 199.66471,399.81765 q 0,0.23959 -0.0651,0.44792 -0.0651,0.20573 -0.19531,0.35938 -0.12761,0.15104 -0.32292,0.23958 -0.19271,0.0885 -0.45052,0.0885 h -0.88542 v 1.42969 h -0.40625 v -3.66927 h 1.26563 q 0.26562,0 0.46354,0.0807 0.20052,0.0781 0.33333,0.22396 0.13282,0.14322 0.19792,0.34895 0.0651,0.20313 0.0651,0.45052 z m -0.40885,0.005 q 0,-0.34896 -0.17448,-0.52864 -0.17448,-0.18229 -0.52604,-0.18229 h -0.8099 v 1.44791 h 0.82813 q 0.35156,0 0.51562,-0.1901 0.16667,-0.19011 0.16667,-0.54688 z"
style="stroke-width:0.69992197"
id="path1210"
inkscape:connector-curvature="0" />
<path
d="m 192.89388,408.03639 q 0,0.23178 -0.0755,0.42709 -0.0729,0.19531 -0.22656,0.33854 -0.15365,0.14062 -0.38802,0.22135 -0.23177,0.0781 -0.55209,0.0781 -0.5625,0 -0.8776,-0.23958 -0.3125,-0.23959 -0.39844,-0.69271 l 0.39583,-0.0964 q 0.0286,0.14323 0.0911,0.26042 0.0625,0.11719 0.16667,0.20312 0.10677,0.0833 0.26302,0.13021 0.15625,0.0469 0.37239,0.0469 0.1823,0 0.33334,-0.0365 0.15364,-0.0391 0.26041,-0.11719 0.10938,-0.0781 0.16927,-0.20052 0.0625,-0.125 0.0625,-0.29687 0,-0.17969 -0.0677,-0.29167 -0.0677,-0.11198 -0.19011,-0.1849 -0.11979,-0.0729 -0.28906,-0.12239 l -0.3724,-0.10677 q -0.125,-0.0339 -0.2526,-0.0729 -0.1276,-0.0417 -0.24479,-0.0964 -0.11719,-0.0573 -0.21875,-0.13282 -0.10156,-0.0755 -0.17709,-0.17968 -0.0755,-0.10677 -0.11979,-0.2448 -0.0417,-0.14062 -0.0417,-0.32291 0,-0.26042 0.0859,-0.44531 0.0885,-0.1875 0.24219,-0.3073 0.15365,-0.11979 0.36198,-0.17448 0.21094,-0.0547 0.45313,-0.0547 0.27864,0 0.47656,0.0547 0.20052,0.0521 0.33594,0.15886 0.13802,0.10677 0.21875,0.26562 0.0833,0.15625 0.13281,0.36459 l -0.40104,0.0859 q -0.0286,-0.13281 -0.0859,-0.23697 -0.0573,-0.10417 -0.15104,-0.17448 -0.0911,-0.0703 -0.22396,-0.10677 -0.13021,-0.0365 -0.30729,-0.0365 -0.20834,0 -0.35157,0.0469 -0.14062,0.0443 -0.22656,0.1224 -0.0859,0.0781 -0.125,0.18489 -0.0365,0.10417 -0.0365,0.22657 0,0.16406 0.0677,0.27083 0.0677,0.10417 0.18229,0.17448 0.11459,0.0703 0.26563,0.11719 0.15364,0.0469 0.32292,0.0937 0,0 0.27604,0.0807 0.13802,0.0391 0.26302,0.0964 0.1276,0.0547 0.23698,0.13021 0.10937,0.0755 0.1901,0.18489 0.0833,0.10938 0.12761,0.25782 0.0469,0.14843 0.0469,0.34895 z"
style="stroke-width:0.69992197"
id="path1212"
inkscape:connector-curvature="0" />
<path
d="m 194.78451,405.73171 q -0.25521,0 -0.45313,0.10416 -0.19792,0.10417 -0.33073,0.29688 -0.13281,0.19271 -0.20312,0.46354 -0.0677,0.27083 -0.0677,0.60156 0,0.33073 0.0729,0.60677 0.0755,0.27344 0.21094,0.47136 0.13802,0.19791 0.33854,0.30729 0.20052,0.10937 0.45052,0.10937 0.17448,0 0.31771,-0.0547 0.14323,-0.0573 0.26042,-0.15886 0.11719,-0.10156 0.20833,-0.23958 0.0911,-0.14063 0.16146,-0.3099 l 0.33333,0.20313 q -0.0807,0.20573 -0.20052,0.38281 -0.11979,0.17708 -0.28125,0.30729 -0.16145,0.13021 -0.36458,0.20573 -0.20312,0.0729 -0.45573,0.0729 -0.36458,0 -0.64062,-0.14063 -0.27344,-0.14323 -0.45834,-0.39583 -0.18229,-0.25521 -0.27604,-0.60417 -0.0911,-0.34895 -0.0911,-0.76302 0,-0.42968 0.0964,-0.77604 0.099,-0.34635 0.28385,-0.58854 0.1875,-0.24479 0.46094,-0.375 0.27344,-0.13281 0.6224,-0.13281 0.47916,0 0.80208,0.22916 0.32292,0.22917 0.47396,0.67969 l -0.38542,0.15625 q -0.0417,-0.13021 -0.11458,-0.24739 -0.0729,-0.1198 -0.18229,-0.21094 -0.10938,-0.0912 -0.25521,-0.14584 -0.14583,-0.0547 -0.33333,-0.0547 z"
style="stroke-width:0.69992197"
id="path1214"
inkscape:connector-curvature="0" />
<path
d="m 196.61003,409.04942 v -3.66928 h 0.40625 v 3.26303 h 1.52083 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1216"
inkscape:connector-curvature="0" />
<path
d="m 192.86263,414.68222 q 0,0.27864 -0.0885,0.47656 -0.0885,0.19531 -0.24219,0.32031 -0.15104,0.1224 -0.35156,0.17969 -0.20052,0.0573 -0.42188,0.0573 h -1.22135 v -3.66927 h 1.09375 q 0.25,0 0.44531,0.0521 0.19531,0.0495 0.33073,0.15886 0.13802,0.10937 0.20833,0.27864 0.0729,0.16667 0.0729,0.40105 0,0.15364 -0.0365,0.28906 -0.0339,0.13542 -0.10677,0.24739 -0.0703,0.10938 -0.17969,0.19011 -0.10677,0.0781 -0.25,0.11719 0.1823,0.026 0.32292,0.10156 0.14063,0.0755 0.23438,0.19271 0.0937,0.11718 0.14062,0.27343 0.0495,0.15365 0.0495,0.33334 z m -0.58333,-1.6849 q 0,-0.29687 -0.16667,-0.42448 -0.16667,-0.1276 -0.48177,-0.1276 h -0.6875 v 1.16146 h 0.6875 q 0.17969,0 0.30208,-0.0417 0.125,-0.0443 0.20052,-0.1224 0.0781,-0.0807 0.11198,-0.1927 0.0339,-0.11198 0.0339,-0.25261 z m 0.17187,1.64584 q 0,-0.17448 -0.0521,-0.29688 -0.0521,-0.1224 -0.15104,-0.20052 -0.0964,-0.0781 -0.23438,-0.11458 -0.13802,-0.0365 -0.30989,-0.0365 h -0.76042 v 1.32291 h 0.79427 q 0.15625,0 0.28646,-0.0312 0.13021,-0.0312 0.22396,-0.10937 0.0964,-0.0781 0.14843,-0.20833 0.0547,-0.13021 0.0547,-0.32552 z"
style="stroke-width:0.69992197"
id="path1218"
inkscape:connector-curvature="0" />
<path
d="m 194.78451,412.39836 q -0.25521,0 -0.45313,0.10417 -0.19792,0.10417 -0.33073,0.29688 -0.13281,0.1927 -0.20312,0.46354 -0.0677,0.27083 -0.0677,0.60156 0,0.33073 0.0729,0.60677 0.0755,0.27344 0.21094,0.47135 0.13802,0.19792 0.33854,0.3073 0.20052,0.10937 0.45052,0.10937 0.17448,0 0.31771,-0.0547 0.14323,-0.0573 0.26042,-0.15885 0.11719,-0.10156 0.20833,-0.23958 0.0911,-0.14063 0.16146,-0.3099 l 0.33333,0.20313 q -0.0807,0.20572 -0.20052,0.38281 -0.11979,0.17708 -0.28125,0.30729 -0.16145,0.13021 -0.36458,0.20573 -0.20312,0.0729 -0.45573,0.0729 -0.36458,0 -0.64062,-0.14063 -0.27344,-0.14323 -0.45834,-0.39583 -0.18229,-0.25521 -0.27604,-0.60417 -0.0911,-0.34896 -0.0911,-0.76302 0,-0.42969 0.0964,-0.77604 0.099,-0.34636 0.28385,-0.58854 0.1875,-0.2448 0.46094,-0.375 0.27344,-0.13282 0.6224,-0.13282 0.47916,0 0.80208,0.22917 0.32292,0.22917 0.47396,0.67969 l -0.38542,0.15625 q -0.0417,-0.13021 -0.11458,-0.2474 -0.0729,-0.11979 -0.18229,-0.21094 -0.10938,-0.0911 -0.25521,-0.14583 -0.14583,-0.0547 -0.33333,-0.0547 z"
style="stroke-width:0.69992197"
id="path1220"
inkscape:connector-curvature="0" />
<path
d="m 198.61263,415.71607 -1.20312,-1.77083 -0.39323,0.36458 v 1.40625 h -0.40625 v -3.66927 h 0.40625 v 1.83854 l 1.45052,-1.83854 h 0.48177 l -1.28125,1.59375 1.45052,2.07552 z"
style="stroke-width:0.69992197"
id="path1222"
inkscape:connector-curvature="0" />
<path
d="m 193.12565,420.51033 q 0,0.45834 -0.11458,0.8099 -0.11198,0.34896 -0.3099,0.58594 -0.19531,0.23437 -0.46354,0.35677 -0.26823,0.11979 -0.57552,0.11979 h -1.125 v -3.66927 h 0.99479 q 0.34896,0 0.64063,0.10677 0.29166,0.10417 0.5026,0.32552 0.21354,0.21875 0.33073,0.55729 0.11979,0.33854 0.11979,0.80729 z m -0.41146,0 q 0,-0.37239 -0.0885,-0.63541 -0.0859,-0.26563 -0.24479,-0.4349 -0.15625,-0.16927 -0.3776,-0.2474 -0.21875,-0.0807 -0.48178,-0.0807 h -0.57812 v 2.87239 h 0.67187 q 0.23698,0 0.4375,-0.0937 0.20053,-0.0937 0.34636,-0.27864 0.14844,-0.1849 0.23177,-0.46094 0.0833,-0.27604 0.0833,-0.64063 z"
style="stroke-width:0.69992197"
id="path1224"
inkscape:connector-curvature="0" />
<path
d="m 193.73763,422.38273 v -3.66927 h 0.40885 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1226"
inkscape:connector-curvature="0" />
<path
d="m 196.86263,422.38273 -1.60937,-3.125 q 0,0 0.0104,0.2526 0.005,0.10677 0.008,0.22657 0.003,0.11718 0.003,0.20833 v 2.4375 h -0.36198 v -3.66927 h 0.47396 l 1.625,3.14583 q -0.005,-0.1276 -0.013,-0.25521 -0.005,-0.10937 -0.0104,-0.23698 -0.003,-0.1302 -0.003,-0.24739 v -2.40625 h 0.36718 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1228"
inkscape:connector-curvature="0" />
<path
d="m 190.53711,429.04939 v -3.66928 h 0.40625 v 3.26303 h 1.52083 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1230"
inkscape:connector-curvature="0" />
<path
d="m 194.30534,425.73168 q -0.25521,0 -0.45313,0.10416 -0.19791,0.10417 -0.33073,0.29688 -0.13281,0.19271 -0.20312,0.46354 -0.0677,0.27083 -0.0677,0.60156 0,0.33073 0.0729,0.60677 0.0755,0.27344 0.21094,0.47136 0.13802,0.19791 0.33854,0.30729 0.20052,0.10937 0.45052,0.10937 0.17448,0 0.31771,-0.0547 0.14323,-0.0573 0.26041,-0.15886 0.11719,-0.10156 0.20834,-0.23958 0.0911,-0.14063 0.16145,-0.3099 l 0.33334,0.20313 q -0.0807,0.20573 -0.20052,0.38281 -0.11979,0.17708 -0.28125,0.30729 -0.16146,0.13021 -0.36459,0.20573 -0.20312,0.0729 -0.45573,0.0729 -0.36458,0 -0.64062,-0.14063 -0.27344,-0.14323 -0.45833,-0.39583 -0.1823,-0.25521 -0.27605,-0.60417 -0.0911,-0.34895 -0.0911,-0.76302 0,-0.42969 0.0964,-0.77604 0.099,-0.34635 0.28386,-0.58854 0.1875,-0.24479 0.46093,-0.375 0.27344,-0.13281 0.6224,-0.13281 0.47917,0 0.80208,0.22916 0.32292,0.22917 0.47396,0.67969 l -0.38541,0.15625 q -0.0417,-0.13021 -0.11459,-0.2474 -0.0729,-0.11979 -0.18229,-0.21093 -0.10937,-0.0912 -0.25521,-0.14584 -0.14583,-0.0547 -0.33333,-0.0547 z"
style="stroke-width:0.69992197"
id="path1232"
inkscape:connector-curvature="0" />
<path
d="m 198.13346,429.04939 -1.20312,-1.77084 -0.39323,0.36459 v 1.40625 h -0.40625 v -3.66928 h 0.40625 v 1.83855 l 1.45052,-1.83855 h 0.48177 l -1.28125,1.59375 1.45052,2.07553 z"
style="stroke-width:0.69992197"
id="path1234"
inkscape:connector-curvature="0" />
<path
d="m 190.94336,432.45302 v 1.36458 h 1.67969 v 0.41146 h -1.67969 v 1.48698 h -0.40625 v -3.66927 h 2.13802 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1236"
inkscape:connector-curvature="0" />
<path
d="m 195.77148,435.71604 v -2.44792 q 0,-0.13281 0.003,-0.27083 0.003,-0.13802 0.005,-0.2526 0.005,-0.13282 0.013,-0.25782 -0.0286,0.13282 -0.0625,0.26303 0,0 -0.0625,0.23697 -0.0312,0.12761 -0.0651,0.22917 l -0.77604,2.5 h -0.28646 l -0.78906,-2.5 q -0.013,-0.0391 -0.026,-0.0911 l -0.0286,-0.11198 -0.0339,-0.1198 -0.0312,-0.11979 q -0.0365,-0.13802 -0.0703,-0.28646 0.003,0.14584 0.008,0.28907 0.005,0.12239 0.005,0.25781 0.003,0.13281 0.003,0.23437 v 2.44792 h -0.36198 v -3.66927 h 0.53646 l 0.79948,2.54427 q 0.0156,0.0521 0.0365,0.13542 0.0208,0.0807 0.0391,0.16666 0.0208,0.0859 0.0365,0.16407 0.0156,0.0755 0.0234,0.11718 0.005,-0.0417 0.0208,-0.11979 0.0182,-0.0781 0.0417,-0.16406 l 0.0443,-0.16667 q 0.0208,-0.0807 0.0391,-0.13281 l 0.78385,-2.54427 h 0.52344 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1238"
inkscape:connector-curvature="0" />
<path
d="m 198.03711,432.45302 v 3.26302 h -0.40365 v -3.26302 h -1.03385 v -0.40625 h 2.47135 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1240"
inkscape:connector-curvature="0" />
<path
d="m 192.55273,442.3827 -0.90364,-1.60417 -0.92188,1.60417 h -0.45052 l 1.14323,-1.90625 -1.05729,-1.76302 h 0.45052 l 0.83854,1.4401 0.8125,-1.4401 h 0.45052 l -1.02864,1.74479 1.11719,1.92448 z"
style="stroke-width:0.69992197"
id="path1242"
inkscape:connector-curvature="0" />
<path
d="m 196.01107,442.3827 v -2.44792 q 0,-0.13281 0.003,-0.27083 0.003,-0.13802 0.005,-0.25261 0.005,-0.13281 0.013,-0.25781 -0.0286,0.13281 -0.0625,0.26302 0,0 -0.0625,0.23698 -0.0312,0.12761 -0.0651,0.22917 l -0.77604,2.5 h -0.28646 l -0.78907,-2.5 q -0.013,-0.0391 -0.026,-0.0912 l -0.0286,-0.11198 -0.0339,-0.11979 -0.0312,-0.11979 q -0.0365,-0.13802 -0.0703,-0.28646 0.003,0.14583 0.008,0.28906 0.005,0.1224 0.005,0.25782 0.003,0.13281 0.003,0.23437 v 2.44792 h -0.36198 v -3.66927 h 0.53645 l 0.79948,2.54427 q 0.0156,0.0521 0.0365,0.13541 0.0208,0.0807 0.0391,0.16667 0.0208,0.0859 0.0365,0.16406 0.0156,0.0755 0.0234,0.11719 0.005,-0.0417 0.0208,-0.11979 0.0182,-0.0781 0.0417,-0.16406 l 0.0443,-0.16667 q 0.0208,-0.0807 0.0391,-0.13281 l 0.78386,-2.54427 h 0.52344 v 3.66927 z"
style="stroke-width:0.69992197"
id="path1244"
inkscape:connector-curvature="0" />
<path
d="m 198.27669,439.11968 v 3.26302 h -0.40364 v -3.26302 h -1.03386 v -0.40625 h 2.47136 v 0.40625 z"
style="stroke-width:0.69992197"
id="path1246"
inkscape:connector-curvature="0" />
</g>
<g
id="g1253">
<rect
transform="rotate(90)"
y="-66.099998"
x="101.0097"
height="12.5"
width="6"
id="rect817"
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:none;stroke-width:0.16500001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="101.6097"
x="66.099998"
height="4.8000002"
width="1.5"
id="rect1249"
style="opacity:1;fill:#1a1a1a;fill-opacity:1;stroke:none;stroke-width:0.49999997;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<g
aria-label="CJMCU"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:1.41111112px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f9f9f9;fill-opacity:1;stroke:none;stroke-width:0.15154196"
id="text1257"
transform="matrix(0,-1.7459412,1.7459412,0,-153.68154,233.70937)">
<g
aria-label="CJMCU-5102"
transform="matrix(0.97969999,0,0,0.97969999,-57.415724,191.82438)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:0.80822378px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0234408"
id="text1272">
<path
d="m 119.40283,-67.289385 q -0.0387,0 -0.0687,0.01578 -0.03,0.01579 -0.0501,0.04499 -0.0201,0.0292 -0.0308,0.07025 -0.0103,0.04104 -0.0103,0.09116 0,0.05012 0.011,0.09195 0.0114,0.04144 0.032,0.07143 0.0209,0.02999 0.0513,0.04657 0.0304,0.01658 0.0683,0.01658 0.0264,0 0.0481,-0.0083 0.0217,-0.0087 0.0395,-0.02407 0.0178,-0.01539 0.0316,-0.03631 0.0138,-0.02131 0.0245,-0.04696 l 0.0505,0.03078 q -0.0122,0.03118 -0.0304,0.05801 -0.0182,0.02684 -0.0426,0.04657 -0.0245,0.01973 -0.0553,0.03118 -0.0308,0.01105 -0.0691,0.01105 -0.0553,0 -0.0971,-0.02131 -0.0414,-0.0217 -0.0695,-0.05999 -0.0276,-0.03867 -0.0418,-0.09156 -0.0138,-0.05288 -0.0138,-0.11563 0,-0.06512 0.0146,-0.117603 0.015,-0.05249 0.043,-0.08919 0.0284,-0.0371 0.0699,-0.05683 0.0414,-0.02013 0.0943,-0.02013 0.0726,0 0.12154,0.03473 0.0489,0.03473 0.0718,0.103001 l -0.0584,0.02368 q -0.006,-0.01973 -0.0174,-0.03749 -0.011,-0.01815 -0.0276,-0.03197 -0.0166,-0.01381 -0.0387,-0.0221 -0.0221,-0.0083 -0.0505,-0.0083 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1274"
inkscape:connector-curvature="0" />
<path
d="m 119.77301,-66.778721 q -0.0553,0 -0.0908,-0.03512 -0.0355,-0.03512 -0.047,-0.110894 l 0.0608,-0.01223 q 0.003,0.02565 0.0107,0.0442 0.007,0.01815 0.0178,0.02999 0.0103,0.01184 0.0229,0.01736 0.0126,0.0055 0.026,0.0055 0.0336,0 0.0529,-0.02802 0.0193,-0.02842 0.0193,-0.08288 v -0.330314 h -0.0876 v -0.06156 h 0.14918 v 0.3903 q 0,0.03986 -0.009,0.07182 -0.009,0.03197 -0.0264,0.05486 -0.017,0.02249 -0.0422,0.03473 -0.0249,0.01223 -0.0564,0.01223 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1276"
inkscape:connector-curvature="0" />
<path
d="m 120.39851,-66.786613 v -0.370963 q 0,-0.02013 4e-4,-0.04104 3.9e-4,-0.02092 7.9e-4,-0.03828 7.9e-4,-0.02013 0.002,-0.03907 -0.004,0.02013 -0.009,0.03986 0,0 -0.009,0.03591 -0.005,0.01934 -0.01,0.03473 l -0.1176,0.378855 h -0.0434 l -0.11958,-0.378855 q -0.002,-0.0059 -0.004,-0.01381 l -0.004,-0.01697 -0.005,-0.01815 -0.005,-0.01815 q -0.006,-0.02092 -0.0107,-0.04341 4e-4,0.0221 0.001,0.04381 7.9e-4,0.01855 7.9e-4,0.03907 3.9e-4,0.02013 3.9e-4,0.03552 v 0.370963 h -0.0549 v -0.556049 h 0.0813 l 0.12116,0.385564 q 0.002,0.0079 0.006,0.02052 0.003,0.01223 0.006,0.02526 0.003,0.01302 0.006,0.02486 0.002,0.01145 0.004,0.01776 7.9e-4,-0.0063 0.003,-0.01815 0.003,-0.01184 0.006,-0.02486 l 0.007,-0.02526 q 0.003,-0.01223 0.006,-0.02013 l 0.11878,-0.385564 h 0.0793 v 0.556049 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1278"
inkscape:connector-curvature="0" />
<path
d="m 120.76513,-67.289385 q -0.0387,0 -0.0687,0.01578 -0.03,0.01579 -0.0501,0.04499 -0.0201,0.0292 -0.0308,0.07025 -0.0103,0.04104 -0.0103,0.09116 0,0.05012 0.011,0.09195 0.0114,0.04144 0.032,0.07143 0.0209,0.02999 0.0513,0.04657 0.0304,0.01658 0.0683,0.01658 0.0264,0 0.0481,-0.0083 0.0217,-0.0087 0.0395,-0.02407 0.0178,-0.01539 0.0316,-0.03631 0.0138,-0.02131 0.0245,-0.04696 l 0.0505,0.03078 q -0.0122,0.03118 -0.0304,0.05801 -0.0181,0.02684 -0.0426,0.04657 -0.0245,0.01973 -0.0553,0.03118 -0.0308,0.01105 -0.0691,0.01105 -0.0553,0 -0.0971,-0.02131 -0.0414,-0.0217 -0.0695,-0.05999 -0.0276,-0.03867 -0.0418,-0.09156 -0.0138,-0.05288 -0.0138,-0.11563 0,-0.06512 0.0146,-0.117603 0.015,-0.05249 0.043,-0.08919 0.0284,-0.0371 0.0699,-0.05683 0.0414,-0.02013 0.0943,-0.02013 0.0726,0 0.12155,0.03473 0.0489,0.03473 0.0718,0.103001 l -0.0584,0.02368 q -0.006,-0.01973 -0.0174,-0.03749 -0.011,-0.01815 -0.0276,-0.03197 -0.0166,-0.01381 -0.0387,-0.0221 -0.0221,-0.0083 -0.0505,-0.0083 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1280"
inkscape:connector-curvature="0" />
<path
d="m 121.22371,-66.778721 q -0.0375,0 -0.071,-0.01223 -0.0335,-0.01223 -0.0592,-0.03789 -0.0252,-0.02605 -0.0403,-0.06551 -0.015,-0.03986 -0.015,-0.09432 v -0.353993 h 0.0619 v 0.347678 q 0,0.04223 0.009,0.07183 0.009,0.0292 0.0256,0.04775 0.0166,0.01855 0.0391,0.02723 0.0225,0.0083 0.0493,0.0083 0.0264,0 0.0501,-0.0087 0.0237,-0.0087 0.0414,-0.02763 0.0178,-0.01894 0.028,-0.04933 0.0103,-0.03078 0.0103,-0.07459 v -0.342548 h 0.0616 v 0.346889 q 0,0.05564 -0.0154,0.09669 -0.015,0.04065 -0.041,0.06748 -0.0256,0.02684 -0.0604,0.03986 -0.0347,0.01302 -0.0742,0.01302 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1282"
inkscape:connector-curvature="0" />
<path
d="m 121.49522,-66.969727 v -0.06314 h 0.16141 v 0.06314 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1284"
inkscape:connector-curvature="0" />
<path
d="m 122.02719,-66.967753 q 0,0.04183 -0.0103,0.07656 -0.0103,0.03473 -0.0308,0.05998 -0.0201,0.02486 -0.0505,0.03867 -0.0304,0.01381 -0.0703,0.01381 -0.0359,0 -0.0628,-0.01026 -0.0264,-0.01026 -0.045,-0.02802 -0.0181,-0.01815 -0.0292,-0.04223 -0.0106,-0.02407 -0.0154,-0.0517 l 0.0588,-0.0083 q 0.004,0.01579 0.01,0.03078 0.007,0.0146 0.0178,0.02644 0.0114,0.01145 0.0276,0.01855 0.0166,0.0067 0.0399,0.0067 0.0225,0 0.041,-0.0083 0.0185,-0.0087 0.0316,-0.02526 0.013,-0.01658 0.0201,-0.04065 0.007,-0.02407 0.007,-0.05525 0,-0.02565 -0.007,-0.04696 -0.007,-0.0217 -0.0193,-0.0371 -0.0126,-0.01579 -0.0312,-0.02447 -0.0181,-0.0087 -0.0414,-0.0087 -0.0146,0 -0.0268,0.0032 -0.0122,0.0032 -0.0229,0.0087 -0.0103,0.0055 -0.0189,0.01302 -0.009,0.0071 -0.0162,0.015 h -0.0568 l 0.015,-0.299138 h 0.25928 v 0.06038 h -0.206 l -0.009,0.176404 q 0.0154,-0.0146 0.0387,-0.02486 0.0233,-0.01065 0.0553,-0.01065 0.0339,0 0.0612,0.01263 0.0272,0.01263 0.0462,0.03591 0.0193,0.02289 0.0296,0.05486 0.0103,0.03196 0.0103,0.07025 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1286"
inkscape:connector-curvature="0" />
<path
d="m 122.10652,-66.786613 v -0.06038 h 0.11602 v -0.427791 l -0.10261,0.08958 v -0.06709 l 0.10774,-0.09037 h 0.0537 v 0.495669 h 0.1109 v 0.06038 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1288"
inkscape:connector-curvature="0" />
<path
d="m 122.76793,-67.064835 q 0,0.08011 -0.0126,0.134967 -0.0122,0.05446 -0.0339,0.0884 -0.0213,0.03354 -0.0505,0.04815 -0.0288,0.0146 -0.062,0.0146 -0.0332,0 -0.0619,-0.0146 -0.0288,-0.0146 -0.0501,-0.04815 -0.0213,-0.03354 -0.0336,-0.088 -0.0118,-0.05486 -0.0118,-0.135362 0,-0.08406 0.0118,-0.138913 0.0122,-0.05525 0.0336,-0.088 0.0213,-0.03275 0.0505,-0.04578 0.0292,-0.01342 0.0635,-0.01342 0.0327,0 0.0612,0.01342 0.0288,0.01302 0.0501,0.04578 0.0213,0.03275 0.0335,0.088 0.0122,0.05486 0.0122,0.138913 z m -0.0592,0 q 0,-0.0663 -0.006,-0.110105 -0.006,-0.0442 -0.0189,-0.07025 -0.0126,-0.02644 -0.0312,-0.0371 -0.0181,-0.01105 -0.0414,-0.01105 -0.0245,0 -0.0434,0.01105 -0.019,0.01105 -0.0316,0.03749 -0.0126,0.02605 -0.0193,0.07025 -0.006,0.0438 -0.006,0.10971 0,0.06393 0.006,0.107737 0.007,0.04381 0.0193,0.07064 0.013,0.02644 0.0316,0.03828 0.0186,0.01144 0.0422,0.01144 0.0229,0 0.041,-0.01144 0.0185,-0.01184 0.0312,-0.03828 0.013,-0.02683 0.0197,-0.07064 0.007,-0.0438 0.007,-0.107737 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1290"
inkscape:connector-curvature="0" />
<path
d="m 122.82792,-66.786613 v -0.05012 q 0.0166,-0.04617 0.0403,-0.0813 0.0241,-0.03552 0.0501,-0.06393 0.0264,-0.02881 0.0521,-0.05328 0.0256,-0.02447 0.0462,-0.04894 0.0209,-0.02447 0.0335,-0.0513 0.013,-0.02684 0.013,-0.06077 0,-0.02368 -0.006,-0.04144 -0.006,-0.01815 -0.017,-0.03039 -0.0107,-0.01223 -0.026,-0.01815 -0.0154,-0.0063 -0.0343,-0.0063 -0.0174,0 -0.0328,0.0059 -0.0154,0.0059 -0.0276,0.01776 -0.0118,0.01184 -0.0193,0.0296 -0.007,0.01736 -0.01,0.04065 l -0.0596,-0.0067 q 0.003,-0.02999 0.0134,-0.05643 0.011,-0.02644 0.0296,-0.04617 0.0189,-0.02013 0.045,-0.03157 0.0264,-0.01144 0.0612,-0.01144 0.0339,0 0.0604,0.0099 0.0268,0.0099 0.045,0.0292 0.0182,0.01934 0.028,0.04775 0.01,0.02841 0.01,0.06551 0,0.02802 -0.008,0.05328 -0.008,0.02526 -0.0221,0.04815 -0.0138,0.02289 -0.032,0.0442 -0.0182,0.02131 -0.0379,0.04144 l -0.0399,0.04025 q -0.0201,0.02013 -0.0379,0.04025 -0.0174,0.02013 -0.0312,0.04104 -0.0138,0.02052 -0.0217,0.04302 h 0.23796 v 0.06038 z"
style="fill:#f9f9f9;stroke-width:0.0234408"
id="path1292"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.
Binary file not shown.
+252
View File
@@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
sodipodi:docname="curb.svg"
inkscape:export-filename="/home/tilman/git/piplayer/documentation/qudio/images/curb.png"
inkscape:export-xdpi="500.05264"
inkscape:export-ydpi="500.05264"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8284271"
inkscape:cx="413.11109"
inkscape:cy="592.8555"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1853"
inkscape:window-height="1025"
inkscape:window-x="67"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.16500001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect985"
width="58.291489"
height="50.447124"
x="85.20623"
y="109.77644"
inkscape:export-filename="/home/tilman/git/piplayer/documentation/qudio/images/curb.png"
inkscape:export-xdpi="500"
inkscape:export-ydpi="500" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.49999997;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect815"
width="23.5"
height="23.5"
x="100.25"
y="123.25"
rx="2"
ry="2" />
<path
style="opacity:1;fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 87.015593,110.75 v 6.00016 27.99984 h 6.000149 V 116.75016 H 131.01601 V 144.75 h 5.99963 V 116.75016 110.75 h -5.99963 z"
id="rect823"
inkscape:connector-curvature="0" />
<image
y="132.33585"
x="107"
id="image849"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASYAAAEmCAYAAADPxD3aAAAABHNCSVQICAgIfAhkiAAACRBJREFU eJzt3dGKIzsSRVHX4P//5b7vw2hAF4nYql7rtdxydjp9EA4i9PP5fP58HvDnz95l/vz8bK2z+/pd q/VXdq9z19/2/6qtf/v+374Pt/1n+gIA/ptgAnIEE5AjmIAcwQTkfFd/OFU12LVbNahV31Zer7Kt 1j9VLV3ZvW+vVAlXpqpmte+7HROQI5iAHMEE5AgmIEcwATnLqtxKrYq0cru6MdVb98r6r7tdrXul x23q+27HBOQIJiBHMAE5ggnIEUxAznZVruZUT1ytirfbCzZVRaq5Pen0VNWytk6NHROQI5iAHMEE 5AgmIEcwATnPV+VqEyynJnDeXue23ft/ezLkVPXzdjXwFXZMQI5gAnIEE5AjmIAcwQTkbFflfmt1 4FS1bqoX7/Z13q5aTlW1atW62mTRqfe1YwJyBBOQI5iAHMEE5AgmIGdZlXtlYuEptydhvjI5c2r9 qft/6np21ap4te+7HROQI5iAHMEE5AgmIEcwATnf39r7tqs2ufFUdea228/P1GTRldr35fbkzyl2 TECOYAJyBBOQI5iAHMEE5Px8Pp+tn+lv9yjtVk/+tqrN6717K1PVolPP29Tkydr5d6fupx0TkCOY gBzBBOQIJiBHMAE5P382ywa1KsbU9dyuHr5SPVmZmpy58kp1+LfafR7smIAcwQTkCCYgRzABOYIJ yPnu/lo+1ftTU6se7r7v61W2lVrP3VRvXe3z2n1fOyYgRzABOYIJyBFMQI5gAnK+qz+8Psnw1PXX eqZqExFXXukdq00EfWWC6+2qtB0TkCOYgBzBBOQIJiBHMAE5ywmWUz1WU+dz7apN4Dzlt04Eve2V iaO179fqeuyYgBzBBOQIJiBHMAE5ggnIOXau3G89v+yU2mTOqUmJr0xu/K3VyVeeQzsmIEcwATmC CcgRTECOYAJyrk+w3K0+1KohtWrOKbXJjSu1quvUpMpdtere7n2zYwJyBBOQI5iAHMEE5AgmIOf7 Su/Myu3q4e33XZk6L6zW23VbrTp5u8o5VQXeZccE5AgmIEcwATmCCcgRTEDOsQmWu1R5/t06u16Z lDhVLaqdv/ZK1e/2OnZMQI5gAnIEE5AjmIAcwQTkLCdYrkxVZ3bXv71ObbLiSm0y5ym1c+t2TT2f u9cz9f21YwJyBBOQI5iAHMEE5AgmIOfn8/kcKVfUep1O+a0TDmtVmN31pz6XWpX2lZ7EFb1ywDME E5AjmIAcwQTkCCYg51urLu2aqibUqm+7r39l0uYrps6De+X7uLu+HROQI5iAHMEE5AgmIEcwATnL Xrlaj8+uqUmYu2o9brXq4ZRaler2+lPnGOqVA54hmIAcwQTkCCYgRzABOdu9ciu7VYBab9Rvrb6d 8noVaaqXcNfrVbZT1Vg7JiBHMAE5ggnIEUxAjmACcr5TvTy33T7/a3edqQmHp9avTQq9vc7U81Nz Ox/0ygHPEExAjmACcgQTkCOYgJzv7j+onSM2dX7W7arN7vueev3tdXZ7rHbdnqhZu5+317/dE7di xwTkCCYgRzABOYIJyBFMQM5yguXKVE/W1MTLqerM6z10r1SvTr3vKz2np67z9uvtmIAcwQTkCCYg RzABOYIJyFlOsNw1dT7drqmJiLcnFk6dQ1c7Z61W1V2Zus5XelTtmIAcwQTkCCYgRzABOYIJyPn5 fD7/8+fyqSrPba9UJXbdnih42+3etFov2+1Jm7fd/rzsmIAcwQTkCCYgRzABOYIJyPn5s/nz+lSP z6n3vV09mTJ1H3b91irS7jortfs81WNoxwTkCCYgRzABOYIJyBFMQM539Yepc6ymeoVun5NV6617 xanPffe5euXzrVWHT31/7ZiAHMEE5AgmIEcwATmCCcg51iu3Ujv/65Veuanert31V2rnDNauf6pa /UpvqR0TkCOYgBzBBOQIJiBHMAE5y3PlVqZ63KaqPLerG6/3ZL2y/u77vqJ2Ht+pz9GOCcgRTECO YAJyBBOQI5iAnGVV7vXq2+76K1NViV2v3+dTas/J7vpTE1xXpr7XdkxAjmACcgQTkCOYgBzBBORs V+Vue31S3+76tUmVu++7UqtartSqmbt+a5XZjgnIEUxAjmACcgQTkCOYgJzluXKv90ytTFXxVn7r +WW7XqminjJVRX2lum3HBOQIJiBHMAE5ggnIEUxAznf3H+z+ql+byPeK1+9zrcp52ys9j6fcvn47 JiBHMAE5ggnIEUxAjmACcrarciu1qsRulWf3eqZ6jqZ61l6ZfPjKuYe370Nt/d37Y8cE5AgmIEcw ATmCCcgRTEDOdlXuVPWhNnGxVl3atXs9U1WbqephbXLpVFW61ku4uk47JiBHMAE5ggnIEUxAjmAC cr6vTz5c+a1Vj9qkx6kesdvP7VTP3SmvPIcrdkxAjmACcgQTkCOYgBzBBOR8p3rEblcxahM1d70y yfPU+iun7kOtl3ClNol0an07JiBHMAE5ggnIEUxAjmACcnITLHedqg5MnTtW672q9XDVJpSeen2t R3WqB9MES+AZggnIEUxAjmACcgQTkPPz+XyOlGFe6aGr9cRN9UbV1Cam3j6Hzuf1/9kxATmCCcgR TECOYAJyBBOQs5xgOaVWZXtl0uZUFWnXKxMaV2rnx91+36nnzY4JyBFMQI5gAnIEE5AjmICc7+u9 OafWmZoQODUp8ZRaT1ntPLWpSaorr1Qt7ZiAHMEE5AgmIEcwATmCCchZniv3ykTH21WMU9Wl3ddP nTf3Si/YbVM9j7vr184fPPX82zEBOYIJyBFMQI5gAnIEE5CzPFduqto11ctT+/++ss4ralXO2kTQ Xbev344JyBFMQI5gAnIEE5AjmICcZa/cK25Xo26/fuWVqtkrvXi3J22uTD0/u9ezcvtcuRU7JiBH MAE5ggnIEUxAjmACcp6vyk1NmNx9/e3z4GoTDm+vf/uctZXbz9uu25Mkd993l3PlgGcIJiBHMAE5 ggnIEUxAznZVrnaO2FQP0ZSp885ur1ObjHq7qnXbVM+mXjng1xJMQI5gAnIEE5AjmICcZVWuVmU4 5fUq1d82ObN2PTW1z2Vl9zrtmIAcwQTkCCYgRzABOYIJyPkHubyLm0TMDJ8AAAAASUVORK5CYII= "
preserveAspectRatio="none"
height="10"
width="10"
style="stroke-width:7.77874994" />
<g
id="g871">
<path
inkscape:connector-curvature="0"
id="path854"
d="m 107,149.74976 h 10"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 116.9175,149.34886 v 0.80181"
id="path860"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path862"
d="m 107.0825,149.34886 v 0.80181"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:2.11666656px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="109.33556"
y="151.88513"
id="text866"><tspan
sodipodi:role="line"
id="tspan864"
x="109.33556"
y="151.88513"
style="stroke-width:0.26458332">10 mm</tspan></text>
<g
id="g899"
transform="translate(-7,0.43431298)">
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 107,154.8947 h 24"
id="path873"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path875"
d="m 130.9175,154.49379 v 0.80181"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 107.0825,154.49379 v 0.80181"
id="path877"
inkscape:connector-curvature="0" />
</g>
<text
id="text903"
y="157.46437"
x="109.3583"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:2.11666656px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="157.46437"
x="109.3583"
id="tspan901"
sodipodi:role="line">24 mm</tspan></text>
<g
id="g931">
<g
transform="translate(-19.165,2.9800001e-6)"
id="g923">
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 143,155.32901 h 5"
id="path905"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path907"
d="m 147.9175,154.9281 v 0.80181"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 143.0825,154.9281 v 0.80181"
id="path909"
inkscape:connector-curvature="0" />
</g>
<text
id="text915"
y="157.46437"
x="124.18578"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:2.11666656px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
xml:space="preserve"><tspan
style="stroke-width:0.26458332"
y="157.46437"
x="124.18578"
id="tspan913"
sodipodi:role="line">5 mm</tspan></text>
</g>
<g
id="g945"
transform="translate(-28.67)">
<g
id="g939"
transform="translate(-19.165,2.9800001e-6)">
<path
inkscape:connector-curvature="0"
id="path933"
d="m 143,155.32901 h 5"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 147.9175,154.9281 v 0.80181"
id="path935"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path937"
d="m 143.0825,154.9281 v 0.80181"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:2.11666656px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="124.18578"
y="157.46437"
id="text943"><tspan
sodipodi:role="line"
id="tspan941"
x="124.18578"
y="157.46437"
style="stroke-width:0.26458332">5 mm</tspan></text>
</g>
<g
id="g872"
transform="translate(0.08547834,5.5067933)">
<g
id="g864">
<path
inkscape:connector-curvature="0"
id="path846"
d="m 139.18573,126.82905 v -15.387"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 138.78483,111.52352 h 0.80181"
id="path848"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path850"
d="m 138.78483,126.74655 h 0.80181"
style="fill:none;stroke:#000000;stroke-width:0.16500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<text
transform="rotate(-90)"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:2.11666656px;line-height:1.25;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow, Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="-121.79999"
y="141.32111"
id="text856"><tspan
sodipodi:role="line"
id="tspan854"
x="-121.79999"
y="141.32111"
style="stroke-width:0.26458332">16 mm</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB