VoXel Interaction Design - Embedded Networked Interactive https://www.voxel.at/vx8/ en Happy 21st Birthday Linux I2C-Bus drivers! https://www.voxel.at/vx8/node/68 <span class="field field-name-title field-formatter-string field-type-string field-label-hidden">Happy 21st Birthday Linux I2C-Bus drivers!</span> <div class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div class="field__item"><p>The Linux I2C-bus driver has grown up - 21 years ago, on Dec 21st, 1999, with patch # 2.3.34, the i2c bus subsystem has been merged with the mainline kernel.</p> <p><img alt="SAA5246 teletext decoder / i2c-bus project" data-entity-type="file" data-entity-uuid="992e1899-b652-48b1-b2df-760e1785a412" src="/vx8/sites/default/files/inline-images/20201216_120843_cut_1280.jpg" width="90%" class="align-center" /><br /></p><p class="text-align-center"><em>Philips SAA 5246 Teletext decoder chip plus 2k RAM and an ST I2C-bus EEPROM at the front right corner of the PCB</em></p> <p>It all started in 1995 with a side-project during my computer science studies, with a Teletext decoder chip that wanted to talk to my PC, plus a number of other interesting chips that were available for this bus, including LED drivers, IO expanders and more.</p> <p>A number of hacky I2C-bus adapters existed at that time, most of them used a few pins of the parallel port for communication. In order to unify all those solutions, I wrote a first set of drivers that would model the different approaches and was flexible enough to cover all available chip types. The SCSI subsystem was a good source of inspiration for that, as it combined different sorts of disk drives, tapes, scanners etc. All in all, I went through quite some kernel internals to create.</p> <p>Finally, with input coming from fellow coders like Kyösti Mälkki (SMBUS support!), Frodo Looijaard or Hans Berglund the drivers were ripe for merging 21 years ago.</p> <p>Being an exotic interface at that time, it now serves as the backbone for many a sensor system and continues to thrive with new transmission speeds, voltage levels and chipsets - hack on!</p> <p> </p> <p> </p> <p> </p> <p> </p> </div></div> </div> <span class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/simon" typeof="schema:Person" property="schema:name" datatype="">simon</span></span> <span class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Mon, 12/21/2020 - 09:34</span> Mon, 21 Dec 2020 08:34:37 +0000 simon 68 at https://www.voxel.at/vx8 Polarising Results https://www.voxel.at/vx8/polarising-results <span class="field field-name-title field-formatter-string field-type-string field-label-hidden">Polarising Results</span> <div class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div class="field__item"><p>Inspecting transparent objects is a common task in computer vision. One approach is the use of polarized light: In general, polarized light is sent through the object to be measured, passes a second filter in front of a camera and the result is recorded for further processing (the <a href="https://www.vision-doctor.com/en/polarising-filters.html">Vision Doctor</a> site offers a good introduction and overview of different applications).</p> <p><img alt="Polarizer demo setup" data-entity-type="file" data-entity-uuid="0102d7a8-f509-428e-a594-c3f5c7cc7654" height="440" src="/vx8/sites/default/files/inline-images/pola%20overview%20cut%201280.JPG" width="652" class="align-center" /></p><p> </p> <p class="text-align-center"><em>Fig.1: Setup with polarised display in the back, measured object, camera and STM32MP1 analysis software</em></p> <p>We have built a demonstrator for a transmitted light analysis to explore essential parameters, such as minimizing lighting changes: A common LCD display with the front polarizing film removed was used as the polarized light source (thanks to the helpful team from <a href="http://www.tslcd.com/">TSLCD</a>!). This enables a quick change of the polarization orientations by displaying a white or black image, but also individual areas of the polarization can be changed depending on the image displayed.An aluminum construction kit (<a href="https://www.makerbeam.com/openbeam/">OpenBeam</a>) and 3D-printed adapters ensure a stable setup to mount the display plus driver board and camera stably:</p> <p>The board camera in the foreground is connected to the <a href="https://www.voxel.at/vx8/STM32MP157C-DK2-erste-Eindr%C3%BCcke">STM32MP157</a> development kit on the right in the picture. The camera focuses on the ruler, which is fixed a few centimeters in front of the display, the LCD is slightly out of focus, otherwise the individual pixels would be recognizable. A polarization filter is placed directly in front of the camera lens, resulting in an image that represents the rotations of the polarisation plane as different color gradients.</p> <p><img alt="Polarizer Demo Rückansicht - Blick auf die Kamera mit Filter" data-entity-type="file" data-entity-uuid="5a7d7363-d1a1-4e64-b9a1-cdfe73d529db" height="493" src="/vx8/sites/default/files/inline-images/pola%20back%20overview%201280.jpg" width="652" class="align-center" /><br /></p><p class="text-align-center"><em>Fig.2: Back view - the polarisation filter is only losely placed in front of the camera lens.</em></p> <p>A small OpenCV program continuously records images, initially saves a reference picture and calculates the absolute difference pixel by pixel whereby the color gradients, which represent tensions in the material, are clearly visible:</p> <p><img alt="0 and 90 degree polarization, sum and difference images" data-entity-type="file" data-entity-uuid="e877c56d-11f9-482b-ae13-8f7993f0b45e" src="/vx8/sites/default/files/inline-images/img_ops%201_0.jpg" width="652" class="align-center" /><br /></p><p class="text-align-center"><em>Fig.3: Polarized images, sum and absolute difference</em></p> <p>In the picture above are the images polarized at zero and 90 degrees, in the line below the sum and (absolute) difference picture. Since we used a standard camera without configuring it further, there are smaller artifacts that can still be easily eliminated, as an example, the auto white balance algorithm of the camera is responsible for the different color tones of the two original images.</p> <p>The difference image can be further processed, for example by transforming it into another color space that separates brightness and hue data this is shown using the example of RGB -&gt; Luv:</p> <p><img alt="Konvertiert in den LUV Farbraum, rechts unten abs(U-V)" data-entity-type="file" data-entity-uuid="c877cdf0-a545-4323-a059-01f8333c0b86" src="/vx8/sites/default/files/inline-images/luv-planes.jpg" width="652" class="align-center" /><br /></p><p class="text-align-center"><em>Fig.4: Difference image separated into the Luv color space; lower-right: absolute difference of U and V</em></p> <p>In this representation, scratches are clearly visible on the surface in the brightness image (L), while they are practically invisible in the hue planes.</p> <p>Areas of high material tension differences are characterized by many color changes per area, which can be determined, for example, by edge detection. Exemplarily, we use a Canny detector on the above images which provides the following results, which e.g. can be compared with reference measurements:</p> <p><img alt="Die einzelnen Farbebenen nach der Kantendetektion mit Canny" data-entity-type="file" data-entity-uuid="873c79af-f542-4c34-b50b-b01c4d88d248" src="/vx8/sites/default/files/inline-images/canny-planes.png" width="652" class="align-center" /><br /></p><p class="text-align-center"><em>Fig.5: edge-detection results</em></p> <p> As shown, polarization applications can be tested without much effort before looking into a specialized hardware solution e.g. cameras based on the Sony Pregius sensor <a href="https://www.sony-semicon.co.jp/e/products/IS/industry/product/polarization.html">IMX250MZR</a> (p.ex. <a href="https://thinklucid.com/product/phoenix-5-0-mp-polarized-model/">ThinkLucid</a>). With the polarized display, the polarization orientation can also be finely adjusted by selecting different gray levels on the display, which can bring additional advantages for surface inspection, for example.</p> <p>The code for the demo is on Github under <a href="https://github.com/voxel-dot-at/polarisation-analysis">voxel-dot-at/polarisation-analysis</a></p> <p> </p> </div></div> </div> <span class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/simon" typeof="schema:Person" property="schema:name" datatype="">simon</span></span> <span class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Thu, 07/30/2020 - 13:29</span> Thu, 30 Jul 2020 11:29:44 +0000 simon 65 at https://www.voxel.at/vx8 Unboxing the STM32MP157C-DK2 -- erste Eindrücke https://www.voxel.at/vx8/STM32MP157C-DK2-erste-Eindr%C3%BCcke <span class="field field-name-title field-formatter-string field-type-string field-label-hidden">Unboxing the STM32MP157C-DK2 -- erste Eindrücke</span> <div class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div class="field__item"><p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Die STM32MP1-Prozessorfamile von ST stellt die Basis für eine Reihe günstiger SOMs dar die sich leicht für unterschiedliche Anwendungen nutzen lassen, SOMs sind schon unter 30 EUR erhältlich (z.B. </span></span></span></span></span></span><a href="https://octavosystems.com/octavo_products/osd32mp15x" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">Octavo</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">, </span></span></span></span></span></span><a href="https://www.phytec.de/produkt/system-on-modules/phycore-stm32mp1/" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">Phytec</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">, </span></span></span></span></span></span><a href="https://emcraft.com/products/1062" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">EmCraft</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">, </span></span></span></span></span></span><a href="https://www.kontron.de/products/boards-and-standard-form-factors/som/som-stm32mp157-with-baseboard.html" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">Kontron</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">) . Der Dual-Core  Cortex A7 mit 800 MHz wird dabei mit einem M4-Kern ergänzt, der neben dem Haupt-Linux z.B. für sicherheitsrelevante, zeitkritische oder energieeffiziente Aufgaben genutzt werden kann, eine heutzutage übliche Aufteilung wie etwa auch beim NXP i.MX7.</span></span></span></span></span></span></p> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Für Multimedia-Anwendungen steht eine GPU zur Verfügung, der IP-Block von </span></span></span></span></span></span><a href="http://www.vivantecorp.com/index.php/en/technology/3d.html" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">Vivante</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none"> (GC3000) ist dabei ähnlich leistungsfähig wie der im i.MX6 verbaute GC2000, desgleichen sind beide nur schwer für andere Aufgaben wie OpenCL nutzbar.</span></span></span></span></span></span></p> <p><img alt="stm32mp1 development board" data-entity-type="file" data-entity-uuid="9d65f68a-a570-4915-80d4-f77a3f83a71a" height="461" src="/vx8/sites/default/files/inline-images/stm32mp1.jpg" width="706" class="align-center" /><br /></p><p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Zur Evaluierung bietet ST ein Entwicklungskit mit Touchdisplay (z.B. bei </span></span></span></span></span></span><a href="https://at.rs-online.com/web/p/entwicklungskits-prozessor-mikrocontroller/1939803/" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">RS-Online</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">), vorkonfiguriertem Betriebssystem auf SD-Karte und eine ausführliche Dokumentation ihrer Yocto-Umgebung im Netz.</span></span></span></span></span></span></p> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Beim Auspacken der Box fällt das USB-C Kabel auf das zur Stromversorgung dienen kann, ein 3A-Netzteil ist stark angeraten und muss extra besorgt werden -- der Bootloader beschwert sich ansonsten bitterlich.</span></span></span></span></span></span></p> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Die Demo-Umgebung auf Wayland/Weston-Basis liefert nach ca 40 Sekunden die ersten Bilder auf dem LCD, was den ersten Eindruck doch etwas trübt. Bei näherer Betrachtung benötigt der erste Bootloader 2-3 Sekunden um die Umgebung zu verifizieren und den M4-Kern zu programmieren um danach die Kontrolle an die zweite Stufe abzugeben. Dazu wird U-Boot aus einer weiteren Partition nachgeladen und das eigentliche Linux gebootet. </span></span></span></span></span></span></p> <h3 style="line-height:1.38; margin-top:21px; margin-bottom:5px"><span style="font-size:13.999999999999998pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#434343"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Yocto Linux und Paket-Updates</span></span></span></span></span></span></h3> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Die Build-Umgebung lässt sich leicht anhand der Anleitung von ST einrichten, nach ordentlich Kaffee hat man im deploy-Verzeichnis eine ganze Reihe von Paketen und ein fertiges Image. Wie bei allen Yocto-Umgebungen üblich wird mit einem zu sourcenden Shellscript die Umgebung eingerichtet, bei STM liegt dieses in layers/meta-st/scripts/envsetup.sh -- ein Symlink zu dieser Datei wird nicht erstellt sondern sollte manuell angelegt werden um sich die Sucherei beim nächsten Login zu ersparen.</span></span></span></span></span></span></p> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Die Paketverwaltung basiert auf Debian-Paketen, d.h. es werden deb-Files anstatt von ipk-Files erzeugt. Dies ermöglicht das Einrichten von signierten Update-Servern. Zum Entwickeln können die erzeugten Pakete auch unsigniert auf einen Server gelegt werden, dabei wird einfach der Inhalt des tmp-glibc/deploy/deb auf einen Web-Server zu stellen und in /etc/apt/sources.list auf dem Board einzutragen:</span></span></span></span></span></span></p> <p><img alt="apt sources list" data-entity-type="file" data-entity-uuid="64198c8c-ab70-4c7e-8fcd-6c3d3ae8f846" src="/vx8/sites/default/files/inline-images/image1.png" class="align-center" /><br /></p><p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Wichtig: Vor dem Kopieren muss der Paket-Index mit “bitbake package-index” aktualisiert werden. Nach einem “apt-get update” lassen sich dann eigene Pakete inkl. Abhängigkeiten mit “apt-get install &lt;paket&gt;” installieren. Einziger Nachteil: apt-get beschwert sich bei jeder Installation dass die Pakete unsigniert sind.</span></span></span></span></span></span></p> <p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Für einen Produktivbetrieb empfiehlt sich daher ein signiertes Repository das mit einem Schlüssel signiert wird. Dessen öffentlicher Teil wird auf der Maschine installiert und die Pakete via </span></span></span></span></span></span><a href="https://wiki.ubuntuusers.de/reprepro/" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">reprepo</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">  in ein signiertes Repository importiert, ein ausführliches Tutorial dazu gibt es z.B. von </span></span></span></span></span></span><a href="https://www.thomas-krenn.com/de/wiki/Eigenes_apt-Repository_mit_reprepro_unter_Ubuntu_erstellen" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">Thomas Krenn</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none"> oder  </span></span></span></span></span></span><a href="https://www.digitalocean.com/community/tutorials/how-to-use-reprepro-for-a-secure-package-repository-on-ubuntu-14-04" style="text-decoration:none"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#1155cc"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:underline"><span style="-webkit-text-decoration-skip:none"><span style="text-decoration-skip-ink:none">DigitalOcean</span></span></span></span></span></span></span></span></a><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">. Auf dem Board muss dann der Schlüssel importiert werden, dazu fehlte allerdings im Standard-Image das GnuGPG-Paket zur Schlüsselverwaltung. Abhilfe schafft hier ein USB-Stick mit den notwendigen .deb-Dateien, die via “dpkg -i” installiert werden müssen (gnupg, libassuan0, libgcrypt, libgnutls30, libgpg-error, libksba8, libnpth0).</span></span></span></span></span></span></p> <p><img alt="stm32mp1 opencv video preview" data-entity-type="file" data-entity-uuid="c330d9eb-3839-4fc9-9e3b-febf915c9458" height="395" src="/vx8/sites/default/files/inline-images/stm32mp1-ocv.jpg" width="614" class="align-center" /><br /></p><p style="line-height:1.38"><span style="font-size:11pt; font-variant:normal; white-space:pre-wrap"><span style="font-family:Arial"><span style="color:#000000"><span style="font-weight:400"><span style="font-style:normal"><span style="text-decoration:none">Dann spricht einem Testlauf mit OpenCV nichts mehr entgegen, das ist aber eine andere Geschichte...</span></span></span></span></span></span></p> </div></div> </div> <span class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/simon" typeof="schema:Person" property="schema:name" datatype="">simon</span></span> <span class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Thu, 07/16/2020 - 12:11</span> Thu, 16 Jul 2020 10:11:59 +0000 simon 64 at https://www.voxel.at/vx8 Brainstorming-Ecke https://www.voxel.at/vx8/node/62 <span class="field field-name-title field-formatter-string field-type-string field-label-hidden">Brainstorming-Ecke</span> <div class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div class="field__item"><p>Endlich! Unsere Denk- und/ Kreativ Lounge ist fertig und wartet auf neue Ideen!</p> <p><img alt="brainstorming area" data-entity-type="file" data-entity-uuid="20ea6d64-763a-4d00-a39d-5efea291c01c" src="/vx8/sites/default/files/inline-images/20200608_121213.jpg" width="80%" class="align-center" /></p><p> </p> <p> </p> <p> </p> </div></div> </div> <span class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/simon" typeof="schema:Person" property="schema:name" datatype="">simon</span></span> <span class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Wed, 06/10/2020 - 09:44</span> Wed, 10 Jun 2020 07:44:52 +0000 simon 62 at https://www.voxel.at/vx8 ToF Aktivitätsanalyse https://www.voxel.at/vx8/node/37 <span property="dc:title" class="field field-name-title field-formatter-string field-type-string field-label-hidden">ToF Aktivitätsanalyse</span> <span rel="sioc:has_creator" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/admin" typeof="schema:Person" property="schema:name" datatype="">admin</span></span> <span property="dc:date dc:created" content="2020-04-30T09:53:59+00:00" datatype="xsd:dateTime" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Thu, 04/30/2020 - 11:53</span> Fri, 22 May 2015 07:39:48 +0000 simon 37 at https://www.voxel.at/vx8 Publications https://www.voxel.at/vx8/node/7 <span property="dc:title" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Publications</span> <span rel="sioc:has_creator" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/admin" typeof="schema:Person" property="schema:name" datatype="">admin</span></span> <span property="dc:date dc:created" content="2011-03-13T09:41:05+00:00" datatype="xsd:dateTime" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sun, 03/13/2011 - 10:41</span> Sun, 13 Mar 2011 09:41:05 +0000 admin 7 at https://www.voxel.at/vx8 Team https://www.voxel.at/vx8/node/5 <span property="dc:title" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Team</span> <span rel="sioc:has_creator" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/vx8/users/admin" typeof="schema:Person" property="schema:name" datatype="">admin</span></span> <span property="dc:date dc:created" content="2011-03-13T09:38:42+00:00" datatype="xsd:dateTime" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sun, 03/13/2011 - 10:38</span> Sun, 13 Mar 2011 09:38:42 +0000 admin 5 at https://www.voxel.at/vx8 https://www.voxel.at/vx8/node/5#comments https://www.voxel.at/vx8/node/5#comments