In the electronics lab, five guys huddle around an oscilloscope, a breadboard, and a computer. Writing code down to the metal, our circuit on the breadboard submitted to all of our orders, as servants to a benevolent king or to a ruthless dictator.
For a week I was an extern at Sigenics, a company that designs and supplies application specific integrated circuits (ASICs). Sigenics has two facilities. The main headquarters is located in Chicago and an additional branch is in Irwindale, California. I worked at the California branch with Douglas Kerns* (parent of Lydia Kerns, '16) one of the founders of Sigenics, Marcus, the senior technician, and fellow externs like me.
ASIC chips have many uses. For example, there are special ASIC chips in bitcoin miners, cellular phones, electronic sensors and timers. Companies and researchers contact Sigenics to make ASICs, or custom electronic parts for them.
Microcontrollers (MCUs) are one of the many building blocks of ASIC chips and they automate tasks, according to the firmware, or code written onto it. At Sigenics, we learned how to write C code for MCUs and as electrical engineers (for the week), we perused the intricacies of the silicon devices, finding out how combinations of the MCUs pin states and its correlated bytes translates to different actions conducted by the MCUs. This type of programming can be both frustrating and enjoyable because of the low level details that are involved. The programming language C is already bug-prone. The additional complexity of managing bytes makes MCU programming like walking on a tightrope. On the bright side, there are neat hardware tricks like interrupts that allow for fast, efficient code. Imagine if you couldn’t type and move the mouse at the same time! In sum, the MCUs are really tiny computers on a single chip and ASIC chips use them to create devices that complete a certain task efficiently.
One of our tasks for the week was to test approximately eight hundred ASIC chips that were going to be sent to one of Sigenics's customers. These ASIC chips were going to be implanted in two buoys in oil tanks in the ocean. One buoy floats at the level of water, the other at the level of oil. The ASIC chips contain coils of wire and a magnetic stick besides the tank would generate voltage in the chips due to electromagnetic induction. The stick then determines the levels of oil and water from the location of the bogeys and it also remotely powers the ASIC chips.
Using a testing fixture and a program made by Marcus, we separated the good chips from the useless. The manufacturing techniques provide approximately a 90% yield rate, so we were looking for the eighty-some bad chips. An unexpected problem arose however. One of the chips repeatedly crashed the program whenever we would try to test it. After long deliberation, Marcus figured out the problem and was able to fix it, though one of the tests that the firmware conducted had to be removed from the test fixture. That test caused the rogue ASIC chip to draw more current than it should have, some of which was meant to be directed towards other parts of the test fixture. Thus, the test fixture's test would not run and the program on the computer was then waiting for a test result that was never recorded, causing the program to crash.
Over the course of the week, I also had the opportunity to conduct hands on experiments with circuits. For example, we learned how to solder electrical components onto a printed circuit board (PCB).
PCB’s consist of a board of some insulating substrate and a layer of copper foil over the board. The unwanted parts of the copper are etched out and the needed electrical components are then soldered onto the board. The solder provides connectivity for current through the components and holds them in place too. In a large-scale process expensive machines do the soldering, but it can also be done by hand with a soldering iron, though the process is meticulous. Soldering by hand is tricky. The components can be very small and are easily moved out of place. A bad soldering job will short out the circuit and cause the device to fail. Finding the bad connection requires painstaking effort because chips and circuits house hundreds and even thousands of connections, so you want to get it right the first time. Microscopes help you check your soldering jobs and for extremely small chips, they're necessary.
As a souvenir, we were given a circuit with a microcontroller and a USB connector to continue using the engineering skills we learned after the externship. Every physics major dreams of building their own little computer. A belated, but much appreciated Christmas present, with a pretty blue LED light for debugging!
*Look for Reed Summer Internship Advantage Intership at Sigenics with Douglas Kerns this summer