Featured Engineer

Interview with Erik Cheever

Erik Cheever

Erik Cheever - Professor of Engineering at Swarthmore College

  • Image Credits: Eleftherios Kostans/Swarthmore College
How did you get into electronics/ engineering and when did you start?

I started experimenting with electronics in high school with encouragement from an older cousin. I used to stay up late at night reading the old TTL data book in bed and trying to puzzle out how some of the more complex devices worked. I marveled at the things you could do with a few 555 timers.

In my senior year in high school I built a computer using the RCA 1802 microprocessor, the first CMOS processor. It had only 256 bytes of memory, though I did later expand that with an additional 1 Kbyte (which cost about $100 in the early 1980’s). This computer didn’t have any kind of bios, monitor or assembler. Instead, the machine code program was entered using a hex keypad using direct memory access. I learned a lot about hardware and software using that system and I still have it in my office. When I took a programming class in the second semester of that year I was amazed with FORTRAN. You could do so much with just a few statements: variables with names, floating point variables, arrays of floating point variables! I was dumbfounded. Of course our debugging cycle was a little different than it is now. We would write our program on punch cards in class during the day, and that night somebody would drive the cards to the computer 20 miles away and we would get the results the next day. I remind myself of this now when I get impatient if it takes more than a few seconds to compile a program.

When/why did you decide to study Bioengineering?

When I graduated from college the economy was struggling, as it is now. The only sectors that were really hiring were the defense industry and the computer industry. For a variety of reasons I didn’t want to work for the defense industry, and I thought if I worked designing computers that I was likely to spend the rest of my career trying to make the next generation of computers ten percent faster than the current one. I decided on bioengineering because I thought that it would allow me to make a more immediate, and direct, positive contribution to society. Though I didn’t end up in a corporate engineering environment, and seldom teach bioengineering, I think my decision to work at a small school where teaching undergraduates is central to the mission of the college was very much influenced by those same considerations.

What do you enjoy most about teaching?

I enjoy the challenge of helping people to really understand new concepts. The main satisfaction that I get in the classroom is seeing “the lights go on” when a student understands something I am explaining. I am also fortunate enough to teach classes that are typically 8-12 students, and never more than 50. Outside of the classroom I enjoy working one-on-one with students as they take a design problem and work to solve it from beginning to end. It always astounds me how hard they will work to solve problems that they find interesting, and how clever they can be at finding solutions.

Teaching at a small school, how do you keep your knowledge and skills current?

I am fortunate that the college I work at is very supportive and has a generous leave policy. I am able to take the time to learn new technologies. For example, right now, I am writing code for an embedded web server for real-world monitoring and control using Microsoft’s .NET Micro framework, and also developing wireless Zigbee networks. I had no previous experience in any of those areas, but will now be able to bring them to my classes.

I also regularly attend industry sponsored seminars for design engineers given by companies such as Texas Instruments, Analog Devices, and the MathWorks. I find these incredibly useful, both as a learning opportunity and as a chance to gauge my own level of proficiency in the current state of the art.

What are your favorite hardware tools that you use?

I would have to say that my favorite hardware tool is still the oscilloscope. Most of the electronics that I do is still analog electronics, and it is hard to beat the oscilloscope for all-around utility. It is possible to tease a lot of information from a signal if you really understand the oscilloscope. It is also a great teaching tool. Beginning students can learn about basic concepts such as the high-pass filters involved in ac-coupling. More advanced students can learn about bandwidth and different triggering modes.

What are your favorite software tools that you use?

The software tool that I find most useful is MATLAB. I teach courses related to linear systems like Control Theory and Digital Signal Processing. MATLAB allows me, and my students, to explore problems much more quickly, and to explore much more complicated problems, than was possible when I was a student. This lets the student concentrate more on the conceptual difficulties of a problem, and less on some of the more mundane issues. For example, once a student knows how to sketch a Bode plot, it is of little use to have to sketch plots for every problem. I have also found that MATLAB is a useful tool for developing learning tools for students.

What kind of learning tools have you designed using MATLAB?

My first large-scale project was a tool that not only draws a Bode plot, but helps students learn how to sketch Bode plots. The program takes a transfer function and breaks it down into its constituent elements (poles/zeros, etc.) and then shows the individual asymptotic approximations for each element. I have created a similar program for the root locus. Instead of simply drawing the root locus, it explains how to apply the various rules for sketching the root locus by hand to any transfer function the student chooses. I am currently working on the most complex yet – this is a program that animates the process of drawing a Nyquist diagram while also describing its shape. I expect to finish that sometime this month.

What is the hardest/trickiest bug you have ever fixed?

Early on in my career, before I had access to much debugging hardware, I built a circuit that worked only sporadically. One day I left it on my car’s dashboard, and when I brought it in, it worked fine for about an hour. I deduced it was a temperature problem and figured out which IC was the culprit by rubbing each one to warm it up. It was like the genie’s lamp; if you knew which IC to rub, you could get the circuit to work.

More recently I was working on a muscle stimulator used on some experiments with dogs. These were attached to the dog via a special vest. One of the units was returned to me because it had failed. It worked fine when I tested it, but my collaborators insisted that it had failed. On closer examination the case had some teeth marks. It turns out the dog would bite the device, and this would force a crystal inside to short out some traces on the printed circuit board. This is not one of the failure modes I usually consider.

What have you been reading recently?

I tend to read a mix of fiction and non-fiction/technical works. The fiction that I’ve read recently includes “Freedom” by Jonathon Franzen, “Squirrel Seeks Chipmunk: A Modest Bestiary” by David Sedaris, and “A Visit from the Goon Squad” by Jennifer Egan. Non-fiction books include “Running with Scissors” by Augesten Burroughs, “The Bible: A Biography” by Karen Armstrong and various books about Microsoft’s .NET and the .NET Micro Framework.

Do you have any tricks up your sleeve?

This is not really a special trick, but over the years I have developed skills that help me to learn new material quickly, and it is based partly on work done in the engineering education field. When I understand a specific technical area, I understand it in a global sense – for example, how the concepts are related to each other. So, in the past, when I tried to learn something I would attempt to understand the global context and learn the specifics from there. I have found, however, that I actually learn material in the opposite way. So when I want to learn something new I try to find the simplest example that I can. I apply as many “what if…” scenarios that I can to make sure I really understand the problem. Then I make the problem a little more complex, and repeat. In this way I develop a solid intuitive understanding of the concept. When solving a problem I like to have some idea of what the response should look like before applying any math. This is especially important when using simulation software like MATLAB or SPICE. Simulation software is extremely useful, but it can also fail spectacularly. If you understand the problem, these failures are more much more likely to be caught.

Do you have any note-worthy engineering experiences?

I always tell my students that if they aren’t careful they can make an LED into a smoke or fire-emitting diode, and that they can make almost any diode a light emitting diode, but only once. I remember I was helping a student debug her senior project. I took the oscilloscope probe and touched her circuit, which immediately went up in smoke totally destroying the project. The grounded guard ring on the probe hit a live wire.

Just last summer I was debugging a circuit I had built that switched 120V between two sources (the power lines and a backup source). The first time I tested it there was a small short caused by one strand of a multi-stranded wire. This caused a big flash and boom. A quarter inch trace on the circuit board that was under the switching relay had vaporized. I did some continuity testing, connected some jumpers, and hooked it up again: flash, boom. It turns out the vaporized connection had sprayed enough copper and solder around that several short circuits, under the relay where they couldn’t be seen, were created. The circuit eventually worked, but it was a long couple of days. Another circuit built from an identical board worked flawlessly.

I think now would be a good time to change the subject before I reminisce too much more.

What are you currently working on?

Some of the projects I’ve already spoken about: embedded web servers, wireless networks, and the MATLAB-based Nyquist diagram tool. I have also been developing some other web-based learning tools. One is a scripting system to allow for the easy development of animations and simulations of linear systems. With only a few lines of code it is possible to create an animation of systems with masses, springs and dashpots, or electrical and thermal systems. The other project is a textbook-like set of web pages for a linear systems class. What makes this unique is that the text is built around a graphical “topic map” that I hope will help the students better understand how the topics in the class relate to each other. I will be using this in the classroom for the first time in the spring semester, and I’m looking forward to seeing how the students accept it.

What challenges do you foresee in our industry?

I think one of the major problems is getting enough young people to be interested enough to pursue an education in a technical field. Even if these students don’t follow a career in engineering or technology I think that the mindset of an engineer, focused on interdisciplinary, collaborative problem solving, can be useful anywhere. It is also important to have technically literate people in as many different areas as possible. Allowing people who are ignorant, even willfully ignorant, of broadly accepted scientific theories and methods to be in charge of science education and technology policy is a frightening thought, especially in light of how fast science and technology are progressing.

Previous Spotlights

Click Here