Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
1

Attacking My Landlord's Boiler

from videah.net [alt+shift+b] in technology

Attacking My Landlord's Boiler Posted on April 22, 2025 This post is from a legacy version of this blog! No changes have been made to the content in the migration, so things might read weird. Please do your due diligence and check local laws before attempting anything I do in this post. Transmitting radio signals can become legally problematic very quickly, and the band I specifically transmit on here (868Mhz) is illegal in the United States without a license. I’d rather you didn’t have men in suits knocking on your door on my account. You’ve been warned! A little while ago I moved into an apartment to live on my own for the first time. This has given me a decent amount of newfound freedom to sculpt my living environment to my liking, but not enough where I could start knocking down walls. I have a landlord (and a deposit!) to think about, after all. While it isn’t near the level of knocking down walls, I was finding heating my apartment rather frustrating. The boiler’s thermostat installed by my landlord is a single radio-controlled unit that uses a built-in temperature sensor to modulate the heating on and off to meet a target temperature. This presents a few first-world problems: The temperature sensor can only sample a single room in the apartment, which heats unevenly. That room is dependent on the physical proximity of the thermostat’s controls, which can be annoying to use if I might be in bed and the controls are in the living room or vice versa. If I forget to turn the heating off before I leave the apartment, I’m wasting a lot of costly energy. I automate things around my apartment with Home Assistant, and I wanted to be able to do the same here. There are a lot of off-the-shelf solutions for this, obviously, but to get back to the knocking-down-walls comparison, they would require my landlord’s cooperation and likely a visit from an electrician. I don’t want that! Instead, here’s how I figured out how to control my apartment’s heating in a way...
22nd Apr 2025

Stay updated

Get a weekly newsletter with the top 5 articles worth reading every week.

More from videah.net

The fresh new videah.net

The fresh new videah.net Posted on August 30, 2026 It’s an unfortunate fact of life that every tech-savvy person who writes any kind of long-form content is born with an evil curse that compels them to spend more time coming up with increasingly complex byzantine blogging engines than actually writing any blog posts that use them. It’s been well over a year since my last written post, which means it’s time to deploy the latest iteration! The twist this time is it actually ends up replacing two websites. Yes! My blog and personal site are now one and the same. The old terminal-style site was cool for the time, but I think it’s now a bit overplayed and was very limiting. Who the hell wants to type to navigate a website? Especially on mobile, oh man! The old site and blog are not completely gone! They’re hosted at old.videah.net and old.blog.videah.net respectively, just for preservation purposes. They will no longer be updated. Feel free to look around, if you have any feedback on the new design I’d love to hear it! For fun silly things I recommend checking out my 3D model display or going to the homepage and clicking on my pixel art nose. Out with the Markdown The old blog used Zola to generate HTML from some Markdown. It’s as nice as static Markdown site generators get. But over time I couldn’t escape the feeling that Markdown was leaving something to be desired. I think the simplicity of Markdown ends up getting in its own way a bit. I grew to hate writing Markdown. I found myself repeatedly trying to work around its limitations using Zola’s shortcode system which lets you inject some custom HTML components. These are just hacky macros at the end of the day though, they’re not very ergonomic and you can’t do anything crazy with them. It also just became impossible to maintain because the underlying styling was written in Tailwind. You’re tricked into thinking it is sooo nice and easy to use until you need to make a change 6 months later. This new website on the other hand is written in Typst, a modern markup language intended to replace LaTeX for document writing. I’d used it in the past to write my resume when I was applying for a job so I already had some good experience with it. When I noticed they were adding HTML support as a build target, I got really excited! It’s not fully mature yet but with the help of some plumbing from Rheo I think it’s crossed the threshold as just an all-round better alternative to writing Markdown. How about some examples? I think it would help to show off some of the code powering the site to give you a good idea of what it’s capable of. Starting off simple, the fursona callout box further up the page is a reusable component that I can call anywhere in the document like so: #sticker-callout("poggers", side: "right", flush: true)[ The old site and blog are not completely gone! ] Which I think is just a really nice and simple syntax for that kind of thing. Then consider this snippet of code from /elsewhere that takes a list of my social media accounts and renders them as a list of links: #let accounts = ( ("GitHub", ("https://github.com/videah", "@videah")), ("YouTube", ("https://youtube.com/@videah", "@videah")), ("Bluesky", ("https://bsky.app/profile/videah.net", "@videah.net")), ) #let me-link(url, body) = html.elem("a", attrs: (href: url, rel: "me") )[#body] = Accounts #list(..accounts .pairs() .sorted(key: ((name, _)) => lower(name)) .map(((name, (url, handle))) => [#name: #me-link(url, handle)])) This lets me easily add new handles and have it automatically render a list in alphabetical order. No need to maintain the order manually. This is all done in-line in the Typst document alongside written content. Cool right? We can also pull off some more advanced stuff, like this snippet that helps transform all native emoji to the custom Mutant Standard emoji I use on the site: #let mutant-transform(doc) = { show raw: it => _untransformed(it) show _emoji-re: it => context { let cps = it.text.codepoints().map(c => c.to-unicode()) let key = cps .filter(c => c != 0xFE0F) .map(c => str(c, base: 16)).join("-") if no-emoji-transform.get() or key not in _index.seq { it } else { mutant-emoji(_index.seq.at(key), text: it.text) } } doc } This is great because it means we don’t need to do any JavaScript runtime transformations like Twemoji does, this is all done at compile time! This seems like a lot… is it a lot? The appeal here is Typst can be as simple or complex as I need it to be. I can just write posts normally and reach further down to the more programmatic stuff when I feel like it and have it all work seamlessly in a single plain-text document file. This doesn’t even touch on the future potential this unlocks! Like writing once and having it spit out PDFs and EPUBs alongside the HTML output, which I’ll likely be using in the future for my resume. At the end of the day, I’m hoping this just makes me more likely to write stuff. Or maybe in a year’s time I’ll have moved on to something even more esoteric. Who knows! You can read a little more about the tools powering this site at /colophon. Discuss There’s no comment section here sadly — the UK’s Online Safety Act makes running one on a small personal blog more legal exposure than it’s worth. If you wanna comment on something, try leaving a reply in the Bluesky thread! Discuss on Bluesky →

30th Aug 2026 • 1 votes
Plex Might Be Inadvertently Bottlenecking You

Plex Might Be Inadvertently Bottlenecking You Posted on May 12, 2025 This post is from a legacy version of this blog! No changes have been made to the content in the migration, so things might read weird. Plex has this Relay feature that basically pipes your traffic through their servers if direct access isn’t possible for whatever reason, bypassing NAT and presumably cutting down on their support tickets. For free users the relay is capped at a measly 1 Mbps and the ever-growing expense that is the Plex Pass subscription service only bumps this up to a whopping 2 Mbps. I can imagine this being useful for a selection of people. But as this feature is turned on by default, it’s very easy for any issues with your server’s network configuration to go unnoticed. It turns out my port-forwarding rule for Plex hadn’t been working for several months (thanks Ubiquiti) and I never noticed because the relay feature was masking the problem. So… you’re telling me Plex isn’t meant to be almost unusably slow this whole time…? It doesn’t help that the remote-access configuration UI has been very buggy for 6+ years, making it impossible to tell if the issue is with your server or the broken interface. So please don’t make the same mistakes as me. Make sure your Plex client is actually connecting to your server directly, and use a Port Forward Checker. Discuss There’s no comment section here sadly — the UK’s Online Safety Act makes running one on a small personal blog more legal exposure than it’s worth.

12th May 2025 • 1 votes
My E-Reader Setup

My E-Reader Setup Posted on August 10, 2023 This post is from a legacy version of this blog! No changes have been made to the content in the migration, so things might read weird. I bought an e-reader recently, specifically the Kobo Libra 2. I felt like I wasn’t reading books/manga as much as I wanted and I think the convenience of being able to carry my entire library around with me will help with that. I own an iPad Pro but I wanted a device I didn’t need to think about charging that often and wouldn’t give me eye strain. This post is a bundle of notes about my current reading setup. I had owned a Kindle Paperwhite before but it was so locked down that I couldn’t find any joy out of using it since I was forced to use it how Amazon product managers wanted me to. The Libra 2 I spent several hours doing research and I think the Libra 2 is the best device on the market at the moment, at least for my needs. I picked it up in white to try and make an important psychological distiction. I wanted it to differ from every other electronic rectangle I own and treat it more like a nice book rather than a computer that will inevitably make me angry. Which all things considered is quite funny with all the computer nonsense I ended up doing to it. It’s got a 7-inch screen which is a little shy of the perfect Tankōbon volume size, but close enough that manga is comfortable to read. I remember reading somewhere that the screen has one of the best contrast ratios in an e-reader and it is indeed very good. The lineart of Junji Ito’s Uzumaki looks very crisp on this display. Navigation buttons are a dying breed in the e-reader space but I really can’t live without them. Using a touchscreen to navigate is hateful and is really fake skeumorphism. You can pretend all you want but it does not feel like you are flipping a page! Thankfully the Libra 2 has two buttons on the side where you hold it so you can go back and forth with just one hand. I got the very overpriced official SleepCover case in orange. Matches my iPad case. Stops the plastic from making flexing sounds. It can let your e-reader stand upright for some reason. Book Management The only real book management software in town for e-readers is Calibre but it’s stuck in the late 2000′s UNIX school of UI design and I reaaally don’t want to deal with that kind of thing anymore. I want organising my books to feel comfy. I also don’t want it to depend on having my laptop with me, constantly wiring it to my e-reader to sync new books. Calibre on macOS. It is very noisy. It’s not perfect but Calibre-Web works better for me. Despite the confusing name it’s a completely distinct project that just happens to be compatible with Calibre’s database format. I have it hosted on my personal VPS so I can access it anywhere and can give friends access if I need to. It’s not quite Plex for books but it is close. The bootstrap UI is a little dated but it works for what I need. I’m keeping my eye on a relatively new project called Librum that’s in its infancy. If it matures it promises some nice features like syncing reading positions and its own dedicated client. Reader Software The default reader software the Libra 2 comes with is called Nickel and it’s fine. It looks and runs ok enough and the built in Kobo Sync functionality can be tweaked to work with my Calibre-Web instance by replacing the endpoint in a config file, which I have to give Rakuten props for letting you do. But sideloaded files can be very broken. I was half way through a book before I realised Nickel was just throwing all of my notes and highlights into the void whenever I closed it, which was very rude. This is apparently a common problem that’s been around for a while and it seems Rakuten have no plan to fix it anytime soon. I went looking around for some open source alternatives. Most people reach for KOReader. It runs on pretty much everything and is packed with an ungodly amount of features and has a steady community built around it. Comparing library views for KOReader and Plato. But if I’m being honest I just can’t find any enjoyment using it. The user interface just isn’t up to snuff. It feels impossible to navigate and there is no real library view, only a file manager. When I’m holding my e-reader I don’t want to be reminded that it is a computer all the time. It’s meant to be a book! I came across Plato which is made exclusively for Kobo devices and worked on by the guy responsible for bspwm. It’s really fast and responsive, more so than Nickel even. The UI is pretty much exactly what I’m looking for. It’s not nearly as feature complete as KOReader but it’s written in Rust which is a language I feel confident enough in to tweak and implement things to my hearts desire. I’ve already made a small change that got merged upstream too! Syncing Originally I was using Kobo Sync with the endpoint changed to point to my Calibre-Web instance to sync my books wirelessly. But it was buggy and slow and could only pull in KEPUB files. Plato has a built in hook system that lets you run arbitrary binaries when a directory is opened. Using this I wrote a small CLI tool that just pulls every book that hasn’t been downloaded yet from my Calibre-Web instance using the OPDS protocol. I’ve stuck the code for this tool up on my Github if anyone else is interested in using it! In the future I would like to take advantage of this hook system to also sync reading positions and other metadata Plato stores. Tailscale VPN I love plugging as many of my devices into my Tailscale network as I can and I thought it’d be a fun little project to try and get it running on the Libra 2. Someone had already done most of the work by getting it to run on the Kobo Sage. It turns out it’s a little harder for the Libra, I had to spend a ridiculous amount of time compiling some missing kernel modules in a horrendously slow emulated x86 emulator just to get this thing running. The joys of owning an ARM laptop. I think being able to type ping kobo and have it Just Work makes all the hours spent worthwhile though I packaged all the work I done up nicely in an install script so it should be dead easy to get this working on your Libra 2 as well. Tailscale has a built in AirDrop-esque file transfer feature that I find really useful for quickly sending PDFs to my e-reader that I don’t necessarily want to be a permanent part of my library. Sending a PDF remotely with one click with TailDrop. Unfortunately I couldn’t get Tailscale SSH working which was one of the main reasons I attempted this in the first place I’m not sure why but my first guess would be that I need iptable packet filtering but that would require swapping out the whole kernel which I don’t feel comfortable doing at the moment. Maybe some day though. SSH The Libra 2 only has telnet support out of the box behind a developer cheat code (typing devmodeon into the search bar) which is fine because I’d be using it over a Tailscale wireguard connection anyway. My threat model doesn’t exactly involve people bruteforcing telnet over public WiFi just to steal my furry books. But for completions sake I stuck the Dropbear SSH server on mine and then disabled telnet. Storage The Libra 2 has 32gb of internal storage which is pretty huge for books considering how small EPUBs usually are. But I like reading manga which can be pretty hefty. An average volume is 200mb, with stuff like Uzumaki coming in at 800mb. What if I need to store every uncompressed volume of One Piece for offline reading in the event of the apocalypse? Most e-readers treat manga as secondary to books and rarely offer higher storage options or mini-SD card slots anymore. Thankfully the Libra 2 has a mini-SD slot… it’s just an internal one not meant to be user accessable 🫠 Libra 2 internals, SD card highlighted in the red circle. Image taken by MobileRead user ‘supermighty’ This is better than not being able to upgrade the storage at all though and was actually one of the main things that pushed me in the Libra 2′s direction when doing research. Someone on the MobileRead forums replaced the SD card and posted instructions on how to do so. I haven’t done this for mine yet but I plan on giving it a shot and sticking something utterly ridiculous like 512gb or 1tb in there. It seems like a pretty risky/messy mod to do though, the slot and card are caked in waterproofing glue that you’ll need to reapply afterwards if you’re like me and enjoy reading in the bath. Even if this seems excessive it does let me sleep easier at night knowing I can replace the internal storage in the event it somehow fries itself. Dictionary This is a feature I didn’t know I wanted till I used it. It’s a pretty big leg-up over reading physical books when I can easily hold down on a word I’m not sure about. I’m using the ebook-reader-dict project which is based on Wiktionary since that’s the one Plato recommends and is designed to work with. Unfortunately it’s a bit hit or miss. I’m not too happy about the quality of the definitions sometimes, I’ll probably look at alternatives at some point. Plato renders the definitions without any padding which looks a bit weird. I can probably fix this easily in the code later though. Feels good using open source software sometimes. Font For reading, I use the font Atkinson Hyperlegible which you might know from Cohost, but it’s also used by the very blog you’re looking at now! I’ve fallen in love with it as it’s really easy to read even when the text is very small. Very pretty and accessible. Discuss There’s no comment section here sadly — the UK’s Online Safety Act makes running one on a small personal blog more legal exposure than it’s worth.

10th Aug 2023 • 1 votes
Web Push Pitfall

Web Push Pitfall Posted on March 30, 2023 This post is from a legacy version of this blog! No changes have been made to the content in the migration, so things might read weird. Whilst implementing Web Push notifications for my toy Q&A service curiouswolf I ran into an issue that led to me being stumped for hours. I was successfully receiving notifications from my server when using Chrome, but no matter what Safari was not playing ball. Web Push requires the browser maintainers to run a notification endpoint. For example, when you use Google Chrome and you enable notifications on a page, your encrypted notifications get funneled through a server Google controls. In the case of Safari however, their endpoint was returning BadJwtToken for me despite it being considered valid by Google. The Solution It turns out that Apple (and Mozilla apparently) require you to include a sub claim in your JWT with a method of contact (such as an email) for them to consider it valid. If you are providing an email, the sub claim should be prefixed with mailto: { "sub": "mailto:[email protected]", // <-- The important part "aud": "https://web.push.apple.com", "exp": "1680135079" } The reasoning behind this is to provide the operator of the endpoint with a means of contacting you if there’s an issue. However, this technically goes against the Web Push spec, and it’s frustrating that something like this isn’t spelled out clearly in Apple or Mozilla’s technical documentation. Notice the emphasis on the word MAY Apple quite regularly leave important information out of their docs for web APIs like this, but it’s really messed up that the only place Mozilla talk about this is in a blog post from 2016. Discuss There’s no comment section here sadly — the UK’s Online Safety Act makes running one on a small personal blog more legal exposure than it’s worth.

30th Mar 2023 • 1 votes

More in technology

iPhone Duo early review

By a mile, the iPhone Duo has garnered more questions about what I think about it than any other phone I’ve ever had. It’s clearly a phone that has people intrigued, so I thought I’d jot down some loose, unorganized thoughts about what I think about it after about ten days. If I could sum all my thoughts up into one word, it’d simply be “fun”. I think for the vast majority of people, myself included, the iPhone 18 Pro is a more practical phone that through scientific analysis you’d likely even find a better phone. Even if they were priced the same, its package is more traditionally comfortable and ergonomic, with a better quality main camera, a helpful telephoto camera, a screen that’s more practical to use more of the time, a better biometric system (Face ID versus Touch ID) and a more established software experience. But damn if the iPhone Duo isn’t fun. Phones have been downright boring for so long. Incredible technology, lovely apps, but the hardware has been a bit slow moving since the iPhone X. Maybe that’s why I jumped onto the iPhone Air so readily. Even that slight departure from “black slab of glass” to “a dramatically thinner black slab of glass” was exciting versus what we’ve grown accustomed to. So I pick up the Duo, and it’s kinda just exciting to hold a phone for the first time in ages. Maybe that’s a honeymoon period and after a few months I’ll be over it. Maybe everyone who tries a folding phone for the first time experiences this. And to be clear, it’s not just all raw novelty. The fun aspect is fueled by having an absolutely incredible inner screen that fundamentally transforms what a phone is and can be. In addition, support the Apple Pencil has turned out to be phenomenally handy for me to be able to jot down quick thoughts and notes. For downsides, Touch ID is objectively worse than Face ID, but honestly, I don’t mind it as much as I expected I would. The smaller camera sensor than the Pro series phones is still decidedly great (rumors were it was a 17e size which was not correct, it’s the size of the normal 17’s). Software support gets better by the day, though iOS on the Duo is still decidedly a bit buggy at times. Other random thoughts Touch ID is objectively worse than Face ID, but honestly, I don’t mind it as much as I expected I would, previewing notifications is where I miss it the most After getting used to having a single speaker in the iPhone Air for a year, having stereo (not to mention great sounding) speakers is amazing The FaceTime camera on the inside is indeed not great for selfies/photography but honestly perfectly acceptable for FaceTime, and I’d definitely prefer this solution over a cutout on the inside so I’m happy! It definitely has a heavy feel to it, but it’s nothing honestly that bothersome A lot of the reviews said something to the effect of “the crease is practically invisible” and while I don’t really mind it or anything I definitely would disagree with that statement, you can see it a fair bit even with light content The hinge is a bit harder to open than I expected, I’ve found the secret is don’t pry from the middle of the side, instead put a thumb near the top and bottom (also helps prevent pressing Camera Control instead which I was doing all the time). I imagine this is necessary to have it be able to stop at arbitrary angles once open (which I do like) and hopefully it loosens up a bit with more use, but playing with Android foldables at Best Buy I did find their hinge easier to open I am really split on the inner, nano texture screen. It definitely helps reflections, has a neat look to it, and is super nice to draw on with the pencil, but it’s significantly less vibrant than the outer display which to my eyes looks a fair bit nicer. I think they made the right decision ultimately but it’s definitely not a zero-compromise solution. I was considering nano texture on my next MacBook but after this I think I’ll stick with glossy. My glass half full take with the Duo for now though is that we get two really cool screens to play with The outer screen is awesome for taking photos, unlike taller iPhones, your viewfinder fills the screen completely so it’s the largest feeling viewfinder I’ve used on a phone I miss the action button, nice little launcher for ChatGPT/Claude depending on which month it is Battery life is downright phenomenal versus my iPhone Air and 15 Pro (two devices admittedly not known for having great battery life) So, I don’t think the Duo is for most people who either don’t care much about phones, or care a lot about having the perfect phone, but for a decent amount of people in the middle I think the Duo represents a fundamentally different experience, that’s a ton of fun, and I’m excited to be excited about a phone again. (But, Apple, please figure out a way to add a telephoto lens.)

20 hours ago • 1 votes
Reverse engineering a vintage diode-transistor logic chip

Going through a collection of old parts, CuriousMarc encountered some ICs that he couldn't identify. He opened up one of these ICs, and I studied it under the microscope. After some reverse engineering, I determined that it was a logic chip that implemented four NAND gates using old-fashioned diode-transistor logic (DTL).1 The chip turned out to be the ST680A, a member of the Signetics 600 series of chips from 1965. In this article, I discuss the circuitry in this chip and how diode-transistor logic works. The die of the ST680A under the microscope. Integrated circuits can be packaged in many ways. One of the most popular is the plastic DIP (Dual In-line Package), a black rectangle of epoxy with two rows of metal pins. This type of package was invented by Signetics: "Introduced in late 1965, the 600 series was the first integrated circuit family to be offered in a solid, plastic, dual in-line package (DIP)." Earlier integrated circuits were packaged in round metal cans or in small flat-packs. In 1965, engineers at Fairchild invented the DIP, which had two rows of pins on 0.1" spacing. Unlike the surface-mounted flat-pack, the DIP had pins that were inserted into holes, making manual or automated assembly quick and easy. Because the pins of a DIP were on a regular grid, rather than the circular pattern of a metal can, circuit board design and manufacturing were also easier (details). The first DIP chips had ceramic packages. The plastic DIP, introduced by Signetics, was much cheaper and became very popular. An advertisement for the Signetics 600 series. From Electronics, March 21, 1966. The plastic DIP is less popular with me, however, because it is harder to open. With a ceramic package, I can simply tap it with a chisel and pop it open, but that doesn't work with epoxy packages. An epoxy package can be dissolved with nitric or sulfuric acid, but I try to avoid dangerous acids. Instead, CuriousMarc used Antoine's hot air decapping method. Unfortunately, the hot air technique doesn't always work. In this case, tiny bits of epoxy were stuck to the die, obscuring the circuitry. I used a few drops of boiling sulfuric acid to clean the die. (I'm okay with sulfuric acid in tiny quantities.) The die on its metal frame. The photo above shows the silicon die on its metal frame, the lead frame. The golden blobs are where the bond wires were attached to the die. You can see the doped silicon regions that form diodes and bipolar NPN transistors, as well as 16 resistors in the center, forming serpentine paths. Most chips have a passivation layer—a thin layer of silicon dioxide—over the chip. Inconveniently, this old chip didn't have a passivation layer, so the acid also stripped off the metal layer. (A few remnants are visible in the upper left.) Without the metal layer, I had to guess at how the components were connected to form logic gates. The die has very faint color differences where the silicon was protected by the metal, so that helped. Eventually, I came up with the diagram below, showing how the metal layer was probably configured. This wiring reveals that the chip implements four DTL NAND gates, which I'll describe in more detail below. One puzzle was that the chip has two unused diodes, indicated with question marks below. The metal layer for a quad NAND chip. I desaturated the image to make the labels clearer. Transistors, diodes, and resistors In this section, I'll explain how the patterns in the image correspond to components of the circuit. The silicon die is doped with various impurities to form regions with different electrical characteristics. These regions appear red or green under the microscope due to thin-film effects. As a result, the chip's transistors, diodes, and resistors are visible. The chip is made from bipolar NPN transistors, which have a completely different construction from the MOS transistors in modern ICs. In an NPN transistor, the current from the collector to the emitter is controlled by the current through the base. The collector is a large region of N-type silicon, silicon that is doped with atoms such as phosphorus or arsenic. Since these elements have one more valence electron than silicon, they give the silicon more negative charge carriers, so it is called N for negative. The N-type silicon happens to appear reddish. On top of the collector, the base is a thin region of P-type silicon, which appears green. This silicon has been doped with atoms such as boron or gallium, which have one fewer valence electron than silicon. The missing electrons form "holes", which act as positive charge carriers. Finally, the emitter is N-type silicon, on top of the base layer. These layers work together through semiconductor magic, amplifying the base current. Two NPN transistors on the chip. The second transistor is a larger output transistor. The chip's output transistors are slightly larger so they can sink more current. In the transistor on the right above, note that the collector contact wraps around three sides of the transistor. The emitter is also larger, with an L-shaped contact. According to the datasheet, each output transistor can sink 2.5 mA of current. The chip uses many diodes since it is diode-transistor logic. The structure of a diode is similar to a transistor, but without the emitter. In a diode, current flows from the cathode (P-type silicon) to the anode (N-type). A diode and a resistor on the chip. The chip uses 16 resistors, located in the middle of the die. A resistor is constructed from a long, thin region of doped silicon. Since silicon has moderately high resistance, a long strip of silicon acts as a resistor. Most of the resistors have a serpentine layout to fit a long resistor into a smaller area. These resistors consist of P-type silicon (green) in a "tub" of N-type silicon (red). The tub is connected to the positive voltage supply; since current doesn't flow from N-type silicon to P-type silicon, this isolates the resistors from each other. Operation of a DTL gate Logic gates can be created in many ways. The earliest integrated circuits (such as the ones in the Apollo Guidance Computer) used Resistor-Transistor Logic (RTL), where logic gates were constructed from resistors and transistors. In March 1962, Signetics announced the first family of commercial Diode-Transistor Logic (DTL) integrated circuits (details). By using diodes on the inputs instead of resistors, DTL provided better performance than RTL. However, DTL soon became overshadowed by TTL (Transistor-Transistor Logic), which was faster and used less power. (If you built digital circuits a few decades ago, you're probably familiar with the popular 7400 series of TTL chips.) The diagram below shows how the DTL NAND gate works. If both inputs are high, the current from the first resistor flows through the base of the first transistor, turning it on. The transistor amplifies this current, passing a much larger current from the transistor's collector to the transistor's emitter. This current goes through the base of the second transistor, which turns on the second transistor. The second transistor passes an even larger current from the output pin to ground, pulling the output pin low. The DTL NAND gate with both inputs high. The schematic is from the datasheet. This circuit is considerably more complicated than the DTL gate on Wikipedia. But if one of the input pins is pulled low, the current from the resistor goes through the diode instead of the transistor. The first transistor turns off, and without a base current, the second transistor turns off. The third resistor pulls the output high. Thus, the output is low only if both inputs are high: a NAND gate. The DTL NAND gate with an input low. I'll point out a few features of this circuit. The diodes on the inputs ensure that one input doesn't affect the other input. The diode in the middle raises the voltage on the first transistor's emitter, so it requires more voltage to turn on, reducing the sensitivity to noise. The output uses a resistor to pull the output high; more advanced circuits use another transistor. When the output is low, the third resistor is still "trying" to pull the output high, which is wasting power. Moreover, the resistor limits the output current, so the high output is fairly weak. In some DTL families, you can get gates with different values for the output resistor, so you can select the tradeoff between wasting power and having an output that is too weak. If you've used TTL integrated circuits from the 1970s, you know that chips usually have power and ground on diagonal pins: ground on pin 7 and power on pin 14. (Putting power and ground diagonally opposite both helps die layout and circuit board layout.) Much to my surprise, I found that the Signetics chips predate this standard and have ground on pin 1 and power on pin 8: still diagonal, but the wrong diagonal! The diagram below shows how the four NAND gates are wired in the chip. Pinout of the 680A quad NAND gate. From the databook. Three chips from one die When I examined the die under the microscope, I figured out the circuit, but I was puzzled by two extra diodes, as if two NAND gates had a third input that wasn't used. The explanation is that Signetics used the same silicon layout for at least three different chips, applying a different metal layer for different functionality. This saved money since it's much cheaper to produce a single optical mask for the metal layer than a complete set of new masks. Signetics sold semi-custom ICs to customers, using an approach called variFEBS (Variable Functional Electronics Blocks). This approach used a custom metal layer on top of fixed silicon, providing custom circuits without the cost of a full mask set. These circuits didn't sell well, but Signetics used the same approach for standard ICs. Pinout of the 670A triple NAND gate and the 616A quad NAND gate. All three chips have some similarities, such as using pins 2 and 14 as outputs. From the databook. One IC with the same silicon as the quad NAND gate is the 670A chip, which has three NAND gates, each with three inputs (above left). The diagram below shows how the silicon can be wired to provide this functionality. The hypothesized metal layer for the 670A triple-NAND gate. The layout for the triple chip above is a bit tricky because the top gate has inputs on both sides of the power (Vcc) pin. This creates a layout problem because the power and ground metal runs vertically to the resistors, blocking metal wiring from one side to the other. The solution is a "crossunder", a region of silicon that allows a signal to pass under the metal layer, connecting the inputs on the left to the rest of the circuitry on the right. This crossunder is visible near the top of the chip. Another chip with the same layout is the 616A dual NAND gate, with five inputs on each gate. Since this chip has 10 inputs in total (compared to 8 on the quad gate), this chip uses the two "extra" diodes that I spotted. If that isn't enough inputs, each NAND gate has an expansion input; by connecting external diodes to the expansion input, the gate can be made as large as desired. The hypothesized metal layer for the 616A dual-NAND chip. Some history The history of Signetics is closely tied to Fairchild. The story of Fairchild's founding is well known: in 1957, eight engineers—the Traitorous Eight—left Shockley Semiconductor and created Fairchild Semiconductor. Hundreds of companies (the "Fairchildren") were started by engineers who left Fairchild. Signetics was one of those companies, formed in 1961 and said to be the first company to exclusively design and manufacture integrated circuits.2 Signetics announced its first product in 1962, a NAND gate that cost $125 (over $1000 in current dollars).3 Not surprisingly, sales were weak. Signetics soon ran short of money, so in 1962, Corning Glass invested $1.7 million for 51% ownership of Signetics. Corning Glass may seem like a strange investor, but Corning was more of a high-tech company than you'd expect, making components such as resistors and glass capacitors, and later creating fiber optics. Moreover, in the early 1960s, integrated circuits were the hot area (much like AI now), and everyone wanted to get involved. In 1963, the Department of Defense pushed for contractors to use integrated circuits in new products. Riding this wave, Signetics became the leading producer of integrated circuits.4 However, Fairchild soon introduced a series of DTL chips that competed with Signetics. The Fairchild 930 series was faster than the Signetics chips and less than half the price, so Fairchild took much of the market from Signetics and dominated the IC market. Signetics also produced analog integrated circuits. Signetics is probably best known for creating the 555 timer chip in 1970, said to be the world's most popular IC, with billions sold.5 Signetics was acquired by Philips in 1975, and then Philips Semiconductors was spun off as NXP (Next exPerience) in 2006. NXP is currently the #10 semiconductor manufacturer worldwide, so the heritage of Signetics lives on. For more, follow me on Bluesky (@righto.com), Mastodon (@[email protected]), or RSS. Thanks to CuriousMarc for providing the IC and thanks to TubeTime for finding the databook. AI statement: Despite the presence of the em dash, no AI was used in the writing of this article (details). Notes and references After I had reverse-engineered the chip, TubeTime found datasheets for it, making my reverse engineering unnecessary. (See the Signetics Condensed Catalog 1969, Utilogic II Databook 1971, and Utilogic 2 Databook 1972.) We must have been unlucky with our original web searches since we didn't find anything. But this way you get to see what's inside the chip :-) The Signetics ST680A IC in its package. The large circular depression marks pin 1. From the date code, this chip is from 1971.  ↩ For more Signetics history, see Signetics Founding History, written by Lionel Kattner, a co-founder of Signetics. He states that the company name was inspired by the words "signals" and "networks", as well as the high-tech suffix "-netics". ↩ See History of Semiconductor Engineering, page 156. ↩ The book Making Silicon Valley describes the history of Signetics. It has a negative view of the Corning investment, saying that Signetics executives "Van Poppelen and Kattner dissented on the grounds that Corning was not a good fit for an integrated circuit company. In their view, Corning was a staid Eastern firm, ignorant about semiconductors and antithetic to the ways and culture of the electronics industry on the West Coast. Their view later proved to be correct." ↩ The 555 timer was created by analog IC wizard Hans Camenzind. If you're interested in analog circuits, you should read his book Designing Analog Chips, which you can download for free. ↩

yesterday • 1 votes
How Do Building Codes Affect the Price of Housing?

A great deal of effort has gone into understanding the regulatory burden on housing construction, and the extent to which it contributes to high housing prices.

3 days ago • 1 votes
Barracuda Networks is your new best friend (Barracuda Email Security Gateway Pre-Auth Remote Root RCE CVE-2026-116606 / CVE-2026-111560)

Yes, that's right! Today we're at the aquarium. Welcome back to yet another watchTowr Labs blog post. You can begin preparing your comments now. What Is A Barracuda, And Why? Must We? Barracuda’s Email Security Gateway solution (ESG) is no stranger to love, for

4 days ago • 1 votes
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in