summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blog/8seg/8seg-digit-circuit.pngbin0 -> 94441 bytes
-rw-r--r--blog/8seg/index.html220
-rw-r--r--blog/index.html8
-rw-r--r--blog/index.xml30
-rw-r--r--categories/index.xml3
-rw-r--r--index.html32
-rw-r--r--index.xml59
-rw-r--r--posts/index.xml3
-rw-r--r--projects/8seg/index.html85
-rw-r--r--projects/index.html18
-rw-r--r--projects/index.xml28
-rw-r--r--sitemap.xml13
12 files changed, 402 insertions, 97 deletions
diff --git a/blog/8seg/8seg-digit-circuit.png b/blog/8seg/8seg-digit-circuit.png
new file mode 100644
index 0000000..001c896
--- /dev/null
+++ b/blog/8seg/8seg-digit-circuit.png
Binary files differ
diff --git a/blog/8seg/index.html b/blog/8seg/index.html
new file mode 100644
index 0000000..05f6fd0
--- /dev/null
+++ b/blog/8seg/index.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>8seg | Home</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="mobile-web-app-capable" content="yes">
+ <meta name="color-scheme" content="dark light">
+ <link rel="stylesheet" href="/style.css">
+</head>
+<body><nav>
+ <div class="internal">
+
+ <a href="/" title="Home">Home</a>
+ <a href="/blog/" title="Blog">Blog</a>
+ <a href="/projects/" title="Projects">Projects</a>
+ <a href="/about/" title="About">About</a>
+ </div>
+ <div class="external">
+ <a href="https://git.jaseg.de/" title="cgit">cgit</a>
+ <a href="https://github.com/jaseg" title="Github">Github</a>
+ <a href="https://gitlab.com/neinseg" title="Gitlab">Gitlab</a>
+ <a href="https://chaos.social/@jaseg" title="Mastodon">Mastodon</a>
+ </span>
+</nav>
+
+ <header>
+ <h1>8seg</h1>
+<ul class="breadcrumbs">
+ <li><a href="/">jaseg.de</a></li>
+ <li><a href="/blog/">Blog</a></li><li><a href="/blog/8seg/">8seg</a></li>
+</ul>
+ <strong>2023-12-26</strong>
+ </header>
+ <main>
+ <div class="document" id="seg-technical-overview">
+<h1 class="title">8seg Technical Overview</h1>
+
+<div class="section" id="prologue">
+<h2>Prologue</h2>
+<p>German hacker culture has this intense love for things that light up in colorful ways. Like for many others in this
+community, I have always been fascinated by LEDs. One of the first things on my pile of unfinished projects was to build
+my own LED matrix and use it to display text. When I started that project, I was still new to electronics. Back then,
+commercial LED matrices were limited to red or green color only, and were very expensive, so there was an incentive to
+build your own. At the same time, while individual LEDs were'nt expensive anymore, they hadn't started to be cheap yet,
+either. On top of the material cost, back then there were no PCB fabs, and especially no PCB assembly houses that a
+hobbyist could afford. Ultimately, I ended up never finishing this project because I felt it was more of a feat of
+material wealth than of technical prowess.</p>
+<p>Over time, LEDs came down in price, and peoople started using them in all sorts of fun things. Around the mid-2010s,
+cheap-ish, ready-made tapes and chains of RGB LEDs that included WS2811 or similar digitally controllable driver chips
+led to a cambrian explosion in projects involving large amounds of colorful LEDs since suddenly, all you needed was an
+arduino and a beefy power supply to individually control an almost unlimited number of these LEDs.</p>
+<p>Today, LED technology has advanced even furhter, to a point where now you can buy staggering quantities of the second
+generation of these controllable LEDs that provides better color rendering embedded in all sorts of shapes, from tapes
+through rings to grids. When I built the first <a class="reference external" href="https://github.com/jaseg/matelight">matelight</a> in 2013, the matelight's 640 individually-controllable LEDs
+were <em>a lot</em>. Today, you can buy a roll with several thousand channels for about the price of a nice pizza.</p>
+</div>
+<div class="section" id="the-idea-behind-8seg">
+<h2>The idea behind 8seg</h2>
+<p>Living through this amazing escalation of LED technology, in 2018, I looked at a then-obsolete piece of single-color,
+dumb, non-controllable LED tape with a simple question in mind: Taking this unsophisticated artifact of yesterday's
+technology, what would be the coolest thing I could build from it? Can I buld something that not only rivals, but
+outmatches the modern controllable LED stuff? From that question, I set myself two goals. First, I wanted to keep the
+project's use of financial and labor resources reasonable. A lot of art consists of taking a simple idea, and simply
+extrapolating its implementation to a ridiculous scale at the expense of the artist's time and wallet. That wasn't the
+point I wanted to make. I wanted to make something cool from an obsolete technology, not prove how much patience I had
+soldering. My second goal was to create something that is meaningfully controllable. Controllability is much harder with
+these dumb LED tapes, but it is possible nontheless, and I wanted to test out how far you could go with it.</p>
+<p>After thinking through a number of possibilities, I settled on the basics of the 8seg design I ended up realizing. The
+installation would be a banner-style display consisting of a series of characters made from non-controllable LED tape.
+The banner can be rigged up in any convenient air space, bending and folding to conform to the space's shape and size.
+The key idea behind 8seg is that it makes up for it's lack of control fidelity with sheer size. If nothing else, this
+non-controllable LED tape is <em>cheap</em>.</p>
+</div>
+<div class="section" id="the-design-of-a-single-8seg-character">
+<h2>The design of a single 8seg character</h2>
+<p>Each 8seg character consists of 8 <em>segments</em> of LED tape that are inter-connected through small circuit boards, four in
+the corners, and one in the center. As it turns out, 8 segments arranged in this shape are enough to display all of the
+English language's alphabet as well as numbers in a weird, but readable form.</p>
+<p>The electrical design of an 8seg character has one weird trick at its core. To avoid having to run a bunch of wires from
+some kind of driver circuit board to each of the eight segments, I thought, why not use the LED tape itself instead for
+power and data transmission? Wires are heavy, expensive, and annoying to solder, so if I could find a way to
+interconnect the LED tape so that it can all be driven from a driver circuit located at one of the character's
+junctions while simultaneously powering that driver circuit, an 8seg character wouldn't need any wires at all anymore.</p>
+<p>8seg achieves this feat using a circuit as shown in the diagram below. Interconnections between the LED tape segments
+are done with a small circuit board in each of the four corners. The design is rotationally symmetric, and all four of
+these boards are identicaly. The top right and bottom left corners simply use the back side of the same circuit board
+used in the top left and bottom right corners.</p>
+<img alt="8seg-digit-circuit.png" src="8seg-digit-circuit.png" />
+<p>The driver circuit sits at the center of the character and directly connects to the four diagonal segments. The key
+thought behind 8seg's driving scheme is that there are two common phases wound through the display in a zig-zag pattern
+as shown in red and blue in the schema below. These phases alternate their polarity at a high frequency. Each segment
+has its negative pole connected to one of these two phases, and can be turned on by the driver while that phase is low
+and the other phase is high. While a phase is high, the LEDs on all segments connected to that phase are reverse-biased,
+and thus these segments remain dark.</p>
+<p>The positive poles of all segments are connected to the driver circuit in the center through a spiral pattern. Each arm
+of the spiral is made up of two segments, one diagonal on the inside, and one horizontal or vertical on the outside.
+The two segments on each spiral arm are on different phases, one on each of the two phases. Thus, during a single cycle
+of the two phases alternating polarity, first one of the two segments has its polarity the right way around, then the
+other. The driver can turn on the active segment by connecting the spiral control line to the positive LED supply
+voltage.</p>
+<p>Both phases cross at the center where the driver circuit is located, so the driver can power itself from the two phases
+using a simple full bridge rectifier.</p>
+</div>
+<div class="section" id="saving-copper-with-point-of-load-regulation">
+<h2>Saving copper with point of load regulation</h2>
+<p>In the beginning, I experimented with the design above, putting 12V AC on the two phases, and letting the driver switch
+its derived LED supply using some cheap MOSFETs. This simple design totally works, but it has an important shortcoming.</p>
+<p>8seg is designed to be physically <em>very</em> large. This means that not only does it have a large number of LEDs that
+together need a lot of current, it also has to transmit all of that current across significant physical distances. The
+consequence of this was that in the initial design, I was looking at either needing hundreds of Euros worth of copper
+cables, or burning hundreds of Watts of electricity into heat if I were to use thinner cables. In this case, cables act
+like resistors. In a resistor, power dissipation rises with the square of the current inside the cable. This is bad for
+8seg since it means halving the amount of copper in those wires increases power dissipation in these wires fourfold.</p>
+<p>Despite that downside, this square law does come with an upside, too. If we assume we have wires of a particular fixed
+diameter, if we can halve the current through those wires, we can quarter the wires' power dissipation. If we want to
+deliver the same amount of power to the LEDs as before, to halve wire current, we have to double the voltage, and add
+some circuitry on the drivers to convert that increased voltage back down to close to our LED tape's nominal 12V.</p>
+<p>Alas, simply doubling the voltage leads to one question: How is it that we can pass double the voltage through our LED
+tape to the center control circuit? Isn't the LED tape made for 12V operation only, not 24V? The answer to this
+apparent problem is that the center is connected to the AC bus voltage only through the negative side of the LED tapes,
+and controls their positive sides to turn them on or off. The AC bus voltage never appears directly across any single of
+the eight segments. At the same time, a simple buck converter stepping down our new 24V bus voltage to 12V, and feeding
+the segment control transistors with that instead of feeding them straight from the rectified AC bus allows us to feed
+the segments with 12V. The only difference between this circuit and the straight 12V variant is that now, during OFF
+times, the LED tapes see a negative 24 v across them. To make sure that's not a problem, I tested a number of them with
+different LED colors and from different manufacturers, and all of them held up past the 50 V I could easily generate
+with my lab power supply.</p>
+</div>
+<div class="section" id="synchronous-rectification">
+<h2>Synchronous rectification</h2>
+<p>I implemented the point-of-load regulation in a new revision of the center circuit, and built a prototype digit. When I
+tested this prototype, to my dismay, I noticed some really strange behavior. In my tests, the LED tape did not properly
+light up, and when I checked the voltages with my oscilloscope, I noticed that the center circuit's ground was floating
+several volts <em>below</em> the AC bus voltage's negative phase. How come?</p>
+<p>After some head-scratching, I found that this problem was due to a simple instance of Kirchhoff's current law. Consider
+the point where the AC bus voltage's currently negative phase enters the center circuit board. Let's say that we
+dissipate 24 Watts in the segments' LEDs. In this case, at 24 Volts, 1 Ampère will flow into the center circuit's
+terminal connected to the currently positive phase, and out from the center circuit's terminal connected to the
+currently negative phase.</p>
+<p>Now consider the current through the LED tape. During one half-cycle of the AC bus, the center circuit can only address
+the four segments that have their negative rail connected to the currently negative phase of the AC bus. If one of these
+four segments is currently on and dissipating our 24 Watts, that segment will be fed 2 Ampère of current from the center
+circuit through its positive rail. My mistake was that I did not consider what happened to the return current here.
+The corresponding 2 Ampère return current of course flows back through the segment's negative rail into the center
+circuit, and herein lies the issue: That negative rail is where our center circuit's supply current comes from! This
+means that according to Kirchhoff's current law, the 1 A flowing out from the center circuit at its input are adding up
+with the 2 A flowing into it. The result of this is that in the currently positive phase's connection, we get 1 A
+flowing into the center circuit, while in the negative phase connection, we get (-1) + (+2) resulting in another 1 A
+flowing into it! The only terminal where current flows <em>out</em> of the center circuit is the positive terminal connected to
+the active segment, out of which 2 A of current are flowing.</p>
+<p>The big problem with this confusing scenario is that this means the bridge recitifier in our center circuit cannot work,
+since its negative-side diodes are reverse biased while any of the segments are on. We can't just add more diodes here,
+since that would just short both AC bus rails together. Instead, the solution is to add one rather chonky MOSFET in
+parallel with each of the two negative-side diodes of the bridge rectifier that are controlled by the center circuit to
+act as a sort of synchronous rectifier. When we turn on one of the segments, we have to turn on the MOSFET on the
+currently negative rail to allow the segment's return current to bypass the bridge rectifier's negative-side diode. Fun
+fact: If we turn on the wrong MOSFET out of the pair, we short the AC bus, resulting in a very quick end of life for that
+poor MOSFET.</p>
+</div>
+<div class="section" id="power-line-data-communication">
+<h2>Power line data communication</h2>
+<p>As we saw above, the driver providing power to a string of digits has to continuously alternate the polarity of its
+output voltage to provide one part of the digit circuits' multiplexing. Since we want to provide the control information
+to the center circuits through those same two wires, we can choose between a number of viable power line communication
+schemes. These schemes usually require a beefy transmitter adding a modulation at a frequency much larger than the
+underlying bus frequency, and a filter circuit at each receiver to filter that signal from the much stronger fundamental
+AC waveform. In our application, I saw two issues with these classical approaches. First, they require fairly complex
+circuitry, especially the beefy transmitter at the driver. Second, they are susceptible to attenuation with either
+changing load or over long distances, which could potentially be a problem with the high currents and long(ish) wiring
+runs 8seg needs.</p>
+<p>Because of these disadvantages, I decided on another approach entirely. Instead of modulating our control signal on top
+of the AC power waveform, we modulate our control data <em>into</em> the AC power waveform. To not interfere with the display
+and cause outages or flicker, and to avoid having to blank the display during transmissions, we choose a modulating
+technique that leaves the proportions of negative and positive half-waves undisturbed. The practical realization of this
+is that instead of alternating positive and negative half-waves, we send a positive half wave for each &quot;one&quot; bit, and a
+negative half wave for each &quot;zero&quot; bit, effectively creating a phase shift keyed signal with two states with an
+180-degree phase shift, with the transmitted bit rate synchronized to twice the underlying carrier frequency.</p>
+<p>The remaining question is how one can encode arbitrary binary data into a continuous stream of ones and zeros that is
+precisely 50 % ones and 50 % zeros across any time span longer than a few dozen bits. There exists a near-optimal
+solution to this question from ethernet over copper twisted pairs. In ethernet, the encoded and modulated signal passes
+through an isolation transformer to protect the ethernet transceiver from interference or dangerous voltages coming in
+through the ethernet port. For this isolation transformer to work, the modulated ethernet signal must be exactly
+balanced to avoid saturating the transformer's core with a DC offset. Ethernet solves this issue by using an encoding
+known as <a class="reference external" href="https://en.wikipedia.org/wiki/8b/10b_encoding">8b/10b encoding</a>. 8b/10b encoding is named like that because it specifies a way to produce a 10 bit codeword
+from any 8 bit input data word while guaranteeing that the resulting codewords are always precisely balanced when
+looking at two or more consecutively.</p>
+</div>
+<div class="section" id="framing">
+<h2>Framing</h2>
+<p>Since 8b/10b encoding maps a space of 256 data words to 1024 code words, there necessarily are a number of unused code
+words. While for some of them, leaving them unallocated is beneficial because it improves error tolerance by decreasing
+the probability of one code word turning into another undetectably when a single one of its bits is flipped, even
+accounting for that it leaves some room for other uses. In 8b/10b, these leftover code words are used for synchronizing
+the receiver to the transmitter, and for framing transmissions. Synchronization is necessary for the receiver to know
+where a code word stards, and 8b/10b has a handful of special &quot;comma&quot; code words that can be uniquely identified in a
+continuous stream of received ones and zeros, because no other combination of 8b/10b code words could produce the same
+sequence of ones and zeros of the comma code word anywhere.</p>
+<p>The leftover code words that are not commas are useful, too. They can be used, for instance, as filler code words
+betwene actual data transmissions, or to act as framing markers denoting things like the end of a protocol message.</p>
+<p>The 8seg driver produces its modulation waveform by translating all data to be transmitted into 8b/10b codes, padding
+the result with framing markers and filler codes, and copy-pasting together the corresponding AC waveform from a small
+set of pre-programmed waveform transitions.</p>
+</div>
+</div>
+ </main><footer>
+ Copyright © 2023 Jan Sebastian Götte
+ / <a href="/about/">About</a>
+ / <a href="/imprint/">Imprint</a>
+</footer>
+<script>
+ if(navigator.getEnvironmentIntegrity!==undefined)document.querySelector('body').innerHTML=`<h1>Your browser
+ contains Google DRM</h1>"Web Environment Integrity" is a Google euphemism for a DRM that is designed to
+ prevent ad-blocking, and which Google has forced into their browsers against widespread public opposition.
+ In support of an open web, this website does not function with this DRM. Please install a browser such
+ as <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> that respects your freedom and supports
+ ad blockers.`;
+ </script>
+ </body>
+</html>
diff --git a/blog/index.html b/blog/index.html
index c699147..d8947b2 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -39,6 +39,14 @@
</div>
</div>
+ <div class="card"><h3><a href="/blog/8seg/">8seg</a></h3><strong>2023-12-26</strong>
+
+ <div class="summary">
+ 8seg Technical Overview Prologue German hacker culture has this intense love for things that light up in colorful ways. Like for many others in this community, I have always been fascinated by LEDs. One of the first things on my pile of unfinished projects was to build my own LED matrix and use it to display text. When I started that project, I was still new to electronics. Back then, commercial LED matrices were limited to red or green color only, and were very expensive, so there was an incentive to build your own.
+ <a href="http://jaseg.de/blog/8seg/">Read more</a>
+ </div>
+</div>
+
<div class="card"><h3><a href="/blog/telekom-gpon-sfp/">Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber</a></h3><strong>2022-02-21</strong>
<div class="summary">
diff --git a/blog/index.xml b/blog/index.xml
index 0d40360..5054ab1 100644
--- a/blog/index.xml
+++ b/blog/index.xml
@@ -7,99 +7,87 @@
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Jan Sebastian Götte</copyright>
- <lastBuildDate>Mon, 21 Feb 2022 20:00:00 +0100</lastBuildDate><atom:link href="http://jaseg.de/blog/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Tue, 26 Dec 2023 15:26:00 +0100</lastBuildDate>
+ <atom:link href="http://jaseg.de/blog/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>8seg</title>
+ <link>http://jaseg.de/blog/8seg/</link>
+ <pubDate>Tue, 26 Dec 2023 15:26:00 +0100</pubDate>
+ <guid>http://jaseg.de/blog/8seg/</guid>
+ <description>8seg Technical Overview Prologue German hacker culture has this intense love for things that light up in colorful ways. Like for many others in this community, I have always been fascinated by LEDs. One of the first things on my pile of unfinished projects was to build my own LED matrix and use it to display text. When I started that project, I was still new to electronics. Back then, commercial LED matrices were limited to red or green color only, and were very expensive, so there was an incentive to build your own.</description>
+ </item>
<item>
<title>Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber</title>
<link>http://jaseg.de/blog/telekom-gpon-sfp/</link>
<pubDate>Mon, 21 Feb 2022 20:00:00 +0100</pubDate>
-
<guid>http://jaseg.de/blog/telekom-gpon-sfp/</guid>
<description>Disclaimer I provide this guide as a reference for other knowledgeable users without any warranty. Please feel free to use this as a resource but do not hold me responsible if this does not work for you. There is a significant chance that due to an error on my side or due to Telekom changing their setup this guide will not work for you, and you may end up having to pay for an unsuccessful Telekom technician visit.</description>
</item>
-
<item>
<title>New Paper on Inertial Hardware Security Modules</title>
<link>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</link>
<pubDate>Tue, 23 Nov 2021 23:42:20 +0100</pubDate>
-
<guid>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</guid>
<description>World&#39;s First DIY HSM Last week, Prof. Dr. Björn Scheuermann and I have published our first joint paper on Hardware Security Modules. In our paper, we introduce Inertial Hardware Security Modules (IHSMs), a new way of building high-security HSMs from basic components. I think the technology we demonstrate in our paper might allow some neat applications where some civil organization deploys a service that no one, not even they themselves, can snoop on.</description>
</item>
-
<item>
<title>Kicad Mesh Plugin</title>
<link>http://jaseg.de/blog/kicad-mesh-plugin/</link>
<pubDate>Tue, 18 Aug 2020 13:15:39 +0200</pubDate>
-
<guid>http://jaseg.de/blog/kicad-mesh-plugin/</guid>
<description>Tamper Detection Meshes Cryptography is at the foundation of our modern, networked world. From email to card payment infrastructure in brick and mortar stores, cryptographic keys secure almost every part of our digital lives againts cybercriminals or curious surveillance capitalists. Without cryptography, many of the things we routinely do in our lives such as paying for groceries with a credit card, messaging a friend on Signal or unlocking a car with its keyfob would not be possible.</description>
</item>
-
<item>
<title>Private Contact Discovery</title>
<link>http://jaseg.de/blog/private-contact-discovery/</link>
<pubDate>Sat, 22 Jun 2019 10:30:00 +0800</pubDate>
-
<guid>http://jaseg.de/blog/private-contact-discovery/</guid>
<description>Private Contact Discovery Private Contact Discovery (PCD) is the formal name for the problem modern smartphone messenger applications have on installation: Given a user&#39;s address book, find out which of their contacts also use the same messenger without the messenger&#39;s servers learning anything about the user&#39;s address book. The widespread non-private way to do this is to simply upload the user&#39;s address book to the app&#39;s operator&#39;s servers and do an SQL JOIN keyed on the phone number field against the database of registered users.</description>
</item>
-
<item>
<title>Hardware Security Module Basics</title>
<link>http://jaseg.de/blog/hsm-basics/</link>
<pubDate>Fri, 17 May 2019 15:29:20 +0800</pubDate>
-
<guid>http://jaseg.de/blog/hsm-basics/</guid>
<description>Hardware Security Modules and Security Research and Cryptography On May 17 2019 I gave a short presentation on the fundamentals of hardware security modules at the weekly seminar of Prof. Mori&#39;s security research working group at Waseda University. The motivation for this was that outside of low-level hardware security people and people working in the financial industry HSMs are not thought about that often. In particular most network or systems security people would not consider them an option.</description>
</item>
-
<item>
<title>How to talk to your microcontroller over serial</title>
<link>http://jaseg.de/blog/serial-protocols/</link>
<pubDate>Sat, 19 May 2018 08:09:46 +0200</pubDate>
-
<guid>http://jaseg.de/blog/serial-protocols/</guid>
<description>Scroll to the end for the TL;DR.
In this article I will give an overview on the protocols spoken on serial ports, highlighting common pitfalls. I will summarize some points on how to design a serial protocol that is simple to implement and works reliably even under error conditions.
If you have done low-level microcontroller firmware you will regularly have had to stuff some data up a serial port to another microcontroller or to a computer.</description>
</item>
-
<item>
<title>Thor&#39;s Hammer</title>
<link>http://jaseg.de/blog/thors-hammer/</link>
<pubDate>Thu, 03 May 2018 11:59:37 +0200</pubDate>
-
<guid>http://jaseg.de/blog/thors-hammer/</guid>
<description>In case you were having an inferiority complex because your friends&#39; IBM Model M keyboards are so much louder than the shitty rubber dome freebie you got with your pc... Here&#39;s the solution: Thor&#39;s Hammer, a simple typing cadence enhancer for PS/2 keyboards.
Your browser does not support the HTML5 video tag. A demonstration of the completed project. h264 download / webm download The connects to the keyboard&#39;s PS/2 clock line and briefly actuates a large solenoid on each key press.</description>
</item>
-
<item>
<title>32-Channel LED tape driver</title>
<link>http://jaseg.de/blog/multichannel-led-driver/</link>
<pubDate>Wed, 02 May 2018 11:31:14 +0200</pubDate>
-
<guid>http://jaseg.de/blog/multichannel-led-driver/</guid>
<description>Theoretical basics Together, a friend and I outfitted the small staircase at Berlin&#39;s Chaos Computer Club with nice, shiny RGB-WW LED tape for ambient lighting. This tape is like regular RGB tape but with an additional warm white channel, which makes for much more natural pastels and whites. There are several variants of RGBW tape. Cheap ones have separate RGB and white LEDs, which is fine for indirect lighting but does not work for direct lighting.</description>
</item>
-
<item>
<title>Wifi Led Driver</title>
<link>http://jaseg.de/blog/wifi-led-driver/</link>
<pubDate>Wed, 02 May 2018 11:31:03 +0200</pubDate>
-
<guid>http://jaseg.de/blog/wifi-led-driver/</guid>
<description>Project motivation The completed driver board installed in the 3D-printed case. This device can now be connected to 12V and two segments of LED tape that can then be controlled trough Wifi. The ESP8266 module goes on the pin header on the left and was removed for this picture. After the multichannel LED driver was completed, I was just getting used to controlling LEDs at 14-bit resolution. I liked the board we designed in this project, but at 32 channels it was a bit large for most use cases.</description>
</item>
-
<item>
<title>LED Characterization</title>
<link>http://jaseg.de/blog/led-characterization/</link>
<pubDate>Wed, 02 May 2018 11:18:38 +0200</pubDate>
-
<guid>http://jaseg.de/blog/led-characterization/</guid>
<description>Preface Recently, I have been working on a small driver for ambient lighting using 12V LED strips like you can get inexpensively from China. I wanted to be able to just throw one of these somewhere, stick down some LED tape, hook it up to a small transformer and be able to control it through Wifi. When I was writing the firmware, I noticed that when fading between different colors, the colors look all wrong!</description>
</item>
-
</channel>
</rss>
diff --git a/categories/index.xml b/categories/index.xml
index 7e9392f..23e2595 100644
--- a/categories/index.xml
+++ b/categories/index.xml
@@ -6,6 +6,7 @@
<description>Recent content in Categories on Home</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <copyright>Jan Sebastian Götte</copyright><atom:link href="http://jaseg.de/categories/index.xml" rel="self" type="application/rss+xml" />
+ <copyright>Jan Sebastian Götte</copyright>
+ <atom:link href="http://jaseg.de/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
diff --git a/index.html b/index.html
index 3dc834b..86c2c8e 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html><head>
- <meta name="generator" content="Hugo 0.119.0">
+ <meta name="generator" content="Hugo 0.120.1">
<meta charset="utf-8">
<title>Home</title>
<meta name="description" content="">
@@ -57,21 +57,21 @@ pages. If you want to learn more about me, head over to the about page.</p>
</div>
</div>
- <div class="card"><h3><a href="/projects/gerbolyze/">Gerbolyze</a></h3>
+ <div class="card"><h3><a href="/projects/8seg/">8seg</a></h3>
<div class="summary">
<div class="document">
-<p>Gerbolyze is a tool that allows the modification of Gerber PCB artwork with a vector graphics editor like Inkscape. Gerbolyze directly converts between SVG and Gerber, and accurately reproduces details that other tools can not.</p>
+<p>8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space's size and shape through bending and folding.</p>
</div>
- <a href="http://jaseg.de/projects/gerbolyze/">Read more</a>
+ <a href="http://jaseg.de/projects/8seg/">Read more</a>
</div>
<div class="links">
- <a href="https://git.jaseg.de/gerbolyze.git">Sources</a>
- <a href="https://github.com/jaseg/gerbolyze/issues">Issues</a>
- <a href="https://gerbolyze.gitlab.io/gerbolyze">Docs</a>
- <a href="https://pypi.org/project/gerbolyze">PyPI</a>
+ <a href="https://git.jaseg.de/8seg.git">Sources and hardware design files</a>
+ <a href="https://8seg.jaseg.de/">Web interface at 37C3 (congress network only!)</a>
+ <a href="http://jaseg.de/blog/8seg">Technical overview blog post</a>
+ <a href="mailto:8seg.m@jaseg.de">Contact email</a>
</div>
</div>
@@ -80,6 +80,14 @@ pages. If you want to learn more about me, head over to the about page.</p>
<a href="/projects/">See more<span class="arrow-right"></span></a>
</div>
<h2>Blog</h2>
+ <div class="card"><h3><a href="/blog/8seg/">8seg</a></h3><strong>2023-12-26</strong>
+
+ <div class="summary">
+ 8seg Technical Overview Prologue German hacker culture has this intense love for things that light up in colorful ways. Like for many others in this community, I have always been fascinated by LEDs. One of the first things on my pile of unfinished projects was to build my own LED matrix and use it to display text. When I started that project, I was still new to electronics. Back then, commercial LED matrices were limited to red or green color only, and were very expensive, so there was an incentive to build your own.
+ <a href="http://jaseg.de/blog/8seg/">Read more</a>
+ </div>
+</div>
+
<div class="card"><h3><a href="/blog/telekom-gpon-sfp/">Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber</a></h3><strong>2022-02-21</strong>
<div class="summary">
@@ -155,14 +163,6 @@ Your browser does not support the HTML5 video tag. A demonstration of the comple
</div>
</div>
- <div class="card"><h3><a href="/blog/led-characterization/">LED Characterization</a></h3><strong>2018-05-02</strong>
-
- <div class="summary">
- Preface Recently, I have been working on a small driver for ambient lighting using 12V LED strips like you can get inexpensively from China. I wanted to be able to just throw one of these somewhere, stick down some LED tape, hook it up to a small transformer and be able to control it through Wifi. When I was writing the firmware, I noticed that when fading between different colors, the colors look all wrong!
- <a href="http://jaseg.de/blog/led-characterization/">Read more</a>
- </div>
-</div>
-
<div class="pagination-links">
<a href="/blog/">See more<span class="arrow-right"></span></a>
diff --git a/index.xml b/index.xml
index 96df985..8c898c7 100644
--- a/index.xml
+++ b/index.xml
@@ -7,12 +7,19 @@
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Jan Sebastian Götte</copyright>
- <lastBuildDate>Wed, 04 Oct 2023 23:42:00 +0200</lastBuildDate><atom:link href="http://jaseg.de/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Tue, 26 Dec 2023 15:26:00 +0100</lastBuildDate>
+ <atom:link href="http://jaseg.de/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>8seg</title>
+ <link>http://jaseg.de/blog/8seg/</link>
+ <pubDate>Tue, 26 Dec 2023 15:26:00 +0100</pubDate>
+ <guid>http://jaseg.de/blog/8seg/</guid>
+ <description>8seg Technical Overview Prologue German hacker culture has this intense love for things that light up in colorful ways. Like for many others in this community, I have always been fascinated by LEDs. One of the first things on my pile of unfinished projects was to build my own LED matrix and use it to display text. When I started that project, I was still new to electronics. Back then, commercial LED matrices were limited to red or green color only, and were very expensive, so there was an incentive to build your own.</description>
+ </item>
<item>
<title>KiMesh</title>
<link>http://jaseg.de/projects/kimesh/</link>
<pubDate>Wed, 04 Oct 2023 23:42:00 +0200</pubDate>
-
<guid>http://jaseg.de/projects/kimesh/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -20,115 +27,102 @@
&lt;p&gt;KiMesh is a KiCad plugin that automatically creates security meshes with two or traces covering an arbitrarily-shaped outline on the board.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber</title>
<link>http://jaseg.de/blog/telekom-gpon-sfp/</link>
<pubDate>Mon, 21 Feb 2022 20:00:00 +0100</pubDate>
-
<guid>http://jaseg.de/blog/telekom-gpon-sfp/</guid>
<description>Disclaimer I provide this guide as a reference for other knowledgeable users without any warranty. Please feel free to use this as a resource but do not hold me responsible if this does not work for you. There is a significant chance that due to an error on my side or due to Telekom changing their setup this guide will not work for you, and you may end up having to pay for an unsuccessful Telekom technician visit.</description>
</item>
-
<item>
<title>New Paper on Inertial Hardware Security Modules</title>
<link>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</link>
<pubDate>Tue, 23 Nov 2021 23:42:20 +0100</pubDate>
-
<guid>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</guid>
<description>World&#39;s First DIY HSM Last week, Prof. Dr. Björn Scheuermann and I have published our first joint paper on Hardware Security Modules. In our paper, we introduce Inertial Hardware Security Modules (IHSMs), a new way of building high-security HSMs from basic components. I think the technology we demonstrate in our paper might allow some neat applications where some civil organization deploys a service that no one, not even they themselves, can snoop on.</description>
</item>
-
<item>
<title>Kicad Mesh Plugin</title>
<link>http://jaseg.de/blog/kicad-mesh-plugin/</link>
<pubDate>Tue, 18 Aug 2020 13:15:39 +0200</pubDate>
-
<guid>http://jaseg.de/blog/kicad-mesh-plugin/</guid>
<description>Tamper Detection Meshes Cryptography is at the foundation of our modern, networked world. From email to card payment infrastructure in brick and mortar stores, cryptographic keys secure almost every part of our digital lives againts cybercriminals or curious surveillance capitalists. Without cryptography, many of the things we routinely do in our lives such as paying for groceries with a credit card, messaging a friend on Signal or unlocking a car with its keyfob would not be possible.</description>
</item>
-
<item>
<title>Private Contact Discovery</title>
<link>http://jaseg.de/blog/private-contact-discovery/</link>
<pubDate>Sat, 22 Jun 2019 10:30:00 +0800</pubDate>
-
<guid>http://jaseg.de/blog/private-contact-discovery/</guid>
<description>Private Contact Discovery Private Contact Discovery (PCD) is the formal name for the problem modern smartphone messenger applications have on installation: Given a user&#39;s address book, find out which of their contacts also use the same messenger without the messenger&#39;s servers learning anything about the user&#39;s address book. The widespread non-private way to do this is to simply upload the user&#39;s address book to the app&#39;s operator&#39;s servers and do an SQL JOIN keyed on the phone number field against the database of registered users.</description>
</item>
-
<item>
<title>Hardware Security Module Basics</title>
<link>http://jaseg.de/blog/hsm-basics/</link>
<pubDate>Fri, 17 May 2019 15:29:20 +0800</pubDate>
-
<guid>http://jaseg.de/blog/hsm-basics/</guid>
<description>Hardware Security Modules and Security Research and Cryptography On May 17 2019 I gave a short presentation on the fundamentals of hardware security modules at the weekly seminar of Prof. Mori&#39;s security research working group at Waseda University. The motivation for this was that outside of low-level hardware security people and people working in the financial industry HSMs are not thought about that often. In particular most network or systems security people would not consider them an option.</description>
</item>
-
<item>
<title>How to talk to your microcontroller over serial</title>
<link>http://jaseg.de/blog/serial-protocols/</link>
<pubDate>Sat, 19 May 2018 08:09:46 +0200</pubDate>
-
<guid>http://jaseg.de/blog/serial-protocols/</guid>
<description>Scroll to the end for the TL;DR.
In this article I will give an overview on the protocols spoken on serial ports, highlighting common pitfalls. I will summarize some points on how to design a serial protocol that is simple to implement and works reliably even under error conditions.
If you have done low-level microcontroller firmware you will regularly have had to stuff some data up a serial port to another microcontroller or to a computer.</description>
</item>
-
<item>
<title>Thor&#39;s Hammer</title>
<link>http://jaseg.de/blog/thors-hammer/</link>
<pubDate>Thu, 03 May 2018 11:59:37 +0200</pubDate>
-
<guid>http://jaseg.de/blog/thors-hammer/</guid>
<description>In case you were having an inferiority complex because your friends&#39; IBM Model M keyboards are so much louder than the shitty rubber dome freebie you got with your pc... Here&#39;s the solution: Thor&#39;s Hammer, a simple typing cadence enhancer for PS/2 keyboards.
Your browser does not support the HTML5 video tag. A demonstration of the completed project. h264 download / webm download The connects to the keyboard&#39;s PS/2 clock line and briefly actuates a large solenoid on each key press.</description>
</item>
-
<item>
<title>32-Channel LED tape driver</title>
<link>http://jaseg.de/blog/multichannel-led-driver/</link>
<pubDate>Wed, 02 May 2018 11:31:14 +0200</pubDate>
-
<guid>http://jaseg.de/blog/multichannel-led-driver/</guid>
<description>Theoretical basics Together, a friend and I outfitted the small staircase at Berlin&#39;s Chaos Computer Club with nice, shiny RGB-WW LED tape for ambient lighting. This tape is like regular RGB tape but with an additional warm white channel, which makes for much more natural pastels and whites. There are several variants of RGBW tape. Cheap ones have separate RGB and white LEDs, which is fine for indirect lighting but does not work for direct lighting.</description>
</item>
-
<item>
<title>Wifi Led Driver</title>
<link>http://jaseg.de/blog/wifi-led-driver/</link>
<pubDate>Wed, 02 May 2018 11:31:03 +0200</pubDate>
-
<guid>http://jaseg.de/blog/wifi-led-driver/</guid>
<description>Project motivation The completed driver board installed in the 3D-printed case. This device can now be connected to 12V and two segments of LED tape that can then be controlled trough Wifi. The ESP8266 module goes on the pin header on the left and was removed for this picture. After the multichannel LED driver was completed, I was just getting used to controlling LEDs at 14-bit resolution. I liked the board we designed in this project, but at 32 channels it was a bit large for most use cases.</description>
</item>
-
<item>
<title>LED Characterization</title>
<link>http://jaseg.de/blog/led-characterization/</link>
<pubDate>Wed, 02 May 2018 11:18:38 +0200</pubDate>
-
<guid>http://jaseg.de/blog/led-characterization/</guid>
<description>Preface Recently, I have been working on a small driver for ambient lighting using 12V LED strips like you can get inexpensively from China. I wanted to be able to just throw one of these somewhere, stick down some LED tape, hook it up to a small transformer and be able to control it through Wifi. When I was writing the firmware, I noticed that when fading between different colors, the colors look all wrong!</description>
</item>
-
+ <item>
+ <title>8seg</title>
+ <link>http://jaseg.de/projects/8seg/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>http://jaseg.de/projects/8seg/</guid>
+ <description>&lt;div class=&#34;document&#34;&gt;
+
+
+&lt;p&gt;8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space&#39;s size and shape through bending and folding.&lt;/p&gt;
+&lt;/div&gt;</description>
+ </item>
<item>
<title>About jaseg</title>
<link>http://jaseg.de/about/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/about/</guid>
<description>About Hej, I&#39;m Jan, or jaseg. At the moment I&#39;m doing a PhD (Dr.-Ing.) at TU Darmstadt in Computer Science, specializing on Hardware Security. This is my personal website where I publish things that I find interesting.
I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I use github for issue tracking for some of my projects such as gerbolyze and python-mpv. I maintain the python-mpv and gerbolyze python packages on PyPI.</description>
</item>
-
<item>
<title>Gerbolyze</title>
<link>http://jaseg.de/projects/gerbolyze/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/gerbolyze/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -136,12 +130,10 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;Gerbolyze is a tool that allows the modification of Gerber PCB artwork with a vector graphics editor like Inkscape. Gerbolyze directly converts between SVG and Gerber, and accurately reproduces details that other tools can not.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>Gerbonara</title>
<link>http://jaseg.de/projects/gerbonara/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/gerbonara/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -149,21 +141,17 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;Gerbonara is a user-friendly, powerful tool for reading, writing, modification and rendering of Gerber PCB artwork from the command line or from Python code. Gerbonara supports the Gerber dialects of all industry-standard EDA tools.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>Impressum</title>
<link>http://jaseg.de/imprint/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/imprint/</guid>
<description>Impressum Sebastian Götte c/o Praxis Dr. Götte Krankenhausstr. 1a 54634 Bitburg imprint@jaseg.net Inhaltlich Verantwortlicher gem. § 55 II RStV: Sebastian Götte (Anschrift s.o.) Lizenz dieser Seite Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz (CC-BY-NC-SA) . Haftungsbeschränkung für Inhalte der Website Gemäß § 7 Abs. 1 TMG ist der Verantwortliche der Website i. S. v. § 5 TMG für eigene Informationen, die er zur Nutzung bereithält, nach den allgemeinen Gesetzen verantwortlich.</description>
</item>
-
<item>
<title>lolcat-c</title>
<link>http://jaseg.de/projects/lolcat-c/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/lolcat-c/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -171,12 +159,10 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;lolcat-c is a small, high-performance re-implementation of the &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/busyloop/lolcat&#34;&gt;lolcat&lt;/a&gt; rainbow cat utility. lolcat-c is meant as a lolcat that you can actually use in production. It is fast, not slowing down whatever you pipe through it, and it robustly handles real-world terminal output including escape sequences.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>python-mpv</title>
<link>http://jaseg.de/projects/python-mpv/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/python-mpv/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -184,12 +170,10 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;python-mpv is a small, ctypes-based Python library wrapping the libmpv media player library. Despite its small size and simple API, python-mpv allows advanced control over libmpv and beyond simple remote control of mpv can be used to embed mpv in OpenGL, Qt, and GTK-based Python applications.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>svg-flatten</title>
<link>http://jaseg.de/projects/svg-flatten/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/svg-flatten/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -197,12 +181,10 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;svg-flatten is a command-line utility that performs vector occlusion and clipping on SVG files, producing a flattened SVG file without overlapping elements, without changing what the file looks like. svg-flatten is used as a part of gerbolyze.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>wsdiff</title>
<link>http://jaseg.de/projects/wsdiff/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/wsdiff/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -210,6 +192,5 @@ I self-host my code at git.jaseg.de, but I am also on github and on gitlab. I us
&lt;p&gt;wsdiff is a command-line utility that produces self-contained, syntax-highlighted, HTML-formatted diffs that support both unified and side-by-side diffs from a single source file using nothing but CSS magic.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
</channel>
</rss>
diff --git a/posts/index.xml b/posts/index.xml
index 68e5aab..54069ad 100644
--- a/posts/index.xml
+++ b/posts/index.xml
@@ -6,6 +6,7 @@
<description>Recent content in Posts on Home</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <copyright>Jan Sebastian Götte</copyright><atom:link href="http://jaseg.de/posts/index.xml" rel="self" type="application/rss+xml" />
+ <copyright>Jan Sebastian Götte</copyright>
+ <atom:link href="http://jaseg.de/posts/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
diff --git a/projects/8seg/index.html b/projects/8seg/index.html
new file mode 100644
index 0000000..24478f3
--- /dev/null
+++ b/projects/8seg/index.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>8seg | Home</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="mobile-web-app-capable" content="yes">
+ <meta name="color-scheme" content="dark light">
+ <link rel="stylesheet" href="/style.css">
+</head>
+<body><nav>
+ <div class="internal">
+
+ <a href="/" title="Home">Home</a>
+ <a href="/blog/" title="Blog">Blog</a>
+ <a href="/projects/" title="Projects">Projects</a>
+ <a href="/about/" title="About">About</a>
+ </div>
+ <div class="external">
+ <a href="https://git.jaseg.de/" title="cgit">cgit</a>
+ <a href="https://github.com/jaseg" title="Github">Github</a>
+ <a href="https://gitlab.com/neinseg" title="Gitlab">Gitlab</a>
+ <a href="https://chaos.social/@jaseg" title="Mastodon">Mastodon</a>
+ </span>
+</nav>
+
+ <header>
+ <h1>8seg</h1>
+<ul class="breadcrumbs">
+ <li><a href="/">jaseg.de</a></li>
+ <li><a href="/projects/">Projects</a></li><li><a href="/projects/8seg/">8seg</a></li>
+</ul>
+
+ </header>
+ <main>
+ <div class="links">
+ <a href="https://git.jaseg.de/8seg.git">Sources and hardware design files</a>
+ <a href="https://8seg.jaseg.de/">Web interface at 37C3 (congress network only!)</a>
+ <a href="http://jaseg.de/blog/8seg">Technical overview blog post</a>
+ <a href="mailto:8seg.m@jaseg.de">Contact email</a>
+ </div>
+ <div class="document" id="seg">
+<h1 class="title">8seg</h1>
+
+<p>8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a
+variety of spaces, conforming to the space's size and shape through bending and folding.</p>
+<p>8seg is currently being set up at 37C3 in the entrance hall, on the second-floor railing in front of Hall X.</p>
+<div class="section" id="posting-messages">
+<h2>Posting messages</h2>
+<p>To send messages to the display, please use the web interface linked above.</p>
+<p>8seg is a community service run by a sole volunteer. Please respect my work, and please do not post offensive messages,
+spam or similar. 8seg is currently open to the congress network on the hope that y'all will behave civilly. Please don't
+make me put a login wall in front of this thing, alright? ;)</p>
+<p>You may write code to talk to the web interface, but please do not post automated messages at a frequency higher than
+one per 20 minutes. No spam, no commercial advertising and absolutely nothing cryptocurrency-related.</p>
+</div>
+<div class="section" id="scheduling-regular-messages">
+<h2>Scheduling regular messages</h2>
+<p>If you want your message to be added to the regular &quot;idle rotation&quot; of 8seg, which the display cycles through when no
+other messages are queued, please email me at the contact email above.</p>
+</div>
+<div class="section" id="reporting-abuse">
+<h2>Reporting abuse</h2>
+<p>If you see 8seg being used for something stupid or bad, please email me at the contact email above.</p>
+</div>
+<div class="section" id="further-questions">
+<h2>Further questions</h2>
+<p>For further questions, please email me at the email linked above, or message me on mastodon at <a class="reference external" href="https://chaos.social/&#64;jaseg">chaos.social/&#64;jaseg</a>.</p>
+</div>
+</div>
+ </main><footer>
+ Copyright © 2023 Jan Sebastian Götte
+ / <a href="/about/">About</a>
+ / <a href="/imprint/">Imprint</a>
+</footer>
+<script>
+ if(navigator.getEnvironmentIntegrity!==undefined)document.querySelector('body').innerHTML=`<h1>Your browser
+ contains Google DRM</h1>"Web Environment Integrity" is a Google euphemism for a DRM that is designed to
+ prevent ad-blocking, and which Google has forced into their browsers against widespread public opposition.
+ In support of an open web, this website does not function with this DRM. Please install a browser such
+ as <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> that respects your freedom and supports
+ ad blockers.`;
+ </script>
+ </body>
+</html>
diff --git a/projects/index.html b/projects/index.html
index 0d6a0c9..05b3e35 100644
--- a/projects/index.html
+++ b/projects/index.html
@@ -58,6 +58,24 @@ open an issue on the project's issue tracker.</p>
</div>
</div>
+ <div class="card"><h3><a href="/projects/8seg/">8seg</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space's size and shape through bending and folding.</p>
+</div>
+ <a href="http://jaseg.de/projects/8seg/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/8seg.git">Sources and hardware design files</a>
+ <a href="https://8seg.jaseg.de/">Web interface at 37C3 (congress network only!)</a>
+ <a href="http://jaseg.de/blog/8seg">Technical overview blog post</a>
+ <a href="mailto:8seg.m@jaseg.de">Contact email</a>
+ </div>
+</div>
+
<div class="card"><h3><a href="/projects/gerbolyze/">Gerbolyze</a></h3>
<div class="summary">
diff --git a/projects/index.xml b/projects/index.xml
index ee4fa9d..2742a44 100644
--- a/projects/index.xml
+++ b/projects/index.xml
@@ -7,12 +7,12 @@
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Jan Sebastian Götte</copyright>
- <lastBuildDate>Wed, 04 Oct 2023 23:42:00 +0200</lastBuildDate><atom:link href="http://jaseg.de/projects/index.xml" rel="self" type="application/rss+xml" />
+ <lastBuildDate>Wed, 04 Oct 2023 23:42:00 +0200</lastBuildDate>
+ <atom:link href="http://jaseg.de/projects/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>KiMesh</title>
<link>http://jaseg.de/projects/kimesh/</link>
<pubDate>Wed, 04 Oct 2023 23:42:00 +0200</pubDate>
-
<guid>http://jaseg.de/projects/kimesh/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -20,12 +20,21 @@
&lt;p&gt;KiMesh is a KiCad plugin that automatically creates security meshes with two or traces covering an arbitrarily-shaped outline on the board.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
+ <item>
+ <title>8seg</title>
+ <link>http://jaseg.de/projects/8seg/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+ <guid>http://jaseg.de/projects/8seg/</guid>
+ <description>&lt;div class=&#34;document&#34;&gt;
+
+
+&lt;p&gt;8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space&#39;s size and shape through bending and folding.&lt;/p&gt;
+&lt;/div&gt;</description>
+ </item>
<item>
<title>Gerbolyze</title>
<link>http://jaseg.de/projects/gerbolyze/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/gerbolyze/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -33,12 +42,10 @@
&lt;p&gt;Gerbolyze is a tool that allows the modification of Gerber PCB artwork with a vector graphics editor like Inkscape. Gerbolyze directly converts between SVG and Gerber, and accurately reproduces details that other tools can not.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>Gerbonara</title>
<link>http://jaseg.de/projects/gerbonara/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/gerbonara/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -46,12 +53,10 @@
&lt;p&gt;Gerbonara is a user-friendly, powerful tool for reading, writing, modification and rendering of Gerber PCB artwork from the command line or from Python code. Gerbonara supports the Gerber dialects of all industry-standard EDA tools.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>lolcat-c</title>
<link>http://jaseg.de/projects/lolcat-c/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/lolcat-c/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -59,12 +64,10 @@
&lt;p&gt;lolcat-c is a small, high-performance re-implementation of the &lt;a class=&#34;reference external&#34; href=&#34;https://github.com/busyloop/lolcat&#34;&gt;lolcat&lt;/a&gt; rainbow cat utility. lolcat-c is meant as a lolcat that you can actually use in production. It is fast, not slowing down whatever you pipe through it, and it robustly handles real-world terminal output including escape sequences.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>python-mpv</title>
<link>http://jaseg.de/projects/python-mpv/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/python-mpv/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -72,12 +75,10 @@
&lt;p&gt;python-mpv is a small, ctypes-based Python library wrapping the libmpv media player library. Despite its small size and simple API, python-mpv allows advanced control over libmpv and beyond simple remote control of mpv can be used to embed mpv in OpenGL, Qt, and GTK-based Python applications.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>svg-flatten</title>
<link>http://jaseg.de/projects/svg-flatten/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/svg-flatten/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -85,12 +86,10 @@
&lt;p&gt;svg-flatten is a command-line utility that performs vector occlusion and clipping on SVG files, producing a flattened SVG file without overlapping elements, without changing what the file looks like. svg-flatten is used as a part of gerbolyze.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
<item>
<title>wsdiff</title>
<link>http://jaseg.de/projects/wsdiff/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
<guid>http://jaseg.de/projects/wsdiff/</guid>
<description>&lt;div class=&#34;document&#34;&gt;
@@ -98,6 +97,5 @@
&lt;p&gt;wsdiff is a command-line utility that produces self-contained, syntax-highlighted, HTML-formatted diffs that support both unified and side-by-side diffs from a single source file using nothing but CSS magic.&lt;/p&gt;
&lt;/div&gt;</description>
</item>
-
</channel>
</rss>
diff --git a/sitemap.xml b/sitemap.xml
index 9858785..38e5fe2 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,8 +2,14 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
+ <loc>http://jaseg.de/blog/8seg/</loc>
+ <lastmod>2023-12-26T15:26:00+01:00</lastmod>
+ </url><url>
+ <loc>http://jaseg.de/blog/</loc>
+ <lastmod>2023-12-26T15:26:00+01:00</lastmod>
+ </url><url>
<loc>http://jaseg.de/</loc>
- <lastmod>2023-10-04T23:42:00+02:00</lastmod>
+ <lastmod>2023-12-26T15:26:00+01:00</lastmod>
</url><url>
<loc>http://jaseg.de/projects/kimesh/</loc>
<lastmod>2023-10-04T23:42:00+02:00</lastmod>
@@ -11,9 +17,6 @@
<loc>http://jaseg.de/projects/</loc>
<lastmod>2023-10-04T23:42:00+02:00</lastmod>
</url><url>
- <loc>http://jaseg.de/blog/</loc>
- <lastmod>2022-02-21T20:00:00+01:00</lastmod>
- </url><url>
<loc>http://jaseg.de/blog/telekom-gpon-sfp/</loc>
<lastmod>2022-02-21T20:00:00+01:00</lastmod>
</url><url>
@@ -44,6 +47,8 @@
<loc>http://jaseg.de/blog/led-characterization/</loc>
<lastmod>2018-05-02T11:18:38+02:00</lastmod>
</url><url>
+ <loc>http://jaseg.de/projects/8seg/</loc>
+ </url><url>
<loc>http://jaseg.de/about/</loc>
</url><url>
<loc>http://jaseg.de/categories/</loc>