FPGA design for Software Engineers, part 3

Last time we took a break from Verilog and hardware design to improve our build system. This time we’re back to Verilog and for our next FPGA project we’ll create a seven segment driver circuit that will allow us to output hex characters to a single display.

A seven segment display is a set of LEDs arranged like an eight plus a decimal point like you see on cheap alarm clocks and the like.

A typical seven segment display

Read More

FPGA design for Software Engineers, part 2

It’s been a while since the last article, but it was well received so thanks to everyone for the great feedback!

This time we’ll take a quick break from learning Verilog to set up a better simulation environment and build process using Cmake and Conan.

The next article, which is already basically written, will be back to hardware design, using seven segment displays.

Read More

FPGA design for Software Engineers

Over the last few years I’ve gotten more interested in electronics and FPGA design. I’ve also noticed that a lot of other software folks seem interested in doing the same, but often don’t know where to start. So, I think I have some interesting advice for software engineers that feel like dipping their toes into the hardware world from the point of view of a software engineer.

In this post I’ll go over FPGAs in general, the basics of the Verilog language, simulating a design and deploying it to an inexpensive TinyFPGA-BX board.

Read More

Bitfield widths in C/C++ structures

Recently, I learned about a feature in C and C++ that I hadn’t run into before: bit widths for fields in structures. The idea is that you can specify how many bits a particular field should have allocated to it. For example, you can have a field that is only 5 bits wide and therefore only takes values in [0, 32). You could then have a field that is 3 bits wide that is placed next to the first field in memory.

Read More

Passive and Active, Consuming and Producing

I was thinking recently about the different things I choose to do in my free time and which ones bring me the most enjoyment. I tend to have too many hobby projects going on at once and every three months or so, I naturally tend to cycle around. I realized I enjoyed my time the most when I had something to show for it: a written blog post, a finished circuit on a breadboard, or some module written towards some software project.

Read More

Wx 3.1 with embedded SFML 2.5 control

I’ve been working on a project where I wanted to embed an SFML drawing context in a wxWidgets window. I wanted to be able to write a GUI application, but didn’t want to have all of the UI be embedded within the SFML window using something like imgui. I thought it could be useful to others to have a simple example of how to do the same thing. Simple Example version I took the code from the SFML 1.

Read More

Electronics and great technical books on archive.org

I’ve been away from blogging for a few months and haven’t had much time for personal projects either. I recently moved from Vienna back to the US, now living in Denver. So far I’m loving it; it’s nice to come back after a number of years abroad, even if I will miss many parts of life in Europe. Getting into Electronics I’ve recently gotten into electronics more deeply than I’ve had a chance to do before.

Read More

Learning the Jouyou Kanji

I love learning languages and I’ve always had a soft spot in my heart for Japanese. I didn’t start out being good at learning languages. In fact I was pretty terrible. I’m not a polyglot or anything, but you tend to hear that same sentiment from most people online that have learned a second langage later in life. For instance, I took four years of Spanish in high-school but could still barely order a taco and a drink when push came to shove.

Read More

Setting up Let's Encrypt with Hugo

I finally got around to setting up HTTPS with a free TLS certificate for the blog. As I’ve mentioned before I mostly use Windows as my daily driver and love using WSL for a native bash/linux experience. Of course this isn’t flawless and sometimes this rears its ugly head. In particular Let’s Encrypts’ tool letsencrypt-auto won’t work under WSL. It seems to be due to a python package trying to execute code on the stack, which is a security vulnerability that WSL disallows, according to this github issue.

Read More

Multiple Android builds on Xamarin Forms

While working on a Xamarin.Forms based project I ran into the issue of wanting to have multiple builds of my android app differentiated by the build configuration. For instance, I want my normal build to point to the production server, but when I’m developing locally I want a different app that points to my local dev backend. I still want to be able to use the current production app and have a development version installed at the same time.

Read More