v.0.1.5: rebuild and bug fixes

I just finished building the version 0.1.5 machine.

Here’s what I’ve been working on during the past month and a half:

Electronics:

  • Fixed EAGLE routing flaws (thanks Dorkbot Chicago for a very timely EAGLE CAD class!)
  • Fixed part specification flaws (it turns out that the digital pots I originally used can’t handle much more than 8V, I was giving them 18V – oops!)
  • Built a completely new test machine from scratch, by hand (not as bad as I originally feared)
  • Started an arduino shield based design (using adafruit’s excellent protoshield as a starting point)
  • Started testing the MCP4912 DAC as a replacement for the dual 4911s, I’m currently using.
  • Switched from arduino duemilanove to freeduino/boarduino for physical design improvements (I’d like to use the UNO, but I’m waiting/hoping for improvements in the USB functionality of that board before switching).
  • Added a fast prototyping area for experiments.

Physical:

  • Stopped using magnets as fasteners for the scanning head – those were awful.
  • Built a completely new physical support with improved tripd geometry and stability.

Next up:

  • Redesign the X/Y signal pathway to use the full +/- 9V range and be flexible enough to handle +/- 18V via switch and/or gain adjust (I’m only using +/- 5V now, and it’s not flexible at all).
  • Redesign the transimpedance amp pathway to improve signal/noise ratio and gain.
  • Investigate alternative approach mechanism designs.

Reminder: I’ll be showing the ChemHackerSTM version 0.1.5 at the Armand Hammer Museum in LA on Saturday afternoon/evening as part of CRITTER Salon’s Enormous Microscopic Evening.

Share

Pining for the fjords

HELLLLOOOO POLLY!This project is not dead, it’s just pining for the fjords!

Actually, I’ve been up to my neck in:

  • rebuilding the circuit from scratch
  • debugging software
  • debugging hardware
  • redesigning circuitry

This is all stuff that is slow and relatively unglamorous.

I’ve been working frantically because I’ll be in LA next weekend showing the microscope at the Enormous Microscopic Evening at the Armand Hammer Museum in UCLA on November  6th at 4pm, and I’d really like to have version 0.2 ready for the exhibit.

I’ve learned a lot in the past month – notably that I had made a few poor design assumptions (now thankfully corrected).

Many thanks to everyone for being patient, everyone who has helped me with debugging and redesign, and to CRITTER salon for inviting me to the Enormous Microscopic Evening!

Share

ChemHackerSTM 0.1 Schematics and Source Released w/GPL3

With a lot of help, I’ve hit the 0.1 milestone (proof of concept), so it’s time to release version 0.1 of the ChemHackerSTM designs and source code.  As the version number indicates, this is a proof of concept device — if you follow these plans, you’ll get an STM that sort-of works – no promises.

All designs and source code in version 0.1 is hereby released under GPL 3.

The physical microscope is built and works.  It’s still fiddly – I have several design improvements in mind.

The microscope’s electronics work, and will probably not change only moderately between now and version 1.

Video and source code after the jump. Read the rest of this entry »

Share

How I etch STM tips

If you’ve been following the chemhacker twitter feed, you’ll know that I promised video of the etching I accomplished last weekend.

The video does a much better job of explaining the process than my words can:

A few notes: I made a few mistakes on the narration (it was late!):

1. The drop of “water” suspended in that steel plate is actually 2 molar sodium hydroxide (yikes)

2. Yes, those resistors are clearly in parallel, not series (gimme a break, I was tired)

Share

Laser testing: movement!

I just completed a new (much better) scanning head in preparation for final build and testing, but how do you know if the head is actually moving back and forth?

The answer I came up with is to use reflected laser light to amplify the movement of the scanning head.

To test the new head, I mounted a small mirror (actually a sequin, they’re lighter) in the needle mounting point, shined (shone?) a laser at the mirror to see if I could see movement in the reflected laser point as the scanning head moves back and forth.  What I saw was a little movement, but the laser reflection was so diffuse and the movement was so much smaller than the laser reflection that the movement didn’t show well on the video I shot, so you’re going to have to put up with still photos until I acquire better mirrors and/or a more focused laser.

Laser and sequin

Diffuse, reflected laser light

Share

STMs on a Plane: Prototype Electronics and Security Checkpoints

Before: in a cigar box

When I first mentioned I was going to demo the early prototype of the STM at the Open Science Summit, everyone who had actually seen the thing asked me (worriedly) how I was going to get it through the security checkpoints at the airport.

Looking for advice, I brought the prototype to Steve Y., the experienced head of security at my office, and asked what he thought I should do. “Well, what you have here doesn’t look great, but it’s not bad. Here’s what I’d do: put it in a nice box, put some official labels on there, put some kind of identifying label on there, and then send it through the X-ray machine alone. You’ll be fine.” With this pattern to follow, here’s what I did:

Read the rest of this entry »

Share

Testing Update: Getting Warmer

Here’s the latest:

I’m working to get the STM working as fast as possible, but it’s not 100% – I’ve got basic functionality tested and working, but no images yet – I’m hoping to have images within a month or so.

Current work:

  • A new scanning head
  • Complete the mechanical supports and approach mechanism (current state photo of the mechanicals, above)
  • Programming the arduino and the python script that gathers the image data
  • Final electronics testing
  • Getting everything prepared for air flight (expect a post in the near future on preparing electronics for TSA inspection)

Here is a video of my latest tests – the digital side talking to the analog side and driving the scanning head (faintly):

If that’s not enough for you, here is some good background info to read about STMs:

Introduction to Scanning Probe Microscopy

Wikipedia Scanning Tunneling Microscope (STM) article

And you may be interested in the ChemHacker youtube channel.  It’s a bit sparse now, but keep an eye out for updates as this project proceeds.

Share

STM update: serial control (SPI) is working

As I mentioned earlier, I’m working on programming an arduino interface for the ChemHacker STM.

The arduino currently has to handle the following tasks:

  • serial control of the five digital potentiometers (amplifier gain control)
  • serial control of the 24 bit DAC (signal input to the microscope)
  • analog signal processing from the microscope (via built-in ADC lines)
  • serial data to the computer of the scanned data (for image processing)

A future task for the arduino may be:

  • automated control of a stepper motor (for sample approach and control)

My road map for programming is as follows:

  1. establish serial control of the potentiometers
  2. establish serial control of the DAC
  3. establish signal into the ADCs
  4. establish serial data line to computer (and figure out some kind of live image processing system)
  5. interface with microscope circuit(s)
  6. establish stable scanning

As always, things take more time than you think – I foolishly thought I could get steps 1 and 2 done in a few weeks.  After nearly a month of struggling, I finally have (1) accomplished, and with some help from some excellent electronic engineers, I’m quickly closing on (2).

Many many thanks to all the people who publish their SPI code on various Arduino boards, without your examples, I never would have gotten this far…

Here’s what I’ve learned from weeks of banging my head into walls: the entire SPI setup must be used for the arduino’s SPI to activate – that includes declaring pins you don’t intend to use (like the MISO and the SLAVESELECT)

Share