Some things in life you just have to experience to truly appreciate the value. One of these is auto-formatting/linting source code. When I started programming in Go in Vim, I naturally looked for editor support, and found the excellent vim-go project. Through this, I learned about gofmt and then goimports. These tools can be configured […]
During Embedded Linux development, we often need to write large operating system images to SD cards for testing. Recently, I purchased a USB 3.0 SD card reader from Plugable. Before that, I used a USB 2.0 SD card reader from IOGear.
Some time back, I gave a presentation that included an overview of the Git version control system. I still occasionally get asked why Git should be used instead of Subversion, as it seems harder at first. Most developers don’t really understand Git until they have used it for awhile, and then they will have an […]
Recently I needed to calculate NAND partition tables for a project where we will be supporting a number of different flash parts from 500MB to 2GB. I first tried this in a spreadsheet, but found it difficult to work easily with hex numbers and do the calculations I needed. I then looked into options for […]
As I work at the intersection of hardware and software, I spend a fair amount of time reading schematics for printed circuit boards (PCBs). I’m astounded at how sloppy most schematics are, and have come up with a few suggestions to consider.
Did you ever need a quick way to share files from a directory on your computer? Or perhaps transfer a large file to another person? With nodejs and express, you can easily set up a temporary web server that allows users to browse and access a list of files in a directory. For convenience, I […]
Currently, my workstation has two 8-port USB<->RS232 devices, one dual port USB<->RS422/RS485 adapter, and several single port adapters such as the very useful BUBII. So with around 20 USB->serial devices, figuring out which /dev/ttyUSBx entry corresponds to which port is not really practical. However, with udev in Linux, you can easily give static names to […]
The Linux kernel has a fairly extensive tracing infrastructure that is quite useful for debugging. There are a number of things you can do with tracing, but the focus of this article will be the traditional printk type debugging we often end up doing to trace initialization issues with a driver. The following links provide […]
When doing embedded Linux development, most of us spend out time tethered to a target system with a serial cable, which is used for a serial console. Minicom is the defacto serial terminal software for Linux. However, Minicom is a little fussy in that you typically have to set it up for each port you […]
Recently, I’ve been evaluating Qt Creator for general C/C++ development. I’m currently involved in the development of a rather large C++ application that is approaching 200,000 lines of code and 1000 source modules. In the past, I’ve typically used Vim for editing, and Eclipse as a gdb front-end when needed. Qt Creator is a rather […]
Recently when debugging a device connected to a rs485 bus, I needed a simple application to dump the raw data coming over the rs485 bus. Minicom does all kinds of weird terminal stuff, plus it will not display binary data, so that was out. While looking for serial analyzer programs for Linux, and pondering writing […]
As I often get involved in server administration (SVN, git, redmine, etc setup), I deal with Apache on a regular basis. For simple configurations, the default Ubuntu/debian config works well. However, for a more complex setup with virtual hosts, multiple IP addresses, and SSL support, it is common to run into the following message: mixing […]
Now that firefox (v3.5) has built in support for ogg videos, ogg is now the most convenient format for “easy to view” video files (assuming you don’t want to use a service like youtube). Some digital cameras (like my Canon) records movies in AVI format. I created a script that uses gstreamer to convert the […]
One task that is a often confusing to new OpenEmbedded users is how to capture changes to the source code for a package/recipe. First, lets review the progression in tools use to capture source code changes. In days of yore, developers often used gnu diff to capture modifications to a source tree. The typical practice […]
UPDATE: 2009-03-17 — It appears that hard drive issues I encountered are likely due to the HW RAID formatting on the drive I tried. I just tried a brand new hard drive, and Ubuntu 8.10 installed flawlessly, and everything works. I’m not sure why computer upgrades are always such an epic struggle for me, but […]