mdwiki test starts
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-04-14 22:22:45 +02:00
parent 5c7ee2266a
commit b2249c06e9
143 changed files with 8463 additions and 215 deletions

View File

@ -1,9 +1,3 @@
---
title: "About"
---
[Wolfgang Hottgenroth](mailto:woho@hottis.de)

View File

@ -1,5 +0,0 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++

View File

@ -1,10 +0,0 @@
---
title: "Minimal Setups"
---
## Minimal Setups
![](/IMG_3019.png)

View File

@ -1,16 +0,0 @@
---
title: "Quotes"
---
{{< quote date="2025-01-22" source="Alles Du, Dota Kehr" >}}
Und dann in deinem Arm, alles gut, alles andere egal
{{< /quote >}}
{{< quote date="2025-01-14" source="Steinhammer, Thadeusz" >}}
Es ist immer was los, aber es passiert nichts.
{{< /quote >}}
{{< quote date="2025-01-14" source="Samuel Overbeck in Steinhammer, Thadeusz, S. 68, 71" >}}
Sie steht gut da. Aber die Seele setzt sich nicht dazu.
{{< /quote >}}

View File

@ -1,16 +0,0 @@
## My Public GPG and SSH Keys
### SSH Keys
* [My SSH Keys](/mysshkeys.txt)
### GPG Keys
* [`2306AA47A6D7A534B1B7446C836E9E1192A6B132`](/2306AA47A6D7A534B1B7446C836E9E1192A6B132.txt)
* [`082071E0415E0A2D87A2385B5159E88B93B67538`](/082071E0415E0A2D87A2385B5159E88B93B67538.txt)
* [`7B5C0BB6AFCADDC8E3435746B76E53073EE19643`](/7B5C0BB6AFCADDC8E3435746B76E53073EE19643.txt)
* [`90E1D1E935FC6AB94444B15B18FDFA577A8871AD`](/90E1D1E935FC6AB94444B15B18FDFA577A8871AD.txt)
* [`BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469`](/BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469.txt)

View File

@ -1,26 +0,0 @@
baseURL: "https://minimal-setups.de"
releaseTag: "%RELEASETAG%"
languageCode: "en-us"
title: "Minimal Setups"
theme: "ananke"
# theme: "hextra"
theme: "hugo-theme-techdoc-x"
googleAnalystics: ""
params:
menu_style: "slide-menu"
menu:
main:
- name: Keys
pageRef: /keys
weight: 3
- name: About
pageRef: /about
weight: 4
markup:
defaultMarkdownHandler: goldmark
goldmark:
renderer:
unsafe: true

4
content/index.md Normal file
View File

@ -0,0 +1,4 @@
# Minimal Setups
![](/static/IMG_3019.png)

16
content/keys.md Normal file
View File

@ -0,0 +1,16 @@
## My Public GPG and SSH Keys
### SSH Keys
* [My SSH Keys](/static/mysshkeys.txt)
### GPG Keys
* [`2306AA47A6D7A534B1B7446C836E9E1192A6B132`](/static/2306AA47A6D7A534B1B7446C836E9E1192A6B132.txt)
* [`082071E0415E0A2D87A2385B5159E88B93B67538`](/static/082071E0415E0A2D87A2385B5159E88B93B67538.txt)
* [`7B5C0BB6AFCADDC8E3435746B76E53073EE19643`](/static/7B5C0BB6AFCADDC8E3435746B76E53073EE19643.txt)
* [`90E1D1E935FC6AB94444B15B18FDFA577A8871AD`](/static/90E1D1E935FC6AB94444B15B18FDFA577A8871AD.txt)
* [`BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469`](/static/BDB9F424842252FB4D8EEDDCE49AF3B9EF6DD469.txt)

View File

@ -1,3 +0,0 @@
<div class="edit-meta">
%RELEASETAG%
</div>

239
content/mdwiki.html Normal file

File diff suppressed because one or more lines are too long

6
content/navigation.md Normal file
View File

@ -0,0 +1,6 @@
# Minimal Setups
[About](about.md)
[Keys](keys.md)
[Snippets](snippets.md)

12
content/snippet-indexer.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
SNIPPETS_DIR=./snippets
SNIPPETS_INDEX=snippets.md
echo "# Snippets" > $SNIPPETS_INDEX
for I in `ls $SNIPPETS_DIR | sort -r`; do
TITLE=`head -4 $SNIPPETS_DIR/$I | awk '/^title:/ { sub($1 FS, ""); print }'`
DATE=`head -4 $SNIPPETS_DIR/$I | awk '/^date:/ { sub($1 FS, ""); print }'`
echo "- [$TITLE ($DATE)]($SNIPPETS_DIR/$I)" >> $SNIPPETS_INDEX
done

View File

@ -1,7 +1,7 @@
---
title: "Yet Another Debouncing Method"
date: "2018-04-30"
---
<!--
title: Yet Another Debouncing Method
date: 2018-04-30
-->
You can find several approaches for debouncing mechanical switches on the Internet, some work better, some not so good.
@ -29,7 +29,7 @@ When also the time the button was pressed is relevant and when it is especially
Since I couldn't remember the approaches I read about earlier I've sketched this state machine:
![](/20180430110848869_0001.jpg)
![](/static/20180430110848869_0001.jpg)
(The double-lined states are action-states which send out the related information.)

View File

@ -1,6 +1,6 @@
---
title: "How to add a CA certificate in Debian"
---
<!--
title: How to add a CA certificate in Debian
-->
Copy CA file with extension `crt` into `/usr/local/share/ca-certificates/`.

View File

@ -1,6 +1,6 @@
---
title: "Colors in Minicom"
---
<!--
title: Colors in Minicom
-->
To start `minicom` in color mode use

View File

@ -1,7 +1,7 @@
---
title: "Children Protection for Postfix-based EMail-Server"
date: "2013-06-27"
---
<!--
title: Children Protection for Postfix-based EMail-Server
date: 2013-06-27
-->
This small tool implements a whitelist on a Postfix mail-server. It prevents certain recipient addresses (your kids ones) from
receiving mail from any not whitelisted address. Any mail from not whitelisted senders is redirected to a delegate (a parent).

View File

@ -1,7 +1,6 @@
---
title: "Engel des Herrn"
toc: false
---
<!--
title: Engel des Herrn
-->
Der Engel des Herrn brachte Maria die Botschaft, und sie empfing vom Heiligen Geist.

View File

@ -1,6 +1,6 @@
---
title: "Gitlab Backup and Restore"
---
<!--
title: Gitlab Backup and Restore
-->
## Backup
Find the backup directory:

View File

@ -1,6 +1,6 @@
---
title: "Gitlab Change BaseURL in Database"
---
<!--
title: Gitlab Change BaseURL in Database
-->
## Change URL

View File

@ -1,6 +1,6 @@
---
title: "Gitlab Upgrades"
---
<!--
title: Gitlab Upgrades
-->
## Upgrade of a GitLab instance

View File

@ -1,6 +1,6 @@
---
title: "iSCSI on Linux"
---
<!--
title: iSCSI on Linux
-->
## Preparation
Install `open-iscsi`, at least on Debian systems.

View File

@ -1,7 +1,6 @@
---
title: "Magnifikat"
toc: false
---
<!--
title: Magnifikat
-->

View File

@ -1,6 +1,6 @@
---
title: "Neovim Setup"
---
<!--
title: Neovim Setup
-->
Lots of information on nvim can be found for instance here:

View File

@ -1,6 +1,6 @@
---
title: "Execute occ in Nextcloud pod"
---
<!--
title: Execute occ in Nextcloud pod
-->
First, look up the name of the pod using

View File

@ -1,6 +1,6 @@
---
title: "Solution for Prince of Persia 1"
---
<!--
title: Solution for Prince of Persia 1
-->
# Lösung Prince of Persia 1
## Komplettlösung zu "Prince of Persia 1"

View File

@ -1,6 +1,6 @@
---
title: "PuTTY and OPENGPG hardware keys"
---
<!--
title: PuTTY and OPENGPG hardware keys
-->
* install gpg4win installed
* create or edit the file `gpg-agent.conf`, usually in `c:\Users\XXX\AppData\Roaming\gnupg\`:

View File

@ -1,6 +1,6 @@
---
title: "Resize HDD on running system"
---
<!--
title: Resize HDD on running system
-->
* Resize target on VMWare or on Synology or where ever it is provided
* Stop services using the disk

View File

@ -1,8 +1,7 @@
---
title: "PL 9823 meets MSP430"
date: "2024-05-25"
weight: 2
---
<!--
title: PL 9823 meets MSP430
date: 2024-05-25
-->
## Generating signals for PL 9823 using a MSP430
@ -24,21 +23,21 @@ These signals are related to code under tag `cycler_works_include_output_stage`.
First octets:
![](/cycler_working_first_octets.png)
![](/static/cycler_working_first_octets.png)
Last octets:
![](/cycler_working_last_octets.png)
![](/static/cycler_working_last_octets.png)
Schematics and legend for signals:
![](/schematics.jpeg)
![](/static/schematics.jpeg)
#### Some more explanations
Consider above schematics and the screen shot "Last octets" from the oscilloscope.
![](/timing.png)
![](/static/timing.png)
Timer TA1 is running in "up mode" to the value 45 set in compare register `TA1CCR0`. The compare registers `TA1CCR1` is set to 10, `TA1CCR2` is set to 22.
The output mode of the timer is set to "Reset/Set", which means the GPIO associated with `TA1CCR1` (P2.1) and `TA1CCR2` (P2.4) are set at the overflow and
@ -46,7 +45,7 @@ restart of the counter and reset when the counter matches the associated compare
So, on P2.1 (D1 on the oscilloscope) we have a long pulse and at P2.4 (D0 on the oscilloscope) we have a short pulse, with synchronous raising edge.
![](/74hc74-function-table.png)
![](/static/74hc74-function-table.png)
The inverted signal P2.4 is connected to the Clock input of a 74HC74 D-flipflop, the data input of the flipflop is connected to GPIO P1.0 (D2 on the oscilloscope).
@ -70,26 +69,26 @@ Additionally, when the first bit of a full draw screen cycle is presented at P1.
Complete cycle: 2.48us
![](/pulse_complete.png)
![](/static/pulse_complete.png)
Short pulse: 550ns
![](/pulse_short.png)
![](/static/pulse_short.png)
Long pulse: 1.18us
![](/pulse_long.png)
![](/static/pulse_long.png)
### Load Time
During of loading data into five LEDs: 297us
![](/five_leds.png)
![](/static/five_leds.png)
During of loading data into six LEDs: 297us
![](/six_leds.png)
![](/static/six_leds.png)
| # of LEDs | Load Time measured | calculated |
@ -109,11 +108,11 @@ will not handle the reset correctly.
The following circuitry should generate a valid reset signal far enough from the raise
of the supply voltage:
![](/reset-circuit.jpeg)
![](/static/reset-circuit.jpeg)
The circuit generates the following signals:
![](/reset-signal.png)
![](/static/reset-signal.png)
##### Reference voltage (green):

View File

@ -1,6 +1,6 @@
---
title: "snmpwalk with numeric and text output of oid"
---
<!--
title: snmpwalk with numeric and text output of oid
-->
```
snmpwalk -v 2c -c $COMMUNITY -On $HOST $BASE_OID | while read -r line; do

View File

@ -1,20 +1,19 @@
---
title: "Tetris"
date: "2024-05-27"
weight: 1
---
<!--
title: Tetris
date: 2024-05-27
-->
# Tetris - Hardware and Software
![](/IMG_4936.jpg)
![](/static/IMG_4936.jpg)
Update Amplifier (separate input circuitry per PSG, it appears, that a silent PSG has a DC level on its output which is summarized to the AC output of the working PSG, so two input circuits with individual couping capacitor):
![](/IMG_4941.jpg)
![](/static/IMG_4941.jpg)
Update of the power switch of the amplifier (at appears, that the small transistor couldn't deliver enough current):
![](/IMG_4958.jpeg)
![](/static/IMG_4958.jpeg)
This Tetris implementation consists of a hardware and a software (running on that hardware).
@ -32,7 +31,7 @@ The buttons are debounced using RC circuitry and Schmitt triggers and connected
The peripherial microcontrollers and the EEPROM are connected via SPI including individual chip select lines.
![](/game-ctrl.jpg)
![](/static/game-ctrl.jpg)
## Play Ground Canvas
@ -43,7 +42,7 @@ The play ground is implemented using a 10 * 20 matrix of PL9823 RGB LEDs which a
The communcation with the game play controller is implemented as a sequences of tuples of LED address (0 to 211) and color code. A single octet of 253 where the LED address is expected is taken as the end-of-telegram mark. Readiness to receive a telegram is signaled to the game play controller via a single line connected to a GPIO of the game play controller.
![](/rgb-driver.jpg)
![](/static/rgb-driver.jpg)
[Details are here]({{< ref "rgb-driver.md" >}} "Details are here")
@ -56,7 +55,7 @@ In the first place, a MAX7221 was meant to be used for connecting a multiple dig
Communication with the game play controller is just a 16 bit number to be displayed.
![](/display-driver.jpg)
![](/static/display-driver.jpg)
## Sound Effects
@ -69,8 +68,8 @@ An amplifier following the proposal of the AY-3-8913 datasheet is implemented us
The clock generator proposed by the AY-3-8913 does not work reliably, so an alternative design from "The Art of Electronics" has been used.
![](/sound-driver-1.jpg)
![](/sound-driver-2.png)
![](/sound-driver-3.jpg)
![](/sound-driver-4.jpg)
![](/static/sound-driver-1.jpg)
![](/static/sound-driver-2.png)
![](/static/sound-driver-3.jpg)
![](/static/sound-driver-4.jpg)

View File

@ -1,14 +1,14 @@
---
title: "Theremin"
date: "2013-07-01"
---
<!--
title: Theremin
date: 2013-07-01
-->
A [Theremin](https://en.wikipedia.org/wiki/Theremin) is a rather old electronic music instrument, invented in 1928. It is played by approaching hands to two antennas, without touching them. One antenna is used to manipulate the frequeny of the tone, the other one to manipulate the volume.
![](/foto-am-30-06-13-um-20-021.jpg)
![](/static/foto-am-30-06-13-um-20-021.jpg)
This is just another Theremin. Only basic structure of the circuit was taken from many other published Theremin circuits.
![](/scan_005006-1024x654.jpg)
![](/static/scan_005006-1024x654.jpg)
Completely new (or at least not found during my Theremin googling) is the digital zero-calibration.
@ -29,25 +29,25 @@ When both frequencies are exactly the same, one part of the sum appears as a DC
If one oscillator is de-tuned by only a few Hz'`s, one part are this few Hz'`s (a very low, hearable frequency) and the other part is still (roughly) the doubled frequency (a high frequency). The high frequency part can now be suppressed using a lowpass-filter.
Multiplication of two signals can be done using an analog four quadrant multiplier, like the AD633. So, this is the schematic of the mixer+filter block:
![](/scan_005006_5-1024x717.jpg)
![](/static/scan_005006_5-1024x717.jpg)
The output signal of this block is the difference of the detuning of the one oscillator.
Detuning of the oscillator will be achieved by approaching the hand to the antenna of the oscillator.
![](/scan_005006_3.jpg)
![](/static/scan_005006_3.jpg)
The antenna acts as a kind of a capacitive sensor and by approaching the hand a very small amount of capacity is added into the LC resonator.
The other oscillator is a fix-frequency oscillator which can be tuned to swing on the same frequency as the first oscillator in a not detuned state.
![](/scan_005006_4.jpg)
![](/static/scan_005006_4.jpg)
This tuning is achieved by biasing the two varactor diodes.
Here is automated tuning circuit steps in:
![](scan_005006_6.jpg)
![](/static/scan_005006_6.jpg)
The low-frequency output signal of the mixer+filter block is provided through a 2-to-1 multiplexer (the four NAND-gates) into a microcontroller. The microcontroller measures the frequency and as long as it is above a frequency $\epsilon$ of say 10Hz, the bias voltage $U_{tune}$ is increased.
@ -55,7 +55,7 @@ These both oscillators with mixer+filter and one channel of the zero-calibration
The low-frequency, hearable, signal and the volume-control signal are brought together in the volume-control circuit
![](/scan_005006_2-1024x553.jpg)
![](/static/scan_005006_2-1024x553.jpg)
Here, the low-frequency signal $U_{Lf1}$ is passed through a high-pass filter. The high-pass filter is calculated that way that the whole detunable frequency range comes onto the ramp of the filter. So, the not detuned output signal of the mixer+filter is a DC signal, which is suppressed completely by the high-pass filter (beginning of the ramp) and the maximum detuned output signal of about 2kHz matched roughly to the end of the ramp. This filtered signal is rectified and only the negative half-wave of the signal passes the diode. This half-wave signal is sieved by the larger capacitor to get a DC signal between 0 and the maximum amplitude which passed the fiter. This negative DC signal is fed into the FET, which is configured as a voltage controlled resistor. This voltage controlled resistor and the fix resistor (5k6) are building a voltage controlled voltage divider. The hearable frequency signal $U_{Lf2}$ is fed into this voltage divider  and passed to an amplifier.

View File

@ -1,25 +1,25 @@
---
title: "Three Phase Inverter - Second Service"
date: "2016-12-19"
---
<!--
title: Three Phase Inverter - Second Service
date: 2016-12-19
-->
I wrote in October about my first try to build a simple three phase inverter, see [here]({{< ref "three-phase-inverter.md" >}}). In the first try I used four MSP430 microcontroller, one for the PWM of each phase and one to coordinate the phase shift of the three phases.
In this experiment I put everything on one STM32 microcontroller. Here I used the DMA feature to feed data into the PWM counter and I calculated the sine values at start-up time on the microcontroller. Additionally I put in the driver for a CAN interface, however, it is not yet supported in the firmware.
![](/img_0140.jpg)
![](/static/img_0140.jpg)
From top to bottom you see the CAN driver, the STM32 board, opto coupler to separate logic and power part and then from right to left in the bottom half the low-side/high-side MOSFET drivers and the MOSFETs.
![](/img_0144.jpg)
![](/static/img_0144.jpg)
The power supply consists of a traditional transformer and (top right) the rectifier and capacitors for the power part, together with the 12V regulator for the drivers and (top left) the regulators for 3.3V and 5V for the logic part.
![](/img_0146.jpg)
![](/static/img_0146.jpg)
The motor is the same as in the earlier experiment - I don't have too much of them. And everything is put onto one board:
![](/img_0143-e1482141676335.jpg)
![](/static/img_0143-e1482141676335.jpg)
The code for this experiment is here: [https://gitea.hottis.de/wn/inverter2](https://gitea.hottis.de/wn/inverter2).

View File

@ -1,44 +1,44 @@
---
title: "Three Phase Inverter"
date: "2016-10-14"
---
<!--
title: Three Phase Inverter
date: 2016-10-14
-->
Already when I was still in school, about 30 years ago, I was curious to make an inverter using some MOSFETs. I actually was able to build a simple one phase inverter with rectangular signal shape (I used a NE555). Using this thing I drove a transformer to light a blub. However, all of these inverters I built passed by in fire.
Now, I tried it again, not longer using MOSFETs but IGBTs with free-wheeling diode. Moreover, I used some microcontrollers and sine values to feed a PWM to get a sine-alike signal shape. And this time I was able with three phases to drive an asynchronous motor.
![](/img_0053.jpg)
![](/static/img_0053.jpg)
The signal shaping is done with four MSP430 controllers, three as PWMs to drive the bridge and one to coordinate and control the three PWMs. The PWM controller is decoupled from the IGBT driver (IR2184) using optic couplers.
![](/img_0054-e1476437702547.jpg)
![](/static/img_0054-e1476437702547.jpg)
The bridge is a three phase IGBT module is a 6MB120F-060 I got for a few euros at ebay.
![](img_0055-e1476437685461.jpg)
![](/static/img_0055-e1476437685461.jpg)
To avoid high voltages in my setup I got a 24V async motor, also from ebay.
![](/img_0056.jpg)
![](/static/img_0056.jpg)
The PWMs generate the signal from a sine table generated using Excel. Those I got this signal:
![](/inverter0_2016-09-23-4.png)
![](/static/inverter0_2016-09-23-4.png)
The main task of the coordinator is the start the PWMs with a phase shift of 120° (digital line 1, 2 and 3):
![](/2016-10-13_1.png)
![](/static/2016-10-13_1.png)
Currently the PWMs start with random polarity. The interesting signals are the digital lines 4, 5 and 6.
Sometimes the motor runs:
![](/2016-10-13_works.png)
![](/static/2016-10-13_works.png)
But sometimes not:
![](/2016-10-13_works_not.png)
![](/static/2016-10-13_works_not.png)
The firmware is available here [https://gitea.hottis.de/wn/inverter0](https://gitea.hottis.de/wn/inverter0) and [https://gitea.hottis.de/wn/inverter0ctrl](https://gitea.hottis.de/wn/inverter0ctrl).

View File

@ -1,7 +1,7 @@
---
title: "Stratum 1 NTP Server participating in ntppool.org"
date: "2025-03-13"
---
<!--
title: Stratum 1 NTP Server participating in ntppool.org
date: 2025-03-13
-->
![](https://numbers.hottis.de/ntp/packets-load.png)
@ -10,8 +10,8 @@ date: "2025-03-13"
[Details at ntppool.org](https://www.ntppool.org/scores/93.241.86.156)
## Harrison
![](/IMG_6089.jpg)
![](/IMG_6088.jpg)
![](/static/IMG_6089.jpg)
![](/static/IMG_6088.jpg)
Setup details for this machine are here: [https://gitea.hottis.de/wn/harrison-setup](https://gitea.hottis.de/wn/harrison-setup).
@ -31,7 +31,7 @@ refclock nmea unit 0 mode 0x10 minpoll 4 maxpoll 4 path /dev/ttyS0 ppspath /dev/
## David
![](/IMG_6045.jpg)
![](/static/IMG_6045.jpg)
Details on the setup of this machine are described here: [https://minimal-setups.de/blog/timeserver/](https://minimal-setups.de/blog/timeserver/).

View File

@ -1,10 +1,10 @@
---
title: "Just another Stratum 1 Timeserver"
date: "2025-02-11"
---
<!--
title: Just another Stratum 1 Timeserver
date: 2025-02-11
-->
![](/IMG_6045.jpg)
![](/static/IMG_6045.jpg)
This server utilizes `ntpsec` on Debian on a BeagleBone Black with a UBlox GPS module.

View File

@ -0,0 +1,15 @@
<!--
title: Quotes
-->
# Quotes
Und dann in deinem Arm, alles gut, alles andere egal
(Dota Kehr, Alles Du)
Es ist immer was los, aber es passiert nichts.
(Thadeuz, Steinhammer)
Sie steht gut da. Aber die Seele setzt sich nicht dazu.
(Thadeuz, Steinhammer)