Dr. Kenny Ricks - Associate Professor, ECE; The University of Alabama
My interests in electronics and electrical and computer engineering began to grow during my high school years. However, it was not until my junior year in college that these interests really began to expand into thoughts of a career in the discipline. I guess this would label me as a “late bloomer” compared to most self-proclaimed “engineering geeks” who are taking the blender apart when they are six years old. But, I was totally sports oriented in my younger years, so I left the blender dissections to others.
When dealing with hardware, I really prefer the digital side of things. Therefore, I am totally in my element with a breadboard, some digital logic components, a power supply, a logic analyzer, and a multimeter. I completely enjoy the process of creating a prototype capable of collecting analog data using some type of sensor, converting the analog data to digital data, processing that digital data, and finally creating signals to actuate something in the real world based upon that data. This flow ultimately defines the functionality of most embedded systems.
I don’t really have a favorite software tool. I have worked with many different software development tools and environments. Matlab, Simulink, Quartus II, and SolidWorks are great engineering tools. When it comes to code development, I am probably a bit different than most engineers in that I equally enjoy writing high-level code using a powerful IDE or writing assembly language without tool support. I have even hand-assembled code into its machine language equivalent and manually created the binary executables to be executed on an embedded system having no development tools or operating system other than a basic debug monitor. The low-level details of an embedded system are really cool, and in many cases the abstraction of these details created by using high-level tools removes much of the engineering. I enjoy the low-level engineering, and it is necessary for engineers to understand these low-level details.
The trickiest problem (not necessarily a “bug”) that I have ever worked on was a data acquisition system with analog-to-digital conversion using a 16-bit converter, a 5 volt input analog range, requiring 16-bit precision. The low bit for this application represented approximately 75 microvolts, and it was basically impossible to eliminate enough noise to get all 16-bits of precision. I tried all types of prototype boards, custom PCBs, custom shielding, etc. to no avail. Even the 60 Hz lights in the lab would create 2-3 bits of noise in the output signal of the converter. I even abandoned the required physical dimensions of the circuit and resorted to any and every possible means to reduce the noise. Eventually, I moved the circuit into a shielded lab room, i.e. a bank vault with 6-inch thick walls and every type of EM shielding known, but I was still getting only 14-bits of resolution reliably. In fact, the 15th bit would toggle if someone walked by the outside of the porthole window of the shielded vault. After weeks of tying to shield the circuit from noise, the project lead engineer determined that the original requirements for the project were not realistic given the budget and physical requirements of the system and that 14-bit resolution was all that was necessary. The lesson I learned was to make sure requirements are well thought out before starting a new project. Don’t take requirements at face value. Make sure you understand exactly what the requirements mean to the project and their impact on the overall project.
My bookshelves are a hodgepodge of different things. As expected, I have lots of computer architecture books, digital logic books, embedded systems books, and real-time and parallel computation books. I even try to keep them grouped and organized by subject area, although not very successfully. My books range from 1980 – present since I am a packrat and don’t like to throw away books even if they are outdated. In addition to books, there are several shelves of lecture notes created and tweaked over the years. Then there are ABET specifications, some technical journals, a do-dad or two, a few small robot projects, and some students’ theses and dissertations.
It is not really a trick, but I am continually surprised at how few people use the systems engineering approach. This process advocates the decomposition of a large problem into smaller more manageable pieces. These smaller pieces are easier to handle and when completed their output can be combined to produce the overall desired functionality of the larger system. While this is a well accepted engineering methodology, most engineers I encounter (especially students) try to solve the whole problem at once. This leads to bigger blocks of circuitry or code to debug, longer testing times, fewer detected bugs, fewer intermediate results to build upon, and longer design times. This approach will add additional overhead to the project in the form of interfacing among pieces, but if the interfaces are well defined, the resulting benefits far outweigh the additional overhead.
My favorite project involved work done on the Automated Rendezvous and Capture system for NASA. This particular project involved development of an autonomous control system capable of docking two orbiting vehicles without pilot input. The work was performed at the Marshall Space Flight Center in Huntsville, Alabama while I was employed for NASA. This was a very cool project and involved some software and hardware development. The resources NASA had dedicated to this project were fantastic. These resources include the Flight Robotics Laboratory with its Flat-Floor Facility which is basically a huge air-hockey table used to float and maneuver full size mockups of the orbital vehicles under test. There is also the six-degree-of-freedom stuart table used for close range docking operations, and the Marshall Avionics System Testbed (MAST) simulation lab which has several state-of-the-art parallel computing platforms and a three-axis table. All of these facilities are linked via high-speed fiber to create a truly unique capability to simulate vehicle operations from launch through orbital operations to reentry and landing. Opportunities to work with such world-class facilities are rare.
Before joining the faculty at the University of Alabama, I worked for NASA for 15 years in the Engineering Directorate at the Marshall Space Flight Center. During this time, I worked on several really interesting projects mainly focusing on real-time simulation. Some of these projects included Automated Rendezvous and Capture, the National Launch System, and the X-33 project.
While at NASA, I was also a scuba diver in the Neutral Buoyancy Simulator for orbital operations training, specifically supporting astronaut training for shuttle and International Space Station missions. The most famous mission I was involved with was STS-61, the first repair mission to the Hubble Space Telescope.
I am currently an Associate Professor in the Department of Electrical and Computer Engineering at the University of Alabama. As a faculty member, I have found that there is never a time when I am working on just one project. In fact, most of the time I am working on too many projects. Primarily, my research falls into one of the following three areas:
Maybe the biggest challenge for this industry is addressing the shortage of U.S. engineers. The U.S. must increase its production of domestic engineers to maintain a leadership position in the world. However, this problem can’t be addressed by simply watering down the requirements of the discipline just to increase graduation rates. Instead, creative ways to capture the attention of a larger set of students are required, and improved educational processes are needed to help students master the material once they have entered the field.
There are many challenges facing electrical and computer engineering education that must be addressed. For example, the discipline is advancing at such a fast pace it is difficult to integrate emerging technologies into the curriculum. This also comes at a time when academic administrators are looking at ways to reduce the number of technical hours in the normal curriculum. Additionally, how does one integrate the use of technology into the classroom while maintaining and promoting academic ethics? How does the United States address its shortage of scientists and engineers by making the discipline more interesting to a larger group of potential students? Engineering education must address these and other issues in order to produce the number of qualified graduates that the US needs over the next few decades.
The top three areas in which ECE students need improvement are: 1) testing; 2) testing; and 3) testing.
I have talked to many different ECE faculty members and industry representatives across the country over the last several years and testing is by far the most common answer to this question. Testing is an acquired skill that applies to both hardware and software. Unfortunately, most students do not appreciate the need to test their creations. In many cases, code is “delivered” that has never even been compiled (not even once). Circuits are presented that have never been powered. Students seem to have no understanding of how to create an adequate set of test data including in-range and boundary values. If testing is done at all, it is done using the simplest data set possible, no documentation is produced to describe the test performed, who did the test, how many tests were conducted, how the test results were combined (averaged, summed, etc.), or what the test results mean. This is a significant problem that academic institutions are struggling to address in the curriculum.
I am a big sports fan. I particularly like football, basketball, and baseball/softball. I also enjoy various other activities like hiking, camping, fishing, scuba diving, and karate.