Today's beginners and enthusiasts need tools but can't afford professional hardware.
You can find many kits that provide DSO functionality for under $100. Many people have used an Arduino to create their own data acquisition platforms. I want to see a scaled down version costing under $10 ! This is possible thanks to ultra cheap LCD modules (like the Nokia 84x48 monochrome COG displays) and tiny FPGAs as found in the DIPSY.
* Minimal parts count, minimal PCB space
* 2 probes (differential sensing or 2 channels)
* Crude Voltmeter (0-5V, 1mV resolution, 1M Ohms input impedance)
* Crude Ohm-meter (1 Ohm - 1M Ohms)
* Crude frequency meter
* Dumb Oscilloscope (1 or 2 channels ?) 100Ksps ?
* Dumb Logic analyser: 8(?) channels + clock
* "about 3V" power supply (2.7V-3.6V ? Lithium primary or 2x alkaline)
Many functions are easy for a FPGA but I'm lost with the analog frontend...
The LED bubble display is cute but quite expensive. With a small LCD as intended, this should be easy to solve.
Now the interesting part is the sigma-delta ADC : the MCP3421 is small and cheap enough, it works as a voltmeter but could also be reused for current and resistance measurements with a bit more electronics (maybe with a MCP3422 that has 2 inputs ?).
The display and CPU aspects should be easy to merge with the rest of the project. An I2C interface is required but if we have a programmable MCU, it's possible to bitbang it.
This project is made possible by the very low cost, high volume parts that exist today.
The LCD screen is a small monochrome 84×48px module designed for the Nokia handsets and driven by SPI with a PCD8544 controller. You can find these modules for about 2.5$ on eBay and I'm being generous. I've once found a batch with lower unit cost, I have 44pc in stock :-)
Data processing will be handled by a small FPGA. The #DIPSY project mentions a $1 unit cost which is excellent for this application. Let's say it will cost $2 and uses a slightly larger version because we need some more pins.
Passives : half a dollar. Capacitors, resistors... at most $1 including a voltage regulator for the FPGA.
$0.2 for a 74HCT245 (buffer for the logic analyser mode)
$0.5 for a canned quartz oscillator (at least 20MHz)
$0.2 for a SPI Flash memory chip that contains various configurations for the FPGA (voltmeter, oscilloscope, frequency meter etc.)
$0.2 for a voltage reference
$0.1 for some SMD LEDs (LCD backlight, modes, trigger, overflow ?)
No push buttons. Spare FPGA pins will work as capacitive sensors.
No BNC socket, no probe : just wires, no high frequency design. Female 2.54mm headers are provided.
No power supply. Well, a 3.3V LDO is nice unless it is already available.
Let's not forget the PCB. Let's say $1 in medium volume (much more for the first units but who cares ?)
The BOM is < $7 now, about $3 remain for some other special functions.
One microcontroller is required to expand the pin count, provide more flexibility (like selection of the function and upload of the firmware to FPGA) and more interestingly provide some ADC capability. However the MCU's ADCs are not the most appropriate because we need 2 kinds of measurements :
Fast (100 or 200Ksps) at 6 bits for the oscilloscope mode (48 lines is more than 32 and less than 64)
Slow (10 sps) with more than 12 bits of resolution but good stability for the voltmeter and other functions.
The slow ADC can be created with an ramp generator and an analog comparator, the FPGA or MCU can implement a counter that is compared to a 4.096V voltage reference (or something like that). A NE555 in VFO mode could work.
However the oscilloscope mode requires a fast ADC and a frequency-dependent filter is necessary to avoid aliasing (switched capacitors filter ?). This part and the other analog parts for the Ohm meter can quickly eat up all the BOM margin...
The choice of MCU is not highly critical. Some will want a PIC, others an AVR, others will want something else... It could even be emulated with your own Arduino or Raspberry Pi during development. It could even be a soft-CPU inside the FPGA (but the pin count increases and pushes the price higher). All it has to do is :
provide the user interface inputs (buttons)
manage the FPGA configuration images (upload data blocks from SPI)
handle the fonts (SPI again) and messages, you'll want a clear big readout for your voltmeter or frequency meter
provide some analog features (depending on the MCU options)
Store settings in internal Flash (current mode, calibration, language...)
Add some intelligence or new functions ?
Anyway the heart of the system is looking cheap and I can see how to do several desired functions. But I don't think I can do it alone. I bet some people will come up with cost optimisation tricks later, I have to start somewhere...