Files
minimal-setups/attic/public/blog/index.html
Wolfgang Hottgenroth b2249c06e9
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
mdwiki test starts
2025-04-14 22:22:45 +02:00

262 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Blogs - Minimal Setups</title>
<meta name="generator" content="Hugo 0.140.2">
<link href="http://172.16.3.33:1313//index.xml" rel="alternate" type="application/rss+xml">
<link rel="canonical" href="http://172.16.3.33:1313/blog/">
<link rel="stylesheet" href="http://172.16.3.33:1313/css/theme.min.css">
<link rel="stylesheet" href="http://172.16.3.33:1313/css/chroma.min.css">
<script defer src="http://172.16.3.33:1313//js/fontawesome6/all.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery.easing@1.4.1/jquery.easing.min.js" integrity="sha256-H3cjtrm/ztDeuhCN9I4yh4iN2Ybx/y1RM7rMmAesA0k=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js" integrity="sha256-4XodgW4TwIJuDtf+v6vDJ39FVxI0veC/kSCCmnFp7ck=" crossorigin="anonymous"></script>
<script src="http://172.16.3.33:1313/js/bundle.js"></script><style>
:root {}
</style>
<meta property="og:url" content="http://172.16.3.33:1313/blog/">
<meta property="og:site_name" content="Minimal Setups">
<meta property="og:title" content="Blogs">
<meta property="og:locale" content="en_us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Blogs">
<meta itemprop="name" content="Blogs">
<meta itemprop="datePublished" content="2025-03-13T00:00:00+00:00">
<meta itemprop="dateModified" content="2025-03-13T00:00:00+00:00"><script type="text/javascript" id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>
</head>
<body>
<div class="container"><header>
<h1>Minimal Setups</h1>
</header>
<div class="global-menu">
<nav>
<ul>
<li class=""><a href="/keys/">Keys</a></li>
<li class=""><a href="/about/">About</a></li></ul>
</nav>
</div>
<div class="content-container">
<main><h1>Blogs</h1>
<article>
<h2><a href="http://172.16.3.33:1313/blog/tetris/">Tetris</a></h2>
<time>Mon, May 27, 2024</time>
<h1 id="tetris---hardware-and-software">Tetris - Hardware and Software</h1>
<p><img src="/IMG_4936.jpg" alt=""></p>
<p>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):</p>
<p><img src="/IMG_4941.jpg" alt=""></p>
<p>Update of the power switch of the amplifier (at appears, that the small transistor couldn&rsquo;t deliver enough current):</p>
<p><img src="/IMG_4958.jpeg" alt=""></p>
<p>This Tetris implementation consists of a hardware and a software (running on that hardware).</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/rgb-driver/">PL 9823 meets MSP430</a></h2>
<time>Sat, May 25, 2024</time>
<h2 id="generating-signals-for-pl-9823-using-a-msp430">Generating signals for PL 9823 using a MSP430</h2>
<h3 id="debugging">Debugging</h3>
<pre tabindex="0"><code>mspdebug rf2500 gdb
msp430-gdb -x firmware.gdb
</code></pre><p>Attention: the gdb in the TI toolchain package is broken, use the one from Debian</p>
<h3 id="signals-working-cycler">Signals Working Cycler</h3>
<p>These signals are related to code under tag <code>cycler_works_include_output_stage</code>.</p>
<p>First octets:</p>
<p><img src="/cycler_working_first_octets.png" alt=""></p>
<p>Last octets:</p>
<p><img src="/cycler_working_last_octets.png" alt=""></p>
<p>Schematics and legend for signals:</p>
<p><img src="/schematics.jpeg" alt=""></p>
<h4 id="some-more-explanations">Some more explanations</h4>
<p>Consider above schematics and the screen shot &ldquo;Last octets&rdquo; from the oscilloscope.</p>
<p><img src="/timing.png" alt=""></p>
<p>Timer TA1 is running in &ldquo;up mode&rdquo; to the value 45 set in compare register <code>TA1CCR0</code>. The compare registers <code>TA1CCR1</code> is set to 10, <code>TA1CCR2</code> is set to 22.
The output mode of the timer is set to &ldquo;Reset/Set&rdquo;, which means the GPIO associated with <code>TA1CCR1</code> (P2.1) and <code>TA1CCR2</code> (P2.4) are set at the overflow and
restart of the counter and reset when the counter matches the associated compare value.</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/timeserver2/">Stratum 1 NTP Server participating in ntppool.org</a></h2>
<time>Thu, Mar 13, 2025</time>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/timeserver/">Just another Stratum 1 Timeserver</a></h2>
<time>Tue, Feb 11, 2025</time>
<p><img src="/IMG_6045.jpg" alt=""></p>
<p>This server utilizes <code>ntpsec</code> on Debian on a BeagleBone Black with a UBlox GPS module.</p>
<p>It has been joined the NTP pool, the statistics are available at <a href="https://www.ntppool.org/scores/93.241.86.156">https://www.ntppool.org/scores/93.241.86.156</a>.</p>
<p>Some additional statistics graphs for the server are available at <a href="https://numbers.hottis.de/ntpserver">https://numbers.hottis.de/ntpserver</a>.</p>
<h2 id="preparation-of-the-beaglebone">Preparation of the BeagleBone</h2>
<p>The GPS module is connected via serial line to the UART of the BB.</p>
<p>The additional connection of the PPS output with the PPS device of the Linux running on the BB via a GPIO must be prepared. A device tree overlay must be created and compiled:</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/debouncing/">Yet Another Debouncing Method</a></h2>
<time>Mon, Apr 30, 2018</time>
<p>You can find several approaches for debouncing mechanical switches on the Internet, some work better, some not so good.</p>
<p>One common approach is to ignore events in an ISR when they come too fast:&lt;</p>
<pre tabindex="0"><code>void count() {
static uint32_t lastEvent = 0;
uint32_t currentEvent = micros();
if (currentEvent &amp;gt; (lastEvent + configBlock.debounce)) {
lastEvent = currentEvent;
cnt++;
}
}
void setup() {
pinMode(REED_PIN, INPUT_PULLUP);
attachInterrupt(REED_PIN, count, FALLING);
}
</code></pre><p>This works very good when only the tipping of a switch is relevant.</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/three-phase-inverter-ng/">Three Phase Inverter - Second Service</a></h2>
<time>Mon, Dec 19, 2016</time>
<p>I wrote in October about my first try to build a simple three phase inverter, see <a href="http://172.16.3.33:1313/blog/three-phase-inverter/">here</a>. 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.</p>
<p>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.</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/three-phase-inverter/">Three Phase Inverter</a></h2>
<time>Fri, Oct 14, 2016</time>
<p>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.</p>
<p>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.</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/theremin/">Theremin</a></h2>
<time>Mon, Jul 1, 2013</time>
<p>A <a href="https://en.wikipedia.org/wiki/Theremin">Theremin</a> 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.</p>
<p><img src="/foto-am-30-06-13-um-20-021.jpg" alt=""></p>
<p>This is just another Theremin. Only basic structure of the circuit was taken from many other published Theremin circuits.</p>
<p><img src="/scan_005006-1024x654.jpg" alt=""></p>
<p>Completely new (or at least not found during my Theremin googling) is the digital zero-calibration.</p>
</article>
<p>
</p>
<article>
<h2><a href="http://172.16.3.33:1313/blog/email-childprot/">Children Protection for Postfix-based EMail-Server</a></h2>
<time>Thu, Jun 27, 2013</time>
<p>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).</p>
<p>The code for this tool can is here: <a href="https://gitea.hottis.de/wn/childprot">https://gitea.hottis.de/wn/childprot</a>.</p>
<p>Configure the tool by adding this line into the <code>master.cf</code> of the Postfix installation:</p>
<pre tabindex="0"><code>childprot unix - n n - 25 spawn user=mail argv=/opt/sbin/ChildProt
</code></pre><p>and this one to the <code>main.cf</code>:</p>
</article>
<p>
</p>
<footer>
</footer>
</main>
<div class="sidebar">
<nav class="slide-menu">
<ul>
<li class=""><a href="http://172.16.3.33:1313/">Home</a></li>
<li class=" has-sub-menu"><a href="http://172.16.3.33:1313/blog/">Blogs<span class="mark closed">+</span></a>
<ul class="sub-menu">
<li class=""><a href="http://172.16.3.33:1313/blog/tetris/">2024-05-27<br/> Tetris </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/rgb-driver/">2024-05-25<br/> PL 9823 meets MSP430 </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/timeserver2/">2025-03-13<br/> Stratum 1 NTP Server participating in ntppool.org </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/timeserver/">2025-02-11<br/> Just another Stratum 1 Timeserver </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/debouncing/">2018-04-30<br/> Yet Another Debouncing Method </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/three-phase-inverter-ng/">2016-12-19<br/> Three Phase Inverter - Second Service </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/three-phase-inverter/">2016-10-14<br/> Three Phase Inverter </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/theremin/">2013-07-01<br/> Theremin </a></li>
<li class=""><a href="http://172.16.3.33:1313/blog/email-childprot/">2013-06-27<br/> Children Protection for Postfix-based EMail-Server </a></li>
</ul>
</li>
<li class=" has-sub-menu"><a href="http://172.16.3.33:1313/articles/">Articles<span class="mark closed">+</span></a>
<ul class="sub-menu">
<li class=""><a href="http://172.16.3.33:1313/articles/quotes/"> Quotes </a></li>
</ul>
</li>
<li class=" has-sub-menu"><a href="http://172.16.3.33:1313/howtos/">HowTos<span class="mark closed">+</span></a>
<ul class="sub-menu">
<li class=""><a href="http://172.16.3.33:1313/howtos/colors-in-minicom/"> Colors in Minicom </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/engel-des-herrn/"> Engel des Herrn </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/occ-in-nextcloud-pod/"> Execute occ in Nextcloud pod </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/gitlab-backup/"> Gitlab Backup and Restore </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/gitlab-change-baseurl/"> Gitlab Change BaseURL in Database </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/gitlab-upgrades/"> Gitlab Upgrades </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/ca-certificate-in-debian/"> How to add a CA certificate in Debian </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/iscsi-on-linux/"> iSCSI on Linux </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/magnifikat/"> Magnifikat </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/neovim/"> Neovim Setup </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/putty-and-hardware-keys/"> PuTTY and OPENGPG hardware keys </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/resize-hdd-on-running-system/"> Resize HDD on running system </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/snmpwalk-with-numeric-and-text-output/"> snmpwalk with numeric and text output of oid </a></li>
<li class=""><a href="http://172.16.3.33:1313/howtos/prince-of-persia-1/"> Solution for Prince of Persia 1 </a></li>
</ul>
</li>
</ul>
</nav>
<div class="sidebar-footer"></div>
</div>
</div><a href="#" id="backtothetop-fixed" class="backtothetop"
data-backtothetop-duration="600"
data-backtothetop-easing="easeOutQuart"
data-backtothetop-fixed-fadeIn="1000"
data-backtothetop-fixed-fadeOut="1000"
data-backtothetop-fixed-bottom="10"
data-backtothetop-fixed-right="20">
<span class="fa-layers fa-fw">
<i class="fas fa-circle"></i>
<i class="fas fa-arrow-circle-up"></i>
</span></a>
</div>
</body>
</html>