This article describes some of the ideas and thoughts during building my first FDM printer a few years ago and which lessions have been learned from that project.
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.
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)
We tried to do something useful using LoRAWAN and since a friend from VelocIT also liked the idea we started the development of GPS tracking and health monitoring for cattle (and other stuff) using LoRAWAN based GPS trackers. We started out developing using some 0815 breakout boards to play around, used ESP32 based custom hardware and now are moving towards a new STMicro platform supporting stuff like GPS tracking, motion analysis, detecting abnormal behaviour and are crunching data on Amazon webservices to provide some highly scaling solution. I'm doing software (architecture, AWS services, embedded firmware) and hardware development (RF frontend design, power management, etc.) for this project at this time.
A pumpkin seed oil shop that supplies delicious original Austrian pumping seed oil into the U.S. and Canada. Payments are processed via Stripe.
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.
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.
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 summary on a procedure on how to use a galvanic process to plate copper (and other metallic surfaces) with gold using a galvanic bath
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 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
mini-apigw is a lightweight, locally controlled OpenAI-compatible API gateway that unifies multiple AI backends such as OpenAI, Anthropic, Ollama, vLLM, and Fooocus under one clean endpoint. It restores sanity in a world where every AI service assumes exclusive control of your GPU by adding arbitration, per-app governance, and transparent configuration through simple JSON files - no dashboards, no Kubernetes, no bloat. Designed for small labs, research environments, and hobby clusters, mini-apigw behaves like an old-school UNIX daemon: minimal, reliable, and easy to reason about. It lets you run modern LLMs and image models side by side with full control over access, security, and resources - all while keeping your infrastructure as lean and transparent as possible and using just a single API.
https://github.com/tspspi/mini-apigw
Languages: Python
Minimal OpenAI-compatible edge gateway with multi-backend routing. Exposes different backends like ollama or OpenAI with an OpenAI compatible API to different applications with local API keys and per application logging and accounting.
https://github.com/tspspi/blogsimi
Languages: Python
Semantic related-article indexer and generator for static blogs.
https://github.com/tspspi/pyjwt
Languages: Python
A Python JSON Web Token implementation (JWK, JWS, JWE, Keystore)
https://github.com/tspspi/mcpMQTT
Languages: Python
A MCP server to provide arbitrary basic MQTT operations to LLM orchestrators and agent frameworks
https://github.com/tspspi/pykd3300
Languages: Python
Korad KD3300 series pylabdevs interface library
https://github.com/tspspi/pycollagemaker
Languages: Python
A simple command line photo collage generator
https://github.com/tspspi/py34410a
Languages: Python
Unofficial Agilent 34410A python access library
https://github.com/tspspi/quakFilteredADC
Languages: KiCad
25 kHz ADC pre-filter, balun and prescaler for QUAK/ESR and QUASEM projects
https://github.com/tspspi/IQBalunAndFilter
Languages: KiCad
Interface board for balances I/Q demodulator output to single ended ADCs incuding filters and offseting
https://github.com/tspspi/mqtttimeserieslogger
Languages: Python
A very simple MQTT message time series logger that writes into NPZ files
https://github.com/tspspi/quasemcryogui
Languages: Python
QUASEM project cryogenic system GUI frontend
https://github.com/tspspi/pymlx90640
Languages: Python
A simple Python library to access the MLX90640 FIR sensor
https://github.com/tspspi/pybresenham
Languages: Python
A very simple implementation of the Bresenham algorithm (and a simple antialiased version)
https://github.com/tspspi/semkicker02
Languages: KiCad
A simple 205 MHz linear electrostatic electron beam kicker built of out printed circuit boards
https://github.com/tspspi/pyssa3021x
Languages: Python
Simple (unofficial) control library for the Siglent SSA3021X spectrum analyzer
https://github.com/tspspi/freecadModel
Languages: FreeCAD
A collection repository of various FreeCAD models
https://github.com/tspspi/pynanovnav2
Languages: Python
Python access library for programmatic access to NanoVNA v2 (Unofficial)
https://github.com/tspspi/pyxl30
Languages: Python
Unofficial control libraries and utilities for the XL30 Environmental Scanning Electron Microscope
https://github.com/tspspi/pyfbsdi2c
Languages: Python
Thin Python wrapper around ioctl calls to utilize the I2C bus via the iic device on FreeBSD
https://github.com/tspspi/fbsdgpio
Languages: C99, Python
Minimal wrapper around the gpio device used to control GPIO pins on FreeBSD. This is currently available in C and Python
https://github.com/tspspi/fbsdspiwrapper
Languages: Python
Minimal wrapper around the ioctl functions used to control the SPI bus on FreeBSD. This is currently available in Python
https://github.com/tspspi/pydp832
Languages: Python
Simple Python library to remote control the Rigol DP832 power supply. Not supporting all features but inheriting from the pylabdevs power supply base class
https://github.com/tspspi/iostatexporter
Languages: Python
This is a simple iostat exporter as provider for the Prometheus time series database and monitoring system written in Python. It uses the prometheus-client Python package to do the main work of running the webservice and managing the gauges. It's just a wrapper that periodically calls iostat to gather information about disk I/O which is then provided on the specified TCP port where it's collected by Prometheus at the specified scrape interval. This scraper uses iostat to query the parameters thus it only works on FreeBSD, not on Linux.
https://github.com/tspspi/pymso5000
Languages: Python
A simple Python library and utility to control and query data from Rigol MSO5xxx oscilloscopes (not supporting all features of the oscilloscope, work in progress)
https://github.com/tspspi/pyfy6900
Languages: Python
This is a small and simple control library for the FY6900 function generator. It's a implementation for the pylabdevs FunctionGenerator class.
https://github.com/tspspi/quakesranalysis
Languages: Python
This repository contains a collection of classes and utilities to handle and work with QUAK/ESR data files. This won't be of much use outside the project.
https://github.com/tspspi/smartexporter
Languages: Python
This is a simple SMART exporter as provider for the Prometheus time series database and monitoring system written in Python. It uses the prometheus-client Python package to do the main work of running the webservice and managing the gauges. It's just a wrapper that periodically calls smartmonctl from smartmontools to gather information about the filesystems disks which is then provided on the specified TCP port where it's collected by Prometheus at the specified scrape interval. This scraper uses geom disk list to determine which disks should be queried (thus it only works on FreeBSD, not on Linux).
https://github.com/tspspi/mqttdebug
Languages: Python
A simple MQTT debugging tool that allows subscribing to arbitrary topics from the CLI (and publishing from the CLI)
https://github.com/tspspi/electronSourceController2
Languages: C99, Python, KiCad
Electron source controller (Power supplies, filament heating) for a simple electron gun built around some FUG HCP 14-6500 power supplies. Includes C99 firmware for ATMega2560 controller, host control libraries in C99 and Python as well as debugging utilities and schematics
https://github.com/tspspi/labmonitor230
Languages: KiCad
This is a simple circuit that monitors the 230V line voltage via an PC817 optocoupler.
https://github.com/tspspi/quakESRHighSideCurrentController
Languages: C99, KiCad
A simple 0-500 mA current source that is biasable to high voltage built around a MosFET, LM358 OpAmp and an ATMega328P as well as some PC817 optocouplers
https://github.com/tspspi/quakesrthorcam
Languages: Python
A bridge utility that accesses a ThorLabs camera on a Windows machine as specified by MQTT configuration messages and uploads the taken images using the SFTP/SCP protocol
https://github.com/tspspi/outreachspeedoflight
Languages: Python
Speed of light measurement experiment (Outreach project)
https://github.com/tspspi/quakesrB0CoilDriver
Languages: KiCad
Coil driver to use whole 3.3V DAC output range to cover required B0 field for electron spin resonance experiment at QUAK/ESR
https://github.com/tspspi/pymqttmicroservicebase
Languages: Python
A base class to implement MQTT talking microservices in Python in the most simple way possible
https://github.com/tspspi/quakesrrtdisplay
Languages: Python
A simple graphical frontend for an quantum klystron experiment using electron spin resonance
https://github.com/tspspi/pyka3005p
Languages: Python
Unofficial Korad KA3005P power supply control library
https://github.com/tspspi/webcamBlobEstimator
Languages: C99
Tool that has been used for a specific problem in the lab and estimates the size and dimension of a single found cluster on a webcam image
https://github.com/tspspi/gammacli
Languages: Python
Access library and command line utility to access Gamma vacuum ion pumps via Ethernet on their QPC controller
https://github.com/tspspi/pfeifferpumps
Languages: Python
Python access to Pfeiffer vacuum pumps as well as a protocol analyzer (unofficial tool)
https://github.com/tspspi/avrTempPWMRegulator
Languages: C99, C++
PWM Temperature regulator that controlled heatbands during vacuum bakeout utilizing an AVR and ESP8266
https://github.com/tspspi/zfsexporter
Languages: Python
Simple Python ZFS exporter for Prometheus
https://github.com/tspspi/pyavaspec
Languages: Python
Python script to access the AvaSpec 2048-2 spectrometer and a simple CLI utility
https://github.com/tspspi/simplepycam
Languages: C99
A simple wrapper around the Video4Linux subsystem on Unices as Python extension
https://github.com/tspspi/PhpJsonToken
Languages: PHP
A simple JSON based token implementation (JWT with HMAC and RSA signatures)
https://github.com/tspspi/TTNClientJ2
Languages: Java
Simple client to get data feed from thethingsnetwork (TTN) inside an JavaEE application - uses the Eclipse Paho MQTT and RabbitMQ AMQP libraries
https://github.com/tspspi/TJSON
Languages: Java
Simple JSON serializer and deserializer in Java
https://github.com/tspspi/jcliargs
Languages: Java
Simple Java command line argument parser
https://github.com/tspspi/win32TrayUuid
Languages: C#
Small C# windows forms utility that generates UUIDs and C header inclusion guards into the clipboard from a tray icon
https://github.com/tspspi/simpleFreeBSDPeriodicZFSSnapshotScripts
Languages: Shellscript
Really simple scripts to produce periodic snapshots of ZFS filesystems on a FreeBSD system on daily, weekly and/or monthly basis
https://github.com/tspspi/arduinoOnewireMaster
Languages: C++
Simple (non Assembly) 1-Wire Master implementation for Arduino
https://github.com/tspspi/arduinoSimpleESP8266Lightswitch
Languages: C++
A simple alternative ESP8266 or ESP8265 firmware for Sonoff basic switches using the Arduino framework
https://github.com/tspspi/Feather32u4_BasicLoRA_OTAA
Languages: C++
Basic OTAA code for feather 32u4
https://github.com/tspspi/SensorNodeFeather32u4IIDHT22
Languages: C++
Simple sensor node with DH22 temperature and humidity sensor based on the feather 32u4II-LoRA board
https://github.com/tspspi/libbaseencode
Languages: C99
Simple C99 Base16, Base32 and Base64 encode and decode library
https://github.com/tspspi/eit2nfo
Languages: C99
A small tool to convert EIT (Event Information Table) files to Kodi compatible NFO files
https://github.com/tspspi/rawsockscpitools
Languages: C99
A simple collection of rather crude CLI utilities to talk with specific lab devices using SCPI over Ethernet
https://github.com/tspspi/LocalMarlin
Languages: C
A local fork of Marlin 3D printer firmware including some modifications
https://github.com/tspspi/stepperDriverULM2003RS485
Languages: C99
Most simple (no acceleration) stepper driver firmware for ATMega328P to control two ULM2003 stepper drivers via RS485
https://github.com/tspspi/libccsv
Languages: C99
CSV parser library (including ACSL contracts)
https://github.com/tspspi/libstlio
Languages: C99
Simple library supporting reading and writing STL (stereolithography) files from ANSI C99
https://github.com/tspspi/DualDRV8825DrvStepperBoard
Languages: C99
Motion controller code for an AVR based dual stepper controller board
https://github.com/tspspi/jscadModels
Languages: JavaScript
A small collection of some OpenJSCAD models I've created
https://github.com/tspspi/sudokusolve
Languages: C99
Backtracking Sudoku (simple) solver for standard 9x9 sudokus in ANSI C99
mini-apigw: Minimalistic OpenAI compatible AI/LLM API gatewayhttps://pypi.org/project/mini-apigw/
pip install mini-apigw
Minimalistic OpenAI compatible edge gateway with multi-backend routing. Exposes different backends like ollama or OpenAI with an OpenAI compatible API to different applications with local API keys and per application logging and accounting.
pyjwt: Python JSON Web Token (JWT, JWE, JWS, JWK) implementationhttps://pypi.org/project/pyjwt-tspspi/
pip install pyjwt
A Python JSON Web Token implementation (JWK, JWS, JWE, Keystore)
mcpMQTT: mcpMQTT: MCP server for MQTT operationshttps://pypi.org/project/mcpMQTT
pip install mcpMQTT
A MCP server to provide arbitrary basic MQTT operations to LLM orchestrators and agent frameworks
pykd3300-tspspi: Korad KD3300 interface library (pylabdevs, unofficial)https://pypi.org/project/pykd3300-tspspi
pip install pykd3300-tspspi
A simple interface library for serial, USB and Ethernet interface of an KD3305P power supply
pyxl30-tspspi: Control libraries and utilities for the XL30 Environmental Scanning Electron Microscopehttps://pypi.org/projects/pyxl30-tspspi
pip install pyxl30-tspspi
A small set of utilities and control libraries for the XL30 scanning electron microscope.
pyfbsdspi-tspspi: Simple SPI wrapper for FreeBSDhttps://pypi.org/projects/pyfbsdspi-tspspi
pip install pyfbsdspi-tspspi
A simple Python wrapper around FreeBSDs spigen device to allow easy access to the SPI bus from Python
pyfbsdgpio-tspspi: Simple wrapper functions for the FreeBSD GPIO devicehttps://pypi.org/projects/pyfbsdgpio-tspspi
pip install pyfbsdgpio-tspspi
Simple Python wrapper functions around the FreeBSD GPIO device for usage on platforms like the RaspberryPi
pyssg3021x-tspspi: Siglent SSG3021X function generator control libraryhttps://pypi.org/projects/pyssg3021x-tspspi
pip install pyssg3021x-tspspi
A very simple control library that inherits from the pylabdevs base class for function generators and allows basic Ethernet control of the Siglent SSG3021X function generator
pydp832-tspspi: Rigol DP832 power supply control libraryhttps://pypi.org/project/pydp832-tspspi/
pip install pydp832-tspspi
A very simple control library that inherits from the pylabdevs base class for power supplies
pybpg400-tspspi: Unofficial Python library to control and access the INFICON BPG400 pressure gaugehttps://pypi.org/project/pybpg400-tspspi/
pip install pybpg400-tspspi
A simple unofficial readout library for the INFICON BGP400 pressure gauge via RS232C interface
iostatexporter-tspspi: Simple Python I/O statistic exporter for Prometheus on FreeBSDhttps://pypi.org/project/iostatexporter-tspspi/
pip install iostatexporter-tspspi
This is a simple iostat exporter as provider for the Prometheus time series database and monitoring system written in Python. It uses the prometheus-client Python package to do the main work of running the webservice and managing the gauges. It's just a wrapper that periodically calls iostat to gather information about disk I/O which is then provided on the specified TCP port where it's collected by Prometheus at the specified scrape interval. This scraper uses iostat to query the parameters thus it only works on FreeBSD, not on Linux.
pymso5000-tspspi: Rigol MSO5xxx oscilloscope Python library (unofficial)https://pypi.org/project/pymso5000-tspspi/
pip install pymso5000-tspspi
A simple Python library and utility to control and query data from Rigol MSO5xxx oscilloscopes (not supporting all features of the oscilloscope)
outreachspeedoflight-tspspi: Outreach project utility: Speed of lighthttps://pypi.org/project/outreachspeedoflight-tspspi/
pip install outreachspeedoflight-tspspi
This is the frontend to the speed of light outreach project. This project has been developed to measure the speed of light similar to the idea that Hippolyte Fizeau developed in 1848. In contrast to his experiment in this case a little cheat is used - a bicycle works as chopper to produce a sharp difference in light intensity of a laser source. The light travels through two arms of the experiment - one being only a few meters away from the chopper, the other being about hundred meters away. The signal of both pulses is recorded on photodiodes and sampled by a fast oscilloscope (this is where the cheating comes in - we have a definition of time and fast direct sampling).
quakesrthorcam-tspspi: QUAK/ESR ThorCam interfacehttps://pypi.org/project/quakesrthorcam-tspspi/
pip install quakesrthorcam-tspspi
This is a small Python service that runs on a Windows machine to which the ThorCam is attached to provide a bridge into the control system that has been realized on an OpenSource platform - it exposes an MQTT interface for configuration of camera settings and queue configuration as well as event signalling and allows to transfer images taken using SFTP.
mqttdebug-tspspi: Simple MQTT debug helperhttps://pypi.org/project/mqttdebug-tspspi/
pip install mqttdebug-tspspi
This is a simple tool that allows subscribing to an arbitrary number of MQTT topics as well as publishing to an MQTT broker using a command line utility.
pyfy6900-tspspi: (Unofficial) control library for the FY6900 function generatorhttps://pypi.org/project/pyfy6900-tspspi/
pip install pyfy6900-tspspi
This is a small and simple control library for the FY6900 function generator. It's a implementation for the pylabdevs FunctionGenerator class.
quakesranalysis-tspspi: QUAK/ESR analysis utilityhttps://pypi.org/project/quakesranalysis-tspspi/
pip install quakesranalysis-tspspi
This repository contains a collection of classes and utilities to handle and work with QUAK/ESR data files. This won't be of much use outside the project.
smartexporter-tspspi: Simple Python SMART exporter for Prometheus on FreeBSDhttps://pypi.org/project/smartexporter-tspspi/
pip install smartexporter-tspspi
This is a simple SMART exporter as provider for the Prometheus time series database and monitoring system written in Python. It uses the prometheus-client Python package to do the main work of running the webservice and managing the gauges. It's just a wrapper that periodically calls smartmonctl from smartmontools to gather information about the filesystems disks which is then provided on the specified TCP port where it's collected by Prometheus at the specified scrape interval. This scraper uses geom disk list to determine which disks should be queried (thus it only works on FreeBSD, not on Linux).
pymqttmicroservicebase-tspspi: Python MQTT based microservice base daemonhttps://pypi.org/project/pymqttmicroservicebase-tspspi/
pip install pymqttmicroservicebase-tspspi
Since this is a recurring task this project contains a base implementation for a simple MQTT based service that offers just some basic features required for simple MQTT based microservices.
electronsourcecontroller2-tspspi: Custom electron gun slow control Python communication library and GUI utlityhttps://pypi.org/project/electronsourcecontroller2-tspspi/
pip install electronsourcecontroller2-tspspi
Work in progress
quakesrrtdisplay-tspspi: QUAK/ESR realtime data displayhttps://pypi.org/project/quakesrrtdisplay-tspspi/
pip install quakesrrtdisplay-tspspi
Quick and dirty visualization of data published by a specific experimental setup via MQTT
pyka3005p-tspspi: Korad KA3005P power supply control library (unofficial)https://pypi.org/project/pyka3005p-tspspi/
pip install pyka3005p-tspspi
Currently under development
pylabdevs-tspspi: Lab device base classeshttps://pypi.org/project/pylabdevs-tspspi/
pip install pylabdevs-tspspi
This repository supplies some abstract base classes for various device families that are used as basis for specific implementations. Those base classes provide the frontend used by experimental scripts - the implementations are then done in a device specific way by other packages.
pyavaspec-tspspi: Python script to access AvaSpec 2048-2 spectrometerhttps://pypi.org/project/pyavaspec-tspspi/
pip install pyavaspec-tspspi
This is a (unofficial) library and tool to access basic functions (not all data types are supported) of the Avaspec 2048-2 spectrometer from Python on platforms that are not supported by the software supplied by the manufacturer. This has been developed for a project where I wanted to use the spectrometer on FreeBSD (note that no reverse engineering of the original software took place so I can not be sure this is the proper way to talk to the spectrometer - the results just make sense). This project is in no way associated with the manufacturer of this device!
sdg1032x-tspspi: SDG1032X Python libraryhttps://pypi.org/project/sdg1032x-tspspi/
pip install sdg1032x-tspspi
This (unofficial) library allows one to control some functions of the SDG1032X arbitrary waveform generator using Python in a simple way via Ethernet.
zfsexporter-tspspi: Simple Python ZFS exporter for Prometheushttps://pypi.org/project/zfsexporter-tspspi/
pip install zfsexporter-tspspi
This is a simple ZFS exporter as provider for the Prometheus time series database and monitoring system written in Python. It uses the prometheus-client Python package to do the main work of running the webservice and managing the gauges. It's just a wrapper that periodically calls the zfs list and zpool status commands to gather information about the filesystems and the pools which is then provided on the specified TCP port where it's collected by Prometheus at the specified scrape interval. Note that this exporter does only scrape the filesystem properties at a configurable interval instead at the query time of the time series database itself.
gammaionctl-tspspi: Gamma ion pump ethernet control CLI utility and libraryhttps://pypi.org/project/gammaionctl-tspspi/
pip install gammaionctl-tspspi
This is a mini Python 3 library and utility that exposes some of the functions of the Gamma Vacuum QPC ion pump controller via a CLI or via a library class via it's Ethernet port.
Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)
This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/