Microcontroller Designs for Atomic,
Molecular, and Optical Physics Laboratories
Last updated on September 26, 2015: New lock-in and 16-bit ADC
daughter boards
During the past few
years, I have been designing several PCBs using 32-bit PIC32MX series
microcontrollers with a USB interface to an Android tablet. The tablet provides an inexpensive
touch-screen interface with the capacity for fast high-resolution
graphics. The app available below
provides a general-purpose interface, into which specific parameter values and
their limits are loaded from the microcontrollers each time a connection is
established. The general approach and a
description of some of the new designs is described in a recent article, Review
of Scientific Instruments 84, 103101 (2013). A brief summary was also presented as a
poster at the June 2013 DAMOP meeting of the American Physical Society: download poster.
The Java code for the
tablet app has been developed using a Google Nexus 7 tablet, on which it works
extremely well. It has also been tested
with a Nexus 9, on which it performs well, and on an older Archos
80 G9, which performs adequately but with some degredation
of the touch interface is slightly less smooth on this device. Data plots are produced using the
public-domain “AChartEngine” package for Android.
The
microcontrollers are programmed entirely in C, using the free version of the
Microchip XC32 compiler (V. 1.34), using the MPLAB X development environment
(V. 2.30) and a legacy version of the Microchip USB drivers for Android ADK
(included in the source files for each project). An inexpensive Microchip PICKit 3 programmer (about $45) is used to transfer the
resulting .hex file to the device via a six-pin header that is a part of the
PCB design. You may want to change the default
compiler options to make it easier to create your own new versions of the
programs, as described here: MPLAB_configuration_instructions.pdf
.
If you wish to duplicate
one of these devices, all that is really essential is the .apk
package for the Android tablet, the .hex file for the programmer, and the
Gerber files for the printed circuit card, which can be sent to a PC board
prototyping company such as Alberta Printed Circuits, which we have used with
consistently good results. The Gerber files are a universal format that should
be usable by any such company, although there may be minor issues with the
availability of certain drill diameters. The diameters specified in the ".nc" files are the actual tool diameters prior to
plating.
The microcontrollers,
Microchip PIC32MX250F128B (28 pins), PIC32MX250F128D (44 pins), or
PIC32MX270F256D (a newer upgraded version of the 250F128D), are available for
about $5 and come in relatively convenient packages for manual assembly. The circuit designs were produced using
low-cost Winqcad schematic capture and autorouting software, which is no longer maintained,
although my Winqcad design files are available on
request. If you want to create your own
designs, there are public-domain Unix-based alternatives that might be a good
choice, and the moderately priced Eagle program seems to be popular.
Most of the surface-mount
components can be hand-soldered with a fine-tip soldering iron if necessary,
with the exception of QFN/LFCSP packages such as the AD9102/AD9106 chip on my
WVFM32 daughter board. It’s much easier,
though, to solder all of the surface-mount chips with a hot-air soldering
station such as the inexpensive Aoyue 968A+, using a very small amount of solder paste, ChipQuik SMD291AX or similar. Accidental solder bridges between pins can be
fixed by using a fine copper braid with rosin flux to remove the excess (Soder-Wick 80-2-5 or similar). I highly recommend the hot-air method,
especially it if you plan to make more than just one board or if you need to
solder QFN-type packages, for which it’s almost impossible to use a soldering
iron successfully.
Please provide
appropriate credit to me (Edward Eyler) and to the University of Connecticut if
you benefit from these designs, which were produced with partial support from
the National Science Foundation and the UConn Research Foundation. If you
make significant improvements to the designs or software, I'd appreciate a copy
by email to eyler@phys.uconn.edu. Thanks!
Before installing, be sure to set
the tablet security options to allow installation of apps from “Unknown
sources” (i.e., not the Play Store)
The Nexus 7 screen image shows the
app after connecting to a TempCtrl32 circuit board. The parameter list at the upper left is
scrollable, and the selected value can be adjusted with slider bars or with a pop-up keypad. The plot shows the response of the output
voltage (yellow) and temperature error (blue) after a setpoint
change. Full scale on the plot is about
0.5 degrees C. Horizontal data points
are plotted at 0.533 second intervals (every eighth sample).
This PCB is intended as a general-purpose interface. It supports up to two interchangeable
daughter boards, and also has an optional on-board instrumentation amplifier,
digital potentiometer, and dual 16-bit DAC.
Connectors are also provided for an optional rotary shaft encoder and
serial display.
------------------------------------------------------------------------------------------------------------------------------------------
The designs below are
slightly older ones that use Microchip dsPIC30F series processors. They are interfaced to a custom OLED/keypad
device, also documented below, which uses a PIC24F processor. A
descriptive article that describes several of these instruments was published
in 2011 by the Review of Scientific Instruments, and a preprint is available here.