Jeff's Blog

Projects, trips, observations, etc.

  • Core Memory Part 2: 64-bit memory array

    I decided to build a modern version of an old-school core memory, for fun and to learn how they work. This article is about the design of the final memory array using a Lattice ICE40 FPGA as a SPI slave memory controller.

    Read more...
  • Core Memory Part 1: Single Bit Prototype and Ferrite Comparison

    I decided to build a modern version of an old-school core memory, for fun and to learn how they work. This article is about the initial testing I did with a single bit, and the measurements I took of the response for a few different ferrite materials.

    Read more...
  • SVG Vector Graphics in Python

    Here’s a quick example of how to generate vector graphics using python and the svgwrite package. This can be handy if you need to diagram something structured and repetetive, and it’s easier to describe in code than to draw by hand.

    Read more...
  • Seeking Altium Designer Alternative

    I’ve used Altium Designer for all of my board designs for over a decade. Before that I used Mentor Pads in college, but I’ve basically been a big designer fan since my first job out of college. I think designer is pretty great, and would happily keep using it except for one thing: It’s very expensive! Lately, I don’t have anyone paying my license fee, so I’ve had to branch out and survey other options. I’ve tried Altium CircuitMaker, AutoDesk Eagle, and the open source KiCad, and this article is about my experiences and conclusions.

    Read more...
  • Programmatic Layout with KiCad and Python

    For a very geometric/repetitive design, it may be easier to describe it with code than to place parts manually. To arrange LEDs at regular spacing around a circle, I used the KiCad python API.

    Read more...
  • How To Build A Reflow Toaster

    Using a toaster oven for DIY reflow is certainly not a new idea, but until recently I’d never done my own! I’ve been designing and building PCBs for well over a decade; but I’ve always either assembled them by hand — when the footprints are not too daunting — with an iron and the occasional hot air, or more often paid to have them professionally assembled. However, I have a project with some fine-pitch parts and pads underneath that I’m trying to do “on the cheap”, so I decided I would setup my own DIY toaster oven reflow to build those, and get some first-hand experience with reflow soldering.

    Read more...
  • Janissary: An Age of Empires II recording parser and analyzer

    Janissary is a python parser for multiplayer game recordings from Age of Empires 2. It generates an HTML report with embedded React application for interactively viewing stats about the game.

    Read more...
  • Advent of Code 2018

    Many thanks to Eric Wastl for putting together this year’s Advent of Code. It’s a great idea, and well executed. It’s been around since 2015, but I’ve managed to miss it until this year. The problems are fun to solve, and can lead to some good discussions among people talking about their solutions afterwards. I took the opportunity to work with a language I haven’t used much: golang.

    Read more...
  • M5Stack ESP32 Dev Board

    Despite their popularity, I’d never programmed an ESP32 until recently. So last month, when I needed a processor and dev board for a couple of projects I’m working on, I wanted to branch out from my usual suspects – AVR and STM32 – and try something new. One of my projects involves logging, so wifi is big bonus because I can log to a server and get time easily with NTP.

    Read more...
  • Vancouver Island: Tofino

    I’ve always heard Vancouver Island is beautiful. This summer we went to see for ourselves, and it really was a fun trip. Lots of beautiful wooded coastline. The BC Parks campground reservation system is pretty good, and there are a lot of places to camp. We managed to plan this in the summer on fairly short notice.

    Read more...
  • Hotel Edelweiss

    If you’re planning a trip to the Lauterbrunnen area and looking for a place to stay, I’ve got the place for you: Hotel Edelweiss in Wengen.

    Read more...
  • Toepler-Holtz Electrostatic Machine

    Back in May I had one of those fortuitous moments in an antique shop called “The Barn” in Santa Margarita, near Paso Robles. While there, I came across a couple old electronics books that I couldn’t resist buying: “Audels Handy Book of Practical Electricity” (1944), and “Audels Electric Motor Guide” (1967). These things are GEMS. The older, in particular, goes back to a time before electrical engineering as I learned it in school had been established, and reading it is like a time machine. It is detailed enough to be interesting, but the breadth is still huge. It covers all sorts of devices, electroplating facilities, generators/motors, wet cell batteries, and more. While perusing this book with glee, I came across a quick description of an electrostatic generating machine called a “Toepler-Holtz” machine. It wasn’t like a Van de Graaf generator, in that it didn’t rely on friction at all for static charge buildup; it is much more clever.

    Read more...
  • Nikon D90 Shutter Timing Measurement

    I’ve been working on some electronics and software to do precisely timed photography setups for capturing water drops. One of the issues I encountered was that I seemed to have a lot of unpredictability in the delay between when I fired the shutter signal and when the shutter opened. I took some measurements to find out what range of shutter lag I needed to account for when calculating trigger times, and once I got setup it quickly became clear that there were two delay modes I was seeing: a short, very predictable delay, and a much longer and much more varied delay. It didn’t take much longer to realize what the difference was between these mode, and that this was what was causing my problems:

    Read more...
  • Flaming Martini Photo Shoot

    This weekend, I made another attempt at photographing fire, and this time got much better results. I have seen some really cool burning beverage photos on flickr recently, and I wanted to try one of my own. I just happen to have a whole bunch of martini glasses laying around. When I put one in front of a white background and illuminated the background, it looked awesome, and I knew I was on to something. A key difference from the previous flaming ice shoot is a change of fuel: I used white gas that I had for my backpacking stove instead of the vodka I used last time. It burns MUCH better. I see now that I was an idiot for trying to do this with vodka. I also suspect that if I go buy some lighter fluid and try that, I may find that I am an idiot for using white gas, because the camp stove fuel burns DIRTY. It leaves a sooty grime very quickly, and I was constantly cleaning the glass. I hope (though I haven’t tried yet) that lighter fluid will burn cleaner.

    Read more...
  • Melting Ice

    I set out to capture a cool fire and ice shot tonight. I didn’t have a lot of success with that; I think I need a better burning surface, and maybe a better fuel. However, I thought the melting ice made a cool animated gif! The last chunk of each cube really went out in one quick pop. Not sure why that is.

    Read more...
  • Reverse Engineering Nikon CLS Remote Flash Control

    If you know me at all (or have read this blog much), you probably know that I’ve developed an interest in photography. I’m also an engineer, a good part of my job involves digital imaging, and the technical info I can glean from product manuals is unusually less than satisfying. They just don’t tell you, even remotely, how they work. So sometimes you just have to do a bit of reverse engineering to figure out how things really work.

    Read more...
  • Ten Most Beautiful Experiments

    I stopped by a Barnes and Nobles on a recent trip to Orlando, looking for something to read on the plane ride back home. I ended up walking out with “The Ten Most Beautiful Experiments”, by George Johnson (Amazon). Although I could have saved $10 getting it on Amazon (why does anybody buy books at a place like B&N if they aren’t in a hurry?), I don’t regret it. It proved to be a short and enjoyable trip (the former perhaps being a requirement for the latter) through MORE than ten groundbreaking science experiments over the last four centuries, describing how many of the basic facts we now take for granted about our world were tweaked out by clever and persistent experimentation. He tells a great story, without overwhelming it with too much tedium to put you to sleep, but enough that I felt like I knew what was going on.

    Read more...