Home-Built STM

This project is my attempt to build a low-cost scanning tunneling microscope (STM) capable of atomic resolution imaging in air. The piezo scanners typically used in STM typically cost at least hundreds of dollars. Some time ago I came across John Alexander’s simple STM project, in which he used a cheap piezo buzzer element with one of the electrodes cut into quadrants to enable XYZ motion. This type of scanner is less rigid than what is usually used for STM, but I decided to give it a try and see how far I could get with it. Turns out I was able to image highly-oriented pyrolytic graphite (HOPG) with my STM with atomic resolution! The image below shows the hexagonal lattice structure of graphite.

Overview of the technique

STM is a tool capable of imaging surfaces with atomic resolution. In STM, a sharp metallic needle is brought within a few angstroms of the surface of a conductive sample and a small bias voltage is applied across the gap. If the gap is small enough (<1 nm), electrons can cross the gap via quantum tunneling. This “tunneling current” is typically in the pA – nA range, and can be measured with a transimpedance amplifier. The STM tip is mounted on a piezoelectric scanner, which is capable of sub-angstrom motion in all directions. The tunnelling current measured by the transimpedance amplifier is fed into a feedback loop which controls the voltage applied to the Z-axis electrode of the piezo scanner and acts to maintain a constant tunneling current, and therefore a constant tip-sample distance. The X and Y axes of the scanner are used to raster scan the tip across the sample. By measuring the Z-axis voltage as a function of scan position, an image of the sample topography is constructed. If the tip moves closer to the sample surface, the tunneling current increases exponentially. This exponential relationship is what makes STM sensitive enough to resolve individual atoms, even under ambient conditions. If the STM tip is atomically sharp (not as hard to achieve as you might think!) then nearly all of the tunneling current will flow through the single atom on the tip which is closest to the sample surface, resulting in images with atomic resolution.

For more about this project, click one of the links below or in the top menu:

77 thoughts on “Home-Built STM

  1. Hi Dan,

    Great work on the STM, it’s truly an impressive design.
    I’m trying to build an STM based on your design, and I was wondering if you could provide more details on the power supply? Where is the power coming from, and is a 9V battery enough to power the STM?

    Thanks and regards,



    • Hi Ian,

      Thanks! For the power supply I’m just using a 78XX series linear regulators powered from a transformer to provide the +/-15V, +5V rails. The +3.3V rail is derived from the 5V rail using an LM2937-3.3. Send me an email if you want more details.



  2. Hi Dan,
    Is it possible for the STM scan head to be made of wood instead, or would thermal expansion be too much of a factor?



  3. Hi, it seems the Teensy 3.1 has been replaced by 3.2 (Adafruit, Sparkfun).
    Does it change anything on the project ?


  4. Thanks for helping, Dan!

    I’m thinking about replacing the OPA4227 in the analog output circuit with OPA4134, since it’s a bit cheaper, but still better than TL074. Is there any problem?
    Also, the piezo driver uses two OPA2227 instead of a single OPA4227, any reason for this particular configuration? Maybe I’ll put an OPA4134 in place of those too.
    One last doubt: shall the amps be replaced this way, may I keep the same resistor and capacitor values?


  5. Hi Dan,

    Really awesome project! I was hoping to make a simpler version based on yours with a professor from my university, where we have a nanomaterials study group. But before starting, I need to know which components are a must. Reading your previous answers here, I’d say these:
    – Teensy (using internal ADC)
    -DAC8814 or DAC8565
    -The whole piezo driver (OPA2227, resistors and capacitors)
    -Preamp (OPA124)
    -Further amplification: LT1469. I didn’t fully understand the role of ADG419 (which seems to be a digitally controlled switch) and the other OPA2227 in the Data Acquisition schematic.

    I don’t know as much electronics as you and we’d like to avoid going too high on budget, so we thought of starting with something bare bones and improving (like reducing noise or getting better resolution) later. I’d really appreciate if you could help.



    • Hey!
      Don’t know whether you’ve already seen this, just an update. I hadn’t noticed, but you explained we could skip all ADG419s and the OPA2227 in data acquisition, now things are getting clearer. Just a small question: would using NaOH instead of KOH work for tip etching?


      • Hi Vitor,

        Yes, you can definitely leave out the ADG419s and OPA2227 in the input stage, I just put them there to allow switching to an external feedback signal (which I’ve never used).

        If you’re looking to shave costs, the DAC8565 is probably a good choice but keep in mind it has ~20X the output noise of the DAC8814 given the same output range. Another thing you can do is replace all the OPAx227 and LT1469 with TL07x. I’ve tried this and haven’t seen any apparent decrease in image quality. The noise contribution of these op-amps is still insignificant (< 1 pm) if the bandwidth is kept low enough (I'm using 2 kHz on the piezo outputs now).

        NaOH should work fine for tip etching, but I'd start with just using wire cutters. All the images I've posted here were acquired with mechanically-cut tungsten tips (but on VERY smooth samples! etched tips should help with rougher samples).



  6. Hello!

    Now I am attempt to build STM with your design. Your work is really awesome, but I have some questions related power source.

    I want to use SMPS as power supply, is it possible? and also i want to know it’s optimal current output to operate STM 😀



  7. Hey Dan,
    I was thinking that I have a laptop with an audio codec (which has an ADC and DAC). Do you think a custom software driver could be used to use these for an AFM? Because I realized they have high resolutions good enough for the afm positioners and reading the amplified sensor signal. And why buy external ADC and DAC if there is already some in my computer! However, I am scared an audio codec may not be suitable for DC electrical signals.. or something. I am wondering if you see a problem here? Thanks


    • Hi Ryan,

      I wouldn’t recommend it and don’t think it would work. Do you mean just for the probe drive and readout? You don’t need DC for that, but you likely won’t quite have a high enough sample rate and bandwidth, and I’m not sure how you’d implement the PLL (you’d probably have to use an external Q-control circuit instead). A qPlus sensor in air typically resonates at around ~25 kHz.

      I’ve implemented my PLL in an FPGA, and I’m using one of the DAC8814 channels (the bias voltage channel) to drive the probe at a 625 ksps. I’m using the LTC2326 ADC on my board to sample the probe oscillation at 250 ksps.

      You can also implement a simpler analog PLL instead, like the one described here: http://www.akiyamaprobe.com/wp-content/uploads/2009/03/akiyama-probe_technicalguide_2009mar23.pdf



  8. Hi Dan I was wondering if you have in program the build of an AFM and if there where any alternative to the expensive and easly damageable probe



  9. hi, i was wondering whether this thing could get a proportion of an object. (xnumber of atoms by xnumber of atoms by Xnumber of atoms)
    thanks Kevin G.


  10. Hello, this is awesome. Could you give a detailed schematic of what you put on that big breadboard on the top picture? Is it the same as the electronic schematics you already made available? Thanks


      • Thank you! Could the arduino uno’s analogWrite() and analogRead() be used for a DAC and ADC?


      • You might (barely?) be able to get away with the Arduino Uno’s ADC (10-bit), but you’d be better off using something more precise. The Teensy’s ADC (16-bit) would probably work fine. The ADC doesn’t need to be particularly precise or low-noise, because the preamp’s feedback resistor already introduces a lot of noise, and the tunneling current varies exponentially with tip-sample distance so the measurement is extremely sensitive anyway.
        On the other hand, the analog signals that drive the scanner do need to have very low noise. The Uno’s analogWrite() won’t be good enough. I suggest you go for a DAC with at least 16-bit resolution. The DAC8814 that I’m using works pretty well, but if you’re looking for something cheaper, take a look at the DAC8565. It’s noisier, but should be good enough.

        Liked by 2 people

  11. Your design is quite elegant and extremely more affordable than purchasing STMs from manufacturers. Why not spend a few hundred dollars for a business license and sell your PCB or entire STM online? You would surely have the lowest priced STM on the market.


    • Thanks! I suspect there are probably quite a few similar instruments in research and educational labs that have been built for <$1k. This one's a great example: http://www.formatex.info/microscopy4/1280-1286.pdf

      I'm actually working on two new versions of the PCB, one of which is just a more complete version of the current one, and another which will offer much higher performance and hopefully do AFM too!

      I plan on selling both of these, as well as a few different preamp boards, since a few people have expressed interest.


  12. Hi!
    I have one question why is magnet in bottom plate under penny?
    “The sample bias wire is soldered to the nickel-plated magnet and is electrically insulated from the grounded base by a a piece of microscope cover glass. “


      • Only for ferromagnetic samples, for diamagnetic samples you must glue using cooper tape for example gold?
        Second question why you did v-groove, cone and flat? What would happen when be flat surfaces under each precison screw?


      • Oh, and the cone, flat and V-groove form a kinematic coupling that exactly constrain the 3 screws in position (without requiring precise machining), so that they can’t wiggle or slide around. Having flat surfaces underneath is also fine, it just allows the top part of the scan head to slide around if not held tightly enough by the springs.


    • Are you referring to DNA stretched in nanochannels? The nanochannels are on the floor of a microfluidic channel, and the roof of the channels is lowered by a piezo actuator. DNA in the microfluidic channel are always wiggling around due to their thermal motion, and as the roof is lowered, they wiggle themselves into the nanochannels in the floor.


    • I’m not sure those would be harder than tungsten. Tungsten carbide wire cutters would work, but for the price I’d rather just buy Pt/Ir, since it has the additional benefit of not oxidizing in air or during chemical etching. However, I don’t think there’s much point until I have a motorized coarse approach since I pretty much crash the tip every time anyway.

      Liked by 1 person

  13. Dear Den

    This is really impressive thing that you have realised. The question arises concerning detection of the low tunnelling current. Why not use amplitude modulated bias together with synchronous detection? Seems, this could increase sensitivity of the measurement…

    Very Best


    • Hi Sergey,

      Thanks! The technique you describe is indeed used to measure conductance spectra. I haven’t tried this yet but plan to eventually. This would effectively reduce the bandwidth of regular measurements though, since the modulation frequency needs to be within the preamplifier’s low bandwidth.


  14. Hello, I recently came across your project and was wondering if i could get in contact with you? I want to see if i can replicate it for a science project


    • There’s a BOM at the end of the schematics PDF, but Seeed doesn’t have most of the components used, so I suggest you solder the board up yourself. Some components, particularly the DAC and ADC, are quite expensive, so make sure you practice soldering 0.5mm-pin-pitch components if you’ve never done so before!

      That said, I might recommend starting with a breadboard, a Teensy and a 4-channel DAC first. You can use the Teensy’s ADC instead of the expensive one I used, it should work well enough. If you want a cheaper DAC to experiment with, you could try the DAC8565.


    • Hi June,

      I’ll post the software here eventually. The Teensy software does a few things: controlling the scan, controlling the Z-axis feedback loop, sigma-delta modulating the DACs, and sending data to the computer. Nothing too fancy.

      You’ll want to look into the “woodpecker” coarse approach method if you want to use a motor. It can also help reduce the chance of crashing the tip when doing a manual approach.

      I have a C# program running on a PC that receives the data and constructs the images line by line as the data comes in, and allows me to control the scan parameters.


  15. Hi Dan,

    Tomorrow, July 6,2015, I’m starting as a Teacher Fellow at UCDavis for their summer program called COSMOS. We will have about 20 top-notch high school juniors whose main project in the nanotechnology “Cluster” is to make an STM based on your design. This is my first experience with any of this. My role is as a “go between” the physics professors presenting about Quantum Mechanics, Computing, etc. and the students who will be basing their 4 week project on getting an image with their home-made STMs. With 20 students, how many would you recommend trying to make?
    Groups of 2, 3, 4 ,5, given the time frame?
    I’m a secondary level Physical science teacher with an Mechanical Engineering degree, so electronics is not a strong suit. I’m good at the vibration isolation. Any and all help appreciated.


    • Hi Gary,
      Awesome! Hard to say on group size, as larger groups don’t always work faster. Maybe 4? I’d suggest getting the Z-axis working as a first major step. This requires building a preamplifier, coarse approach mechanism and feedback loop. What’s you plan for the electronics? I’d suggest building the simpler analog feedback loop.
      Feel free to shoot me any more questions, especially on the electronics. I can suggest some simplifications here and there.


    • Thanks! Quite possibly, unless you count this one. Atomic resolution on HOPG isn’t too difficult to get, but metals are much more challenging. No luck on gold yet. I’m working on a more rigid scanner design that should improve things considerably if it works.


  16. Hi There,

    I have spen a lot of time looking at yours and John Alexander’s design. I have been wondering if there is an easy way to connect the current amplifier and the bias to the tip. I do know that many STM’s are designed in this way, but am not sure if there is any special considerations that need to be taken.



    • Hi Bob,

      Do you mean applying the bias voltage to the tip and grounding the sample, and measuring the current from the tip? You can do this by connecting the bias voltage to the preamp’s non-inverting input. In this case, the preamp’s output will be I_tunnel x R_feedback + V_bias, and you would just have to add V_bias to the setpoint voltage. The output range of the preamp (in the case of current flowing out of the tip) is then V_bias to ~10V, rather than 0 to 10V, but V_bias is usually pretty small so this would probably never be an issue. I don’t see any other issues with this and I know it is used in some designs.



  17. Hey I’m William I was wondering if you had any schematics or plans for making one, I’m 15 and I think that this would be a cool project to make.


    • Hi William,

      There are some mechanical drawings and dimensions given on the “Scan Head” page, and schematics on the “Electronics” page. I haven’t yet drawn any schematics for the data acquisition electronics, but there’s still some info on the parts I used. You can get creative with vibration isolation. Basically the STM just needs to sit on something heavy that is then suspended by springs, bungee cords, or sitting on a bicycle inner-tube.

      You should also take a look at John Alexander’s STM page if you’re after a simpler design.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s