Low cost STM projects – A review

I’ve been reviewing some student/hacker attempts at building low cost STMs. The major challenge in an STM project appears to be the coarse/fine grained approach mechanism, and there are a few options. this review is also pretty useful.

Unimorph disc projects

unimorph_xy

disk_drawing_elec_s

disk_drawing_sidewp

These projects use a standard Piezo buzzer cut into 4 quadrants. The tip is mounted in the center, the setup seems to produce reasonable (but far from perfect) results. I’ve seen a couple of projects based around this idea. The earliest seems to be John Alexanders project which is now only available via the Internet archive.

The second is a Colorado State University project that was presented at a conference, the paper is linked here:

2006-2314: A NANOTECHNOLOGY EXPERIMENT: DESIGN OF LOW COST SCANNING TUNNELING MICROSCOPES, Nebojsa Jaksic, Colorado State University-Pueblo: pdflocal copy

This project from the University of Hannover is also similar (nicely done, though light on details): pdf local

There’s also this project from AFEKA, Tel-Aviv: pdf local

Another awesome project by some HIGH SCHOOL students Switzerland is also documented here they didn’t complete it, but took some measurements. In particular their journal contains a lot of interesting information. (local copy: journal paper).

More recently Dan Berard documented a excellent project on his website which includes a lot of very useful information.

Bimorph benders

bimorphstm

I’ve come across one project that uses Bimorph benders blackford1987. The opamp used is an AD611.

Piezo Tubes

Piezo tubes are used in commercial STMs, but they’re actually not that expensive to buy in small quantities, it just takes a bit of work to hunt out suppliers. There are more details on my Piezo actuator review post. This project planned to use a Piezo tube and has some great information.

This paperAlso uses a piezo tube in a low cost configuration.

This paper is another such project.

And another: hipps1990

Amplifier notes

A paper on STM amps: lownoiseamp

Here’s another detailed paper on amp design: holt2012

Piezo actuators – A review

Piezo actuators are extremely interesting for high performance, applications. They often provide 1000s of newtons of force at sub-nanometer resolution. They also respond extremely quickly, though often have a settling time and exhibit hysteresis which makes closed loop operation desirable.

I’ve been looking at these actuators for a personal project (generally I’ve been reading about the amateur STM and other SPM projects and keep thinking about having a go). This is a short review of the actuator types I’ve encountered so far.

Piezo stacks

stacks

These devices use multiple layers of Piezo electric material connected in parallel in a stack. They provide deflection in the micron range, in general 10s to 100s of microns. Normal a drive voltage in the 100s of volts is required.

Stacks with flexual amplification are also available, and some of these can provide deflection close to the millimeter range for example these devices.

Unimorph discs

These are you basic Piezo buzzers. I’ve not seen accurate deflection measurements, what I’ve reads suggests a deflection of 1 or 2 microns. Aside from the obvious audio applications they have also been used in micropumps.

Because of their low cost, Piezo buzzers get used in a lot of hacker projects. For example this laser pointer imaging thing. They’ve also been cut into quadrants to give XY motion for STM projects (see image below) for example “2006-2314: A NANOTECHNOLOGY EXPERIMENT: DESIGN OF LOW COST SCANNING TUNNELING MICROSCOPES Nebojsa Jaksic, Colorado State University-Pueblo”

unimorph_xy

John Alexander’s project on the now defunct geocities also used the cut-up unimorph disc configuration and you can see more details on the waybackmachine archive of his pages.

Bimorph, Bimorph benders

Piezomotor_type_bimorph

I couldn’t help but include the GIF from the wikipedia page because it’s so awesome. Bimorph actuators have two active layers, one that expands, and another that contracts.

bimorph

This slide deck has some useful information on Bimorphs (and is where the above slide comes from). I’d like to understand why/where these actuators are useful. They generally provide millimeters of deflection (and I would guess are often used in bending piezo actuators below).

Piezo tubes

piezotube

Piezo tubes are the standard precision XYZ approach mechanism used in most STMs. They provide XYZ motion in the 10s of microns. Again, they need a drive voltage of 100 to 200 volts. They seem to cost 200 to 500USD.

Slip-stick actuators

So called Slip-stick motors static and dynamic friction to turn the rotor. This is often described as being similar to the “table cloth trick”, if you pull the cloth quickly the tableware stays still. However if you pull the cloth slowly friction pulls all the tableware with the cloth and everything comes with it.

Slip-stick motors use this principle to rotate a rotor.

slipstick
picomotor1

An Piezo stack rubs against a rotor in order to turn it. By extending slowly the stack pushes the rotor round. It then retracts quickly. The slow motion causes friction which transfers the motion to the rotor. However the quick retraction has little friction, causes no motion. The net effect is that the rotor rotates in discrete steps.

The stack can reverse the motion by using a quick extension and slow retraction. Picomotor appear the be the leading manufacturer of slip-stick motors. They supply two models with resolutions of 30 and 100nm.

picomotor

Inchworms

Piezomotor_type_inchworm

Have to include the wikipedia GIF again, because it’s cool! Inchworms use Piezo stacks to push a shaft along. This gives them all the advantages of a Piezo (nanometer resolution, large force, no vibration) but with relatively large deflection, really only limited by the length of the shaft. Typically they are available with 10 to 20 millimeters of deflection. They are however more expensive than some other actuators costing in the the 500+USD range, with some models significantly more expensive. They’ve also been applied to STMs among other precision applications.

Rotary

rotary_piezo

Rotary inchworms seems to be largely experimental, but I came across a paper on them recently so thought I’d include them here. Similar to inchworms in general they prod a spindle to slowly turning it.

rotary_sch

The schematic above from this paper. Shows the basic mechanism, force is applied using a Piezo stack to opposite “corners” of the spindle, which twists it round. Clamps on the top and bottom hold the spindle in place as the force is removed.

Seems rather neat! Not sure what the applications are!

See: Design and experiment performances of an inchworm type rotary actuator, Jianping Li, Hongwei Zhao, Mingkun Shao, Xiaoqin Zhou, Hu Huang, and Zunqiang Fan for more details.

LEGS

I strongly recommend you check out the video linked above, it’s awesome. LEGS (R) is a trademark of Piezomotor (R) I believe. They use a slightly different mechanism to the normal Inchworm, walking the shaft along, but have many of the advantages of the Inchworm providing sub-nanometer resolution over a 10 to 20mm range.

Bending Piezo Actuators

These actuators are available from a number of sources, I have some coming from PantPiezo for a personal project. They appear to offer huge displacement (in the millimeter range) but low blocking force (<1N). They also appear to be /very/ low cost (<<20USD). bending_piezo

8×8 LED matrix on an Arduino

I picked a SZ410788K 8×8 LED matrix out of my junk bin today and decided to play around with it. It cost me about 1USD in Aitendo, Akihabara. A little googling brought up the following:

8x8pinout

I decided to hook it up to an Arduino (yea I know, I know).

(more to follow)

Here’s some quick code that scans the matrix:


void setup() {
  // set the digital pin as output:
  pinMode(2, OUTPUT);     
  pinMode(3, OUTPUT);       
  pinMode(3, OUTPUT);       
  pinMode(4, OUTPUT);       
  pinMode(5, OUTPUT);       
  pinMode(6, OUTPUT);       
  pinMode(7, OUTPUT);       
  pinMode(8, OUTPUT);       
  pinMode(9, OUTPUT);       
  pinMode(10, OUTPUT);       
  pinMode(11, OUTPUT);       
  pinMode(12, OUTPUT);       
  pinMode(13, OUTPUT); 
  
  pinMode(A5, OUTPUT);       
  pinMode(A4, OUTPUT);       
  pinMode(A3, OUTPUT);       
  pinMode(A2, OUTPUT);       
  
}

void flash(int x,int y) {
  
   int state1=HIGH;
   int state2=LOW;
   
   for(int n=0;n<2;n++) {
  
   if(n==0) {
     state1=HIGH;
     state2=LOW;
   } else {
     state1=LOW;
     state2=LOW;
   }
   if(x==0) digitalWrite(8, state1); else digitalWrite(8, state2);
   if(x==1) digitalWrite(9, state1); else digitalWrite(9, state2);
   if(x==2) digitalWrite(10, state1); else digitalWrite(10, state2);
   if(x==3) digitalWrite(11, state1); else digitalWrite(11, state2);
   if(x==4) digitalWrite(A5, state1); else digitalWrite(A5, state2);
   if(x==5) digitalWrite(A4, state1); else digitalWrite(A4, state2);
   if(x==6) digitalWrite(A3, state1); else digitalWrite(A3, state2);
   if(x==7) digitalWrite(A2, state1); else digitalWrite(A2, state2);
  
   if(y==0) digitalWrite(12, state1); else digitalWrite(12, state2);
   if(y==1) digitalWrite(13, state1); else digitalWrite(13, state2);
   if(y==2) digitalWrite(2, state1);  else digitalWrite(2, state2);
   if(y==3) digitalWrite(3, state1);  else digitalWrite(3, state2);
   if(y==4) digitalWrite(4, state1);  else digitalWrite(4, state2);
   if(y==5) digitalWrite(5, state1);  else digitalWrite(5, state2);
   if(y==6) digitalWrite(6, state1);  else digitalWrite(6, state2);
   if(y==7) digitalWrite(7, state1);  else digitalWrite(7, state2);
   
   if(n==0) delay(50);
   }
}


void loop()
{

  for(int x=0;x<8;x++) {
    for(int y=0;y<8;y++) {
      flash(x,y);
    }
  }

}

The pins are connected as follows:

Arduino   Matrix
2         K6
3         K5
4         K4
5         K3
6         K2
7         K1
8         K8
9         K7
10        A8 
11        A7
12        A6
13        A5
A5        A4
A4        A3
A3        A2
A2        A1

A 2N3904 is used to switch the grounds in on the A pins. So the circuit looks like this:

8x8diag

LM1117 notes

I pulled some LM1117 voltage regulators from a bunch of routers. I want to use them in another project so I knocked together a quick circuit to test them. Here is the basic LM1117 schematic:

lm1117

And here it is built up, using mostly random parts from my junk bin. R1 is 200Ohm, R2 is a 1K pot in series with a 200Ohm. The cap is 100uF. I should probably also have a cap on the input, but I’m running this from a bench supply and it seems fine.

lm1117made

The LM1117 is used in a number of applications are a jelly bean variable regular, I’ve seen it typically used as a 1.2 or 3.3v regulator. There’s an interesting application note on this application here.

You can find the datasheet, and some design notes for this part at the end of the post here were it’s used in a RT3050 PCB I was reverse engineering as a 3.3v regulator.