TITLE: Software Article Index
AUTHOR: Chuck McManis
LAST UPDATE: 02-Jan-2013

Overview

The flip side of building hardware is writing software to animate that hardware and do the things it needs to do. Whether it is processing the signals from a noisy sensor, to creating decision trees for route planning. Software is one of the three disciplines of robotics.

It is the combination of hardware and software that make the robot do what it can do. This is a list in reverse chronological order of all articles which have, as their main focus, a software theme.

Article List

Read More ...
Retargeting the C Library

In the blink article I showed how to blink the LED on the butterfly board with a minimum of support from the C library. The “Hello World” of hardware. But sometimes you do want to use the features of C that are part of the C library, even when you don’t have an OS. Enter C library retargeting.

Read More ...
Blink, the HelloWorld of Hardware

These days programming an “embedded” chip is a much bigger endeavor than it was. This is because the price of 16 and 32 bit processors have plummeted to the point where it becomes trivial to get a “big” processor for even a “small” job, but there are costs to that too.

Read More ...
Black Magic Debugging

Working with embedded ARM systems using only a Linux system can be challenging but Blacksphere Technologies has come out with an excellent tool to help and its open source, so you change it to suit your needs.

Read More ...
Multi-byte Math on the 16Fxxx PIC chips

This is the story of finding a small bug in a multiprecision addition routine which leads to a reexamination of doing multiprecision math on the PIC16 architecture.

Read More ...
Booting an x86 PC for Robot Use

Early on in Robotics one way to get intelligence on board was to use a cast off PC or laptop. Some folks ran MS-DOS on these but others wanted to boot to the bare metal. I researched a bit about what the exact mechanism was to get from power off to running OS and found Ray Knightly’s work useful. I’ve captured them here since his originals are no longer available on his web site.

Windows 95b Boot Sector

This is a disassembly and analysis of the Windows 95 “b” (aka OSR2) boot program which is loaded on system boot.

Windows 95b (OSR2) Master Boot Record (MBR)

This is a Ray Knightly’s disassembly and analysis of the Windows 95 “b” (aka OSR2) master boot record (MBR).

Read More ...
PIC Programming with USB

Programming for “Flashing” PIC chips requires a programmer. Early work like David Tait’s Programmer depended on bit banging the parallel port of a PC, as parallel ports started disappearing, and serial ports soon followed, I looked for a way to program PIC chips via USB and found a kit programmer that could do just that.

Read More ...
Battlebots Weapon Systems Module

When I was competing in BattleBots we had a number of robots in various weight classes. These were typically controlled with regular R/C radios and those radios generated a standard servo control signal. I built a small board to convert that signal into relay activation.

Read More ...
Pulse Measurement with the LAB-X3

One of the things I needed to do for my electronic speed controller was to use the output from an R/C receiver to control it. Those receivers generate a pulse which normally drive an rc-servo so I needed to meausure pulses accurately. This article describes the way I built and debugged code to do that on the PIC chip.

Read More ...
Quadratrack: Using Mechanical Rotary Encoders

Input devices tend to consume precious I/O pins on your projects. A new breed of input device, the Rotary Mechanical Encoder, has come down in price (from the high $20 each range to under $5) so that you might consider using them. I set up a PIC program to do just that.

Read More ...
A PIC Based Electronic Speed Controller

This article was pretty famous for a while. Basically I built an electronic speed controller, like the ones used in R/C models, based on a PIC and four transistors. It has been copied many times, when I re-visited the topic I did so with the ServoGizmo.