Posts
linux
android
rtos
atari
osdev
gamemods
robotics
networks
electronics
3d
smarthome
sdr
Electronics

In order to add wheel odometry I made additions hardware, electronics and software. For the hardware I needed to add a wheel encoder disk to the motor axles. This was 3D printed. As for the electronics, in order to pickup interruptions of that encoder disk, I needed to position a light barrier such that it doesn't jam the moving parts. For the software I had to get that PCF8583 I2C realtime clock chip to work as an impulse counter.

Read More >>

Electronics

In order to accomodate for the Lidar, for which the SLAM algorithms in turn require wheel odometry data and the ESP32-CAM in order to provide a video stream, I had to rework much of the robot from 2018. I repositioned the electronics, swapped the main controller and rewired components to commincate via I2C making the robot more easily extensible.

Read More >>

Electronics

For quite some time I've wanted to purchase a 360 lidar for one of my robots. They give the robot the ability to measure distances of obstacles surrounding it. 360 lidars are commonly used on robotic vacuums, but have been available for hobbyists for some time. I just couldn't justify the price for hobbyist projects. Recently the 'YouYeeToo' / 'WayPonDev' / 'LDRobot' 'FHL-LD20' or 'D200 Lidar Kit' came to by attention. It costs only 48 Eur. Let's see, if I can get it to work. If the signal is clean enough we can try Simultaneous Localization and Mapping.

Read More >>

Electronics

Amateur radio and software defined radio is a big field with a lot to learn. It touches on various fields of technology from voice communication, but also digital transmission for WiFi, Smart Home and IoT. As such I've come into contact with it from various angles from time to time. The following summarizes what I've learned about receivers, antennas, connectors, cables, useful software and some signals I've received.

Read More >>

Technology

My small Raspberry PI Home-Server failed once again after approx. 2 years of operation. This time the SD-Card literally burned up. I'll reinstall it, document the process and share some insights I've had from over a decade of running home servers.

Read More >>

Electronics
Fixing a Bosch Refridgerator and adding Smart Home temperature sensing

Our fridge broke down. I took it apart, debugged the issue and added some smart home temperature sensors to be sure it works reliably after the repair.

Read More >>

Technology
An overview of technologies in the field and how they work together

Distributed computing is becoming more and more relevant in various fields. The following is an overview of technologies and algorithms that have stood out to me.

Read More >>

Programming
Writing software in Basic and C with graphical user interfaces and cross-compiling for the Atari from Linux

With the Atari ST sitting my living room, I get asked from time to time whether I've written software for it. I'll explain the process for everyone that has a knack for retro computing like I do.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

At this point we can increase the screen resolution to 640x480 4 bits-per-pixel and enhance the interface for user-applications to build more interesting software for the CustomOS.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

It would be nice to be able to extend the CustomOS without relying on other operating systems to write additional software for it. For this I've added a text editor to the CustomOS. It can be used to write code. An additional built-in C-Code compiler can compile and run code. With both combined we can write, compile and run code from inside the CustomOS.

Read More >>

GameMods
A web interface plug-in for Sim City 4 that allows viewing game metrics in web browsers

Most would agree that Sim City 4 is by far the best city-building simulation game. It's a 20 year old game that hasn't received any updates since. But recently there have been significant advancements in plug-in development for the game. I've written a plug-in for Sim City 4 that allows viewing game metrics in a web browser. The web browser can run on a secondary monitor, smart phone or tablet. This adds basic second-screen/multi-monitor capabilities to the game.

Read More >>

Repair
Motor shaft coupling and cordless drill power for the Olympia PS 16 document shredder

After just two days and, well, approx. 1500 shredded pages, my inexpensive Olympia PS 16 document shredder broke down. I've opened it up, found the issue and replaced the motor and broken gearbox with a cordless drill. It's a simple hack that will work on most of these shredders and save the machines from landfill. Along the way I've taken the opportunity to try out options for connecting motors to axles.

Read More >>

Security
Improving the Honeypot by patching the source code of the OpenSSH server

With the honeypot set up we can see the successful login attempts, but not much is happening appart from strange SSH-Keys being added. This is likely due to the honeypot being detected as such by the malware. The honeypot is not covert enough and is lacking features to log the passwords and commands that were attemped. In the following we'll enhance it.

Read More >>

Security
Analysing the results from the Honeypot

Let's see what the cat dragged in. With the Honeypot Qemu machine working we can analyse the logs.

Read More >>

Security
Setting up a Qemu honeypot machine

After detecting failed login attempts at my SSH server let's setup a fake SSH server (a honeypot) and see what these bot are upto.

Read More >>

Security
There have been a number of failed login attempts at my SSH server

My SSH-Server has been receiving a lot of failed login attempts. Let's see where they come from and what traces the log files contain.

Read More >>

Programming
Packaging with the Conan Package Manager

To speed up future development we can adapt the build process and introduce a package manager.

Read More >>

Programming
Building Zephyr for the Esp32-Cam

The Esp32-Cam board is very cheap board with a dual-core ARM chip that is officially supported by the Zephyr Project. We'll flash and test it with the Arduino code provided with the Esp32-Cam SDK and then setup and build a flash image with Zephyr.

Read More >>

Repair
Fujitsu fi-5110c

My Fujitsu fi-5110c auto-feed scanner broke down due to age-old feed rollers that have become sticky. The feed rollers had passed a threshhold of stickiness that prevent papers from passing through the feed mechanics.

Read More >>

Electronics
Building a small IoT device to monitor the soil moisture of our plants

Monitoring Soil Moisture with a Wemos D1 Mini, MCP3008 and cheap soil moisture probe. Some years ago I bought roughly a dozen cheap plant soil moisture probes. In the following I'll describe how to connect them to a Wemos D1 Mini Dev-Board with an mcp3008 Analog-Digital-Conveter and how to send messages with the readings to your Telegram chat client.

Read More >>

3DScanning
Choosing the right depth camera for 3D Scanning

There is a lot to consider when buying a 3D scanner. I'll compare some use-cases, cameras and technologies in order to make the right choice.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

Some thoughts on enhancements: Better Graphics Drivers, font improvements, running user-space applications.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

After trying out Rust and some experiments interfacing it with C we can move forward with the implementation of the graphical terminal.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

To further enhance the CustomOS we need a shell. We can write it in the Rust programming language. Here are the first steps to get started.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

Pure text-based input/output gets boring fast. This time around we'll add graphics.

Read More >>

Computers
Rooting an Android Device and using it as a low-cost low-power Linux home server

With an Android device running an aftermarket operating system and root capabilities we can configure it as a low-cost low-power Linux home server.

Read More >>

Computers
Rooting an Android Device and using it as a low-cost low-power Linux home server

Using a rooted Android device is an option for a small home server that is low-cost, low-power and low-maintainance. For this we need to replace the stock operating system with a new one and gain root access.

Read More >>

GameMods
Some tricks in dealing with binary formats and decoding Replays from C&C Generals ZH

As with other strategy games that invole building a base, also in C&C Generals ZH, the order the player builds objects is vital to succeed in the game. In order to analyse build sequences we need to parse the replay file format of the game.

Read More >>

Technology
Some useful tricks and implementations from field of A.I.

I've been using Stable Diffusion a lot lately for image generation and inspiration. It can generate images by textural description and generates images that have been previously unseen. Naturally you wonder how that works. This has led me down a path of recapitulating tricks from the A.I field that I've come across over the years.

Read More >>

Technology
The Railroad Signal Tower at the Nürnberg Train Station

A visit to the Signal Tower at the Nürnberg main train station. The Nürnberg train station, due to its location in Europe, is one of the most frequented train stations. It has three different generations of railroad signalling systems from relay-based electro-mechanical to fully digital. I've collected what I recall from memory with images found on various pages across the internet.

Read More >>

GameMods
Custom content for the game Sims 4

Using the approach I've described previously to create 3D models we can also create custom content for the game Sims 4

Read More >>

3DModeling
Creating 3D Meshes, creating textures, applying, viewing and using them

The creation of 3D models purely with Open-Source-Software is challenging. In the following I'll decribe my workflow for creating meshes (in OpenScad), creating textures (in Gimp), applying them (in Blender), viewing them (in Open3D View) and using them in Game Engine (in Ursina)

Read More >>

Astronomy
Calculating the position of stars

When looking up at the sky we see that the stars move. If we want to point a telecope at a star we find that it not only moves out of the field of view, but is in a different location every night. How can we calculate where a star is from our observation point?

Read More >>

Electronics
Setting up a custom photovoltaic system

The initial setup of my solar power system is about 2 years ago. It’s an island system with a battery that does not feed into the grid and is completly off-grid capable.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

Reading and writing to a disk for data persistency is a prerequisite for most applications. I'll be working on basic functionality to store data by reading and writing to disk.

Read More >>

Electronics
On soldering STM32 LQFP-48-chips for BluePill Dev-Boards

BluePill development boards are common in hobbyist projects. Unfortunately online shops have been flooded with cheap knock-offs and it has become increasingly difficult to source genuine parts. I've tried to replace the fake Stm32 chip on a knock-off development board with a genuine part. That ultimately failed, but I'll share my experiences.

Read More >>

RetroComp
Connecting modern peripherals to the Atari ST

The keyboard and mouse of my 30 year old Mega ST seems to still function, but the keyboard has been dropped many times and it’s bound to break. I found a project [1] on the internet to build an adapter in order to connect a modern mouse and keyboard to the Atari and I’m trying to recreate it.

Read More >>

Technology
Sychronizing files to/from Android with git-annex

Git-Annex is an extension for Git that I'm testing to synchronize files between my Android Devices and computers.

Read More >>

Technology
How encrypted media with DRM is handled in the Chromium web browser

On-demand streaming services use methods to protect their content. These methods are intended to allow subscribers to view, but not download and distribute the content. For this the transfer of media data is encrypted and elaborate key exchange mechanisms are used to transfer the required information for decryption to the player software.

Read More >>

RetroComp
Storage adapters for the Atari ST Mega

There have been some advancements in storage device emulation for vintage Atari computers. We can now build SD-Card adapters that connect to the Atari's ACSI port rather easily.

Read More >>

Programming
Investigating Particle Simulations for Disease Spread with WebAssembly

Particle Simulation is an interesting field with numerous applications. In the following we'll look at a very basic particle simulation that can be used as a code basis for future simulations in other fields such as robot localisation.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

So far we've read the state of the keyboard by actively polling it. A better method of reacting to keyboard events is by using interrupts.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

For a Custom OS to be any kind of useful we need some means of interaction with the user. One way to interact with our custom OS is keyboard input. With the ability to print text on screen and get keyboard input from the user we can already build simple dialog systems.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

Last time around we built the cross-compiler. With it we can now compile the barebones tutorial from the osdev-Forums. We can then boot this custom kernel safely in QEmu, a hypervisor, that emulates a computer CPU.

Read More >>

Programming
Writing a Custom Operating System (CustomOS)

Inspired by the osdev-forums and the likes of TempleOS, as a challenge and to learn more about modern computer architectures, I'll give writing a tiny custom operating system from scratch a try. I'll be documenting the process in this multi-part series.

Read More >>

MobileApp
We've released our App!

In a joint effort and over the course of a year ingofritsch.at and I have built and released a smart phone app.
The QT/QML based native app with a custom chart component runs on Android and iOS, is designed to be minimalistic and is meant for tracking personal weight information on-device without cloud storage for data privacy.



Read More >>

Electronics
A quick build of a cocktail machine using aluminium profiles, stepper motors, 3D printer/CNC stepper motor controls and an android tablet

Read More >>

Electronics
Building a CNC milling machine, starting from scratch and then moving to a mechanics kit

CNC (=computerized numerical control) milling is the process of removing material by using a rotary cutter that is positioned by a computer. I have been constructing my own CNC milling machines and after many attemps with various levels of success, I switched to a commercial mechanics kit that I then modified for my purposes.

Read More >>

Electronics
NodeMCU-controlled DirtDevil Spider M607 with a 4-cell Li-Ion battery pack

The DirtDevil Spider M607 is a cheap entry-level vacuum robot. It does not feature optical mapping, but rather randomly moves around until it hits an obstacle and then turns to avoid it. This works reasonably well, but I purchased the robot in order to modify it.

Read More >>

Electronics
Building a Wireless WiFi speaker that can receive sound from your Linux Desktop with a single board computer, WiFi dongle and USB sound card

A small speaker and a small single board computer with some Linux software is all that is required to build a WiFi speaker. With it you will be able to listen to music within WiFi range and optionally control music with your smartphone.

Read More >>

RetroComp
Bringing the Atari ST Mega to 2017

The Atari ST Mega home computer was produced from 1985 to 1994. It uses the Motorola 68k line of chips as its main processor with a 16 bit data bus. The Atari ST Mega that I have came with an Atari Megafile hard disk and Atari SM124 monochrome monitor. In the following I describe the modifications I have made to make the computer useable in the 21st century.

Read More >>

HomeImpr
An automatic watering system for my balcony

I’ve been growing herbs on my balcony in the summer. The heat causes the water to vaporate quickly meaning I have to water the growing beds every day. If I’d forget or when I’m on a business trip, the herbs would dry up. So the only solution is automatic watering.

Read More >>

Electronics
Experiences with PCB etching and why I avoid it whenever possible

PCB etching is the process of making your own circuit boards. There are multiple ways of achieving this. This is a description of my experiences and why I now avoid PCB etching, whenever possible.

Read More >>

Electronics
Setting up the DigiSpark for easy Arduino Development

The DigiStump DigiSpark is an excellent microcontroller development board. The price of only 1-2 Euro is so low you can drop it in your designs and leave it there. […] This Guide will show you how to setup the Arduino IDE, configure it for use with the DigiSpark Board, set up the drivers, connect it and compile and program the „Echo“ Example, which enables sending data to and from the DigiSpark via USB using either Python or C++.

Read More >>

Astronomy
An image of the Orion Nebula (M42) taken at the Dr. Remeis Observatory, Bamberg

The image was taken by my group during the practical exercises for the astrophysics course.

Read More >>

2016-02-16-Di | AutomatedStoveControl
Automated Stove Control
(Course work submission for the 2016 'Do it yourself' (DIY) lecture at the University of Erlangen-Nürnberg)

Cooking can be a real hassle at times. Especially, when one has a manually controlled stove. [..] Therefore, we propose the next logical step: bring the revolution to the kitchen! We start by automating the stove.

Read More >>

2015-04-06-Mo | Servo PCA9685 PWM FT232RL I2C Python Flask
Controlling servo motors using the PCA9685 PWM driver via I2C from a Python Flask Webinterface using an FTDI FT232RL in BitBang-Mode
(An easy method for controlling servo motors from your computer's USB port)

I've adapted the I2C script for reading the compass module, so that I can now use it to talk to a PCA9685 PWM driver IC. This enables me to control pulse width modulated servo motors.

Read More >>

2015-04-02-Do | HMC5883 Compass FT232RL I2C Python
Reading the HMC5883 compass module via I2C from Python using an FTDI FT232RL in BitBang-Mode
(A method for connecting a compass module to a computer via USB using only an FTDI chip, 4 wires, 2 resistors and a single Python script)

I've written code to read out the HMC5883 compass module via I2C using an FTDI FT232RL in BitBang-Mode.

Read More >>

2015-03-20-Fr | OwiDoorbell
1-Wire Doorbell and Internet

My doorbell doesn't work properly. So I set out to fix it. But then I realized I couldn't do so easily. The reason is a faulty switch outside of my appartment. I can't repair it, because there is mains current running through another switch next to it. I can't shut that off, because the fuse is located somewhere in the building and I don't know where. But I had to do something. After all I had set out to 'fix' something. So I decided to connect my doorbell to the internet.

Read More >>

2014-11-07-Fr | GasMeterWifi
Gas usage monitoring with an ESP8266

Got my hands on an ESP8266 WiFi-Module. These modules cost next to nothing (around 3 Eur from Chinese suppliers on eBay, and about 8 Eur from a German supplier, if you need them fast). I want to use them in order to monitor the gas usage for heating and water in my apartment.

Read More >>

2015-11-13-Fr | WifiCar
A WiFi controlled car with camera

I've finally gotten around to completing my WiFi controlled car. This project has been lying around for ages. I recently bought a hand-held circular saw and with it I can cut aluminum rods. That got me the motivation to finish the cars chassis.
The car connects to the local area network via WiFi. It runs two web servers, one for controlling the motors and one for viewing the web cam. After turning it on all I need to do is open the two webpages in my browser and I can control the car and see where it's going

Read More >>

2014-11-24-Mo | Astronomy
Astronomy: One of the things I was up to in 2010-13

Some time ago I had an interest in astronomy. I made an effort to take photos of some of the objects in the sky I found particularly interesting. We started with the Moon, then Saturn and Jupiter with some of its Moons. Then we tried photographing galaxies and nebula - some of the Messier objects - but this is where we reached the limitations of our set up.

Read More >>