3d Printed Scanning Electron Microscope

The goal is to building a DIY Scanning Electron Microscope (DIY SEM) with commonly available materials

Similar projects worth following
A lot of people have the hobby to investigate the micro world with light based microscopes. With a scanning electron microscope (SEM) it is possible to investigate the nano world.

Unfortunately, SEM cost several thousand to some hundred thousand of dollars. However, a SEM consists actually only of few components:

a electron beam source
electronic or magnetic lenses
an electron detector and
a control unit

I reviewed the different components and I think it could be possible either to print or to buy the different components. I think that the housing could be printed with conductive and non- conductive material. For the lens, small super magnets could be suitable and for the control unit, an Arduino based platform could be used.

I am impressed about the impact of open source projects like 3d printer and microcontroller platforms. With this project, I hope to start something impressive too.


A Simulation is available since the  Log 07/13/2017

Vacuum and electron beam

In progress, see the last Log


Not Started yet

Magnetic lens system

Not Started yet

Electron detector

Not Started yet

High voltage shield for Arduino

In progress see the following  Log

Read more »

  • HV Supply

    Chris.deerleg08/02/2017 at 21:02 0 comments

    For my first experiments I use a 7kV china high voltage supply.  (the black box on the right top). To get a impression of the capabilities of the HV Supply. I build a 200Meg Ohm voltage divider to measure the the voltage. I putted the resistor to connect the multi meter in the middle of the divider, just in case of a short circuit. The voltage divider has a ratio of 2001  =  (200M+0.1M) / 0.1M. Each voltage on the multi meter multiplied with 2001 is the voltage over the voltage divider .

    The image above shows the test setup. The variable resistor RL I realized severl 10Meg Ohm resistors connected parallel.

    The table above shows the measured values.

    The diagram above show the voltage and the current of the HV supply.  The calculation of the internal resistor Ri is shown below.

  • Vacuum Chamber

    Chris.deerleg08/01/2017 at 19:40 0 comments

    I got my vacuum pump and started to build the vacuum chamber.

    I started with a marmalade glas, LDPE pressure tube and a quick connector.

    With the first printed vacuum chamber cap, the achievable vacuum was quite bad with 120mBar.

    I putted colored glue on the cap, closed the vacuum chamber and started the vacuum pump. After a while I could see on the bottom of the cap the colored glue. Therefor the root cause for the bad vacuum were some small gaps in the printed cap.

    Above you can see the CAD model of the cap. In this version the quick connector is replaced by a barb connection, similar to the connection between the vacuum pump and the tube.

    The video above shows an accelerated print, it visible that the filling factor is 100% of the print.

    To get a strong connection between the cap made of PLA and the tube made of LDPE I used a special 2K glue. The special at this glue is, that it is suitable for PE. The most other 2K glues are explicit not recommended for PE or PP gluing.

    The image above proofs it, now all looks tight.

  • Femm 4.2 magnetic simulation runs

    Chris.deerleg07/13/2017 at 01:28 0 comments

    Today I included the pieces that the electrons interact with the magnetic field and it seems to work.  The current version I uploaded on GitHub. One the image above on the right side is the electron source shown as I already described in the Last Log. One the left side is the magnet with a cage of iron shown. In the middle a little bit above of the crossing beams is a light green field visible. This field is the reason for crossing traces of the electrons.

    The principle why the electron change a direction in a magnetic field is a little bit more complex as in a electrical field. But I try it to explain. The electrons moves in the Y direction, because they are already accelerated by the electrical field. The movement in the Y direction with the magnetic field in X direction accelerate the electrons in Phi direction. The left hand rule is quite helpful. The thumb shows in the direction of the particle motion, the index finger shows in the direction of the field and the middle finger tells the direction of the acceleration of the particle. In the simulation the field in X-Axis is rotational symmetric. Therefore you can imagine that very time when the particle move a little bit you have to repeat the left hand rule and then you see that a circle come up. Now is clear why the electrons start to rotate on a orbit but not why the move in the X direction.

    Let do the left hand rule for the magnetic field in Y direction. The thumb shows in the direction circular orbit of the electrons. The index finger shows in the Y direction of the magnetic field and tells that the electrons go on the X-Axis in the direction of the center.

    In one of my previous logs, I explained how I calculate the position (Position Calculation). For the inclusion of the field in the position calculation I added the acceleration from the magnetic field to the acceleration of the electrical field. For this I need a additional variable vphi what contains the circular speed of the particle.

  • Femm 4.2 magnetic simulation tool interim update

    Chris.deerleg07/06/2017 at 22:54 0 comments

    In last month I optimized how both parts of the simulation (electrical, magnetical) interact. But it is still one major piece of the simulation missing. May you can see it on the top left image. The particles are not response to the magnetic field. But the particles response to the electrical field, what you see on the top left image. One the left image you see a tip with -100 volt and the trace of the electrons. The particles are accelerated by the electrical field between the tip and the first plate. The first plate has a voltage of 0 volt. The plate in the middle has again -100 volt and the last one has again 0 volt. The voltage differences are the reason why the electron traces are bented. At the first plate at the edges you can see that if a electron touch a object it stops. The electrons cross both parts of the simulation the electrical and the magnetical. Therefore you see the traces on the left and the right side of the image

    The current version I uploaded on Github. to run the simulation you need the FEMM 4.2. In the folder where the DIY-SEM-G04 is located you have to create two folder. Probdef for the simulation and SimPictures for the storage of the images. Without these folders you get a error.

    to run the simulation open FEMM 4.2 click on the button, select the file and that it. Now the Simulation need some minutes and after that you find the images in the SimPictures folder.

    For writing the code I use Notepad++. Lets do a quick walk through the code. At the beginning a SimBox needs to create. With the "Ma" is a magnetical and with a "El" is a electrical simulation box created. As next a softBorder needs to create.

    The concept of the soft borders is that this give you the opportunity to separate part from each other. The particles can cross the soft borders but not the SimBox. If a particle touch the SimBox it stops. In the example code the size of the SimBox and the Softborder is equal therefore it appear only one box.

    With the lines ... :Part(...) the objects are placed.

    All objects are base on a pentagon. The parameters are

    • H1 H2: Height
    • W1 W2: Wide
    • Turn: rotation in grade about the cente
    • Posx Posy: Postion of the center
    • Mat: Material of the object
    • Volt or Polari: Voltage if the object is in a electrical simulation or the polarity in grade of the magnet if the object is in a magnetical simulation

    With the lines ... :solve() are the magnetic and electrical fields are calculated. Afterwards the start point of the particles is defined with the line Particle:new(Sim,Sim,x1,y1,x2,y2,amount,step). The variable Sim contains which fields shall apply to the particles. The variables x,1y1,x2,y2 are the start and end points of a line on which the particles are placed. The variable amount is number of particles which are placed . The variable step contains the information what is the expect step size for the particle (It is the parameter S). The unit is in meter therefore is a step size of 0.2mm = 0.0002 m.

    With the function ... :move() calculates the next positions of the particle. This function is repeatedly because with each call is a distance of the size step calculated. In the example it is called 100 times therefore the particles can travel 20mm=100*0.2mm.

    The function ... :trace() bring the traces of the particles in the simulation see on the left side. To get a nice colorfully image the ... :solve() function has to called again.

    if the the ...:trace(1) is called instead of trace() then the points will be connected with blue lines. But careful if the traces of participles cross each other then no image can be created.

    With the line ... :savePic(...) is a image stored in the folder "SimPictures". The Parameter of the savePic function are the following:

    • POSX,POSY: the center of the image
    • HEIGHT: the height of the image
      • (if the value is to small the image looks strange)
    • WIDTH: the width of the image
      • (if the value is to small the image looks strange)
    • Infos:...
    Read more »

  • Femm 4.2 magnetic simulation tool particle stop at collision

    Chris.deerleg06/09/2017 at 19:24 0 comments

    I struggled a little bit to teach the particle to stop at a collision with a solid object. But now I did it. Above you can see the result. You see 20 particles starting in the area between the tip an the deflectors. The Tip has a Voltage of -100V an the Deflectors 0V. The electrical field in green accelerate the particles. The source code to create image I uploaded to GitHub

    Actually it is no rocked science to calculate a intersection point between 2 lines.

    if m of line 1 is different to m of line 2 then the lines have a intersection point. But if you look at the formula for m, you see that if x2 = x1 then occur a division by zero. The 4 different cases to solve this issue are shown in top left corner. The next challenge is to figure out if the intersection point is on both lines. I the image above you see intersection point in gray. But this intersection point is not on both lines. Below the graph you see "nil" "nil" "3" "3". Nil means not on the line. The calculation behind this is just to check if the coordinates of intersection are on the lines.

    line 1 x low < x intersection point > line 1 x high and

    line 2 x low < x intersection point > line 2 x high and

    line 1 y low < y intersection point > line 1 y high and

    line 2 y low < y intersection point > line 2 y high

    If the statement is ture then is the intersection point on the lines and the particle has to stop.

  • Femm 4.2 magnetic simulation tool particle orbit

    Chris.deerleg06/05/2017 at 20:52 0 comments

    Here you see the first particles follow a orbit defined by the electrical field. Its a electrical field simulation. The tip has a voltage of -100V and the aperture has a potential of 0V. The red lines show the trace of the particle. You can see on the especially on the right edge of aperture that the particles are deflected by the electrical field.

  • Femm 4.2 magnetic simulation tool a particle in a field second try

    Chris.deerleg05/28/2017 at 17:34 0 comments

    At wiki the formulas for motion are to find in chapter uniform acceleration is the formula that describes the distance of particle after a certain time with an initial speed and an acceleration.

    with I solved the formula for the time.

    the result is:

    with this result I can calculate how much time a particle needs for a distance of e.g. 1mm with a initial speed and a acceleration from the field.

    The acceleration of a electron in a electrical field is:

    E is the field strength of the simulation [V/m] q is the elementary charge of a electron q=1.6021766208(98)×10−19 [A*s] and m is the mass of a electron m=9.10938356(11)×10−31 kg (link to parameter for a electron

    I want still do have the same parameter for the calculation step size (s), initial speed (v) and the acceleration (a) by the field. The approach first to calculate the time ts what a particle need to travel approximately 1mm with the acceleration by the field and the previously speed. If a particle is created new in the simulation the speed is the initial speed (vxi and vyi set by user) . After the calculation of the a new position the speed is the result of the acceleration plus the previously speed. The new position of the particle is calculated with the motion formula s=a/2*ts^2+v*ts. I think by use of the common motion formula the position should be right. Even if something with the calculation of the time ts isn't right.

    I think that still something is wrong as actually the yellow columns above should be equal. if I calculate the distance absS with the partly movement of the particle in x and y direction it is unequal to the distance s (1mm) what was use to calculate ts.

    If somebody has a idea why have this behavior let it me know. I uploaded the with the calculation to GitHub

  • Femm 4.2 magnetic simulation tool a particle in a field

    Chris.deerleg05/22/2017 at 19:48 0 comments


    I struggled quite a time to find out how to calculate a movement of a particle in a field. I want to have as parameter step size (s), initial speed (v) and the acceleration (a) by the field. My approach is to move the particle through sections . The particle has an initial speed of v (in red). With this speed v I calculate an equivalent acceleration av to move the particle through the section with out any acceleration. A particle will cross a section even if there is no field to accelerated it when the particle has at the start of the section already a speed. Then I add the equivalent acceleration av with the accrual acceleration a by the field. The result is total acceleration atot. To cross a section the time ts is necessary with the known length s and the total acceleration atot. At the end of a section I collect the total time and the total distance of the particle. For the next section the procedure is the same with on exception the speed of this section is the speed of the section before.

    The diagram on the right shows the values of the table left. You can see that the particle has a speed of 1m/s a the beginning (step 0). At the next steps 1,2,3 the particle will accelerated with 3 m/s^2. The speed v goes up. In the step 5,6 the speed of the particle will decrease by the acceleration of -5m/s^2 to the speed of zero.

  • Femm 4.2 magnetic simulation tool run a simulation

    Chris.deerleg05/18/2017 at 21:17 0 comments

    Since the last update I improved the simulation. The current status I uploaded to GitHub Above in the image you see how easy it it is to build a simulation. First create the simulation environment with e.g. sim1=SimBox:new(.........) for the description of the parameter have a look in the function SimBox. As next build a array m={} and fill it with magnets for ... m[i]=Magnet:new(sim1.SimName...). By calling the new function and the paramter sim1.SimName the magnets are placed in the environment. After the a exsample of how to remove a magnet by m[2]:delMagnet(). This will be later useful when I start to move the components. Last but no least sim1:solve() this function starts the creation of the nice colored image on the right.

  • Femm 4.2 magnetic simulation tool drawMagnet

    Chris.deerleg05/16/2017 at 20:55 0 comments

    Today I improved the simulation a little bit. Now I can create several simulation environment e.g Mfile1=MaProbDef(...) and they will be saved with a unique number. Also I can create several magnets e.g. m=Magnet:new(...) and place them in the different environments. The current status is on GitHub If somebody find bugs let it me know

View all 11 project logs

Enjoy this project?



Chris.deerleg wrote 07/27/2017 at 19:01 point

Thanks for you explanation. I will have you thoughts in mind and maybe it reconsider in a later stage once the first real particles fly.

  Are you sure? yes | no

ballsystemlord wrote 07/03/2017 at 20:32 point

I joined hackaday just to follow awesome projects like these!

Perhaps you are currently having troubles with vibrations and that is why your formulas are off?

  Are you sure? yes | no

Chris.deerleg wrote 07/04/2017 at 07:33 point

Thanks for joining. What do you mean exactly with vibrations?

  Are you sure? yes | no

ballsystemlord wrote 07/22/2017 at 02:10 point

(Sorry for the late reply, I can't get online often.)

Not that I'm an expert in the field, but if you are firing electrons (atomic particles), and then a vibration strikes the machine, all that that vibration has to do is to knock the machine at an atomic level to the point where is sends the electron in an unanticipated trajectory thus causing you to think that there is something wrong with your calculations.

Mind, I can't prove this to be the case. It could be that the magnetic fields compensate for the vibrations (that is to say, when the device moves as a result of a vibration the magnetic field remains in the same place and just changes in intensity slightly, due to the proximity to the magnet).

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates