Restarting after long hiatus

It’s been several years since I’ve posted to my blog. Life has gotten in the way. Well, life has changed. As of May 1 (next Friday) I will no longer be an Intel employee.
Having kids, a full-time job, a wife and other interests can really keep one busy. Recently, it’s felt like life was passing me by and it’s been difficult to be present. I had already been talking to my management about cutting my hours, but then my division decided to offer voluntary separation to anyone who wants it. Since I’ve been with Intel almost 22 years, it’s a nice sum of change.
img007I’m not looking for a replacement at this time. I’m approaching the coming year or two as a journey of discovery. Other than internships or campus jobs, Intel is the only place I’ve worked. The world is a different place from 22 years ago. I still like writing my for loops. The question is what will they do and who will I write them with.
So I’m restarting my blog and I have a bunch of topics I’d like to write about:

  • img006At Intel, everyone is required to write a weekly update. The frequency is

Using usbasp and avrdude to program 89s52


I’m working on a project that requires the use of an 89s52. Well, it requires a 8051 footprint compatible part but I want In-System-Programability (ISP). So I need to be able to program the 89s52.

The cheap options for programming 89s52 parts are not that well documented on the web. More important, I already have a usbasp. Google’ing hints that it should be possible to program these guys with a usbasp, but there is lots of conflicting information.


Well, it is possible, but it requires some adjustments to the usbasp firmware and some additions to avrdude’s conf. The setup I’m describing is this post is one I’ve used to successfully program an 89s52 and an ATMega328p. Hopefully, no existing functionality is lost.

The firmware here has my changes.

I also have it here untar’ed:

This is my avrdude.conf file:


What did I do?

I started with the information here: In particular, it contains a link to a version of usbasp firmare that should work, but I wasn’t able to get it to work. I can’t really say I tried super hard. The issue I had was the it seemed incompatible with recent …

Updating the firmware of a usbasp


This post is mostly for my personal reference and my "regular" readers will probably not care.

I want to program a 89s52 microcontroller. I could buy a specialty programmer, but I already have a usbasp. The issue is that the usbasp that I have came with the original firmware. There’s a newer version that supports 89s52 chips. To update it, I need another programmer. I could buy a second usbasp but I don’t want to wait for it to arrive from the usual chinese ebay sellers. (cost is not the issue since they cost $3.77 delivered)

Instead, I’ll use my Arduino.

So here is the sequence of steps:

  1. open arduino SDK and load the ArduinoISP sketch from file->examples
  2.  compile and upload
  3. The comment section of the ISP sketch describes which pin is which.
  4. you need to connect the J2 jumper. In my case, I don’t have header, so I just used a piece of wire.
  5.  I found that it wasn’t obvious which pin of the ribbon cable connects to what on the usbasp
    1. If you’re looking at the ribbon connector, the tab is up and the ribbon goes left. Going from away from you to nearer, the connections are
Miles's thoughts