RSSAmplifier

Blog

Grant Olson

grant-olson.netRSS feed ↗26 posts

Latest posts

You Should Be Using Pogo Pin Receptacles with Pogo Pins

There are many articles, videos, blog posts, etc, showing you how to use pogo pins to make programming and test fixtures for your electronics projects. But almost all are missing one critical component to make pogo pins work reliably: the Pogo Pin Receptacle. If you’re trying to build a fixture or jig that uses pogo pins, you should be mounting the receptacle part to your fixture, and not mounting…

Elegoo Saturn 2 - Do I remove the "Please press firmly on the build plate when tightening the screws" film?

TLDR: Do you remove the film that says “Please press firmly on the build plate when tightening the screws”? YES I started up a new firmware job at PomSafe a few months ago. Our products are small and have some detailing that isn’t suitable for my normal FDM 3D printers. I decided to finally break down and get a resin printer, which I had been putting off because I wasn’t sure how messy and…

I Built a Robotic Aluminum Can Crusher

I build a robotic aluminum can crusher from scratch, designing all of software and firmware components, doing 3D printing and laser cut aluminum, etc. Here is a video covring the entier project and some of my design philosophies. Enjoy! I also wrote detailed blog entries thorught the process: Building the Frame Stepper Drivers and Controls Development PCBA Towards Production Software Mechanical…

Can Crusher Part 5 - Mechanical Updates

Now that my software is in good shape and I can easily test out the can crusher, I’m starting to see a lot of problems with the initial design. This is expected. I just dove in and built the first prototype without much analysis. It’s time to take another pass on the mechanical design and get things whipped in to shape. Let’s take a look one problem at a time: The Can Will Pop Out of the Device…

Can Crusher Part 4 - Towards Production Software

At this point I have a working dev board that makes it much easier to write code than it was on the breadboard. I’m able to deploy code faster and the can crusher is less precarious, but development is still slow going. I’m going to start working on higher quality firmware, focusing on a control interface that allows me to send commands over UART to the board. This will make it much easier to try…

Can Crusher Part 3 - Development PCBA

At this point I’ve built out the frame for my can crusher, and I wrote a proof of concept stepper motor control program with a Raspberry Pi Pico and TMC2209 stepper driver boards. But the board was getting very delicate and fragile and didn’t have all the features to make it easy to develop better software and do testing. I decided it was time to do round one of a proper PCBA to make it easier to…

Can Crusher Part 2 - Stepper Drivers and Controls

Now that I’ve built a frame for my can crusher, the next big task is to write out the drivers to control the stepper motors and test things out. At this point everything will be on a breadboard. The goal is to make sure I know how the driver boards work, and test out the motors. It is not the production-level implementation yet. Basic Design Two independent stepper motors are on each side of the…

Can Crusher Part 1 - Building the Frame

I have some free time so I decided to do a project for fun where the goal was to build something from start-to-finish, doing as much as possible. All my public projects are software-only. Now that I’m doing more stuff with robotics, hardware, and consumer products, I thought it would be nice to do something to showcase all of those skills. The project is an aluminum can crusher. Not just any…

KC3MLC's Magloop for Amateur Radio

I finally built my own MagLoop and wanted to share plans, build tips, theory, and performance with everyone else who is thinking about trying to make one. The design is moderately portable and defaults to a 4 foot diameter loop. In addition, the loop can be swapped out for a smaller 2 foot loop to work higher frequencies up to 10 meters, and a larger 8 foot loop to get better efficiency on 30-80…

Using MiniCom with FlashForth on OSX

I’ve been spending some of my free time lately playing with Arduinos and Raspberry Pis. They are dirt cheap, have GPIO port exposed, and there are plenty of peripheral devices available from China for as low as 1 or 2 dollars. Controlling the hardware is different enough from my day job it makes a great engineering hobby. The Arduino IDE is nice if you’re trying to bring up some hardware quickly,…

Help! Google Adwords API Keys Stopped Working August 22nd!

[TLDR? Fix is at bottom of page.] We just spent two days debugging a problem with our google adwords API keys and finally got things working. We’re not sure if this problem is affecting people globally, but it was particularly difficult to debug so I wanted to get this information out there. Let me know if it helped you out. We’ve been using API keys to generate google ads for several years now.…

Universal History of Bitcoin Infamy

Presented at the Crypto For The Community Conference, Pittsburgh, April 2018 Slides for presentation..

Help! I fried my postgres install on homebrew!

Did you: Get an error about readline when running psql? Quickly do a brew upgrade postgres ? Think everything seemed fine until you rebooted your computer? At that point learn that postgres wasn’t running because of incompatible file versions? Enter a world of hurt when you started reading up on the fact that an upgrade from postgres 9.3 to postgres 9.4 required a manual DB upgrade? Experience…

Certificate Chains, Amazon EC2, and You!

Are you getting https sec_error_unknown_issuer Error in Firefox? Did you add https at your EC2 Load Balancer? Well then Amazon lied to you. We just dealt with a really frustrating error over at WebKite. Our site was suddenly broken with a bad ssl certificate, but only on Firefox. To make matters more confusing, things worked fine on all our Firefox installs in the office, but only blew up on clean…

Reason 938 to Make Sure Your Test Fails Before It Passes

Here’s a quick example showing why you want to see your test fail before you see it pass. This verifies that you’re actually testing what you think you’re testing. This rspec test was passing just fine before I realised I didn’t even test to see if the result was true: it "detects normal zip" do Geomancer.zip_code_only?("15217").should end I only noticed it when I wrote the next test which also…

Did Julius Caeser Predict the World Would End in 3268 AD?

One of the nice things about dynamic languages like ruby is the REPL. The Read-Evalueate-Print-Loop. Also known as the interactive console. In ruby you fire it up with irb . Sometimes it’s easier to fire this up to learn about the implementation than to actually ugh read the documentation. I was messing around with dates, and wanted to get an idea of how dates were formatted:…

Upstart Configuration for God

I thought I’d follow up my completely impractical post on god with a practical one. I needed to write an upstart script for god and couldn’t find any examples out there. Here’s what I ended up doing. Full Script # /etc/init/god.conf start on runlevel [2345] stop on runlevel [06] setuid webkite setgid webkite respawn respawn limit 10 60 env HOME=/home/webkite exec bash -l -c 'cd /opt/node/apps/god…

Process Management, Virtualization, Religion and God

Sometimes I think about things a little too much. In this particular case, I was configuring god to watch the components of our new software stack at WebKite. God is process management software that lets you start, stop, and restart programs. Most importantly it will automatically restart a dead process so I don’t get paged at 3:17 am on a Sunday. Software developers are known for coming up with…

What Does Yahoo BOSS Really Think of Cleveland?

We had an interesting problem at work. Any time a user did a location-based search, we returned the same result set: Lakewood, Ohio. It didn’t matter what the user searched by. “Beverly Hills 90210” returned Lakewood, Ohio. “221B Baker Street” returned Lakewood, Ohio. Lakewood is part of the Cleveland Metropolitan Area, and as such we’ll just refer to it as “Cleveland” for the purposes of this…

Using Your IronKey on 64-bit Ubuntu 13.10

The linux IronKey executable is 32 bit, so you can’t unlock the IronKey on 64 bit linux. The traditional fix is to install ia32-libs : sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install ia32-libs This no longer works. The internet tells us that this meta-package was removed so that you don’t install a bunch of garbage, and you should just install the specific packages…

Mounting Encrypted lvm Volumes From a Live CD

I once again fried my system and had to recover some files from an encrypted filesystem via a Live CD. It’s a frustrating experience. I tried both Debian Wheezy and Ubuntu 13.10. First, after you boot it will show an encrypted filesystem icon. If you click on that the system will prompt for your password. After you enter your password, it will complain that the partition is invalid and can’t be…

Nobody Cares About Signed Gems

This postmortem originally appeared on the rubygems-openpgp-ca.org site that contained a proof-of-concept system to crytographically sign ruby software packages so they could be authenticated on download. The system was developed after rubygems.org, the primary distribution network was hacked and compromised gems were uploaded. This was by far the most toxic experience I’ve ever had trying to…

It Begins...

I decided to move my main site away from Google Apps. I don’t think I plan to blog regularly, but Jekyll is quick and convenient, and the Lagom theme looks nice. Let the migration begin.

Setting up an OpenPGP smartcard and IronKey on Debian Wheezy

My computer just died. I threw the hard drive into another computer. Everything looked good until it tried to fire up X and then I just got a blank screen. You know what that means. Time to reinstall the OS. There were a few gotchas that I thought I’d document here. Live CD doesn’t mount encrypted partitions I run full disk encryption. After my computer died I wanted to grab a few files and backup…

How to Break Rails 3.2 But Not 3.0 on Linux But Not OSX

Over at WebKite , we finally got around to updating our rails stack to 3.2 last week. This was of course long overdue. But it’s one of those things that takes a non-zero amount of time, and doesn’t provide any immediately visible features, so we’ve been pushing it back. Testing went fine. Everything looked good. The code got merged to mainline. And our CI server decided it couldn’t run tests…

Using an OpenPGP Smartcard on Ubuntu 12.10

I’m currently adding a key continuity feature to rubygems-openpgp. It works similar to the way that ssh stores copies of known host keys, and warns you if the key has changed. This is the first time I’m trying to store any changes locally, and was a bit worried about the directories being created properly on Windows. So I decided to setup a VirtualBox install of Windows 8. My current hard drive…