Laboratory instrumentation amplifier that can accommodate high impedance and high bandwidth and has a 16 bit 1MSPS ADC

DrM

Well-known member
This is to announce a new instrumentation board for Teensy 4.x (and other Arduino type boards with SPI interfaces).

This is an instrumentation amplifier input board that can provide high bandwidth measurements for a high impedance source. The board has an all differential signal path and a 16 bit 1MSPS ADC. The inputs are bipolar with selectable impedance 100K, 10M and 1T. We include kicad files, fab files, a spice model, a teensy/arduino sketch with a header-only library for the MCP33131D ADC and a user interface written in python. Traditionally, In Amps are low bandwidth devices. We beat that back in this design based on more recently available op amps.

The full posting and repo can be seen here: In Amp with 16 bit 1MSPS ADC for Teensy and Arduino

Here is a picture of the board with its power supply and connected to a controller card based on the Teensy 4. All of the boards are available in github, links are in the readme. The BOM for the In Amp is about $36 at Digikey at this writing.


InAmpSetup.p800.jpg
 
Last edited:
I think the inputs are CMOS, not bipolar, according to the description it uses a CMOS ADA4510-2 input stage?
 
Yes but that is a different bipolar. The input range is -4V to +4V on each side of the differential pair. Many In Amp boards and chips have unipolar inputs, 0 to 4V for instance, and more so in the MCU world where they try to get aways with single rails. For science you almost always want the range to go past 0. Hence bipolar inputs is a nice feature and one that is too often omitted nowadays.
 
Interesting project but I have issues, the main one being issues is turned off in Github so I can't add constructive criticism.
 
@bicycleguy I am happy to hear constructive criticism. My experience is that this is a better forum for it. What would you like to offer?
 
BTW it works pretty well. But, I am updating the boards and adding more, so now is a good time to be helpful.
 
@bicycleguy I am happy to hear constructive criticism. My experience is that this is a better forum for it. What would you like to offer?
You asked for it :)
1. The KiCad is a few versions out of date, which wouldn't matter except the libraries are significantly different and parts from your custom library are missing. Starting around version 6, (9 is current) there is an 'Archive Project' button that will zip all the symbols, footprints and 3D models into one file that will fix all of this, especially if you start with at least version 8.
2. Apparently automated schematic and board design rule checks were never performed. So what's the point of using CAD? ie Computer Aided Design. Using properly configured rule checkers and visual verification with 3D models nearly eliminates pcb errors in my experience.
3. All the schematic symbols and connections are off grid which may be why design rule check was not completed. To fix: In schematic editor window, select all, right click and then select 'Align items to grid'. This works amazingly good.
3. In Arduino, after the KiCad experience, I was surprised to find no missing libraries or even compiler errors, yah! Thanks for that. However, upon loading with the terminal connected nothing happens. Hitting the reset does bring some text but no clues as to whether the program loaded or is running. The problem appears to be that in setup functions are called that print before Serial.begin() is called. Moving them to after Serial.begin() solves that.
4. In Arduino setup its best to do:
Code:
  Serial.begin(9600);
  while(!Serial && millis()<2000) //wait for lesser of Serial or milliseconds.  Less than 2000 sometimes misses version stuff
      ;
That will keep from missing stuff and still allow running if no terminal is connected.
5. Your program has a really nice help menu but doesn't tell anyone it's there. By anyone I mean the typical Arduino user. I would suggest calling the help function after the above so the user knows they could have typed it.
 
1( The kicad files are in whatever version was current when it was designed. When kicad is at 20, that release will still be at 6. Else it would be a new release. I don't think you expect the design files to update themselves while they sit in github. However, I am planning a new release, probably in a week or two. That one will be with KiCAD 9 as far as I know.

Somehow I thought the files were already self-contained. That is, when a symbol or footprint is added, it is inserted into the schematic of pcb file. I believe I verified this by inspecting the files. But, thank you for telling me about the archive button. I will look into it.

2) The design rule checks were in fact run. I always run them. Perhaps your tolerance settings are different from mine, or from my fab/assembly house. Some of the parts have pin spacings that are closer than the defaults for KiCAD and I use character sizes that are smaller.

3) The design was not off grid for me in KiCAD 6. But, I have noticed that after importing to 8 or 9, schematics are often off grid. I agree it is quite frustrating. I think there were some posts about this in KiCAD forums and it was everntually fixed. But if you have the problem, you might want to file your bug report there.

3) (You have two "3"s) I am happy that it compiled easily for you. I will think about the help menu suggestion. It needs to be compatible with automated or "headless" use as well.
 
Back
Top