Featured Engineer

Interview with Kerry D. Wong

Kerry D. Wong

Kerry D. Wong - Software Engineer and independent Electrical Engineer

How did you get into electronics/ engineering and when did you start?

I first got into electronics when I was about seven. One of my uncles was an electrical engineer back then and he asked me if I would be interested in getting into electronics. I thought it would be fun so I took a few boxes of the components he had gathered over the years home.

I was so intrigued by those resistors, capacitors, transistors and vacuum tubes and was quickly absorbed into the wonderful world of electrical engineering. I have never stopped tinkering ever since.

What are your favorite hardware tools that you use?

I have to say, analog multimeter remains one of my most favorite. Even though you rarely see analog multimeters in labs any more due to their inaccuracies, they have tremendous capabilities for being such relatively simple equipment.

For instance, you can estimate a transistor’s gain by holding the test leads at both emitter and collector ends and at the same time touching the base while the multimeter is in the Ohm range. By observing how far the needle moves, you can estimate the gain of the transistor. Also, analog meters are extremely useful when testing oscillators of very low frequencies. You can see the needle’s movements as the circuit oscillates.

Another important feature of analog meter is that you can use the it to estimate the voltage or current to be measured when they are out of range by observing how rapidly the needle moves when you touch the test points with the leads.

Best of all, analog meters are made of almost all passive components so they are extremely rugged.

What are your favorite software tools that you use?

I use Matlab quite often to create models and run simulations. Matlab is a great tool for numeric computation and system simulation in general and I have found it to be quite indispensable.

Also, I use NetBeans and Eclipse for most of my software development. I mostly favor open source software platforms over proprietary/commercial ones and I have been running my development environment on Linux for many years now.

I think one of the key reasons why Arduino has become so popular is due to its root in open source. The tool chain (avr-gcc), Arduino specific software (e.g. bootloader, libraries) and the hardware design are all open source, which means anyone can feel free to build their own and tailor the hardware and software to their own needs based on the original design. This has created a very vibrant community of users who constantly contribute to the development of Arduino.

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

I was recently working on an Arduino project using a triple-axis accelerometer (MMA8453Q) from Freescale. The accelerometer uses I2C to communicate to the MCU host. Since I was quite familiar with the protocol and had done have done I2C programming on a lot of other chips before I jumped straight into programming without reading through the datasheet.

But when I started testing the circuit, something weird occurred. No matter which register I was trying to query, I could only get 0×00 back as response. Normally I would have used a scope or logic analyzer to analyze what was being transmitted on the SCL/SDA line, but since I was quite familiar with I2C, my initial reaction was that the chip was somehow damaged during assembly — which is not that uncommon for these tiny QFN chips. So without doing any further testing, I assembled another board thinking that it would fix the issue. But during testing, the same problem remained.

At that point, I knew that this had to be something else. This time I went back to the datasheet and read the whole thing again very carefully. And sure enough, the datasheet says that MMA8453Q uses repeated start condition for read operations which is something the default Arduino I2C library does not support. After realizing this, I changed the code to allow the repeated start condition and everything worked!

So I guess the lesson learned here is that you should always read the datasheet thoroughly without any prejudice prior to your implementation and testing. And always follow the established testing methods (e.g. in this case taking a look at the SDL/SDA waveform would have spotted the repeated start condition right away). A lot of time and effort could have been saved in this case had I followed these guidelines.

What is on your bookshelf?

It’s hard to remember when was the last time I bought a paper-back book since everything is online these days. Sitting on my bookshelf are most of the text books from the time I was in college and graduate school. Like almost all engineering disciplines, the fundamentals in electrical engineering rarely change. It seems that my understanding of a topic deepens every time after I successfully applied the theory to a real world problem.

Besides text books, I have a lot of printed out datasheets and application notes on whatever project I happen to be working on at the moment. Most of the issues I ran into can be resolved by reading the datasheets and application notes carefully.

Do you have any tricks up your sleeve?

I guess hand soldering QFN and other fine-pitched chips without using any special tools — just a standard soldering iron and a protoboard — would be my trick.

Nowadays, many chips come only in QFN packages. Many hobbyists and enthusiasts shy away from these fine-pitched chips because they are hard to work with without using special tools. But with some practice, they can actually be soldered using the dead-bug style onto a standard protoboard (0.1 inch spacing) without any problems. I have a couple of tutorials on my site on how to do this. If you are interested, you can go take a look.

What has been your favorite project?

Crystal radio would be my all time favorite. It is simple to do, all you need is a high quality variable capacitor, a germanium diode, a pair of high impedance headphones and some magnetic wires. You can easily put everything together in less than half an hour. And yet you can learn a lot of things such as LC resonant frequency, Q factor, demodulation, etc from it.

I have made quite a few in the past and even to this day they are still fun to tinker with.

Do you have an experiential stories you would like to share?

I remembered roughly 20 years ago, I was making a shortwave transmitter with vacuum tubes. Due to the wiring and layout constraints, the transmitter had some parasitic oscillation problem. So I was trouble shooting the circuit. Then by accident my fingers got too close to the output air coil balun. I could feel that my fingers were burning! At the time I did not know much about inductive heating yet so I guess that was my introductory course.

Could you recommend a few electronics project for beginners?

Sure. I think a crystal set would be an excellent project to start with. It is one of my favorites. And 555 timer based projects would be my next recommendation. Using 555, you can build a lot of interesting and useful projects at relatively low cost, which is great for beginners.

If you want to get in to microcontrollers, I would recommend starting with an Arduino. The choice of Arduino is not because of its features – there are a lot of people who have very strong opinions on which MCU is the best and I do not want to get into that – but because the community out there. Community support is very important for beginners and with the ardent Arduino community you know that whatever the questions you may have, they will be answered by someone who has the experience.

What are you currently working on?

I am currently working on a machine vision project, I had done some extensive research in the field of signal processing when I was a graduate student so I thought I would use that knowledge to do some of my own research to keep my mind sharp. This project is still at its early stage for the time being, but I am sure I will be writing about it once the project comes closer to fruition.

Besides that, as you probably have seen from my blog postings, I am also working on many smaller projects that involve microcontrollers (AVR, PIC, 8051, etc.).

What direction do you see your business heading in the next few years?

I started my blog back in 2007 and I think there is no doubt that I will continue with my passion in the coming years. There are many interesting projects I would like to do and I would like to share my experience with my readers.

Hopefully, more and more readers will find my blog useful and educational.

What challenges do you foresee in our industry?

As circuits get more and more integrated, components are getting smaller and smaller in sizes. As a result, they become harder and harder to be effectively reused. This has created a huge environmental challenge.

Twenty years ago, if you disassembled an old TV, you could pretty much reuse all the components inside. And in fact those old gadgets were a great source for salvaging components among the hobbyists back then. But today, most components in consumer electronics are either too small or too functionally specific to be easily reused. If you have disassembled a cell phone, you will understand what I meant.

So all those old computers, cellphones and TVs have largely become electronic waste. While effective recycling programs can help reducing the the environmental impact by limiting the release of hazardous materials and preserving some of the precious metals, a lot of energy that comes from none-renewable sources is wasted during the manufacturing and recycling processes. This waste is only going to get worse in the immediate future as consumer electronics are evolving at a faster pace than ever.

Could you tell me a little more about your site?

I started my own website Kerry D. Wong roughly five years ago. During the first year or two I mainly used it as a place to write about programming and algorithms. But soon I realized that the website would be better utilized for me to share my experience in electronics with other enthusiasts out there since there were far fewer sites on DIY electronics than there were on programming. So that was when I started to shift the focus of my blogging material to microcontrollers and other electronics projects.

Since I have a master’s degree in Electrical Engineering, I though I would be able to give a bit more background information on the topics I wrote. So instead of just showing you my projects, I sometimes would go to great lengths to explain the whys.

What advice would you give to people who want to get started with electronics?

In programming, if you have some poorly written code the worst that can happen is either you lock up your machine or lose some data but usually neither case is catastrophic. When working with electronics, especially high voltage or high current electrical circuits however, without a clear understanding of what you are doing could result in serious injuries or property damages.

So I would encourage those who want to get started with electronics to start slow. Start out by reading a few books on the basic theory, then start building something simple. Move on to more complex projects only after you have mastered the simpler ones. Always do a thorough check before you turn on the power.

At the same time, do not be too worried about destroying a component or two when you are learning as long as you learn from your mistakes. I am sure that most electrical engineers have destroyed some things in their careers.

Finally, don’t be afraid to ask questions. There are a lot of engineers and enthusiasts out there that you can seek advice from. And you can find answers to most of your questions from a forum like the one on EEWeb.

Previous Spotlights

Click Here