I have started the project in April 2015. I had high hopes and great curiosity, and I enjoyed the journey, playing the role of schematics designer. Over this few months I have turned from a mere software enthusiast into advanced builder. This journey with building better and better prototypes could go on indefinitely, until a "software developer's" side of me insisted on setting hard deadlines, milestones and getting some reusable "scientifically proven" results.
You can look at the exercise as the adventures of a software guy in analog world of precision measurements.
Prototype 1. Just put together chip and probes. What else is needed ?
For first prototype I just used ADI evaluation board and complimentary PC software. The results were as advertised and the board was gathering dust. The board demonstrates capabilities of AD5933 in some narrow range of impedances and frequencies. The frequencies are 30KHz or so and impedances are around 100KOhm. The demo board can not go much lower or much higher with frequency or impedance. Or else user has to modify analog frontend.
Demo board does just one thing: helps user to evaluate the advertised device as quickly as possible. And as a software engineer and Arduino hobbyist, I could not stand the use of proprietary software blob, requiring whole PC to run few simple formulas.
Prototype 2. Getting rid of PC software. Adding Arduino
Why Arduino ? I have possibly every popular board like Parallax Propeller, XMOS kits, Intel Galileo Gen 2 and Edison, Arduino Mega R3, BeagleBone. And I am obsessed with small TFT screens. In many of my exercises, I tried to connect small TFT screen to each of those with simple goal of herding the pixels using 100% opened code.
So for this prototype #2 I chose Intel Galileo Gen 2 and Arduino sketch language to talk to ADI board through I2C protocol and display data on tiny 1.5 inch screen with SPI protocol.
It was a success mixed with disappointment. The success part was that all software and sketches were easy to code. The disappointment was that power consumption was high, range limitations were same as on the PC setup and noise was awful. The next prototype had to beat the range limitations and noise.
Prototype 3. Batteries and Radioshack
I was done with proving that firmware writing is manageable. The problem on hands was ranges and noise. The lower impedance ranges were limited by very high internal output impedance of AD5933 - hundreds of Ohms. The input stage is also limited by value of Rfb. Looking at the perspective of building my own analog frontend I had to choose some common opamps. These were Radioshack TL072 ones. The ranges were extended but opamps brought more power rails requirements.
Well, there are many contemporary opamps which can work well within very limited power rails, but the tradeoffs are whole new science for me. Choosing between single 3V rail and dual 15V was not difficult. The gut feel was that linearity is the king for precision measurements. May be there are low voltage precision opamps with very high linearity and good frequency range, then those will be in next version of my device. For now I chose in favor of desktop-tabletop design direction, where multiple power rails are OK to have. The handheld direction with tight power requirements is much more advanced, I will go there only after I complete the tabletop design.
So with relaxed requirements for power rails, I added 9V batteries everywhere, buffered inputs with simple followers, beefed output with classic inverting stage. The result was awesome absence of any noise. The measurements were precise and repeatable. No bobbing or spikes.
Prototype 4. Precision, resolution is good thing to have, but what about accuracy ?
For next prototype I had to replace very expensive Intel Galileo Gen 2 with something cheap. I chose Arduino Mega R3. You can not go cheaper. The debugging convenience is important, so I replaced SPI screen with 4.3" TFT + SSD1963. Well, and batteries had to be replaced with power supplies.
Picking small mains transformers from here and there I realized how awful the contemporary choices are when you need more than just 1-2 power rails. I made a note, that for final product I should give up on using any off-the-shelf transformer, the power supply will be completely custom.
After fitting prototype #4 into nice white metal box the only achievement I have got was general proof of that thing can be somehow built. Can it run ? Yes. Can it run for long hours ? I kept making basic personal discoveries of analog design nature. The boards ate so much power from 5V rail, that 7805 chip had to use a heatsink. All power was going through 2 AC mains transformers and those were impossible to replace with some single multitap transformer. I kept thinking about safety and buildability, and eventually gave up on idea of making kit, powered from AC mains.
There are many reasons to avoid AC mains for beginners, especially for a beginner merchant, trying to sell kits to strangers. The problem and the answer was obvious: use off the shelf power wart supply, which is sold separately by somebody else.
Accuracy experiments failed. I gained very little proof of accuracy simply because low noise AC supply was dead end. The accuracy road was blocked by basic error in priorities.
Prototype 5. Switching power supply. Noise is back!
To get rid of at least one mains transformer, I cracked opened few 5V USB and 5-6V non-USB cheap switching supplies and replaced 7805 with off the shelf assembly. The size and weight went way down and I could continue to do mods, at least mechanically there was some space fro experimenting with front end.
But nothing good happened with this replacement. Space was still a matter. The stacks of boards were awfully unwieldy, there was still dangerous AC mains inside metal box and on top of it the noise. Measurements were very poor. I tried to do something futile, like taping the sticky aluminum shield around switcher, adding filters, rewiring. No. Hopeless.
The prototype #5 was dead end. I learned very simple lesson about design priorities (by following wrong priorities):
Prototype 6. Homebrew Arduino.
At this point I had lot of confidence in precision, but little proof of accuracy. I needed full control of noises, clocking, timing, powering, grounding and shielding. Demo boards with silly jumper wires running across breadboards became an obstacle. I needed to design my own PCBs.
I have the design split into 2 obviously separate parts: Single board computer with screen and analog board.
The panel mount Arduino with screen is a worthy product by itself. I enjoyed making the batch of 42 boards. And this was my first CAD designed board ever. The Diptrace is one wonderful software, though it was not free for my pincount (the license is up to 1000 pins per board).
Arduino board has all I ever needed for universal lab instrument computer.
I learned myriad things about board design and it was quite a journey. The analog board went much slower. At first I chose to limit the height of every component to 15mm. I hoped that kit will be more attractive, if user can add second custom board on top of flat analog board. But I had to break this height limit later.
The power supply on analog board was designed to beat the noise in a manner of "take no prisoners"
With this requirements I had to study existing switchers for days. There is myriad of switcher chips and none of them is quick to understand. I concluded that in general I am targeting completely different goal than majority of switcher designs. Those are made to fit to very tight efficiency requirements, they do not care about noise or convenience of external control, some are self destructing when loads are odd, other are requiring too much knowledge about magnetics. And so on. After all the study I went back to the principle: it does not matter for kit builder, if there are too many parts as long as they are cheap and common. I can build switcher with just few 555 chips. And so I did.
Prototype 7. Onion shells of accuracy
Story of lab device design is the story of removing onion shells. Designer has a solid theory of operation, and ideal device behavior is in the center of the onion. To reach the center designer has to remove shells one by one. In my sequence of prototypes I kept removing shells in no particular order, I kept just stumbling on every next obstacle and sometimes chose wrong priorities.
The core: Physics and math will tell us that Johnson's noise is not the last obstacle (you can beat it with averaging), but very much close to the core. To reach this layer I must be able to at least recognize this effect, and for this, I need precision and repeatability. So lets start with outer layers.
Prototype 8. The PCB house matters.
Today (Oct 13 2015) I just received boards from Elecrow for prototype 8. Unfortunately, they have ignored my ring pattern for shielding. Many traces with 1, 1.6 and 2mm width were completely ignored and traced with some thin default width. I am very disappointed.
But enough bad news. I will change the PCB house for a better one for a large batch, after PCB turns final. The good news is my Hakko FX888D soldering station. Just bought it at Microcenter, and it works well. I keep the solder at 600 F instead of default 750 F. I want to keep copper traces little cooler, so they will not flake off. My previous no-brand air+pencil workstation died recently. IT helped me to finish dozens of boards, but eventually died.
I tried for about 5 min working with some random Radioshack soldering stick. It has is very high unregulated temperature and is too small and damaging the boards.