Resume Update

My older actual resume

I am open to either contract or “permanent” employment status.

Time to brag. I am not afraid to admit I don’t know something. I am VERY good at picking up new technical knowledge. I know how to find and ask experts. I tend to learn another microcontroller assembly language well enough in 2 days. Expert takes a week. I also both read and write C and C++. I have accepted and done well in firmware efforts the first time I saw a part where my firmware had to clock data out of a part. Ditto key pads, key debounce, pressure gages, fire safety issues, low level LCD and LED display devices and more.

I.e. just because it’s new to me it’s not a problem.

Ideal projects:
- Monitor multiple temperatures providing host with simple access to temperatures.
- Keypad access control with possible logging.
- Inexpensive distributed sensor network.
- Air flow / temperature command and control.
- The brain behind a some kind of meter.
- That little stuff Windows and network people avoid.
- Coordinated motion control.
- Low level control for automated laboratory equipment.
- Slave to larger controller doing any of the above.
 

I am now officially retired but for two reasons am looking for new challenges
(1) I need to keep my technical mind active
(2) Retirement investments went bad in the downturn

I am rather expert making inexpensive 8-bit PIC microcontrollers do interesting things.

My PIC 16F57 code controls the pellet stoves pictured here. On this product I had to make NO hardware changes while greatly improving the operational characteristics of the stove. Among much else I regulated internal temperatures with a simple servo of my own design.

Sierra Products has an unannounced updated pellet stove product using two PIC 16F884 processors. This new pellet stove update features a 2 line by 8 character display. (The display and keypad had to be some distance from the main processor.) Writing the menu code was an interesting challenge. After several pages of state table diagrams went in the trash I decided on named states with state transitions controlled (mostly) by key presses.

Shortly before Christmas 2009 Sierra Products started their latest high tech product. Details here. I started coding Christmas day well before any details were firmed up. By January 6 I reached a stopping point. Details were needed and I waited. Sixteen days later I got details. The 16F1933 was not going to be used as I had requested. Several days later I had recast the code for the 16F884. And then I waited. It was February 17 before I got a circuit board. By March 17 the stove was ready for release to sales. That was a busy month with almost daily changes to fuel parameters. I also found out that the PCB guy was wrong when he said that the low fuel sensor produced a digital output.

For the above product I needed to read a thermocouple. I lookup up the type K thermocouple formula, put it into a spreadsheet and came up with a simple way to translate 10-bit ADC values into degrees F.

This project was the first time I had to drive a 7-segment display. It was never a problem. Mainline code built a segment display buffer. My 1 KHz timer interrupt cycled through the digits. Using the 1 KHz ISR assured that each digit was on for the same time preventing flickering.

This was also the first time I had controlled an AC motor. This was not going to be a problem except that variable speed was needed. This worried me. Asking around, I found one guy at control.com who said as long as you are driving a fan you can starve the motor and it will run slower. I had no problem controlling the motor triacs. Turn them on at the (AC line) zero crossing to minimize switching noise.

Before these PIC pellet burners I was involved in a telephony project that would have done well except that the billionaire ready to fund the project became a millionaire courtesy of AIG. Feeling broke he decided to fund another effort.

While involved in the telephony effort I produced a 8051 DTMF decode that could almost work within the unreasonable constraints of the poorly designed existing system. Even without my DTMF code the existing system never had telephone quality voice. I did a quick redesign proving (much to the relief of the hardware guy) that the existing hardware could produce good sound. Wrapping the call processing code around what I produced never happened. Had I been brought in earlier it would have worked well.

On that telephony effort I always said that the 8051 was the wrong processor. Limit was 8 nodes - effetely limiting the number of handsets to 5 or 6. The hardware guy and I started working with a 72 MHz ARM Cortex-M3 processor. We got the telephony sound generation, DTMF decode and the sound working but with no funding we moved on...

…to LED light bulbs. I wrote some demo software for a $0.50 PIC that did software PWM controlling RGB LED bulbs to produce color temperature at various levels of illumination. I wrote the same thing on a slightly more expensive PIC with 3 built in PWM channels. I assisted with (and will likely totally rewrite) a rolling light meter used to measure actual output from existing street lighting.

I wrote power factor meter code. (Energy Star has power factor requirements.) Here I sampled voltage and current many times over a integral number of full cycles doing what amounted to DSP work in a $1 PIC. So far that code has not been used. The real “fun” of that project was taking a cosine on that same 8-bit machine. It’s been a while but as I remember I produced power factor updates at several Hz.