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

14 Apr 2019 - tsp

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.

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

23 May 2019 - tsp

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 piezo disks for automatic bed leveling on 3D printers

11 Sep 2019 - tsp

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)

Alpion - a LoRAWAN GPS tracking and monitoring project

01 Jan 2020 - tsp

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.

Public GitHub repositories


Languages: C99

Backtracking Sudoku (simple) solver for standard 9x9 sudokus in ANSI C99


Languages: JavaScript

A small collection of some OpenJSCAD models I've created


Languages: C99

Motion controller code for an AVR based dual stepper controller board


Languages: C99

C JSON parser and serializer


Languages: C99

Compression library


Languages: C99

Simple library supporting reading and writing STL (stereolithography) files from ANSI C99


Languages: C99

CSV parser library (including ACSL contracts)


Languages: C99

Most simple (no acceleration) stepper driver firmware for ATMega328P to control two ULM2003 stepper drivers via RS485


Languages: C

A local fork of Marlin 3D printer firmware including some modifications


Languages: C99

A simple collection of rather crude CLI utilities to talk with specific lab devices using SCPI over Ethernet


Languages: C99

A small tool to convert EIT (Event Information Table) files to Kodi compatible NFO files


Languages: C99

Simple C99 Base16, Base32 and Base64 encode and decode library


Languages: C++

Simple sensor node with DH22 temperature and humidity sensor based on the feather 32u4II-LoRA board


Languages: C++

Basic OTAA code for feather 32u4


Languages: C++

A simple alternative ESP8266 or ESP8265 firmware for Sonoff basic switches using the Arduino framework


Languages: C++

Simple (non Assembly) 1-Wire Master implementation for Arduino


Languages: Shellscript

Really simple scripts to produce periodic snapshots of ZFS filesystems on a FreeBSD system on daily, weekly and/or monthly basis


Languages: C#

Small C# windows forms utility that generates UUIDs and C header inclusion guards into the clipboard from a tray icon


Languages: Java

Simple Java command line argument parser


Languages: Java

Simple JSON serializer and deserializer in Java


Languages: Java

Simple client to get data feed from thethingsnetwork (TTN) inside an JavaEE application - uses the Eclipse Paho MQTT and RabbitMQ AMQP libraries


Languages: Java

Java EBNF compiler (Recursive descent)


Languages: PHP

A simple JSON based token implementation (JWT with HMAC and RSA signatures)


Languages: C

Fork of the small v4l2grab utility (not my own work)

Data protection policy

Dipl.-Ing. Thomas Spielauer, Wien (

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

Valid HTML 4.01 Strict Powered by FreeBSD IPv6 support