Author Topic: SainSmart DDS120 & DDS140 USB Oscilloscope  (Read 174723 times)

mmark, Adrian_Arg. and 7 Guests are viewing this topic.

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
SainSmart DDS120 & DDS140 USB Oscilloscope
« on: May 20, 2014, 04:29:20 pm »
ED:
We have FOSS code!!
/ED



This scope is advertised as 50Ms/s while the ADC runs at 40MHz. The supplied software switches down to a sampling rate of 2.4 "MHz" when over a certain time division, and then over the time division it switches up to 50MHz. The resulting graph is not as pretty as I'd like... The lowered sampling rate appears to be a way to avoid writing sub-pixel graphing accuracy, but it could also be a self-imposed CPU load ceiling.

The two probes are of the model TP6100, which when sold separately reportedly cost $9 on eBay. They are probably not true 100MHz probes, but one review of them that I saw referred to them as "good stuff".

There's a rather exposed I2C interface, which I have heard lends itself to hackability. There is also an API to the driver with a sample project for the Microsoft platform SDK.

I placed my order on May 8th, so it took 12 days to deliver it from China to Finland. I paid $67.99 in total. I ordered it from here: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=300992154516

So far I'm happy with the hardware I actually got for the money but will have to look into making the scope work with some existing open source package.

R4 - AD9288BSTZ-40:
http://www.analog.com/static/imported-files/data_sheets/AD9288.pdf

C10 - CY7C68013A:
http://www.cypress.com/?docID=45142

R13 - 24LC64:
http://www.mouser.com/ds/2/268/21189h-21840.pdf

I'll bump this when I know more about this thing!

ED:

Added some high-res pics to my private web server:
http://nya.dy.fi/static/images/PICT3351.JPG
http://nya.dy.fi/static/images/PICT3348.JPG
http://nya.dy.fi/static/images/PICT3347.JPG

These photographs are just under 6MB each.

ED2:
Updates..
« Last Edit: November 13, 2014, 03:55:37 am by ganzuul »
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #1 on: May 20, 2014, 11:31:00 pm »
Well my ISP shut me down for a few when I tried to zone transfer some Chinese DNS records. :P I was thinking www.buudai.com might have a new IP which hasn't propagated yet, so in want of that I cyber-stalked the developer instead!  :-/O

https://web.archive.org/web/20140520231246/http://bbs.21ic.com/icview-350047-1-1.html

Looks like a university student who couldn't afford a scope of his own, so instead he built one for himself.


ED:

Forgot this. The software package that gets distributed with the Rocktech version of the scope has one additional functional button in the UI, but the version number is the same.
http://m5.img.dxcdn.com/CDDriver/CD/sku.271544.rar
(From http://www.dx.com/p/bm102-bm102-50mhz-2-ch-usb-analog-oscilloscope-silver-grey-271544#.U3vp5a4Rots )
« Last Edit: October 04, 2014, 04:46:31 am by ganzuul »
 

Offline mikewardlow

  • Newbie
  • Posts: 3
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #2 on: August 23, 2014, 12:50:37 pm »
I purchased the DDS120 [BM102] in August.  It sort of works , the display software needs much improving, :palm:
I was trying to detect a pulse train [ie]  100us pulse, 100us delay, 100us pulse, 8 second delay,  this sequence repeats :-+
Trying to use single trigger :--, it would sometimes take 2 minutes to capture a trace  :=\,  it seems like the larger the delay 8, the longer it takes to catch the trigger :-// ... Normal trigger was not much better.  All the trace captures displays started at center screen, I have been unable to change that, who needs a 50% pretrigger area :--? When I would capture a signal, starting at center screen, then change the time base, it would rescale proper on some timebase, bad on some, missing on some. :-BROKE

It is a useable product if you don't need to observe 1 time events,  again the display software needs much improving
 

Offline mikewardlow

  • Newbie
  • Posts: 3
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #3 on: August 26, 2014, 03:27:48 pm »
Have been in contact with Sainsmart, they are working on a SW upgrade that will hopefully be released [ next 7 days] :-DD
I'm not going to hold my breath  :-//
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #4 on: August 31, 2014, 11:54:12 pm »
Thanks for your efforts. Let us know on any news. :-)

Cheers

doc

Edit:

Q2/Q3/Q?/Q? = AD8065ART-R2
Datasheet: http://www.analog.com/static/imported-files/data_sheets/AD8065_8066.pdf
« Last Edit: September 01, 2014, 05:45:39 pm by doctormord »
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #5 on: September 15, 2014, 06:34:59 pm »
If someone please could dump the I2C eeprom? Somehow i fried mine.  :--

Offline biot

  • Regular Contributor
  • *
  • Posts: 67
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #6 on: September 15, 2014, 10:57:26 pm »
If someone please could dump the I2C eeprom? Somehow i fried mine.  :--
Usually these EEPROMs connected to Cypress FX2s contain only a USB VID/PID, not much more. But this is an 8KiB EEPROM, much larger than it needs to be for this. It wouldn't surprise me if this one also contained some calibration data specific to your unit. So if you get a dump and things seem off afterwards... don't be too surprised.

I don't know this particular USB scope, but I've seen this in other cheap USB scopes.
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8229
  • Country: 00
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #7 on: September 15, 2014, 11:07:35 pm »
Quote
Glad to know I won't be fattening unwashed kapitalist pigs

You probably don't want to know this but it is precisely those kapitalist pigs who made it possible for you to purcahse this product from China.

A little bit ungraceful to slam the hands that just helped you.
================================
https://dannyelectronics.wordpress.com/
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #8 on: September 16, 2014, 01:36:16 am »
I changed the PID/VID/DID back to the original ones, but this wont work. It seems that the whole firmware is stored in the EEPROM.

I initially dumped the EEPROM several times, but ponyprog came up with nonvalid dumps.

If someone is able to dump:

Ponyprog: I2C Bus 16bit eeprom, 2464/2465

« Last Edit: September 16, 2014, 01:53:05 am by doctormord »
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #9 on: September 26, 2014, 10:02:13 am »
Anyone tried yet?

Cheers, doc

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #10 on: October 04, 2014, 04:58:20 am »
Oh hey! Didn't notice people were posting here!  =D

I'm working on getting a dump from the EEPROM done, but I have been avoiding soldering since I remain horrible at the art. I should be able to attach to the 222 resistors fairly safely though... shouldn't I?

Doc tells me my approach of listening in on the Cypress uC talking to the EEPROM isn't going to work. But, should I not be able to analyze the data after capture just as well? Or is it necessary to chat up the 24LC64 to get it to tell me its secrets?


You probably don't want to know this...
Ah, that was supposed to be a joke. I removed it now.
 

Online frenky

  • Supporter
  • ****
  • Posts: 966
  • Country: si
    • Frenki.net
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #12 on: October 05, 2014, 02:06:34 am »
Thanks frenky! I thought I had bricked the EEPROM for a moment there while I was playing around with CyConsole, but it seems to work fine still, capturing traces and so on.  :phew:

It strangely stopped responding to 0xA9 requests after I had mashed the buttons for a bit. It now occurs to me that it might have forgotten the Vend_Ax.hex firmware.
Meanwhile, I'm unsure of how to automate dumping the EEPROM. I would rather not manually iterate through the whole address range, but learning to code this thing has been on my to-do list so I might try that approach.

If others wish to try this route, I can add to step 6 at jwandrews.co.uk's instructions the following:
Open cmd with admin privs, enter;
Code: [Select]
>cd C:\Cypress\Cypress Suite USB 3.4.7\Driver\bin\wlh\x64
>pnputil -i -a cyusb.inf
Meanwhile, Vend_Ax.hex is located in C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Firmware\Vend_ax if you use
http://dlm.cypress.com.edgesuite.net/akdlm/downloadmanager/software/CY3684Setup.exe


In addition to the GUI improvements we have discussed, another potential use for this device might be software defined radio. A shortwave radio with two receiving antennas could be very interesting in case the data streams are 'coherent', since you could theoretically then put a ~10db attenuation on local sources of interference.
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #13 on: October 06, 2014, 12:54:56 am »
Aah! That was easier than I thought. CyConsole does requests of 4096 bytes length, so I just made two of those.

https://docs.google.com/document/d/1gz8bpZO8d04XP_qIzXkw-ArYnnmb7o2oF7ut7Qiz32w/edit?usp=sharing

I'll clean it up and make a proper file out of it, like .hex or .iic...

Note line 0FF0 after the first 4096 bytes is equal to line 0000 of the second 4K. Then there is a little padding, and then the rest of the ROM is NULL. - The Keil compiler that the Cypress SDK comes with is restricted to binaries of 4K, so we can probably assume that Buudai used the free version!

Now IDA Pro does IIRC disassemble 8051 bytecode... More on this later.

ED:
The attached file should be the binary. I presume doc will tell us if it works! =)
« Last Edit: October 06, 2014, 03:36:33 am by ganzuul »
 

Offline doctormord

  • Regular Contributor
  • *
  • Posts: 190
  • Country: cx
  • !nop
    • #fine_arts & #electronics - 360customs.de
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #14 on: October 06, 2014, 11:05:49 am »
BIG thanks to ganzuul and franky, we are back in business!  :box: :clap: :clap: :clap:

Reflash the EEPROM in short:

- disconnect (open) jumper R32 from pcb
- connect scope to PC
- wait for USB recognition (CYPRESS default VID/PID)
- connect (close) jumper R32 on pcb
- start Ponyprog2000
- set EEPROM type to 2464/2465 - I2C bus 16bit eeprom
- do a calibration (Setup -> Calibration
- read device to backup state (button)

- File -> Open Device File -> i.e. "DDS120_24LC64.bin"
- write device (button), verifies when finished

- reconnect scope, wait for scope driver to finish installation

 O0

Flashing is done via a simple parallel-port-programmer called "Easy I²C Bus interface":

http://www.lancos.com/prog.html#easyi2c

Bottom of page.

(Should also be possible via a CH341A eeprom programmer, but haven't any success)

Reprogramming can also be done via the CYPRESS USB Control Center (see attachment). When doing so, it is important to select the "64k eeprom":

- disconnect (open) jumper R32 from pcb
- connect scope to PC
- wait for USB recognition (CYPRESS default VID/PID)
- connect (close) jumper R32 on pcb
- start Cypress USB Console
- start EZ-USB Interface (Options -> EZ-USB)
- "Cypress EZ-USB ..." should be shown next do Device
- press Lg EEPROM "DnLoad to 64k EEPROM"
- select "All files *.*"
- select "DDS120_24LC64.bin"
- wait for finish then reconnect scope
- wait for scope driver to finish installation
- Done
« Last Edit: October 06, 2014, 11:41:26 am by doctormord »
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #15 on: October 08, 2014, 09:21:59 pm »
Glad I could help! I learned a lot in the process, and I don't think I'm done. =)

By the way, I just noticed that the DDS 120's File > Record an Review function actually does work! It's much more usable than the Single trigger. It will record up to 450 frames to disk.
 

Offline psynapse

  • Regular Contributor
  • *
  • Posts: 66
  • Country: fr
  • I tried, and I failed
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #16 on: October 09, 2014, 12:07:43 am »
A little off topic. I have the DDS140 (BM104) which uses

ad9288
cy7C68013
altera max II.

The altera gives a lot of extra I/O pins for logic analyser / sig.gen.  I have not traced the circuit to see whether it plays any major part in analogue acquisition

However I note that the (awful) software is the same for both scopes, so I am guessing the protocol to the cy 7C68013 is the same.

Somebody mentioned an API to the device, where can I find that please.

Like one of the other folk here, I brought this thing to record single shot events, but triggering is almost non existent. And the faster the sample rate, the less likely the trigger is to happen.  A quick calculation on USB2 transfer rates suggests that the device goes blind whilst it transfers the next 40k bytes of samples.  Another person noted that the record function works  ...... and it does ..... but seems to have the same problem ...... ie grab 40k bytes, transfer it to the PC, store it on hdd, get the next 40k ..... which would mean that the data is actually full of holes.  All that said, if I could get true triggering, 20kx2 samples would be fine

Postscript:

Just opened mine up to take a photograph ...... to my horror I find the AD is a 40Msps certified part and the crystal to the logic array is 80Mhz   ....... This would be fine, except that this device is meant to be 100M samples per second per channel  .... So I shall try and send it back
« Last Edit: October 09, 2014, 02:30:45 pm by psynapse »
 

Offline donut6

  • Contributor
  • Posts: 13
  • Country: scotland
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #17 on: October 09, 2014, 06:18:43 pm »
I also have the DDS140, advertised on amazon.co.uk as a 40MHz 200M/S Oscilloscope.

But, the analogue front end is identical to the DDS120?

Too lazy to return it. Might try my hand at writing an OpenGL scope app!
 

Offline gambit58

  • Newbie
  • Posts: 1
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #18 on: October 10, 2014, 04:11:03 am »
Hello
I just received the SainSmart DDS-120. The device drivers installed properly for Windows 7/64 Ult. When I run the scope software that is included I receive an error message (See attached). Suggestions for a fix?
Thank you
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #19 on: October 10, 2014, 09:06:23 am »
Just opened mine up to take a photograph ...... to my horror I find the AD is a 40Msps certified part and the crystal to the logic array is 80Mhz   ....... This would be fine, except that this device is meant to be 100M samples per second per channel  .... So I shall try and send it back

That's an amazing thing to hear!  :wtf:

I wonder if the AD is actually a genuine part? I can imagine an off-brand higher spec device would cost less than a brand-name one.

Perhaps it can be overclocked in the DDS 120, like doc suggested?

I also have the DDS140, advertised on amazon.co.uk as a 40MHz 200M/S Oscilloscope.

But, the analogue front end is identical to the DDS120?

Too lazy to return it. Might try my hand at writing an OpenGL scope app!
Are the probes identical too?

I'll gladly collaborate with you on the scope app. =D

Attached is a capture I made with a trial version of a program called USBlyzer. I was not able to capture any of the control signals which are obviously sent back to the uC, or any of the traffic in that direction, to my frustration. However, the data it sends should be trivial to plot. I'll next try USB Hound, which I found through links on this site: http://janaxelson.com/development_tools.htm

I wonder if the easiest way to make a pretty graph would not be to use "poor man's anti-aliasing" and simply downscale a large bitmap. A further degree of averaging/smoothing could be to use a fading effect. Ideally, this would make the visual equivalent of; sort 5 or so samples, drop the highest and lowest, take average value, and display it. - This very simple signal conditioning procedure has high noise immunity. There is no need to decimate the signal rate; one can just shift in the next sample in the sequence.

A much more advanced, experimental idea could be to see if http://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_synthesis can't be used for a kind of triggering... Wave form stabilization, to be exact. The theory is just extremely interesting.

« Last Edit: October 10, 2014, 09:21:37 am by ganzuul »
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #20 on: October 10, 2014, 09:07:29 am »
Hello
I just received the SainSmart DDS-120. The device drivers installed properly for Windows 7/64 Ult. When I run the scope software that is included I receive an error message (See attached). Suggestions for a fix?
Thank you
Does it show up in Device Manager? Did you try installing it on another PC?
 

Offline psynapse

  • Regular Contributor
  • *
  • Posts: 66
  • Country: fr
  • I tried, and I failed
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #21 on: October 10, 2014, 09:46:33 am »
Identical front end to the DDS120:- no, probably similar but a visual inspection between photos of the DDS120 and the DDS140 shows at least different component layout .... but in my DDS140 the A/D converter is identical to that in the DDS120 .... and hence incapable of 100Msps. The silk screening on the top is for an Analog Devices AD9288 BSTZ-40 , perhaps with a date code of 0732 (?!) and since it is not clear that AD use the BSTZ-40 designation, it might be a copy (photo)

Here is a photo of the insides of my DDS140, apologies for the added colours, I am trying to trace through to get an idea of how it works ..... Although I am so disgusted at being sold something that doesn't do what it says, that I have stopped for now .... send it back or not?  And if I keep it, happy to collaborate .... to my mind the quickest way to get something working might be as part of sigrok, a cross platform community.
 

Offline psynapse

  • Regular Contributor
  • *
  • Posts: 66
  • Country: fr
  • I tried, and I failed
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #22 on: October 10, 2014, 10:08:24 am »
To all (but Ganzuul in particular)

Nice USB dumping utility:- if I read it correctly, its reading 64k bytes in 80mS? I need to look into that.  But as you say, it will be important to read traffic in both directions.

Yes the A/D might be being overclocked, but I prefer your explanation of a copy which might be capable of that speed . IF I have read the date code correctly (ie 7 years old) then that seems more likely.  The 80Mhz clock to the gate array I had presumed was divided by 2 (or another prescaler) before going to the AD, but it might be fed direct .... I really need a scope to find out  ;)

Still would mean that the maximum sample rate is 80msps, but did I read somewhere that "they" use a slight of hand to call that 100msps. ie interpolation.

Your ideas on subsampling are very interesting and I will look into them as soon as I can advance a little in the hardware. I guess you are not keen on the sigrok approach  .... could I ask why?

Postscript:

No meaningful dialogue with the supplier, simply a "contact Amazon for a return"

On the AD9288:- Overclocking (or use of forgery) of this part has been common for some time, see this post

http://www.eevblog.com/2009/04/05/full-review-of-the-rigol-ds1052e/

And the guys here in the " Rigol DS1052E " community are completely used to AD9288-40's being used at 100Mhz.  Arguments still abound whether the chips are copies, selected samples or whether all 9288's work at 100Mhz with decreasing accuracy.  Reading (the AD9288 datasheet) a little further myself, the top 5 bits are determined by a switched capacitor technique and the bottom three bits by a small (3 bit) flash convertor.  This would mean that a 40Mhz part might well work well on the top 5 bits , but with increasing errors in the bottom three bits as sample rates increase. Quoted performance for the DDS140 is S/N 100:1 so errors in the bottom 1.5 bits is in specification.

So the long and short, I guess what I have is the "norm" and not a freak DDS140.  I would love to know what others have inside their DDS140, assuming the courage of violating the meaningless "void if removed" sticker.

And when I get the time, I shall follow ganzuuls example and use Wireshark + USBPcap to get hold of the USB traffic.  It will interesting to see what the differences are between DDS120 and 140 protocols.

« Last Edit: October 10, 2014, 11:33:08 am by psynapse »
 

Offline psynapse

  • Regular Contributor
  • *
  • Posts: 66
  • Country: fr
  • I tried, and I failed
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #23 on: October 10, 2014, 12:35:14 pm »
Less of me!  I have neither a DDS120 nor a Hantek6022be, but a visual of photos of the PCBs suggests that both are wired identically with respect to AtoD and the cypress chips, ie both have AD9288s wired to the same ports in the same way.... which leads to the questions,
has anybody more information on this similarity?
Has anybody had the courage to cross load firmware? (Since these devices are largely boot loaded from the host PC ????????). 

The reason for this question is that the Hantek is being worked upon  by the Open community  ... and for Ganzuul there is some progress on the protocol exchange (see https://github.com/olerem/openhantek/commit/9a0d2747edc9306b1b56c04a4a9d491269023c76)
 

Offline ganzuul

  • Contributor
  • Posts: 49
  • Country: fi
Re: SainSmart DDS120 USB Oscilloscope (Buudai BM102)
« Reply #24 on: October 10, 2014, 05:38:51 pm »
That's brilliant!

The JTAG interface to the FPGA could prove very interesting. - I have spent the past few days learning about JTAG on an unrelated and now mostly finished project. I used a Parallax Propeller with a piece of software called the Jtagulator, by Joe Grand. It enumerates pin configurations, for UART too, and also does a boundary scan. You have to get the voltage level right but 3.3V is fortunately very common.

I'm quite unfamiliar with sigrok aside from recently encountering it in passing and adding it to me reading list.

The RF frontend is an unexplored mystery to me right now, but overclocking the DDS 120 definitely has to be tried.
1.5 bits of resolution translates to 9db. 39db left. Can be used for certain applications.

I'll definitely try cross-loading the firmware from the Hantek if I can obtain it! And also try my hand at analyzing the bytecode side-by-side since we have our binary from the DDS 120. Doc tried removing the pin which powers the EEPROM, and so did I after I knew he got his DDS 120 working again with the firmware. When the pin is removed the scope enumerates as a different USB device, and you can still load firmware directly into RAM with CyConsole.

This is gotting very interesting! =D

Do you think you could use CyConsole to get a copy of the firmware from the DDS 140? I'd very much like to try to spot differences, and do more cross-loading. =)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf