I've been thinking about making an affordable ESR meter, which expanded to include an LCR meter, which expanded to include...
Basically, I'd like to build something - as simple as possible - with a wide variety of capabilities that standard multimeters lack, such as:
- Signal generator (standard waveforms, as well as sweeps)
- Usable as a curve tracer
- Logging and data download over USB
Most of this can be done with a DAC to generate an AC waveform, and an ADC to measure it, along with one or two external passive components.
The plan is to use a Cypress PSoC chips. These chips have extremely versatile reconfigurable analog frontends, which means one hardware revision can have its features expanded and extended with improved firmware. I'm looking at the CY8C3446PVI-076 as the device of choice, and its analog features include:
Analog peripherals (1.71 V ≤ VDDA ≤ 5.5 V)
- 1.024 V±0.9-percent internal voltage reference across –40 °C
to +85 °C
- Configurable delta-sigma ADC with 8- to12-bit resolution
- Programmable gain stage: ×0.25 to ×16
- 12-bit mode, 192-ksps, 66-dB signal to noise and distortion
ratio (SINAD), ±1-bit INL/DNL
- Two 8-bit, 8-Msps IDACs or 1-Msps VDACs
- Four comparators with 95-ns response time
- Two uncommitted opamps with 25-mA drive capability
- Two configurable multifunction analog blocks. Example
configurations are programmable gain amplifier (PGA),
transimpedance amplifier (TIA), mixer, and sample and hold
All of which is on a programmable analog interconnect matrix, making for an extremely flexible system.
Ideas? Opinions? Feature requests?
I've been experimenting with different measurement options using the Loki as a test platform. I'm just about ready to start speccing out and designing a PCB soon, and I've got a nice case lined up.
Here's a tentative version of one channel:
The blue lines are external components; everything else is internal to the PSoC.
Doing some more research, it's apparent that what I'm building is something between a signal measurement unit and a vector network analyzer. Hopefully more affordable, and definitely more programmable than either.
Cool stuff. Did you had a look at Kees' video series about synchronous detection? He created a ESR meter too - the design look somewhat similar...
[quote author="hlipka"]Cool stuff. Did you had a look at Kees' video series about synchronous detection? He created a ESR meter too - the design look somewhat similar...[/quote]
I haven't seen that. Do you have a link?
hlipka wrote:Cool stuff. Did you had a look at Kees' video series about synchronous detection? He created a ESR meter too - the design look somewhat similar...
Perhaps "Kees" is the Cypress Employee with Cypress forum profile and post-list here:
There are some YouTube videos by the Kees "Impedance Meter". Is this the video series regarding ESR?. Links in this thread:
When posting about an external reference, please provide link(s)...
Sorry I forgot about the links - was too much in a hurry...
But the answers are yes and yes :)
Holy crap, they've implemented my project for me! Or at least provided me with a great reference for a chunk of it. Though I must say, they're really terrible at explaining how it works, and the segments are infuriatingly short.
Progress! After hlipka turned me on to synchronous detection and the existing PSoC project, I've been in touch with the designer at Cypress, who has been incredibly helpful. I've restructured the analog frontend to take advantage of everything I've learned. I've also added an 8 pin digital port, in the same format as the Saleae Logic, so logic analyzer type features can be added too. Using the PSoC's SIO pins, input and output voltage levels can be adjusted dynamically!
Here's the finished (for now) schematic:
And here's the board layout so far:
The display is an EA DOGM series (http://http://www.lcd-module.com/eng/pdf/grafik/dogm128e.pdf), with backlight and touch screen (though I still need to add and route the touch-screen connector). The whole thing will go into a Hammond 1553 series case (http://http://www.hammondmfg.com/1553.htm).
The analog ports are run to u.FL connectors, making it possible to limit the length of traces as much as possible and get the analog off-board. This also makes routing the digital stuff way easier. I'll use pigtail connectors between U.FL and panel mounted BNC jacks.
I've also added low impedance digital switches to allow switching between two ranges for the input and output transimpedance amplifiers, and for choosing two lowpass filter frequencies for the output TIA. And super low capacitance TVS arrays protect all external connections.
Updated again - dropped the U.FL connectors and moved to using onboard BNC connectors. Did a lot of rerouting to accommodate it, moving the USB and digital connectors too.
More tweaks and improvements! I've moved to a dedicated LED dimming controller for the backlight instead of resistors, and made a few other layout tweaks. It's now out for fab.
A friend put together some nice renders of the case for me:
looks like it's coming together nick. It's pretty nice you were able to get some support directly from Cypress on this as well.
Dude, this is fantastic. Are you planning on selling these? Thoughts on pricing? What sort of main processor are you using here? (FPGA? uC?) If you need someone to help test or write code (on the PC or device side) I'd love to help.
[quote author="timb"]Dude, this is fantastic. Are you planning on selling these? Thoughts on pricing? What sort of main processor are you using here? (FPGA? uC?) If you need someone to help test or write code (on the PC or device side) I'd love to help.[/quote]
The processor is Cypress's PSoC 5 - specifically the CY8C5867.
I am indeed planning to sell these - probably with a Kickstarter. Given the cost of the processor and the display (the two most expensive parts), my target price is currently about $135, though hopefully they'll be cheaper for the kickstarter.
I'm definitely looking for fellow devs. I'll be looking to make some dev units available sooner than the rest so interested people can contribute code.
The main feature I think would be cool to have is a serial port for future expansion(But then, I'm a serial protocol guy and think an exposed UART belongs in everything), or even one or two acessory mounting slots based on pin headers and printable cases would be really cool and let the thing be a true tricorder.
Besides that, it looks awesome and I would also be interested in writing some code dependning on how much time I have.
[quote author="EternityForest"]The main feature I think would be cool to have is a serial port for future expansion(But then, I'm a serial protocol guy and think an exposed UART belongs in everything), or even one or two acessory mounting slots based on pin headers and printable cases would be really cool and let the thing be a true tricorder.
Besides that, it looks awesome and I would also be interested in writing some code dependning on how much time I have.[/quote]
The 8 pin digital IO expansion can be configured as a UART (or anything else) thanks to the PSoC's flexibility. I like the idea of expansion modules, and I've considered it, but I'm not sure how best to implement something like that.