Introduction: Warning this might make you feel OLD
My name is Steve Spano, my first electronics project was connecting a battery, two wires, and a flashlight bulb together when I was 4 years old. From the ages of about 6 to 16, I taught myself various programming languages (assembly, basic, and even C) on computers such as the Texas Instruments TI-994A, Commodore C64, Amiga 2000, and IBM 386. I also built several Heathkit electronic projects such as the “Solid State” radio receiver kit. How many of you have even heard of Heathkit?
I really wanted the Heathkit HERO 1 Robot, it was amazingly sophisticated with its Ultrasound object detection, movable arm, and 8-bit central processing unit. It even came with a radio remote keypad so you could program it directly in Hexadecimal Assembly! Could you imagine? Programming directly in hexadecimal with a keypad and no debugger at all? The horror! Amazingly, this little robot still sells for $1500 US on Ebay. I should buy one – I always wanted one – and it’s so cute!
For many years, before the Internet, if you could imagine such a time, I even ran a “BBS” service on a 9600 baud modem called the “Inter-Dimension” where we traded messages and Commodore/Amiga soŌware. My computer dream at the time was to save up $2000 dollars (a fantastically huge amount of money in 1995 for a 16-year-old) to purchase a 10 Megabyte hard drive for my Amiga 2000. If I could have had that hard drive, I would have had the best modem based BBS!
I grew up in Scranton, Pennsylvania (United States) and went to school for Electrical Engineering (University of Scranton) and achieved a Masters Degree in EE with a concentration in control systems from the State University of New York. My first job EE job after school was designing hardware for thermal printers used in cash registers and retail applications. The main project at my first EE job, in 1998, was to help update the company’s products from their 8-bit Intel CPU to a brand new 32-bit 50 MHz processor with a 16-bit memory bus. It was a large project involving software, hardware, and mechanical engineering teams. My second EE job was working for a company that designed storage area network systems. This was in 2001 and the big project for this company was to help design a series of SAN systems supporting the brand new 2 Gbit/s Fibre Channel interface. This was really fast, 2Gbit/s on fiber optic in 2001! How could technology get any better than that??
Senior Project 1997
I found out about the ElectronicsLovers page on Instagram and the administrators were seeking “Senior Project” papers to highlight on their page. No date was specified, so I thought I would submit my college senior year paper from 1997, mostly as a fun reminder as to how technology has changed.
When I was finishing my BSEE degree in 1997 at the University of Scranton, our senior year project was to design an Autonomous Robot that could navigate a maze. I immediately thought of the Heathkit HERO1; now I could attempt to build one at school and a much more advanced robot. Afterall, the Heathkit HERO1 was based on just a Motorola 6808 8-bit CPU with 4KB of ram (sidebar: today’s typical PCI-Express 1G Network Cards have a 64KB to 256KB buffer just for packet data alone).
The design architecture for my robot used a much more advanced Intel 87x196KC. This was a 16-bit CPU which provided 32KB of internal EEPROM memory for program storage but it only provided a total RAM memory of 512 bytes. The “C” compiler generated very unoptimized code which made managing the stack on 512 bytes a significant challenge, and there was no real-time JTAG debugger or any other type of debugger at all. However, the CPU did have an internal serial/UART which you could use to write simple character outputs to determine what the code was doing. Standard “C” function calls to printf/sprintf were not even supported on the CPU because the RAM memory was too small.
In developing the robot, various circuits such as motor control FET drivers were used to allow CPU control over a series of 12VDC motors so that the robot could move around in a room. A crude “Lidar” system was built using a laser LED, mirror, and detector. This allowed a simple “1 bit” view of the room ahead of the robot to be imaged. I also use the term “imaged” very loosely. A simple map of “on/off” for obstacles was created in about 32 bytes of memory. The CPU code then would try to determine if the robot was moving towards a gap or wall in the maze that it was trying to navigate through. During the competition, the robot was able to navigate the maze successfully. I even wrote a paper on the design of the robot and it won 2nd place in the IEEE Student Paper Competition in 1997 at George Washington University. The robot worked and they let me graduate with a degree in Electrical Engineering.
Senior Year Projects 2018
I was recently at the University of Scranton as an Industry Advisor to help provide ideas for the courses based on what Industry may need and what skills/technology are relevant for today’s engineering challenges. I asked one of my Professors about the robot projects and what students are doing now.
The University of Scranton still runs a robot competition for their Engineering students every year, but its now a regional and national competition. The robots that the students are designing are 100’s of times more complex. The current robots’ use Arm9/Arm11 CPUs such as the Raspberry PI. The students are writing “C” code that runs on Linux to interface directly to USB-HD cameras, allowing actual imagining on the robots. Combining Linux, Raspberry PI and the wealth of Open Source projects available through GIT and Google, the students then have access to image detection and recognition algorithms. During the development of today’s robot projects, the students can download open source algorithms, debug them with remote ethernet monitors allowing them to see every variable and single-step their code for debugging. Students then spend more time developing very clever navigation algorithms to try to give their robot a better edge during the competition.
After hearing this, I immediately responded “How Unfair!”. In my day, we had to store an entire image in 32-bytes and hand code a stack manager to allow our code to even run on the mere 512 bytes of RAM we were provided. Of course, the Raspberry PI isn’t even the “peak” of today’s technology – but it is light years beyond anything available in 1997. Not only is the hardware more sophisticated, but the debugging and development environments allow the students to focus on design rather than struggling with memory issues. However, some things remain the same. The robot still has to move. Although the students have access to some higher end CPUs, they still have to get a 3.3v port on a process to turn on/off a 12VDC motor. This brings the students back to circuit design for transistors and FETs, they learn how these basic components function and allow their robots to move.
I smiled and said the basics still apply, and the students recognize this. Sophisticated electronics still rely on the fundamental operation of single transistors; perhaps one on the outside of a CPU turn on a motor, or 5 Trillion of them on the inside of a CPU to process an image and navigation code.
So What’s Next?
My 3rd “Job” – which I still have today – is running my own Electronics and Software Consulting business. I started a consulting business in 2001 and it has definitely been full of work and unexpected activities. I have directly employed over a dozen people and we have worked on hardware and software projects ranging from power supply design, printer driver, image processing, network appliances, hard disk drives, and cryptography For me personally, I plan to focus more on my favorite technology item – Xilinx FPGAs.
Modern FPGA devices such as the Kintex/Atrix series bring together the best parts of hardware and software development; reconfigurable hardware, reconfigurable software, and simultaneous debugging. One particular project then I have been working on is for a mass spectrometer. In this particular design, there were many constraints for speed and data collection. One part of the fix was “just add another processor core”. Almost like magic, a single core device because of a dual-core device allowing partitioning of housekeeping tasks and time critical functions. The ability to reconfigure a physical device, such as an FPGA, with additional processor cores would have been hard to conceive in 1997. Modern FPGA devices allow you to do this all the time now.
I plan to return back to the University of Scranton later this year to talk to some of the students about current FPGA projects. I’ll be focusing more on them at my work; perhaps in the future, I’ll be able to mentor new engineers as they start to begin the first job of their new career. P.S. A “score” is 20 years. I had to look that back up again. I’m an Engineer, not English Major.
Appendix A – Excerpts from My Robot Paper or
“How Times Have Changed”
This Article has been Written by Mr. Spano’s, he is part of our team kindly Click Here if you want to Read His Biography.