Jean-Michel FRIEDT physics and electronics projects
Introduction to uClinux on the uCDimm5272 (from Arcturus Networks) and
SSV Dil/NetPC DNP5280. Step by step introduction from first booting the system
to RS232 and ethernet communication and finally emulation of a PC parallel
port for connecting a black and white connectix quickcam and transferring the
resulting images via a wifi link: in
and in English
concerning the Coldfire 5272 processor, and the Coldfire 5282
in French (translation
to English in progress).
A brief introduction to the Hough transform
used in image processing for identifying the position of geometrical
figures (lines, circles). I have used this technique for identifying the
position of drops on a subatrate and computing the contact angle of these
Since August 2003, I have been developing on two new Analog Devices
the ADuC814 and ADuC816. They are based on a 8051 core, include (slow) A/D,
D/A, UART and SPI/I2C communication. 8 kB flash memory, 256 bytes RAM.
Wonderful toys: here is a tutorial
on development under linux, including
data storage and retrieval on a MultiMediaCard.
ibisc.exe is a program for controlling the Holland Biomaterials Ibis II
Surface Plasmon Resonance (SPR) instrument. We have reversed engineered
the communication protocol of the instrument and re-written the data
acquisition software in order to be able to record all the reflected
intensity v.s angle curves for later post-processing (using Matlab for
example). This program is text mode only, i.e. easily portable to any
other operating system than Windows NT4 (Visual C++ 6) on which it
was developed. It removes the limitation of the proprietary software
provided by Holland Biomaterials of only allowing 8000 points acquisitions
and not letting you decide what kind of fit to use when identifying the
position of the SPR dip. Here is the source code
for Visual C++ 6 (but only ibisc.cpp, an ANSI C program, is useful for
developers) and a documentation on how to use
Here is the program I quickly wrote for recording all the RS232 transactions
occuring between two computers (or an instrument and a computer as in the
case presented above). The hardware interface looks as follows:
PC MONITORING TRAFIC
COM1---\ /---COM2 (pin2)
(pin 2) | |
pin 3| |pin 2
computer1 or <--> subD9 <-+--+--> subD <-----> computer2
instrument male straight female
(1-1, 2-2, 3-3...)
The hardware interface is simply a straight connexion from a female to
a male subD9 connectors, and we listen to the traffic occuring on pins
2 and 3 of this cable. Listening is done by connecting each one of these
wires to pin2 of a subD connector to be plugged in the two serial ports of
the PC listening to the trafic. Also remember to connector pin5 (ground)
of all these connectors together. The program
for monitoring the trafic was written in Turbo Pascal 7 under DOS (at that
time it was the only way I knew to have a non blocking access to the serial
ports. Now with more experience the same result could be achieved with many
fewer lines of C). When launched, the program will ask for a filename in
which to store the results, and simply listen to the trafic until the
user hits a key.
Satellite digital date reception: using an AOR 3000A radio scanner or a RIG RX2
dedicated receiver connected to the sound card of a Toshiba laptop, I have
been able to receive ISS and NOAA weather satellites. These low-altitude
orbiting satellites (respectively ~400 and ~800 km) are ideal for very simple
antenna setups (I have attached my Diamond wideband discone antenna to the
balcony of my appartement located one the second floor of a four-floor building,
with open space towards south and west). Since the sound card based on the
CS4281 chip does not seem to be able to record from linux, I have to dual-boot
to win98, record the satellite pass as a wave file, then switch to linux and
use multimon for decoding ISS digital data and
wxtoimg (free but unfortunately
binary-only closed source software) for decoding NOAA images. I use sattrack
for predicting satellite passes. I have summarised the results in the following
manuscript I have also
heard the Idefix microsatellite.
VRML models of the experiment I am currently running (SAW device used
for Cu electrodeposition monitoring under AFM).
VRML 1 and VRML97 file formats.
Second set of models: setup for inserting a Quartz Crystal Microbalance
(QCM) under an AFM (Molecular Imaging Picoscan).
VRML 1 and VRML97 file formats.
Third set: setup for a failed setup aimed at combining QCM and SPR (Holland
Biomaterial Ibis II instrument). This design doesn't work because air bubbles
get trapped on the top surface of the cell where the QCM is standing.
Finally, introduction of a SAW device in the Holland Biomaterials Ibis II
SPR instrument ( VRML97 ). For this experiment, I
also had to rewrite the software controlling the Ibis II instrument since the
one provided my the manufacturer is limited to 8000 data points (ie 8000
seconds experiments) and uses a fitting procedure for increased angle accuracy
which is not suitable when multiple peaks are present (such as due to
interference patterns for example). The program is available at the top of this
Fourth set: the ultimate experiment, multiple
wavelength SPR combined with Love mode SAW device , no moving part,
white light source and a diffraction grating (reflection) as monochromator.
To be seen using the Cosmo player
under M$-window$ or FreeWRL under linux (good luck for installing it !).
The model was created using 3D-Studio.
I typed a list of dielectric constants (complex) as a function of wavelength
for Au, Ti ,Ag, Cu, Pt, water, glass and quartz for surface plasmon resonance
simulations. If these canbe of any use to anyone else, please feel free
to download from here . Please let me (firstname.lastname@example.org)
know if there is any mistake in these data sets. They were copied from
articles by Palik et al. and Johnson et al. (references are provided in
the readme file).
A list of the articles I wrote, some of which are available on
this page .
Using an broken CD/CDROM reader laser head for building an optical
profilometer. This might also be a pretty good introduction to building
any other kind of scanning proble microscope (SPM) such as an STM or AFM.
English and French
versions available. Please acknowledge the original author of this idea,
Christian Ferrandez (LPMO, Besancon, France) if using this project. Two
have resulted from this work.
Introduction to the 68HC11F1 (in French and in
English): includes the basic circuit for running programs
on the 68HC11F1 (no EPROM programmer required - just a serial port on a
DOS or Linux running PC). Development first started under DOS, and later
shifted to Linux (all programs available here)
while more complex applications were developed. Latest addition to the
French documentation: read/write to an I2C EEPROM 28C64.
Christophe wrote the software for programming
the HC11F1 from a Psion V (which also requires
psion.asm running on the 68HC11 board), as well as a
simple assembler (written in Perl) for compiling
HC11 programs on the Psion (the assembler does not support memory
re-allocation for the moment -- the program autmatically starts at 0x0000 --
and does not support .db/.dw or equ instructions).
The French version of the document also includes modifications to the external
RAM expansion to program 28C64 and 28C256 EEPROMS.
Once the EEPROM programmer described above started working, I finished a
project started a long time ago, aiming at using the Nintendo (classic)
Gameboy for basic inputs/outputs and result display. This document describes
what I achieved for now ( French and
English versions). I emphasised on hardware
I/O as most software development have already been made (an assembler
and C compiler are freely available). The result is a communication protocol
between the Gameboy and the 68HC11 so that the HC11 reads data on its
A/D converters, sends the result to the Gameboy which is finally used as
a simple display. More processing could be done on the Gameboy side, whose
CPU power is mostly unused.
In parallel with the Gameboy development, I wanted to be able to add basic
functionalities to a PC BIOS. Here is a document (in
French for the moment)
describing basic BIOS extensions hardware and software aspects.
Finally, in the aim of expanding the capabilities of my microcontroller
based circuits, I focused on getting used to the Hitachi H8 and Z84
microcontrollers. The former is a very powerful controller (at least when
compared to the HC11) with a lot of RAM and flash memory (in the H8/3048
version I use), including 10 bits A/D and 8 bits D/A converters, while
the latter is a Z80 based microcontroller which lacks most peripherals
(no onboard RAM or A/D converters) but is compatible with Z80 code (I
mainly expect to use it for data logging/processing). Two reports
on these microcontrollers ( H8 and
Z84 ) based on the boards sold by
Akizuki in Akihabara, Tokyo, Japan are
available in PDF format (English only). I also provide
here a tar ball containing the software I wrote for uploading programs
to the H8 board through the serial (RS232) port.
Because communication with the user and data display can be an essential
part of embedded systems, I also wanted to look at the Visual Memory
Unit developed by Sega for its Dreamscast console. I only got the
hardware communication to work for now (allows one to send games from
the PC to the VMU) but I hope to be able to send my own programs
later. The result would be quite similar to the result obtained with
the Gameboy, but with a cheaper, smaller, lest power consuming hand held
I recently (29/10/01) discovered the Atmel ATtiny15L, which provides 4
10 bits ADC, timers and 4 general purpose I/O pins in a 4 US$ (for 20
chips), 8 pin (DIP or SOIC) package ! Ideal for battery powered autonomous
data acquisition systems or intelligent sensors. Here is
a document that
briefly describes what tools are needed (assembler and programmer) for
using this microcontroller under linux. The programmer is made of four
resistors (or eventually 4 wires) and a parallel port connector: it could
hardly be cheaper.
Since the RS232 serial port is slowly disappearing from the PC (especially
from laptops) and in order to see my microcontroller circuits compatible
with other architectures than the PC, I wanted to learn how USB works.
I thus developed some software for programming
the 68HC08JB8 under linux, and wrote a small documentation (in
English ) on programming the HC08.
Up to now I have not been able to get more than the linux kernel message
recognizing the USB peripheral (I am stuck in writing the linux USB driver).
But at least the HC08 programming works ...
August 2004 update: the linux driver and user space programs for controlling
the HC908JB8 are working and are available on the
In order to extend the data logging capabilities of the microcontrollers
I use, I wanted to learn how to use the MultiMediaCard (MMC). Here is
a document in English
describing how to connect an MMC to your PC via
parallel port or to an 68HC08 (should be portable to any other
micronctroller since I emulate by software RS232 and SPI communication
protocols). I plan to extend this document to the connexion of the MMC
to an ATtiny15l microcontroller.
I used a high-voltage DC power supply (estimated voltage by the tip-plane
distance to produce a spark: ~15000 V) as described in an article in Megahertz
Magazine to power an electron beam I bought at Friedrischaffen (sp ?) during
the amateur radio meeting in summer 1998.
First of all, here are the scanned pages of the (french) article published in
Megahertz Magazine (uses an old TV high-voltage transformer). Use at your
own risks ... (very large images !)
page 1 ,
page 2 ,
page 3 ,
page 4 ,
page 5 ,
page 6 ,
page 7 ,
Here are the results from the electron beam experiment, and bending the beam
with a magnet (using a color digital camera):
bending the beam up
bending the beam down
bending the beam up
global view, with the power supply
Addition (17/02/2005): following a one year postdoc stay a the Nuclear
Microanalysis Laboratory (LMN, Besancon, France) I have learned how to make
an ionisation chamber for measuring the dose
of soft Xrays (1-10 keV range). The document is in French but will be translated
Linux modules programming examples: controlling a homemade (AD574 based) analog
to digital converter (ISA/PC104 card) and managinf
interrupts from user space (all the programs are available
A picture of the ISS passing over France (Orleans)
while I was listening to packet radio transmission (software decoding using a
SB-compatible sound card, running multimon under linux). Large file:
Computing minimal surface shapes (aka soap bubbles or rubber sheets). The
report is in French , the
software written in C for linux/X11. Example of a result obtained using
this program: rubber sheet .
Astronomy club of ENS Lyon
where I used a Connectix B&W Quickcam for making astronomy images. I am
particularly happy of the accelerated movies
showing the motion of the satellites of Jupiter .
The Projet Aurore
Web site (Besancon, France) where I played with accelerated movies, image
processing, electronics (includes SEM images of insects we made at
LPMO/CNRS), lauching a meteorological balloon (aerial photography) ... Check
the link named " Les
cheyennes hi-fi a diodes" of the old web site.