<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/assets/pretty-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blraaz.me/</id>
  <title>blraaz.me</title>
  <subtitle>Miscellaneous shenanigans involving hardware and software</subtitle>
  <updated>2026-04-11T00:52:12-05:00</updated>
  <author>
    <name>Tristan Seifert</name>
    <uri>https://blraaz.me/</uri>
  </author>
  <link rel="self" type="application/atom+xml" href="https://blraaz.me/feed.xml"/>
  <link rel="alternate" type="text/html" hreflang="en"
    href="https://blraaz.me/"/>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <rights>© 2026 Tristan Seifert</rights>
  <icon>/assets/img/favicons/favicon.ico</icon>
  <logo>/assets/android-chrome-512x512.png</logo>



  <entry>
    <title>Another Mega Drive Emulator</title>
    <link href="https://blraaz.me/software/mega-drive/2026/01/05/orb-emulator.html" rel="alternate" type="text/html" title="Another Mega Drive Emulator" /><enclosure url="//assets/posts/2026-01-05-orb-emulator/image/orb-screenshot-header.png" type="image/jpeg" />
    
    <published>2026-01-05T19:04:20-06:00</published>

    <id>https://blraaz.me/software/mega-drive/2026/01/05/orb-emulator.html</id>
    <content src="https://blraaz.me/software/mega-drive/2026/01/05/orb-emulator.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" /><category term="mega-drive" />

    <summary>You may be wondering, have I been dead for a few years? The real fate is muchworse… I wrote a Mega Drive emulator. Yet again…</summary>

  </entry>


  <entry>
    <title>Blast Processing Retrospectives</title>
    <link href="https://blraaz.me/software/mega-drive/2023/07/15/blast-processing-retrospective.html" rel="alternate" type="text/html" title="Blast Processing Retrospectives" />
    <published>2023-07-15T19:29:40-05:00</published>

    <id>https://blraaz.me/software/mega-drive/2023/07/15/blast-processing-retrospective.html</id>
    <content src="https://blraaz.me/software/mega-drive/2023/07/15/blast-processing-retrospective.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" /><category term="mega-drive" />

    <summary>The Sega Mega Drive/Genesis is what started it all for me over a decade ago: itwas my journey into reverse engineering and bare metal programming.</summary>

  </entry>


  <entry>
    <title>Demystifying CryptoKit Signatures</title>
    <link href="https://blraaz.me/software/ios/2022/11/03/demystifying-cryptokit-signatures.html" rel="alternate" type="text/html" title="Demystifying CryptoKit Signatures" />
    <published>2022-11-03T19:12:19-05:00</published>

    <updated>2023-12-02T21:35:54-06:00</updated>

    <id>https://blraaz.me/software/ios/2022/11/03/demystifying-cryptokit-signatures.html</id>
    <content src="https://blraaz.me/software/ios/2022/11/03/demystifying-cryptokit-signatures.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" /><category term="ios" />

    <summary>Apple’s CryptoKitframework provides an easy-to-use interface to common cryptographic operations,including working with Secure Enclave keys. Signing data is easy enough, butturns out verifying signatures on the other side of the walled garden is easiersaid than done.</summary>

  </entry>


  <entry>
    <title>The Dollar Store Pax iOS App</title>
    <link href="https://blraaz.me/software/ios/2022/10/24/discount-pax-app.html" rel="alternate" type="text/html" title="The Dollar Store Pax iOS App" />
    <published>2022-10-24T18:20:37-05:00</published>

    <updated>2022-10-24T18:25:56-05:00</updated>

    <id>https://blraaz.me/software/ios/2022/10/24/discount-pax-app.html</id>
    <content src="https://blraaz.me/software/ios/2022/10/24/discount-pax-app.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" /><category term="ios" />

    <summary>With the official Pax app no longer downloadable from the App Store, I needed a new way to control my devices that’s a little more polished than the previous proof-of-concept Mac app I wrote. As it’s been a while since I last touched iOS development, I figured it’d be a fun challenge to write an app in a weekend.</summary>

  </entry>


  <entry>
    <title>Cooking PCBs</title>
    <link href="https://blraaz.me/hardware/2022/09/30/cooking-pcbs.html" rel="alternate" type="text/html" title="Cooking PCBs" /><enclosure url="//assets/posts/2022-09-30-cooking-pcbs/image/paste-2.jpeg" type="image/jpeg" />
    
    <published>2022-09-30T23:12:12-05:00</published>

    <updated>2022-10-23T21:02:21-05:00</updated>

    <id>https://blraaz.me/hardware/2022/09/30/cooking-pcbs.html</id>
    <content src="https://blraaz.me/hardware/2022/09/30/cooking-pcbs.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>A recent project required some QFN packaged components – not exactly easy to hand solder. Without a reflow oven at hand, I had to get a little bit creative.</summary>

  </entry>


  <entry>
    <title>Embedded Linux Adventures on STM32MP1</title>
    <link href="https://blraaz.me/software/embedded/2022/07/19/embedded-linux-adventures.html" rel="alternate" type="text/html" title="Embedded Linux Adventures on STM32MP1" />
    <published>2022-07-19T20:07:40-05:00</published>

    <id>https://blraaz.me/software/embedded/2022/07/19/embedded-linux-adventures.html</id>
    <content src="https://blraaz.me/software/embedded/2022/07/19/embedded-linux-adventures.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" /><category term="embedded" />

    <summary>With mostly functional hardware in hand, it was time to give the programmable load software some attention. And thus begins my journey into building an embedded Linux distribution.</summary>

  </entry>


  <entry>
    <title>Overengineering or Making Do? You Decide!</title>
    <link href="https://blraaz.me/hardware/embedded/2022/06/24/programmable-load-overengineering-or-making-do.html" rel="alternate" type="text/html" title="Overengineering or Making Do? You Decide!" /><enclosure url="//assets/posts/2022-06-24-programmable-load-overengineering-or-making-do/image/cover2.jpeg" type="image/jpeg" />
    
    <published>2022-06-24T02:12:40-05:00</published>

    <id>https://blraaz.me/hardware/embedded/2022/06/24/programmable-load-overengineering-or-making-do.html</id>
    <content src="https://blraaz.me/hardware/embedded/2022/06/24/programmable-load-overengineering-or-making-do.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" /><category term="embedded" />

    <summary>Faced with the prospect of another board revision and parts that became unobtanium, it was time to go back to the drawing board and figure out a way to use more readily available parts, while making the hardware more powerful and polished.</summary>

  </entry>


  <entry>
    <title>Programmable Load Updates</title>
    <link href="https://blraaz.me/hardware/2022/05/14/programmable-load-updates.html" rel="alternate" type="text/html" title="Programmable Load Updates" /><enclosure url="//assets/posts/2022-05-14-programmable-load-update/image/cover.jpg" type="image/jpeg" />
    
    <published>2022-05-14T14:48:37-05:00</published>

    <id>https://blraaz.me/hardware/2022/05/14/programmable-load-updates.html</id>
    <content src="https://blraaz.me/hardware/2022/05/14/programmable-load-updates.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>After a much-needed vacation, I’m back to working on my programmable load. Time to remember what parts worked and which didn’t for the inevitable ∞th revision.</summary>

  </entry>


  <entry>
    <title>Baby's First Programmable Load</title>
    <link href="https://blraaz.me/hardware/2022/04/13/programmable-load-intro.html" rel="alternate" type="text/html" title="Baby's First Programmable Load" /><enclosure url="//assets/posts/2022-04-13-programmable-load-intro/image/cover.jpg" type="image/jpeg" />
    
    <published>2022-04-13T18:20:37-05:00</published>

    <id>https://blraaz.me/hardware/2022/04/13/programmable-load-intro.html</id>
    <content src="https://blraaz.me/hardware/2022/04/13/programmable-load-intro.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>After trying to burn my place down one time too many, it’s time to retire my pile of power resistors for testing power supplies in favour of a fancy digital programmable load. Except obviously, I’m going to build it myself, and overengineer it to hell and back.</summary>

  </entry>


  <entry>
    <title>Task Failed Successfully</title>
    <link href="https://blraaz.me/hardware/2022/01/08/task-failed-successfully.html" rel="alternate" type="text/html" title="Task Failed Successfully" /><enclosure url="//assets/posts/2022-01-08-task-failed-successfully/image/68komputer-logo.jpg" type="image/jpeg" />
    
    <published>2022-01-08T23:20:37-06:00</published>

    <id>https://blraaz.me/hardware/2022/01/08/task-failed-successfully.html</id>
    <content src="https://blraaz.me/hardware/2022/01/08/task-failed-successfully.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>With the first revision of the 68komputer boards and the required parts finally in hand, I spent the holidays (inside, in the warmth) assembling one. While it didn’t completely work, it also wasn’t a complete exercise in futility and a waste of time.</summary>

  </entry>


  <entry>
    <title>It's not dead… somehow</title>
    <link href="https://blraaz.me/hardware/2021/12/21/68komputer-revived.html" rel="alternate" type="text/html" title="It's not dead… somehow" />
    <published>2021-12-21T21:23:37-06:00</published>

    <id>https://blraaz.me/hardware/2021/12/21/68komputer-revived.html</id>
    <content src="https://blraaz.me/hardware/2021/12/21/68komputer-revived.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>Despite what the general silence on this topic might imply, quite a few things have changed in the land of 68komputer since the last time I wrote about it. For one, there’s completely new hardware based around a 68000 with a full 16-bit data path. And, a boot ROM and firmware that’s a bit more… inviting.</summary>

  </entry>


  <entry>
    <title>Miscellaneous Updates</title>
    <link href="https://blraaz.me/meta/2021/12/07/new-theme.html" rel="alternate" type="text/html" title="Miscellaneous Updates" />
    <published>2021-12-07T19:57:54-06:00</published>

    <id>https://blraaz.me/meta/2021/12/07/new-theme.html</id>
    <content src="https://blraaz.me/meta/2021/12/07/new-theme.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="meta" />

    <summary>I was starting to have issues building the old theme due to out of date dependencies, so it was time for a fresh coat of paint for this place. Plus, I applied a few more bonus changes and improvements. Hopefully I managed all that with no broken links…</summary>

  </entry>


  <entry>
    <title>Emulashione: A Multi-System Emulator</title>
    <link href="https://blraaz.me/emulation/2021/11/08/emulashione-multisystem-emulator.html" rel="alternate" type="text/html" title="Emulashione: A Multi-System Emulator" />
    <published>2021-11-08T22:57:54-06:00</published>

    <id>https://blraaz.me/emulation/2021/11/08/emulashione-multisystem-emulator.html</id>
    <content src="https://blraaz.me/emulation/2021/11/08/emulashione-multisystem-emulator.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="emulation" />

    <summary>For a while, I’ve wanted to write a Mega Drive emulator, the original goal of this project. Pretty quickly it became apparent that it would be not significantly more work to build a generic system-agnostic emulator instead – either way I started from scratch – called Emulashione: the emulation framework with the nonsensical name.</summary>

  </entry>


  <entry>
    <title>Cooperative Multithreading for Fun &amp; Profit</title>
    <link href="https://blraaz.me/software/2021/10/13/cooperative-multithreading.html" rel="alternate" type="text/html" title="Cooperative Multithreading for Fun &amp; Profit" />
    <published>2021-10-13T00:06:57-05:00</published>

    <id>https://blraaz.me/software/2021/10/13/cooperative-multithreading.html</id>
    <content src="https://blraaz.me/software/2021/10/13/cooperative-multithreading.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="software" />

    <summary>Cooperative multitasking was the staple of early operating systems – as were system lockups due to poorly programmed applications not yielding control of the processor. While modern systems instead implement preemptive multitasking to sidestep these issues, cooperative multitasking still shines in certain applications.</summary>

  </entry>


  <entry>
    <title>Reverse Engineering Bluetooth Vapes 2: Electric Boogaloo</title>
    <link href="https://blraaz.me/reverse-engineering/2021/10/04/pax-protocol-electric-boogaloo.html" rel="alternate" type="text/html" title="Reverse Engineering Bluetooth Vapes 2: Electric Boogaloo" />
    <published>2021-10-04T20:36:41-05:00</published>

    <updated>2022-10-24T18:25:56-05:00</updated>

    <id>https://blraaz.me/reverse-engineering/2021/10/04/pax-protocol-electric-boogaloo.html</id>
    <content src="https://blraaz.me/reverse-engineering/2021/10/04/pax-protocol-electric-boogaloo.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="reverse-engineering" />

    <summary>After only forgetting I have a blog for a month (which is a record low… who knows, maybe we’ll get under the month mark soon) I finally got around to cleaning up and publishing my findings on the Pax Bluetooth protocol. If the idea of writing xblaze appeals to you, read on.</summary>

  </entry>


  <entry>
    <title>Reverse Engineering Bluetooth Vapes</title>
    <link href="https://blraaz.me/reverse-engineering/2021/08/29/bluetooth-reverse-engineering.html" rel="alternate" type="text/html" title="Reverse Engineering Bluetooth Vapes" />
    <published>2021-08-29T14:36:41-05:00</published>

    <updated>2022-10-24T18:25:56-05:00</updated>

    <id>https://blraaz.me/reverse-engineering/2021/08/29/bluetooth-reverse-engineering.html</id>
    <content src="https://blraaz.me/reverse-engineering/2021/08/29/bluetooth-reverse-engineering.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="reverse-engineering" />

    <summary>For quite a while, I’ve had a Pax 3, a Bluetooth LE-connected vape. It’s a great device, but the iOS app leaves a lot to be desired. Finally, I had enough and decided to set out to figure out how their communication protocol works; with the end goal of implementing my own app to control it.</summary>

  </entry>


  <entry>
    <title>Building an AHCI Driver</title>
    <link href="https://blraaz.me/osdev/2021/06/29/building-ahci-driver.html" rel="alternate" type="text/html" title="Building an AHCI Driver" />
    <published>2021-06-29T21:16:41-05:00</published>

    <id>https://blraaz.me/osdev/2021/06/29/building-ahci-driver.html</id>
    <content src="https://blraaz.me/osdev/2021/06/29/building-ahci-driver.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="osdev" />

    <summary>With much of the foundation for the internals of kush-os built, it was time to break from the confines of the small, size-limited boot RAM disk. This means reading Stuff™ from disk: so it’s time to write a driver for the AHCI to allow filesystem drivers to interface with SATA disks.</summary>

  </entry>


  <entry>
    <title>A Stupid (Simple) RPC Framework</title>
    <link href="https://blraaz.me/osdev/2021/06/13/stupid-simple-rpc-framework.html" rel="alternate" type="text/html" title="A Stupid (Simple) RPC Framework" />
    <published>2021-06-13T01:08:33-05:00</published>

    <id>https://blraaz.me/osdev/2021/06/13/stupid-simple-rpc-framework.html</id>
    <content src="https://blraaz.me/osdev/2021/06/13/stupid-simple-rpc-framework.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="osdev" />

    <summary>A common task for most system services is to export a set of actions that do something. Until now, this meant loads of manual boilerplate code, error-prone request serialization, not quite consistent C++ interfaces, and lots of subtle (and blatant…) bugs. So I set out to find an RPC framework for use in kush-os to handle all of this for me.</summary>

  </entry>


  <entry>
    <title>Building std::shared_ptr</title>
    <link href="https://blraaz.me/osdev/2021/05/29/building-shared-ptr.html" rel="alternate" type="text/html" title="Building std::shared_ptr" />
    <published>2021-05-29T21:42:13-05:00</published>

    <updated>2026-01-04T17:37:09-06:00</updated>

    <id>https://blraaz.me/osdev/2021/05/29/building-shared-ptr.html</id>
    <content src="https://blraaz.me/osdev/2021/05/29/building-shared-ptr.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="osdev" />

    <summary>I recently found myself needing reference counting semantics for arbitrary objects in kernel space. C++ libraries include std::shared_ptr and friends, but we don’t have the luxury of using that in a kernel. Thankfully, building a discount reference counting smart pointer isn’t actually all that hard.</summary>

  </entry>


  <entry>
    <title>Introducing Cubeland</title>
    <link href="https://blraaz.me/graphics/2021/04/13/introducing-cubeland.html" rel="alternate" type="text/html" title="Introducing Cubeland" /><enclosure url="//assets/img/2021-04-13-introducing-cubeland/quaint-world-3.jpg" type="image/jpeg" />
    
    <published>2021-04-13T16:20:13-05:00</published>

    <id>https://blraaz.me/graphics/2021/04/13/introducing-cubeland.html</id>
    <content src="https://blraaz.me/graphics/2021/04/13/introducing-cubeland.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="graphics" />

    <summary>Since I’ve had little time to write code the last few weeks, let’s take a look at some past projects: today, we’ll take a look at Cubeland, my take on the cube voxel world game genre, à la Minecraft.</summary>

  </entry>


  <entry>
    <title>amd64-Flavored Memory Management</title>
    <link href="https://blraaz.me/osdev/2021/03/29/amd64-memory-management.html" rel="alternate" type="text/html" title="amd64-Flavored Memory Management" />
    <published>2021-03-29T18:32:13-05:00</published>

    <id>https://blraaz.me/osdev/2021/03/29/amd64-memory-management.html</id>
    <content src="https://blraaz.me/osdev/2021/03/29/amd64-memory-management.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="osdev" />

    <summary>32-bit x86 is one of the worst CPU architectures out there – so it was only a matter of time until I got so fed up with the idio(t)syncrasies of this lovely architecture and took the plunge to port it to amd64.</summary>

  </entry>


  <entry>
    <title>Yet Another Microkernel</title>
    <link href="https://blraaz.me/osdev/2021/03/01/kush-yet-another-microkernel.html" rel="alternate" type="text/html" title="Yet Another Microkernel" />
    <published>2021-03-01T21:24:20-06:00</published>

    <id>https://blraaz.me/osdev/2021/03/01/kush-yet-another-microkernel.html</id>
    <content src="https://blraaz.me/osdev/2021/03/01/kush-yet-another-microkernel.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="osdev" />

    <summary>Thanks to the recent snowcopalypse here in Texas, I had a bit over a week with nothing but an old ThinkPad loaded with Intel reference manuals. So I did what any reasonable person would do.Start writing yet another operating system, of course.</summary>

  </entry>


  <entry>
    <title>68komputer: It Lives!</title>
    <link href="https://blraaz.me/hardware/2019/11/01/68komputer-it-lives.html" rel="alternate" type="text/html" title="68komputer: It Lives!" /><enclosure url="//assets/img/2019-11-01-68komputer-it-lives/cover.jpeg" type="image/jpeg" />
    
    <published>2019-11-01T22:49:55-05:00</published>

    <id>https://blraaz.me/hardware/2019/11/01/68komputer-it-lives.html</id>
    <content src="https://blraaz.me/hardware/2019/11/01/68komputer-it-lives.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>All the parts for the 68komputer came in, so it’s time to crack open a cold one, fire up the soldering iron, and curse whatever idiot designed this board.</summary>

  </entry>


  <entry>
    <title>68komputer: Parts Ordered</title>
    <link href="https://blraaz.me/hardware/2019/10/16/68komputer-parts-ordered.html" rel="alternate" type="text/html" title="68komputer: Parts Ordered" />
    <published>2019-10-16T03:22:09-05:00</published>

    <id>https://blraaz.me/hardware/2019/10/16/68komputer-parts-ordered.html</id>
    <content src="https://blraaz.me/hardware/2019/10/16/68komputer-parts-ordered.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>Most of the parts for the 68komputer have been ordered. Now the wait begins!</summary>

  </entry>


  <entry>
    <title>New Toys!</title>
    <link href="https://blraaz.me/hardware/2019/10/11/agilent-16702b-logic-analyzer.html" rel="alternate" type="text/html" title="New Toys!" /><enclosure url="//assets/img/2019-10-11-agilent-16702b-logic-analyzer/full.png" type="image/jpeg" />
    
    <published>2019-10-11T19:03:41-05:00</published>

    <id>https://blraaz.me/hardware/2019/10/11/agilent-16702b-logic-analyzer.html</id>
    <content src="https://blraaz.me/hardware/2019/10/11/agilent-16702b-logic-analyzer.html" type="text/html" />
    <author>
      <name>Tristan Seifert</name>
    </author>
<category term="hardware" />

    <summary>I’ve had a Saleae Logic 8 for a while, and it’s been a great debugging help. But sometimes, I find myself wishing it had a few more channels. It was time for my Logic to make a new friend.</summary>

  </entry>

</feed>


