Author Topic: A High-Performance Open Source Oscilloscope: development log & future ideas  (Read 28990 times)

0 Members and 1 Guest are viewing this topic.

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 21261
  • Country: nl
    • NCT Developments
An update on the analog front-end. No white smoke yet. What I was already afraid of turned out to be the case.

I basically started with the circuit I stopped working on over a decade ago (more or less the schematic I posted earlier). This circuit has seperate attenuator sections which get switched on/off using relais. I have come up with the following attenuation / gain table to get to a wide variety of attenuation ranges:



There are 3 attenuation factors: 2.5, 10 and 200 and a 10x amplification stage on top of a standard 2x amplification (where it says 1 in the table there is no attenuation / amplification; Excel just works easier this way). The ADC's maximum input amplitude is 2Vpp (differential).



Now to the board: I thought I had found some nice voltage controlled capacitors for NFC applications but these turned out to have a 30k Ohm DC resistance so useless in a high impedance circuit. So back to using varicaps (which I have used before). Using some low voltage high ratio varicaps I managed to get a decent voltage controlled adjustment range which seems to work nicely using a +/- 5V supply. I added these with some hacking.

The biggest problem with the circuit is that the long traces have too much inductance and thus start to resonate at frequencies well over 50MHz causing dips and peaks in the frequency response. That was the part I already was afraid off and while measuring it dawned to me that I had originally designed (and probably tested) this circuit to work to 45MHz. The NanoVNA I bought recently served as a really nice tool to measure the frequency responses quickly.

All in all I will need to rethink the input divider. I can still use the board to do more testing and use it to verify some modelling of the board by including trace inductance into the divider design. Also the anti-aliasing filters need to be tested (the large number of unpopulated 0402 components). I have included a relativile steep elliptic filter and a Bessel filter.
« Last Edit: March 22, 2021, 07:24:48 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: tom66, DaneLaw, gf, HerbTarlek

Offline tom66

  • Super Contributor
  • ***
  • Posts: 4376
  • Country: gb
  • Electron Fiddler, FPGA Hacker, Embedded Systems EE
Nice work. Unfortunately, I've not had enough time to look at the Jetson again.

Also, EEVblog doesn't notify me about replies on this thread for some reason, I'll try to keep up to date.
 

Offline tom66

  • Super Contributor
  • ***
  • Posts: 4376
  • Country: gb
  • Electron Fiddler, FPGA Hacker, Embedded Systems EE
I think everyone here is owed an update as it has been a long while now.

Unfortunately, I've come to the conclusion that realistically, I can't gather enough time to finish this project, with my career and other work taking up most of my free time.  I am currently in a precarious living situation,  looking to buy a home soon but in a market that has gone crazy due to COVID/work-from-home.  So, I find myself working long hours and generally not having enough time or energy left to look at this, in order to be able to provide the down payment on a home.  I am kicking myself for not doing this years ago, but that is FOMO and we don't do that here.

Longer term, I do want to revisit it and give another look to the platform and the software, but it probably won't be for another year or so when things have settled down on my personal side.  I have a lot of ideas for how to improve the platform.

I am more than happy for the community (if interested) to continue this project; as noted previously, everything is now open source, and I can supply the hardware schematics and designs in CircuitMaker (you can find them by looking for 'Scopy_MVP_Platform', they should be public).  But realistically this project requires several more man-years of effort, which I just cannot give it.  In any case, my day job now mostly involves dealing with Zynq and UltraScale and it's really hard to find the time or energy to continue starting at Vivado after doing 10 hours of it every day.  At my old job I was only doing basic microcontroller and analog circuit design so I felt I had a lot more 'bandwidth' available to do project work after a work day.

Anyway, I appreciate all of the advice and comments on here and, maybe someday, there will be a good open-source scope available.  But, sadly,  I don't think I will be the one to deliver it - not just yet, at least.
 
The following users thanked this post: rf-loop, nctnico, egonotto, tv84, Fungus, jjoonathan, 2N3055, gf, HerbTarlek, Anthocyanina, jldr

Offline 2N3055

  • Super Contributor
  • ***
  • Posts: 3665
  • Country: hr
I think everyone here is owed an update as it has been a long while now.

Unfortunately, I've come to the conclusion that realistically, I can't gather enough time to finish this project, with my career and other work taking up most of my free time.  I am currently in a precarious living situation,  looking to buy a home soon but in a market that has gone crazy due to COVID/work-from-home.  So, I find myself working long hours and generally not having enough time or energy left to look at this, in order to be able to provide the down payment on a home.  I am kicking myself for not doing this years ago, but that is FOMO and we don't do that here.

Longer term, I do want to revisit it and give another look to the platform and the software, but it probably won't be for another year or so when things have settled down on my personal side.  I have a lot of ideas for how to improve the platform.

I am more than happy for the community (if interested) to continue this project; as noted previously, everything is now open source, and I can supply the hardware schematics and designs in CircuitMaker (you can find them by looking for 'Scopy_MVP_Platform', they should be public).  But realistically this project requires several more man-years of effort, which I just cannot give it.  In any case, my day job now mostly involves dealing with Zynq and UltraScale and it's really hard to find the time or energy to continue starting at Vivado after doing 10 hours of it every day.  At my old job I was only doing basic microcontroller and analog circuit design so I felt I had a lot more 'bandwidth' available to do project work after a work day.

Anyway, I appreciate all of the advice and comments on here and, maybe someday, there will be a good open-source scope available.  But, sadly,  I don't think I will be the one to deliver it - not just yet, at least.

Tom,

Thank you for letting us know, and I wish you a good luck finding and buying a new home... Life comes first...

Take care,
Sinisa
 
The following users thanked this post: tom66, egonotto

Offline rhb

  • Super Contributor
  • ***
  • Posts: 3147
  • Country: us
FWIW I'd like to note that there is a 2nd prototype with a 7020 installed which I paid for which *really* should be in the hands of someone who wants to work on it.  Like Tom, I just don't have the time.  I had him keep it lest there be an accident with the other prototype.

Tom asked me if I'd pick up the tab for the 2nd prototype unit which I did, but I was a bit skittish about the resources in the Zynq part Tom chose.  So I paid to have a 7020 instead.  It's got a *lot* more resources than the 7014S.

Both of us would really like to see someone grab the ball and run with it.  So if anyone is interested, contact one or the other of us.

Tom and I have been using iPads, Facetime and MS Whiteboard to discuss technical stuff.  I can't speak for Tom, but I can certainly make time for consulting on DSP if someone wants to work on this.  There are some very cool features a la high end LeCroys I want to see implemented in a low end DSO.

Have Fun!
Reg
 
The following users thanked this post: Anthocyanina

Offline tatel

  • Regular Contributor
  • *
  • Posts: 74
  • Country: es
This situation is very sad but fully understandable. I want to thank both tom66 and rhb for all they have done and for the contribution they are making now.

However, it's clear to me that a project of this magnitude must be financed in some way. Perhaps through successive bounties as a series of goals are achieved.

I don't have the necessary knowledge, not even close. But without a doubt, there must be gifted people out there, capable of demonstrating they have achieved one of those goals.

If the objective were to develop an open hardware and free software device, regardless of commercial interests, I would commit myself to contribute €100 personally. I'm sorry it couldn't be more. There may be other people who think like me.

Of course there will be many who consider this crazy. If you are a living "I give only negative feedback" t-shirt, please don't bother to provide that feedback here. Of course the obstacles are enormous, not only financial and technical, but also organizational and human.

On the other hand, if there is only one place in the world where an initiative like this can be successful, without a doubt it's this forum ...  moreover it is impossible to do worse than Hantek with its latest development :box:

Perhaps we should think about moving this thread to a more appropriate section of the forum ... or perhaps it's better let the dead rest in peace.
 

Offline tom66

  • Super Contributor
  • ***
  • Posts: 4376
  • Country: gb
  • Electron Fiddler, FPGA Hacker, Embedded Systems EE
My estimate was it would require, at billable hours, around £100,000 worth of work done on it to get it to a finished state where it could be reasonably pushed to the real world. 

Realistically, this is only going to happen if the project were to be on a platform like Kickstarter or the like,  and I really don't feel comfortable with pushing it onto a platform like that unless it was a 'nearly-finished' platform.   A secondary issue means re-spinning a board now is rather difficult given the worldwide shortages of semiconductors.  I would have to completely redesign many parts out of it, because you cannot buy them from anywhere with any confidence that they are real parts.

I don't consider this a "dead" project just one in hibernation until the time and circumstances are right. 
 
The following users thanked this post: rhb, egonotto, Anthocyanina, tatel

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 21261
  • Country: nl
    • NCT Developments
Actually I have been toying with the idea to start a Kickstarter for an open source DSO long before this thread started. But tom66 is right, this is probably going to take a lot of money. I estimate it will take between 50k and 100k euro. I simply can't afford to do such a project for free entirely.

However, I'd take a different route and follow the architecture of the Lecroy Wavepro 7k I have. I will also go for very simple acquisition hardware (basically an FPGA with memory and some trigger facilities) and do all processing on the CPU/GPU (hoprfully using some of the code tom66 has made). FPGA development is extremely time consuming and the result is usually rather inflexible.

I have base hardware designs, boards & software environments for both NXP iMX8 and NVidia Jetson TX2 which could serve as a development platform and as a basis for the final design. Both have support for all kinds of TFT screens and PCI express brought out on a high speed connector so it is possible to hookup an FPGA board which has PCI express. At this point I wouldn't worry about component shortage. By the time the design is mature the shortage is very likely to be over / less severe. I'd probably start on the iMX8 because this is the lowest cost option.

At the software side I probably implement some simple waveform rendering and a plugin system for using Python scripts and (probably) Sigrok. From there the community can start extending the functionality.
« Last Edit: June 16, 2021, 07:17:40 am by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: egonotto

Offline rhb

  • Super Contributor
  • ***
  • Posts: 3147
  • Country: us
My estimate was it would require, at billable hours, around £100,000 worth of work done on it to get it to a finished state where it could be reasonably pushed to the real world.

[snip]

I don't consider this a "dead" project just one in hibernation until the time and circumstances are right.

I completely agree with Tom on this. 

Tom did all the work.  All I did was throw a bit of money in the air to see what would happen.  I'm *very* happy with the result even though we are still a long way from an OS DSO.  In many respects, I still think hacking a Zynq based COTS DSO is the best option.

The things that *must* be done in an FPGA are fairly limited.  IIRC my conclusion was filtering and triggering were the only things which had to be done in the FPGA.  The rest is much more leisurely because the human eye can't see changes faster than  120 Hz.

I think it worth noting that the nanoVNA languished for several years before it suddenly exploded on the world stage.  I'm hopeful that will be the case with this project.

Have Fun!
Reg
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 21261
  • Country: nl
    • NCT Developments
I completely agree with Tom on this. 

Tom did all the work.  All I did was throw a bit of money in the air to see what would happen.  I'm *very* happy with the result even though we are still a long way from an OS DSO.  In many respects, I still think hacking a Zynq based COTS DSO is the best option.
The problem with that is that extendability and processing abilities are quite low. When cycling to a customer this morning I got another idea: it could be worthwhile to add an edge TPU coprocessor like the Google Coral module to the platform (for example in an NVME slot). I think it would allow to do all kinds of signal processing tasks at very high speeds.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline tom66

  • Super Contributor
  • ***
  • Posts: 4376
  • Country: gb
  • Electron Fiddler, FPGA Hacker, Embedded Systems EE
It would be really neat to play with neural network triggers but again, I think you need to do it in real time, which implies it's done on the FPGA, unless the edge TPU can accept 8Gbit/s+ ADC data.

But the idea of giving a scope an arbitrary waveform and telling it, "OK, infer a good trigger from this mess"  is quite neat.  I suspect it would require a dense NN but it could be done,  it's essentially the same problem as processing vision data to detect patterns but applied only in 1D space.  Doing it across multiple channels is a little more complex.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 21261
  • Country: nl
    • NCT Developments
AFAIK Lecroy does some of the more advanced triggers in software (=not realtime) so the idea of feeding data into an edge TPU for triggering is not out of the question.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline tom66

  • Super Contributor
  • ***
  • Posts: 4376
  • Country: gb
  • Electron Fiddler, FPGA Hacker, Embedded Systems EE
You could probably pre-qualify the data with an edge trigger and only send frames of edge triggered data to the TPU, which need to be realigned to create a real trigger.  It would reduce the data rate to be something similar to what the Pi does in the current design.

This is the kind of neat research-like project that could come about from an open source oscilloscope project,  it's just a shame that time is short.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf