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.
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.
https://github.com/tspspi/sudokusolve
Languages: C99
Backtracking Sudoku (simple) solver for standard 9x9 sudokus in ANSI C99
https://github.com/tspspi/jscadModels
Languages: JavaScript
A small collection of some OpenJSCAD models I've created
https://github.com/tspspi/DualDRV8825DrvStepperBoard
Languages: C99
Motion controller code for an AVR based dual stepper controller board
https://github.com/tspspi/libstlio
Languages: C99
Simple library supporting reading and writing STL (stereolithography) files from ANSI C99
https://github.com/tspspi/libccsv
Languages: C99
CSV parser library (including ACSL contracts)
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/LocalMarlin
Languages: C
A local fork of Marlin 3D printer firmware including some modifications
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/eit2nfo
Languages: C99
A small tool to convert EIT (Event Information Table) files to Kodi compatible NFO files
https://github.com/tspspi/libbaseencode
Languages: C99
Simple C99 Base16, Base32 and Base64 encode and decode library
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/Feather32u4_BasicLoRA_OTAA
Languages: C++
Basic OTAA code for feather 32u4
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/arduinoOnewireMaster
Languages: C++
Simple (non Assembly) 1-Wire Master implementation for Arduino
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/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/jcliargs
Languages: Java
Simple Java command line argument parser
https://github.com/tspspi/TJSON
Languages: Java
Simple JSON serializer and deserializer in Java
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/PhpJsonToken
Languages: PHP
A simple JSON based token implementation (JWT with HMAC and RSA signatures)
https://github.com/tspspi/simplepycam
Languages: C99
A simple wrapper around the Video4Linux subsystem on Unices as Python extension
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/zfsexporter
Languages: Python
Simple Python ZFS exporter for Prometheus
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/pfeifferpumps
Languages: Python
Python access to Pfeiffer vacuum pumps as well as a protocol analyzer (unofficial tool)
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/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/pyka3005p
Languages: Python
Unofficial Korad KA3005P power supply control library
https://github.com/tspspi/quakesrrtdisplay
Languages: Python
A simple graphical frontend for an quantum klystron experiment using electron spin resonance
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/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/outreachspeedoflight
Languages: Python
Speed of light measurement experiment (Outreach project)
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/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/labmonitor230
Languages: KiCad
This is a simple circuit that monitors the 230V line voltage via an PC817 optocoupler.
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/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/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/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/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/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/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/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/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/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/pyfbsdi2c
Languages: Python
Thin Python wrapper around ioctl calls to utilize the I2C bus via the iic device on FreeBSD
https://github.com/tspspi/pyxl30
Languages: Python
Unofficial control libraries and utilities for the XL30 Environmental Scanning Electron Microscope
https://github.com/tspspi/pynanovnav2
Languages: Python
Python access library for programmatic access to NanoVNA v2 (Unofficial)
https://github.com/tspspi/freecadModel
Languages: FreeCAD
A collection repository of various FreeCAD models
https://github.com/tspspi/pyssa3021x
Languages: Python
Simple (unofficial) control library for the Siglent SSA3021X spectrum analyzer
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/pybresenham
Languages: Python
A very simple implementation of the Bresenham algorithm (and a simple antialiased version)
https://github.com/tspspi/pymlx90640
Languages: Python
A simple Python library to access the MLX90640 FIR sensor
https://github.com/tspspi/quasemcryogui
Languages: Python
QUASEM project cryogenic system GUI frontend
https://github.com/tspspi/mqtttimeserieslogger
Languages: Python
A very simple MQTT message time series logger that writes into NPZ files
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/quakFilteredADC
Languages: KiCad
25 kHz ADC pre-filter, balun and prescaler for QUAK/ESR and QUASEM projects
https://github.com/tspspi/py34410a
Languages: Python
Unofficial Agilent 34410A python access library
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.
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.
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.
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!
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.
pyka3005p-tspspi
: Korad KA3005P power supply control library (unofficial)https://pypi.org/project/pyka3005p-tspspi/
pip install pyka3005p-tspspi
Currently under development
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
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
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.
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).
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.
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.
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.
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.
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).
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)
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.
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
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
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
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
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
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.
Dipl.-Ing. Thomas Spielauer, Wien (webcomplains389t48957@tspi.at)
This webpage is also available via TOR at http://rh6v563nt2dnxd5h2vhhqkudmyvjaevgiv77c62xflas52d5omtkxuid.onion/