tspi.at

Introduction

This page contains short articles about projects I'm doing myself or that friends of mine have expressed some interest in and for which I've decided to write short summaries. It also contains some short notes on how to solve some particular problems to keep an easy to access repository for friends and other people who might have the same problems. Please note that many of these articles are written late at night or in short breaks so if you spot any errors any correction is welcome.

The topics covered include:

  • Selected posts and summaries about physics topics (some at school level, some beyond)
  • Software development (C and tools like Frama-C, JavaEE, JavaScript, Java on Android, PHP, general algorithms)
  • Embedded electronics (STM32, ESP32/ESP8266, hardware interfaces, etc.)
  • 3D Printing
  • System administration (mainly FreeBSD) and security (Encryption, Signature systems, etc.)
  • Stuff I use for teaching

Some source-code of hobby projects and/or partially externally used code as well as some unfinished stuff that I've released under BSD or BSD-like licenses can be found in my GitHub repositories. Most of the finished and released projects are automatically built for every release and every GitHub commit by Jenkins Pipelines on dynamically created Xen virtual machines for FreeBSD (amd64, arm6, aarch64), Linux (amd64) and Windows (amd64) as well as automatically tested by the pipeline scripts (using Unit-Testing for components, Frama-C with it's wp plugin against RTEs and to prove certain correctness constraints on C applications as well as Selenium with Java to emulate users on Web applications using chromedriver). I plan to auto deploy the artifacts in near future to a public artifact repository (like this webpage is automatically deployed on every commit into the corresponding repository).

If you like to read books on interesting subjects you can also refer to my list of recommended books

RSS and atom feed

I've been notified that not all browser refer to the atom feed that's supplied by this blog and that not everyone notices the presence of such a feed even if interested. Of course one can subscribe using an RSS/ATOM reader using the ATOM feed at https://www.tspi.at/atom.xml or the corresponding onion URI http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/atom.xml

Latest articles

A quick recap on Householder reflectors

28 Nov 2024 - tsp

Reading time 14 mins

This article is a quick summary on Householder reflectors in real values vector spaces and their application to zero rows or columns in matrices.

Freezing FreeBSD systems - NCQ on SSDs - a short troubleshooting journey

08 Nov 2024 - tsp

Reading time 5 mins

This article solves the mystery behind some of my FreeBSD systems that had appeared to be randomly freezing and provides a solution to this single specific problem.

Nuclear magnetic resonance and electron paramagnetic resonance: Basics

25 Aug 2024 - tsp

Reading time 44 mins

Nuclear Magnetic Resonance (NMR) and Electron Paramagnetic Resonance (EPR) are pivotal techniques used to explore molecular structures and dynamics through the magnetic properties of atomic nuclei and unpaired electrons. This article provides an introductory level examination of NMR, integrating both classical and quantum mechanical descriptions. Key topics include the Zeeman effect, Bloch equations, relaxation processes, and the quantum mechanical framework involving spin operators, Eigenstates, and the density matrix formalism. The discussion delves into the effects of RF driving fields, Rabi oscillations, and the incorporation of relaxation processes using the Lindblad master equation. The article concludes by demonstrating how these quantum mechanical models align with the phenomenological Bloch equations, providing a comprehensive understanding of the dynamics of spin systems under resonance conditions. While the primary focus is on NMR, the article also offers insights into EPR, broadening the perspective on magnetic resonance techniques.

Language negotiation for static website using Apache httpd

20 Aug 2024 - tsp

Reading time 9 mins

Discover how to implement language negotiation on a static website using Apaches mod_rewrite. This article provides a step-by-step guide to serving translated content based on users browser preferences, enabling a seamless multilingual experience without the need for complex server-side scripts or content management systems. Whether you are looking to add multilingual support to your Jekyll-generated site or simply explore the powerful features of Apache, this guide offers clear explanations and practical examples to help you get started.

The MLX90640 on the RaspberryPi with FreeBSD

31 Mar 2024 - tsp

Reading time 51 mins

This article explores the integration of the MLX90640 far infrared thermal sensor with a RaspberryPi using FreeBSD. It delves into the technicalities of interfacing the sensor, the intricacies of its data processing and compensation algorithms, and demonstrates these concepts with Python code examples.

Using RaspberryPis I2C from Python

29 Mar 2024 - tsp

Reading time 7 mins

This article gives a short summary on the way to interface with the I2C bus on RaspberryPi using Python by using a thin wrapper around the ioctl calls supported by FreeBSD. In addition it introduces a small PyPi package that supplies this thin wrapper.

Electric dipole interaction of atoms with radiated electromagnetic waves

16 Feb 2024 - tsp

Reading time 22 mins

A short summary on the interaction of alkali atoms with electromagnetic radiation

A first quick look on different sentence embedding methods - playing with word and sentence embeddings

11 Feb 2024 - tsp

Reading time 45 mins

A quick overview on how one can generate word and sentence embeddings using BERT, mpnet and OpenAIs sentence embedding API in Python. The second part also includes a mini semantic search engine (with linear index that only serves demonstration purpose). This article does not offer and in depth explanation but only a quick overview glance on the APIs to play around.

Another quick glance on the OpenAI API to ChatGPT using function calling

03 Feb 2024 - tsp

Reading time 59 mins

This is a very short overview on how to use the tooling/function API of ChatGPT to call external functions to perform actions or retrieve some simple information. In addition a simple iterative problem solving process of GPTs is shown as an example in Python. It makes use of an external commercial API though.

Towards coherently driven spatially resolved electron spin resonance in a scanning electron microscope

24 Jan 2024 - T. Spielauer

Reading time 1 min

Presented at the seminar at Atominstitut der Technischen Universität Wien. Electron spin resonance is a widely used analytical tool in medicine, biology and material sciences. Spin systems have many applications in quantum physics - for example in quantum computing and sensing. Traditionally such spin systems are driven with microwaves which offer only limited spatial resolution. We are currently in the process of developing and building experiments with the aim to coherently drive electron spin systems with high spatial resolution using the collective effect of the non radiative near field of modulated electron beams. Since electron microscopes offer a well established and highly capable platform for electron beam experiments we want to integrate our experimental setup in a scanning electron microscope. This also opens up future possibilities to perform in-situ electron spin analysis in scanning electron microscopes. In this talk I'm going to give a quick introduction to electron spin resonance and it's applications, our approach and our existing experimental setups as well as our current efforts and characterization measurements that have been performed to introduce this novel approach to interact with spin systems into an scanning electron

A mini recipe to fit arbitrary models to data using lmfit in Python

11 Jan 2024 - tsp

Reading time 6 mins

In this blog post, we navigate through an unorthodox yet effective method of building models using the lmfit library, a wrapper around scipy's fitting routines. The article dives into a hands-on approach for fitting noisy data with a custom-defined Gaussian model, while suggesting that the conventional wisdom of lmfit isn't the only path to success. The tutorial initializes by installing lmfit and swiftly moves to crafting a function for the Gaussian model, which involves defining an objective function to decipher the best parameters for data fit. It guides the reader through generating synthetic noisy data, plotting it for visual aid, and conducting the fitting process. Through this procedure, a parameters are constructed and optimized to fit our model to the noisy data, followed by a presentation of the fitting report. Finally, the results are visualized, and the article concludes by discussing the advantages of this method, especially when dealing with complex or iterative models. The full code for the exercise is accessible in a GitHub GIST, allowing readers to directly engage with the material covered.

Using ancient PHP versions from FreeBSD ports with suphp

04 Jan 2024 - tsp

Reading time 3 mins

This concise article provides a detailed guide on installing and running multiple outdated PHP versions on a FreeBSD system using suphp. It covers essential steps such as retrieving specific ports tree revisions, configuring distinct installation paths to prevent version conflicts, and setting up suphp for handling different PHP versions. Emphasizing strict security precautions, the article strongly advises against using this setup in public-facing systems and suggests its use solely for isolated, non-public applications.

Using the RaspberryPi GPIOs on FreeBSD

15 Oct 2023 - tsp

Reading time 5 mins

Mini summary and recipes to use the RaspberryPi GPIOs from FreeBSD

The most simple Difference of Gaussian image pyramid with OpenCL

06 Aug 2023 - tsp

Reading time 22 mins

The following blog article summarizes a quick implementation of a Difference of Gaussian (DoG) pyramid as approximation of a Laplacian of a Gaussian pyramid. It does not utilize optimizations so performance (around 10ms for a simple 6 octave pyramid) is rather low.

Assigning unique device names for CP2102N serial port devices on FreeBSD

26 Jun 2023 - tsp

Reading time 5 mins

Just a short recipe on how to get unique device names for CP2102N serial or RS485 to USB adapters even when they're renumbered by the operating system.

Triggering Jenkins build from locally hosted git repository using the post-receive commit hook

11 Jun 2023 - tsp

Reading time 6 mins

A short summary on how to trigger Jenkins jobs by executing a post-receive commit hook in a git repository

Using the CP2102N USB to UART bridge

27 May 2023 - tsp

Reading time 22 mins

A mini summary (mostly for my own reference) on how to use the CP2102N USB to UART bridge in minimal configurations. This article explains the different powering schemes, lists some of the uncommon functionality and shows the design of a simple USB to TTL serial and USB to RS485 half duplex interface board. In addition it contains a short introduction on how to configure the USB chipsets later on.

Some simple image filters by convolution in Python and OpenCL

14 May 2023 - tsp

Reading time 71 mins

This short article contains a summary about image filters and how one can realize them. It will contain a short reminder of how convolution works, what separable filters are and some example of image filters and their (most inefficient but direct) implementation in Python. In the end it will also show how one might naively implement convolution in OpenCL to increase performance in comparison to the naive Python implementations shown. This article provides one with a small playground to quickly try out separable image filter kernels and execute them on the GPU using pyopencl from a Python testing environment.

Towards Driving Quantum Systems in Cryogenic Environments with the Near-Field of Modulated Electron Beams

13 Apr 2023 - T. Spielauer, M. Kolb, T. Weigner, J. Toyfl, G. Boero, P. Haslinger

Reading time 1 min

Presented at the 13th ASEM (Austrian Society for Electron Microscopy) workshop: Coherent electro-magnetic control of quantum systems is usually done by electro-magnetic radiation - which limits addressing single selected quantum systems, especially in the microwave range. In our proof of concept experiment we want to couple for the first time the non-radiative electro-magnetic near-field of a spatially modulated electron beam to a quantum system in a coherent way. As the quantum system we use the unpaired electron spins of a free radical organic sample (Koelsch radical - α, γ-Bisdiphenylene-β-phenylallyl) that is excited via the near-field of the modulated electron beam. The readout of the spin excitation resembles a standard continuous wave electron spin resonance experiment and is done inductively via a microcoil using a lock-in amplifier. In the long term this experiment should demonstrate the feasability of coherent driving and probing of quantum systems far below the diffraction limit of electro-magnetic radiation by exploiting the high spatial resolution of an electron beam.

Using pycryptodomex for encryption and signing (PKCS1 OAEP and PSS) in Python

22 Mar 2023 - tsp

Reading time 18 mins

This is a short summary or rather recipe collection on how to use ```pycryptodomex``` for some simple encryption and decryption procedures using RSA with the OAEP schemes from ```PKCS#1``` as well as signing and verification routines using the PSS scheme.

Running JupyterLab behind an authenticating haproxy setup using basic auth

27 Jan 2023 - tsp

Reading time 9 mins

The journey of getting a JupyterLab instance running behind a haproxy reverse proxy on Manjaro Linux and FreeBSD - with some drawbacks.

Hosting your own GIT large file storage repositories

17 Jan 2023 - tsp

Reading time 10 mins

Short introduction into gits large file storage extension, the way it works and how to run it without an external provider to host your files

Getting started with WSGI and Python as well as uwsgi application server

15 Jan 2023 - tsp

Reading time 20 mins

A simple summary of hat WSGI can do for one, how to use it with Python and how to run the uwsgi application server (and how to solve the deployment problem there) from the viewpoint of someone who already developed web applications in many different languages and frameworks.

Using the FY6900 with an external USB to serial bridge

30 Dec 2022 - tsp

Reading time 6 mins

Short article about circumventing the CH340 contained in the FY6900 function generator by using its external 3.3V serial interface and an CP2102 or any microcontroller.

Detecting frequency, delay and phase relation as well as multiple targets using correlation functions

29 Dec 2022 - tsp

Reading time 15 mins

A short story about how one can use autocorrelation and cross-correlation functions on discretized samples of radio frequency data and also noise to detect the frequency of a single signal, the delay of a reflected signal, the phase relation between two signals and how one can track multiple reflective targets in applications like LIDAR, sonar or radar using correlations - and how to get them robust against external influence.

Heterodyne, Superheterodyne, Homodyne and Lock-In Amplifier

21 Dec 2022 - tsp

Reading time 14 mins

A mini introduction about the terms heterodyne, superheterodyne, homodyne and lock-in amplifier

Simple time lapse with ffmpeg

04 Dec 2022 - tsp

Reading time 4 mins

Short summary on how to generate time lapse videos from webcams or other sources using ffmpeg on various platforms

Simple laser cutting and engraving capabilities for a 3D printer with a 450nm diode laser

04 Dec 2022 - tsp

Reading time 27 mins

This article summarizes some experiments using a simple 450nm laser diode on a 3D printer for some basic laser cutting and engraving in paper, plywood and other simple to cut materials.

Why you should not use SMR disks for ZFS

26 Nov 2022 -

Reading time 12 mins

A short story about SMR disks in ZFS ZPools and why you should never ever use them there even when it looks ok on the first look and why you should replace them as fast as possible even when you don't see problems in the beginning.

Switched mode DC-DC converter basics

01 Nov 2022 - tsp

Reading time 40 mins

A short summary of the basic principles behind switched mode DC-DC converters (buck, boost, buck-boost, etc.), maximum power point tracking and impedance matching as well as a short recapitulation of the charging and discharging of reactive elements such as inductors and capacitors.

A simple digitally controlled small current source

14 Oct 2022 - tsp

Reading time 11 mins

Simple project that provides a digitally controllable linear current source up to 500 mA powered from a rectified 230V to 12V transformer. The whole current source is bias-able to high voltage (-2 kV in this case) by opto isolating it's serial communication path

Simple 230V monitoring using PC817 opto coupler

11 Oct 2022 - tsp

Reading time 3 mins

A really simple circuit to monitor the presence of a 230V AC line using an PC817 opto coupler and a 5V or 3.3V microcontroller

Simple DHCP failover with ISC-DHCP

02 Oct 2022 - tsp

Reading time 6 mins

Mini summary on how to configure DHCP failover or load balancing when using ISC-DHCP for legacy IP networks. This is not a full explanation of all details, just a quick sample on how to get up failover in a few minutes.

How to use fetchmail to collect mail from different mail servers

27 Sep 2022 - tsp

Reading time 7 mins

This blog post tackles a common challenge in email service administration where users set up mail forwarding without implementing Sender Rewriting Scheme (SRS), which leads to problems with email authentication methods like DKIM and SPF. The suggested workaround is to reverse the forwarding process by configuring the receiving mail server to periodically fetch mail from external accounts using the `fetchmail` tool, which requires only the target server to be configured. Detailed steps explain how to configure `fetchmail` alongside a local MTA like Postfix to pull emails while bypassing SPF and DKIM checks for localhost deliveries. The author shares his personal experience using this setup during a mail service migration, emphasizing the advantages of the method while also discussing the security consideration that `fetchmail` needs access to plaintext credentials. The post includes comprehensive steps for installing and configuring `fetchmail` on a FreeBSD system, and configuring Postfix to ensure proper mail delivery without authentication checks for fetched mail.

Measuring the speed of light at Wiener Forschungsfest 2022

12 Sep 2022 - tsp

Reading time 14 mins

This article allows you to discover how we (a group from TU Vienna and University of Vienna) brought the fascinating world of physics to life at the Wiener Forschungsfest 2022! Using a visible range laser, a bicycle wheel, and modern photodiodes, we demonstrated how to measure the speed of light in an interactive and engaging setup designed mainly for children. This hands-on experiment highlighted the incredible speed of light while also conveying the fact that light is fast but not infinitly fast and allowed visitors to influence the accuracy of the measurement themselves. This article provides a short summary about the historical context, experimental setup, and the exciting outcomes of this educational outreach project.

OpAmp based voltage controllable current source

19 Aug 2022 - tsp

Reading time 7 mins

A simple temperature drift compensated voltage controlled current source up to 8A (10A peak) and 30V rail to rail based on OPA549 or other power operational amplifiers

Discrimination of coherent and incoherent cathodoluminescence using temporal photon correlations

18 Aug 2022 - Michael Scheucher, Thomas Schachinger, Thomas Spielauer, Michael Stöger-Pollach, Phillip Haslinger

Reading time 1 min

Published in Ultramicroscopy: We present a method to separate coherent and incoherent contributions of cathodoluminescence (CL) by using a time-resolved coincidence detection scheme. For a proof-of-concept experiment, we generate CL by irradiating an optical multimode fiber with relativistic electrons in a transmission electron microscope. A temporal analysis of the CL reveals a large peak in coincidence counts for small time delays, also known as photon bunching. Additional measurements allow us to attribute the bunching peak to the temporal correlations of coherent CL (Cherenkov radiation) created by individual electrons. Thereby, we show that coincidence measurements can be employed to discriminate coherent from incoherent CL and to quantify their contribution to the detected CL signal. This method provides additional information for the correct interpretation of CL, which is essential for material characterization. Furthermore, it might facilitate the study of coherent electron-matter interaction.

SSH command execution and SFTP file transfer using paramiko in Python

11 Aug 2022 - tsp

Reading time 6 mins

Recipes to execute remote commands and transfer files using the native Python SSHv2 implementation of paramiko

The ID3 algorithm

09 Aug 2022 - tsp

Reading time 87 mins

A short summary on the inner workings of the Iterative Dichotomiser 3 (ID3) decision tree algorithm, a small Python playground implementation and application to one toy and two real world datasets out of the world of biology and medicine

Controlling the Korad KA3005P using Python

15 Jul 2022 - tsp

Reading time 13 mins

A short summary on how to control the Korad KA3005P power supply using Python as well as some simple samples on how to use my own control library

Developing native Python extensions in C - capturing from Video4Linux devices

12 Jun 2022 - tsp

Reading time 30 mins

Since I was not really satisfied with various tutorials out there this is my personal summary on how to develop Python extensions in ANSI C. A simple library that captures frames from Video4Linux devices on various Unices without external dependencies will serve as an example.

Linear time dependent correlations using bivariate correlation and shifts

08 May 2022 - tsp

Reading time 7 mins

A mini summary of how to use the bivariate correlation coefficient (Pearson correlation coefficient) together with shifts to get information about time based correlations between two different time series datasets

Controlling multiple heatbands using PWM via an Atmel AVR

07 May 2022 - tsp

Reading time 11 mins

A mini project that summarizes a simple method to control a bunch of 100W silicone heatbands used to bake a vacuum system. Control is done using a PWM controller realized inside an AVR using a pretty simple implementation, remote control of the duty cycle is offered via an ESP8266 based WiFi capable NodeMCU

Statistics on chat service online status

03 May 2022 - tsp

Reading time 21 mins

Playing around with scraping online status information from a social networks chat service and doing some statistical analysis

Dynamic imports in Python

01 May 2022 - tsp

Reading time 4 mins

A simple summary on how to dynamically load modules from files in Python similar to the dlopen/dldsym/dlclose semantics in C

Implementing a simple websocket server in Python

23 Apr 2022 - tsp

Reading time 7 mins

This is a simple short summary on how one can build a websocket server for use with ones JavaScript web application in Python using asyncio and websockets package

Logarithm and exponential function with OpAmps

27 Feb 2022 - tsp

Reading time 7 mins

A summary how to implement the logarithmic and exponential function using operational amplifiers - and how to use this to build simple mixers when combining with a simple summation amplifier

PID control loop in a nutshell

22 Feb 2022 - tsp

Reading time 10 mins

Short dive into the basics of PID loops

Building simple function generators using OpAmps (OpAmp based multivibrator)

24 Jan 2022 - tsp

Reading time 19 mins

Summary on how to use operational amplifiers to build simple function generators such as square wave function generators. This approach can be used to build simple laboratory function generators as well as low frequency oscillators used for various applications.

Mini summary on how to solve linear equations in Krylov subspaces

02 Jan 2022 - tsp

Reading time 23 mins

A write up of the methods used to iteratively solve arbitrary linear equations systems. This includes the definition of Krylov subspace solvers, the Lanczos and Arnoldi algorithm to build orthogonal subspaces, a summary of the steepest descent and projective methods and then as an real world realization of projective methods the conjugate gradient (CG) and generalized minimal residual (GMRES) method.

Solving linear least squares problems using QR decomposition

18 Dec 2021 - tsp

Reading time 7 mins

Mini article on how one can solve the linear least squares problem numerically using QR matrix decomposition

Whats the Bayesian rule and how to apply for simple tests

12 Dec 2021 - tsp

Reading time 10 mins

Due to still common demand this is a short summary of the Bayesian rule for single events as well as a calculator that uses estimated prevalence, sensitivity and specificity, puts these values into Bayes rule and calculates the probabilities for correct and false results.

QR decomposition using Givens rotations

08 Dec 2021 - tsp

Reading time 7 mins

Mini recipe and hopefully descriptive summary on how to perform QR decomposition using Givens rotations which forms the basis of many linear algebra numeric applications such as least squares, GMRES, etc.

Gold plating on copper surfaces

07 Dec 2021 - tsp

Reading time 8 mins

A summary on a procedure on how to use a galvanic process to plate copper (and other metallic surfaces) with gold using a galvanic bath

Rendering static two dimensional electric fields caused by point charges using Python

27 Nov 2021 - tsp

Reading time 8 mins

A mini summary on how one can use Python and matplotlib to calculate and render two dimensional static electric fields generated by point charges in infinitly sized space based on Coulombs law and the superposition principle.

The capstan equation

15 Nov 2021 - tsp

Reading time 3 mins

A summary on how to derive the capstan equation describing the friction of a rope on a bollard, winch or a capstan

Recipe how to recover Jenkins plain secret text credential via the web user interface

13 Nov 2021 - tsp

Reading time 1 min

This short recipe explains how one can recover a Jenkins secret text credential directly using only the web interface

A short story of the migration process for The-Things-Network v2 to v3

13 Nov 2021 - tsp

Reading time 8 mins

This article is a mini summary of the steps that have been required to migrate from the v2 to the v3 stack of the things network, a community driven LoRA-WAN backend solution.

Writing daemons in python

09 Nov 2021 - tsp

Reading time 4 mins

Mini (really short) summary of one way as well as a recipe on how to write daemons in python

Building a simple 6 kV DC power supply

01 Nov 2021 - tsp

Reading time 9 mins

Short summary on how to build a small 6 kV power supply using an 2.1 kV microwave oven transformer, two of the accompanying capacitors and a bunch of diodes that is capable of delivering a little bit more than half a kilowatt of power

A simple OpAmp photodiode readout circuit

30 Oct 2021 - tsp

Reading time 15 mins

A short summary on the workings of photodiodes, how one can interface them to simple electronics and a simple amplifier circuit

Controlling Pfeiffer Turbopumps using RS485

29 Oct 2021 - tsp

Reading time 25 mins

Pfeiffer makes great turbopumps but sometimes you want to log information or control them from an existing control system. Out of this desire I played around with the RS485 protocol used by Pfeiffer and wrote some simple unofficial tools - that's what this blog entry is about

Why one should use version control like GIT or SVN for nearly everything

07 Oct 2021 - tsp

Reading time 9 mins

This is an opinion article on why I think one should use version control systems such as git or SVN for everything including writing tasks for thesis, books or articles as well as websites and other stuff in addition to software development.

How to create your own Python packages

07 Oct 2021 - tsp

Reading time 8 mins

A mini introduction and summary on how to create own Python PyPi (pip) packages

The AD7705 dual channel analog digital converter with AVRs

07 Oct 2021 - tsp

Reading time 17 mins

Mini summary on how to use the AD7705 with Atmel AVRs

Why I think that Jabber/XMPP is one of the best chat system available

26 Sep 2021 - tsp

Reading time 18 mins

Some thoughts why in my opinion Jabber/XMPP is currently one of the best chat system that's currently available - and much more than just a simple chat system.

A vacuum oil well - using water to check for oily contamination in a vacuum chamber

01 Sep 2021 - tsp

Reading time 4 mins

This blog post describes a really simple method to get a hint if the interior of a vacuum chamber has been contaminated with some oil without the use of expensive chemical analysis.

Estimated blog post reading time with Jekylls liquid

27 Aug 2021 - tsp

Reading time 3 mins

This blog post describes - as a less than 5 minute read - how one can implement the now everywhere visible feature that tells people how long it'll take on average to read a given blog post.

avrdude: verification error, first mismatch at byte 0x0002

27 Aug 2021 - tsp

Reading time 3 mins

A common error - but the solution is easy to forget. And it's even harder when using the Arduino IDE

Gaussian random number generator using box-muller method

17 Aug 2021 - tsp

Reading time 5 mins

A short summary on how the box-mueller method works to generate normal distributed random numbers (for example for Monte-Carlo simulations, etc.)

Ethernet control of Gamma vacuum quad ion pump controller

17 Aug 2021 - tsp

Reading time 9 mins

Notes on the the protocol that's required to remotely control Gamma vacuum ion pumps / titan sublimation pumps via a quad pump controller and some views on the inner workings of my own library implementing the protocol

Mounting NFS on Windows 10 clients

15 Aug 2021 - tsp

Reading time 5 mins

Mini summary on how to install the NFS client and how to perform the mount itself on the most problematic operating system that one can encounter in ones network

Router and switch mode in tinc - the difference and how to use tinc on Android

06 Aug 2021 - tsp

Reading time 10 mins

Mini article that explains the difference between switch and router mode and some of their applications when using the tinc VPN client

Bridging networks (VPNs)

02 Aug 2021 - tsp

Reading time 19 mins

A mini tutorial on different approaches to bridge networks

Configuring VLANs and bridges on FreeBSD Xen Dom0

01 Aug 2021 - tsp

Reading time 7 mins

A short summary on how one could configure network bridges on a FreeBSD dom0 for Xen

Sane Windows IP configuration: Disabling IPv6 privacy extensions and enabling ICMP echo

01 Aug 2021 - tsp

Reading time 2 mins

Mini note but essential when a Windows machine should join any sanely administered network.

Adding Grafana annotations using HTTP API

28 Jul 2021 - tsp

Reading time 6 mins

Sometimes it's convenient to add annotations to Grafana dashboards and panels using Grafanas flexible HTTP API instead of writing them into a database and fetching them from there using Annotation queries. Since I lacked a complete example and it took me some minutes to find out how this works this blog post summarizes the process.

A simple system clock module for AVR

26 Jul 2021 - tsp

Reading time 13 mins

A description of a simple implementation of a system clock module for AVRs supporting delay, millis(), etc. This blog post tries to shed some light onto these simple and basic functions as well as some common pitfalls.

Building a TCP console server for Windows and FreeBSD

25 Jul 2021 - tsp

Reading time 7 mins

A common problem in industry and laboratories - accessing a serial port via the network to allow multiple machines or VMs access the same physical serial port. This blog post explains how to build such an console server on a FreeBSD host offering physical serial ports an FreeBSD as well as Windows clients who are able to access the ports like local ones.

Accessing Jenkins RSS/ATOM feed programmatically

16 Jul 2021 - tsp

Reading time 3 mins

In case one wants to push one's Jenkins RSS feeds to some internal devices or publish them with different credentials than are needed to access the Jenkins server this is a simple scripted solution on how to do this.

The analog digital converter (ADC) on the ATMega328p and ATMega2560

15 Jul 2021 - tsp

Reading time 25 mins

Mini summary about the ADC on the ATMega328p and ATMega2560

A less mathematical introduction to power iterations

03 Jul 2021 - tsp

Reading time 12 mins

This blog post is a little summary or introduction on how to calculate Eigenvalues and Eigenvectors using power iterations that tries to use a little less formal jargon to provide a short overview.

OpenGL context creation without libraries using Xlib

13 Jun 2021 - tsp

Reading time 12 mins

A mini summary on how to do OpenGL context creation without using external utility libraries on X11 systems.

Electroplating / Galvanic deposition of copper on 3D printed PLA objects

06 Jun 2021 - tsp

Reading time 9 mins

A summary on a procedure on how to use a galvanic process to plate 3D printed objects made out of PLA or PET-G with copper and possibly also other metals

Mini note on robust serial communication with microcontrollers

04 Jun 2021 - tsp

Reading time 3 mins

Mini note on robust serial communication with microcontrollers (basically: use checksums and synchronization patterns)

Matching impedance using NanoVNA v2, NanoVNASaver and SimSmith

03 Jun 2021 - tsp

Reading time 16 mins

A mini summary on how to perform impedance matching for antennas or other devices using the NanoVNA v2 together with the NanoVNASaver and SimSmith applications based on the impedance matching of an electron deflection system

Short Kalman filter summary

19 May 2021 - tsp

Reading time 9 mins

A short summary about Kalman filtering

ISC-DHCPD events triggering native hooks from within a chroot

15 May 2021 - tsp

Reading time 5 mins

Mini blog post that shows how I integrated DHCP events into my automation solution by pushing commit, release and expiry events into my message broker infrastructure

Summary: Pierce type electron gun essentials and most basic geometry

12 May 2021 - tsp

Reading time 6 mins

A short summary about the basic conditions in a pierce type electron gun

Basic behaviour of thermionic emission cathodes

28 Apr 2021 - tsp

Reading time 12 mins

A short summary about the operation and characteristics of thermionic emission cathodes, the current limiting factors and the most important failure modes

Building a simple improvised electron gun from common of the shelf components

28 Apr 2021 - tsp

Reading time 8 mins

Mini blog article that summarizes the build of a simple 2 mA beam current electron gun from common of the shelf components gathered from the hardware store as well as some 3D printed components.

Apocalyptic doomsday scenarios predicted by physics

05 Apr 2021 - tsp

Reading time 27 mins

A rather unusual blog post for this site, a collection of various doomsday scenarios predicted or at least allowed by physics that might happen for sure (but don't be frightened, usually with a really low probability). Note that this is not an in depth article but just a short overview of some scenarios.

Mobile user friendliness with code samples and Googles search console

05 Apr 2021 - tsp

Reading time 8 mins

A pretty short blog post about a small nuance that might lead to a huge hit in your search ranking when using static site generators that use nested pre and code tags and may trigger even more errors in case one doesn't use mobile first approach for one's stylesheets

Windows 10 recovery from damaged registry hive files

04 Apr 2021 - tsp

Reading time 9 mins

One approach to recover a Windows 10 system from damaged registry hive files in case of missing restore points and registry backups.

Cutting glass vacuum tubes using hot wire

02 Mar 2021 - tsp

Reading time 4 mins

Something easy and simple. How to cut glass tubes and other glass parts using electrically heated hot wire.

RS485 communication using Atmel ATMega328P

10 Feb 2021 - tsp

Reading time 21 mins

Summarizing a method to use RS485 with MAX485 driver ICs on Atmel AVRs (specifically on the ATMega328P) utilizing the on chip USART.

Simple webcam access from C

06 Feb 2021 - tsp

Reading time 26 mins

This blog post summarizes how one can access common webcams from C on operating systems supporting the video4linux (V4L) API. This information can be used to built robots, surveillance systems or simply communication applications.

How to extrude polygons in OpenJSCAD

02 Feb 2021 - tsp

Reading time 3 mins

Since I always have to lookup how this works in some examples or hidden deep in the manual I decided to write a short summary about linear extrude, rectangular extrude and rotate extrude

Automatic sitemap generation with Jekyll

14 Jan 2021 - tsp

Reading time 4 mins

A short summary on how to generate a sitemap for search engines automatically when using the Jekyll static site generator

3D printed parts using PLA and standard FDM process in vacuum?

13 Jan 2021 - tsp

Reading time 5 mins

Just a short description of what I've tried (and didn't expect to work) about the usage of 3D printed parts made out of PLA in the typical desktop FDM 3D printing process, i.e. a method to build really low cost parts at home.

A simple collapsible menu for mobile devices using only CSS

03 Jan 2021 - tsp

Reading time 7 mins

This blog post summarizes one of the methods that can be used with CSS3 adjacent sibling selectors or general sibling selectors in combination with attribute selectors to implement a simple collapsible menu without any JavaScript

A simple cookie banner implementation (JavaScript)

20 Dec 2020 - tsp

Reading time 7 mins

The most simple implementation of a cookie banner as long as the banner is only required with active JavaScript

How does the Internet work and what is it anyways?

02 Dec 2020 - tsp

Reading time 29 mins

Mini introduction into the nature of the Internet and it's basic working principles.

Basic operational amplifier (OpAmp) circuits

22 Nov 2020 - tsp

Reading time 12 mins

Summary of the most basic OpAmp circuits that are usually built as well as their basic properties

FreeBSD 12.x binary upgrade and graphics card problems (drm-fbsd12.0-kmod, drm-kmod)

07 Nov 2020 - tsp

Reading time 6 mins

Mini summary about a problem that is mentioned as a regression but is not easily found on the internet when using Intel or amdgpu graphic drivers on FreeBSD

Automatic Jenkins udpate using Shellscripts and Jenkins

13 Oct 2020 - tsp

Reading time 7 mins

This article describes a simple and working solution to automatically upgrade jenkins running on a local servlet container such as Apache Tomcat by using a simple POSIX compliant shellscript (working on Linux, Unices, etc.) as well as a simple Jenkins job itself.

The role of message brokers in IoT and microservice scenarios

12 Oct 2020 - tsp

Reading time 13 mins

A short view on the role of message brokers in two different context, which problems they solve and what one should be aware of.

Cherenkov radiation summary

28 Sep 2020 - tsp

Reading time 11 mins

A short summary about the basic idea behind Cherenkov radiation

Maxwell equation summary

22 Sep 2020 - tsp

Reading time 13 mins

A short summary about the basic properties of Maxwell equations, the resulting electromagnetic wave equations and commonly used gauges (Lorenz, Coulomb).

A look at the pastry distributed hashtable

19 Sep 2020 - tsp

Reading time 18 mins

This blog post takes a look at the pastry distributed hashtable. This is a hashtable that allows resilient and scaling distributed key value stores and that can be used to build a variety of applications on top.

Some Gaussian integrals in 1 dimension

11 Sep 2020 - tsp

Reading time 15 mins

Short summary of various commonly used Gaussian integrals (1 dimensional) most of the time not shown in school textbooks.

Cheap spectrum analyzer protocol

06 Sep 2020 - tsp

Reading time 5 mins

This blog post describes the protocol used by many currently sold cheap spectrum analyzer boards as far as I've been able to gather information.

Comparison of generic data serialization methods

24 Aug 2020 - tsp

Reading time 18 mins

A summary and short comparison of various generic (non application specific) data serialization techniques and formats

LoRA WAN device activation (OTAA and ABP)

19 Aug 2020 - tsp

Reading time 9 mins

Minimal description of the two possible activation procedures of LoRA WAN device activation and the meaning of device activation for the network. This article has been written since the difference between OTAA and ABP as well as the reasoning seems to be a problem for some developers.

Simple XML serialization and deserialization in C#

19 Aug 2020 - tsp

Reading time 7 mins

Since a student of mine struggled realizing simple structured serialization and deserialization to and from XML in C# I decided to put together a small tutorial.

LoRA WAN stuff often not seen

18 Aug 2020 - tsp

Reading time 13 mins

A short summary of LoRA WAN stuff that's often not seen by device and application manufacturers and developers. This blog post tries to give a short overview of network behavior and internals.

Recovering MySQL or MariaDB database via dump and restore

14 Aug 2020 - tsp

Reading time 8 mins

This blog post summarizes the steps for disaster recovery on MariaDB or MySQL in case the database system doesn't start up any more or contains damaged table definitions which might even prevent one from dropping tablespaces or databases.

A simple home-built epoxy counter-top

09 Aug 2020 - tsp

Reading time 12 mins

Short blog post about the casting of a simple epoxy countertop with embedded sink.

How stuff works - Line power distribution and protective measures in Europe (consumer side)

03 Aug 2020 - tsp

Reading time 20 mins

Since it seems to be a huge mystery to many people this blog post tries to summarize some of the parts relevant to the consumer side of power grid systems.

Automatic plant watering and illumination (smallest version)

26 Jul 2020 - tsp

Reading time 15 mins

In this blog article I'm describing a small automated plant watering solution that's used indoor to grow basil, capsicum and chili pepper indoor.

Z, ABCD, S and T parameters in two port networks

12 Jul 2020 - tsp

Reading time 10 mins

A short summary about the different meaning and interpretation of impedance, ABCD, scattering and transfer parameters in simple (linear) two port networks.

Repairing corrupted RabbitMQ instance (VHost / experienced error, not a dets file)

11 Jul 2020 - tsp

Reading time 2 mins

Mini post about an unusual error when using RabbitMQ - or mnesia in general. This is something that shouldn't happen and was also not expected to happen.

Runtime swapable and upgrade-able modules in ANSI C

09 Jul 2020 - tsp

Reading time 16 mins

This article describes an trick that I'm using in some of my applications to allow one to exchange modules or plugins inside an application at application runtime as well as keeping old versions active as long as they're required.

Capacitance measurement with AVR (simple, fast)

09 Jul 2020 - tsp

Reading time 6 mins

Mini article about the measurement of capacitance with AVRs with a minimum of external components (in it's most extreme form none external components exploiting the gate capacitance of the micro-controllers input)

Using Aspell to perform spellchecking (manually and inside the build pipeline)

05 Jul 2020 - tsp

Reading time 3 mins

Mini article about the usage of the Aspell spell checker on FreeBSD on the command line and inside the automated build pipeline for static webpages

What (in my opinion) one can learn from Erlang/OTP for other programming languages

01 Jul 2020 - tsp

Reading time 12 mins

Since I'm a huge fan of the Erlang programming language and the OTP toolkit but normally aren't working with projects where Erlang is suited or in case some existing code is using already other languages and so I'm not capable of using Erlang I tried to summarize some of the things that I think one can learn from programming in Erlang/OTP even when using other programming languages. Of course this stuff is not enforced by the runtime environments and it's harder to achieve on other platforms but the approaches work nevertheless.

How to use the Webauthn API on a webpage to implement 2FA using YubiKey or TPM

01 Jul 2020 - tsp

Reading time 19 mins

A dive into programming using the WebAuthn API in JavaScript and the requirements on the server side to perform 2FA using HSM's like the YubiKey, platform embedded TPMs or similar solutions supported by webauthn.

3D printing NACA airfoil profiles

12 Jun 2020 - tsp

Reading time 4 mins

Mini Blog-Post that describes modeling 4 digit NACA airfoil profiles in OpenJSCAD

Why pure JavaScript web apps are neither the future nor a good idea

06 Jun 2020 - tsp

Reading time 27 mins

This is an opinion article on the future of web development. Currently there is a trend about building more and more logic into the client - even for simple tasks. That trend has been there previously and it has been a bad idea back then. This article tried to present a few arguments why I don't think that this is or should be the future of the web.

A method to write object oriented code in ANSI C

24 May 2020 - tsp

Reading time 11 mins

This blog post summarizes a method that can be used to develop software in the same way one would when using object oriented techniques with C++, Java or similar languages. It's based on the method used by the previously mentioned languages to implemented that stuff on bare metal.

Using an Raspberry-Pi as UMTS/LTE gateway

06 May 2020 - tsp

Reading time 19 mins

Since a friend required this - a short write up on how to use your Raspberry-Pi (with FreeBSD) with an UMTS/LTE modem to provide internet connectivity to your local network.

Anatomy of a typical Unix-like/Linux daemon

25 Apr 2020 - tsp

Reading time 7 mins

A really short introduction of the basic anatomy of a Unix-like or Linux daemon process.

WebRTC Media Streams

14 Apr 2020 - tsp

Reading time 8 mins

This blog post is part of a short series about WebRTC. It describes the different media sources available as well as how one can do local loopback of a datastream. Note that data transfer is not described in this blog post, only access to webcam and screen sharing streams and direct pixel manipulation.

k-Means clustering algorithm

22 Mar 2020 - tsp

Reading time 4 mins

Short summary about the k-means algorithm and it's usage

Simple JPEG image I/O with libjpeg

20 Mar 2020 - tsp

Reading time 11 mins

Short tutorial on how to use libjpeg for simple image I/O (to read and write JPEG files to/from disk or memory and represent them as simple in-memory bitmap for simple CV experiments)

NodeMCU based PIR motion sensor supporting WiFi and MQTT

19 Mar 2020 - tsp

Reading time 7 mins

Mini tutorial on how to use the NodeMCU Amica and a cheap PIR sensor module to build a pretty simple motion sensor that supports reporting via MQTT messages.

Frama-C predicates

06 Mar 2020 - tsp

Reading time 4 mins

Really short primer on ACSL predicates for formal verification of ANSI C code with Frama-C.

Frama-C with wp-dynamic and function pointers

02 Mar 2020 - tsp

Reading time 9 mins

How to use Frama-C static analysis and proof assitant with ACSL annotations for function pointers in ANSI C.

How this site is built with Jekyll and Jenkins

01 Mar 2020 - tsp

Reading time 5 mins

A short summary on how this page is built using the Jekyll static website generator as well as a really simple Jenkins job that's triggered by a GitHub webhook.

Automatic Ethernet and WiFi failover on FreeBSD

28 Feb 2020 - tsp

Reading time 3 mins

Short introduction on how to use lagg(4) to perform automatic seamless switching from ethernet to WiFi (when they represent the same network on the same IP subnet) and back on FreeBSD.

Neuronal network basics

25 Feb 2020 - tsp

Reading time 23 mins

A short introduction into neuronal networks and backpropagation

Using a bluetooth mouse with FreeBSD

18 Feb 2020 - tsp

Reading time 2 mins

Summary on how to enable a bluetooth mouse on FreeBSD

Simple usage of Kerberos for SSH authentication on FreeBSD

17 Feb 2020 - tsp

Reading time 9 mins

A short primer on how to get started using Kerberos for authentication inside your network. This includes setup of an kerberos key distribution center (KDC) on an secure host as well as of the server machines against which one will authenticate as well as the required configuration on the clients.

Selenium with Chromium and Java on FreeBSD

10 Feb 2020 - tsp

Reading time 9 mins

This is a short description on how to get started using Selenium with chromedriver on FreeBSD with a Java application. This can be used to develop automatic test applications for web applications or simple bots that scrape content from webpages or automate actions on the web using a full browser capable of running JavaScript, running browser plugins, etc. (Update - In addition an implementation in Python has been added to show a short draft on how one can get started with Selenium in Python as well.)

AWS first steps - How to initialize the admin IAM user and initialize CLI tools

02 Feb 2020 - tsp

Reading time 4 mins

Real first mini steps when using Amazon webservices. Adding 2FA to your root user, creating an administrative user, enabling 2FA there and creating access keys for CLI tools.

Using Sonoff T4EU1C non-neutral switches with own firmware

15 Jan 2020 - tsp

Reading time 11 mins

A short review about the T4EU1C Sonoff Switch as well as an example how to flash Sonoff basic switches with custom firmware

Getting started with node-red for home/lab/process automation

24 Dec 2019 - tsp

Reading time 18 mins

A short tutorial on how to setup node red and configure the first flows to be used with sonoff basic switches and other data sources as well as XMPP/MQTT interfaces and some other ideas how one can use node red in various areas

Privacy - TOR, VPN, DOH, Encryption. What's effective and what does it provide?

22 Dec 2019 - tsp

Reading time 21 mins

Since I often hear confusion about the level or type of privacy when I talk with people about onion routing services like TOR, tunneling services like VPN, DNS encryption via DOH, using proxyservers, using alternate DNS services, using encryption and signature, etc. I've decided to write a short blog post about that different stuff and what it provides - and what not (in my personal opinion).

Simple ESP8266 blink example with NONOS SDK and custom Makefile

02 Dec 2019 - tsp

Reading time 6 mins

Example on how one can use the ESP8266 NONOS SDK to build applications using a custom Makefile (i.e. not using the nested Makefiles of espressifs SDK) to build one of the most simple microcontroller projects.

Manually compiling ESP8266 applications

29 Nov 2019 - tsp

Reading time 23 mins

A short description on what the ESP8266-NONOS-SDK really does (step by step) to build the firmware images that get uploaded to the microcontroller via esptool.

How to use Frama-C to proof correctness of AVR microcontroller code

27 Nov 2019 - tsp

Reading time 12 mins

This is a short article that shows how one can use Frama-C and the WP plugin to proof correctness or some properties of ANSI C code written for AVR microcontrollers.

Some respectable TOR hidden services

11 Nov 2019 - tsp

Reading time 4 mins

Because it's sometimes said TOR hidden services are only used by criminals this post lists a few more credible services and some reasons why one might use them.

Clone or pull all your github repos (possible as basis for a backup)

07 Nov 2019 - tsp

Reading time 1 min

A short summary on how to use the GitHub API with access tokens to mirror all your GitHub repositories and keep them up to date.

x86 and x86-64 memory models

03 Nov 2019 - tsp

Reading time 8 mins

A really short *unfinished* introduction into the various memory models of the x86 architecture

Using an IPv6 tunnel broker

01 Nov 2019 - tsp

Reading time 11 mins

How to get an IPv6 network connection working if your ISP doesn't support IPv6 even today. Also includes a short description on how to do this on an connection using dynamic endpoint adresses.

Setting up the ESP32 and ESP8266 build environment

07 Oct 2019 - tsp

Reading time 5 mins

Short summary on how to setup the development environment for ESP8266 (Non-OS and RTOS) as well as ESP32 (RTOS) including a short shellscript that's capable of setting up the development environment.

OpenHantek on FreeBSD for USB oscilloscope

02 Oct 2019 - tsp

Reading time 12 mins

A really short description on how to build OpenHantek on FreeBSD and how to configure the system - and how to create a FreeBSD port.

Configuring ADSL PPTP connection (for example with Austrian DSL providers) on FreeBSD with mpd5

25 Sep 2019 - tsp

Reading time 3 mins

A short summary on how to configure mpd5 to authenticate against an external PPP provider for PPPoA usage (via PPTP). This is required for authentication with most Austrian (A)DSL providers when using their modems in single user mode.

Running Android Studio (or any other X11 application) on a remote machine via X11

22 Sep 2019 - tsp

Reading time 2 mins

A short rant on the incapability of Android Studio to be portable over various POSIX operating systems and a hackish solution on how to keep the feeling of a local application while running it remotely on a Linux machine.

Using piezo disks for automatic bed leveling on 3D printers

11 Sep 2019 - tsp

Reading time 12 mins

Description of an easy way of using piezo disks as touch sensors to perform bed leveling with 3D printers or other CNC machines. This blog entry describes the most basic possible way without much external circuits (only an ATtiny13A and two resistors are used)

GIT and SVN interoperability or moving from SVN to GIT without loosing history

10 Sep 2019 - tsp

Reading time 9 mins

How to use the GIT client to interoperate with a remote SVN server or how to migrate an SVN repository to GIT including it's full history.

Simple digital filter design

06 Sep 2019 - tsp

Reading time 8 mins

A short tutorial on designing and applying digital filters.

What is Multifactor authentication (MFA) and how to use a Yubikey on FreeBSD for Web and PAM (Local, SSH, etc.) authentication

27 Jul 2019 - tsp

Reading time 13 mins

This article contains a short tutorial about multifactor authentication, various factors that may be used and a tutorial on how to use the Yubikey hardware token for web- and local as well as SSH (pam) authentication on FreeBSD.

How to use TOR as normal user

21 Jul 2019 - tsp

Reading time 11 mins

A short description how to use TOR as a normal user and what to be aware of when using TOR

How to use Frama-C to proof C code (short primer)

12 Jun 2019 - tsp

Reading time 19 mins

A short primer on how to use Frama-C to proof properties about C-code.

What are JSON web tokens any why would one want to use them?

26 May 2019 - tsp

Reading time 5 mins

Just a short description of what a JWT is, what it can do for one and how they are realized - and why one would want to use them to identify users in one's web application by using JWTs instead of session IDs.

Authenticating and signing using Austrias citizen card

25 May 2019 - tsp

Reading time 13 mins

A short summary on how to embed authentication and generally signing with the Austrian citizien card

Building an I2C controllable stepper driver board with DRV8825 breakout boards and ATMega328p

23 May 2019 - tsp

Reading time 8 mins

This is the description of a small carrier board for two DRV8825 breakout boards (or compatible) that are controlled by an AVR (ATMega328p) which runs a small (linear) motion processor that gets it's commands via I2C.

Using Git / Git Cheatsheet

07 May 2019 - tsp

Reading time 22 mins

A short cheat sheet on how to use the git version control system (most basic operations)

I2C communication between RaspberryPi and an AVR based I2C slave

04 May 2019 - tsp

Reading time 9 mins

This article explains how to use an AVR as I2C slave device (basically how to set registers for the TWI controller) and how to interface that to an RaspberryPi running FreeBSD

Topology basics

03 May 2019 - tsp

Reading time 8 mins

Basic definitions for topology (notes taken during various lectures)

The Blogsphere - How pingbacks work

03 May 2019 - tsp

Reading time 4 mins

The blogsphere is a web of interconnected websites. As usual websites are linked like all pages in the WWW but on the other hand they provide an easy way of notifying each other of being referenced by a third party. Pingback is - besides trackbacks - the (XML-RPC based) technology used for that notification.

Where does complex impedance come from?

02 May 2019 - tsp

Reading time 4 mins

This post describes a simple derivation of the complex inpedance formulas well known from electronics.

Using cheap 28BYJ-48 stepper with ULM2003 drivers and AVR/Arduino

30 Apr 2019 - tsp

Reading time 6 mins

Short explanation on how to use the 28BYJ-48 geared stepper motor with the ULM2003 7-way Darlington transistor array.

Fast ballpark calculation of maximum speed for maximum car througput (using simple high-school physics and math)

25 Apr 2019 - tsp

Reading time 4 mins

Something most drivers don't want to hear - a basic pallpark calculation of the optimal maximum speed that offers the maximum car througput on streets.

Using AVRs GPIO pins with avr-gcc

24 Apr 2019 - tsp

Reading time 5 mins

How to use the GPIO pins on the AVR microcontrollers when using avr-gcc

Comparison of TAN mechanisms and alternatives

17 Apr 2019 - tsp

Reading time 17 mins

This blog post should provide a short overview of TAN alternatives and methods as well as their pitfalls and security

Wie DKIM und SPF funktioniert (und weshalb Mail-Forwarding eine schlechte Idee ist)

14 Apr 2019 - tsp

Reading time 7 mins

This is an article (in German because of it's specific audience) about SPF and DKIM features that prevent mail spoofing and it's effects on mail forwarding

Building a simple 3D printer (and what turned out to be not so simple)

14 Apr 2019 - tsp

Reading time 20 mins

This article describes some of the ideas and thoughts during building my first FDM printer and which lessions have been learned from that project.

How to handle LoRA messages from thethingsnetwork from JavaEE with TTNClientJ2

10 Apr 2019 - tsp

Reading time 4 mins

This article is a (really) short tutorial on how one can handle messages from LoRA nodes that are routed via thethingsnetwork inside an self-contained JavaEE application.

Adding tags for indexing webpages with Jekyll

10 Apr 2019 - tsp

Reading time 2 mins

An easy method to add tags to your static Jekyll generated pages and blogs

Linear stepper motor control - A summary

05 Apr 2019 - tsp

Reading time 5 mins

A short summary of the algorithms required for linear accelerated and decelerated stepper motor control on microcontrolers.

How to setup an TOR hidden service

04 Apr 2019 - tsp

Reading time 7 mins

A short description how to setup a TOR hidden service or an stealth hidden service and why one would want to do that even if one doesn't offer illegal content

Getting started with STM32F401RE Nucleo starter board on FreeBSD

27 Mar 2019 - tsp

Reading time 4 mins

How to get started with the STM32F401RE nucelo development board on FreeBSD with gcc and openocd

Using Sonoff basic switches with own firmware

15 Mar 2019 - tsp

Reading time 10 mins

Example how to flash Sonoff basic switches with custom firmware (using cli tools or the Arduino IDE)

Building a LoRA WAN gateway (and supplying data for the things network)

18 Feb 2019 - tsp

Reading time 18 mins

The following article leads the reader through building an LoRA-WAN gateway from an iMST ic880a concentrator board and an RaspberryPi. Optionally is shows the reader how to add GPS, enable remote configuration via the tinc VPN daemon and via a TOR stealth hidden service.

Android development on FreeBSD

22 Nov 2018 - tsp

Reading time 2 mins

How to get started with Android development on FreeBSD (using Android Studio)

Some notes on 3D printing

25 Sep 2018 - tsp

Reading time 16 mins

Just a collection of comments on 3D printing

Automatic domain validation TLS certificates with acme.sh and let's encrypt with own DNS servers

04 May 2017 - tsp

Reading time 10 mins

A tutorial on how to automatically manage TLS certificates for various services with DNS challenges and an zone served out of a bind zonefile that is protected via DNSSEC.

A simple colinear coaxial 1090 MHz antenna for ADS-B

15 Aug 2015 - tsp

Reading time 7 mins

A really simple colinear coaxial 1090 MHz antenna for ADS-B, one of the most simple antenna constructions that can be used to receive automatic dependent surveillance squitters using low cost software defined receivers such as DVB-T sticks.

Speicherprobleme bei Android auf älteren Geräten umgehen

05 Jan 2015 - tsp

Reading time 3 mins

A short description of the davlik.vm.* tuneables for memory management tuning on Android devices

Android ADB über TCP/IP

20 Dec 2014 - tsp

Reading time 1 min

How to use ADB over TCP/IP instead of USB

DNSSEC (manuell) mit BIND Werkzeugen

02 May 2014 - tsp

Reading time 4 mins

How to automate DNSSEC signatures on a manually managed zone

Performance studies on the ohmic side of silicon microstrip sensors

21 Dec 2013 - M. Valentan, T. Bergauer, M. Dragicevic, A. Frankenberger, M. Friedl, C. Irmler, T. Spielauer

Reading time 1 min

Published in Nuclear Instruments and Methods in Physics Research Section A: High precision collider experiments at high energy accelerators and B-factories need accurate position resolution while preserving a low material budget for precise particle tracking. Thin double-sided silicon detectors (DSSDs) fulfill both requirements, if a careful sensor design is applied to maintain a high charge collection efficiency. In this continuation of a previous study we investigate the p-stop and the p-spray blocking methods for strip isolation on the n-side (ohmic side) of DSSDs with n-type bulk. We compare three different p-stop patterns: the common p-stop pattern, the atoll p-stop pattern and a combination of these patterns, and for every pattern four different geometric layouts are considered. Moreover we investigate the effect of the strip isolation on sensors with one intermediate strip. Sensors featuring these p-stop patterns and the p-spray blocking method were tested in a 120 GeV/c hadron beam at the SPS at CERN, beta-irradiated to 100 kGy at SCK-CEN (Mol, Belgium), and immediately afterwards tested again at CERN in the same setup as before. The results of these tests are used to optimize the design of DSSDs for the Belle II experiment at KEK (Tsukuba, Japan).

Analysis of beam test data by global optimization methods

21 Dec 2013 - R. Frührwirth, T. Bergauer, M. Friedl, H. Gjersdal, C. Irmler, T. Spielauer, A. Strandlie, M. Valentan

Reading time 1 min

Published in Nuclear Instruments and Methods in Physics Research Section A: Successful track reconstruction in a silicon tracking device depends on the quality of the alignment, on the knowledge of the sensor resolution, and on the knowledge of the amount of material traversed by the particles. We describe algorithms for the concurrent estimation of alignment parameters, sensor resolutions and material thickness in the context of a beam test setup. They are based on a global optimization approach and are designed to work both with and without prior information from a reference telescope. We present results from simulated and real beam test data.

Verschlüsselter (Facebook) Chat mit Pidgin

22 Nov 2013 - tsp

Reading time 4 mins

A short description (in german) how to use the facebook chat with it's XMPP interface.

How to enable EAP-MD5 on Windows 7

22 Feb 2013 - tsp

Reading time 1 min

A short description how to enable EAP-MD5 authentication for wired 802.1x authentication on Windows 7 since it has been (correctly) disabled for security reasons


Data protection policy

Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)

This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/

Valid HTML 4.01 Strict Powered by FreeBSD IPv6 support