Poking atoms with a really sharp stick

As a bachelor's project at my university, I along with five other students, made a special type of microscope called "scanning tunneling microscopy" (STM for short). The end goal was to try and see individual atoms. It involved many different subjects from physics to programming to electronics to control theory. The working principle is something called quantum tunneling. If you are interested in the working principles of this kind of microscope, watch this video.
The microscope uses a really sharp tip made of iridium wire. Surprisingly, this is something that can be made relatively easily by hand! Basically, almost any tip shape will work because 90% of the tunneling current that we are measuring comes from the outermost atom of the tip. So you can make sharp enough tips by just cutting the wire with normal cutters, while applying some tension force.
The next problem to solve is that the sample must be able to be controlled in three dimensions with atomic precision. This is done with a piezoelectric actuator. This is a round tube that bends/shrinks/extends very small and precise amounts when a voltage is applied.
In order to get an image, we control the system in what is called constant current mode. That means that we bring the probe so close to the sample that we get a tunneling current. Then we use an Arduino, running a PI control loop to adjust the z-axis of the piezo actuator to keep the measured current constant. And if we are able to keep the measured current constant, we know that we are a constant distance away from the sample! This is exactly what allows us to create an image of the sample. So by scanning the probe in the XY-plane and registering what Z-value we need to keep the tunneling current constant, we get a value for that pixel in the image! The PI loop is needed because the system is so sensitive that even thermal fluctuations cause issues if you do not compensate for it with a control loop.
Here are some of our best images. The first ones are of a gold sample. When you are imaging at this level you measure distances in Ångström, which is 0.1 nm. The last ones are where we tried to see atoms.