Blogs on Minimal Setups http://172.16.3.33:1313/blog/ Recent content in Blogs on Minimal Setups Hugo en-us Thu, 13 Mar 2025 00:00:00 +0000 Tetris http://172.16.3.33:1313/blog/tetris/ Mon, 27 May 2024 00:00:00 +0000 http://172.16.3.33:1313/blog/tetris/ <h1 id="tetris---hardware-and-software">Tetris - Hardware and Software</h1> <p><img src="http://172.16.3.33:1313/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="http://172.16.3.33:1313/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="http://172.16.3.33:1313/IMG_4958.jpeg" alt=""></p> <p>This Tetris implementation consists of a hardware and a software (running on that hardware).</p> PL 9823 meets MSP430 http://172.16.3.33:1313/blog/rgb-driver/ Sat, 25 May 2024 00:00:00 +0000 http://172.16.3.33:1313/blog/rgb-driver/ <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="http://172.16.3.33:1313/cycler_working_first_octets.png" alt=""></p> <p>Last octets:</p> <p><img src="http://172.16.3.33:1313/cycler_working_last_octets.png" alt=""></p> <p>Schematics and legend for signals:</p> <p><img src="http://172.16.3.33:1313/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="http://172.16.3.33:1313/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> Stratum 1 NTP Server participating in ntppool.org http://172.16.3.33:1313/blog/timeserver2/ Thu, 13 Mar 2025 00:00:00 +0000 http://172.16.3.33:1313/blog/timeserver2/ Just another Stratum 1 Timeserver http://172.16.3.33:1313/blog/timeserver/ Tue, 11 Feb 2025 00:00:00 +0000 http://172.16.3.33:1313/blog/timeserver/ <p><img src="http://172.16.3.33:1313/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> Yet Another Debouncing Method http://172.16.3.33:1313/blog/debouncing/ Mon, 30 Apr 2018 00:00:00 +0000 http://172.16.3.33:1313/blog/debouncing/ <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> Three Phase Inverter - Second Service http://172.16.3.33:1313/blog/three-phase-inverter-ng/ Mon, 19 Dec 2016 00:00:00 +0000 http://172.16.3.33:1313/blog/three-phase-inverter-ng/ <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> Three Phase Inverter http://172.16.3.33:1313/blog/three-phase-inverter/ Fri, 14 Oct 2016 00:00:00 +0000 http://172.16.3.33:1313/blog/three-phase-inverter/ <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> Theremin http://172.16.3.33:1313/blog/theremin/ Mon, 01 Jul 2013 00:00:00 +0000 http://172.16.3.33:1313/blog/theremin/ <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="http://172.16.3.33:1313/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="http://172.16.3.33:1313/scan_005006-1024x654.jpg" alt=""></p> <p>Completely new (or at least not found during my Theremin googling) is the digital zero-calibration.</p> Children Protection for Postfix-based EMail-Server http://172.16.3.33:1313/blog/email-childprot/ Thu, 27 Jun 2013 00:00:00 +0000 http://172.16.3.33:1313/blog/email-childprot/ <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>