
This page in PDF |
David Smead
Dave started professional life designing low-level analog, digital and power supply circuits for digital voltmeters in the early 1960s. Toward the end of the 1960s he started programming computers for process control systems, both large and small. In the early 1970s, he was the technical lead for an automatic embossing machine deployed on the production line at General Motors, designing the electronics and contributing to the software. His major software contribution was a small, realtime, multi-tasking scheduler ...running on a Motorola 6800 microcomputer. In the early 1980s Dave was one of the key hardware and software designers of a redundant multi-computer system used for uranium enrichment. A double redundant fiber optic network interconnected up to 500 computers. Because of the bandwidth required on the network, a PDP-11 computer was used as the node controller and communicated with a mainframe via shared memory. At the heart of the node controller was Dave's task scheduler, this time the core was written in PDP-11 assembly language. After a couple years cruising in Mexico and Hawaii on a sailboat he built over a period of nine years, Dave returned to the U.S. and worked on several contract assignments including a NASA communications system, early schematic capture software, a graphical die-bonding program, and a data base application for programmable logic chips. Toward the end of the 1980's Dave co-founded Ample Power Company and has been instrumental in the hardware and software design since. These products combine low-level circuits, switchmode power supplies, logic, power switches, and microcomputers. Most recent products, including the EnerMatic Controller, use ARM processors from NXP. Dave continues to stay on top of the latest microcomputers with ARM and ARM/Cortex varieties his current favorites. The fundamental design of his realtime, preemptive, task scheduler hasn't changed since the mid-1970s when first written. Today, most of it is written in C with just a smidge written in assembly language to handle interrupts and register context switches. Fluent in Python, Dave allows task descriptions to be entered into a Python dictionary and a Python script then generates the task description tables in C. Other Python dictionaries generate C code for pin selection functions, direction registers and assert/negate functions. Dave has been a full-time Linux user since the end of 1994. As principal author he has published numerous articles and two books, Living on 12 Volts with Ample Power and Wiring 12 Volts for Ample Power.
|