• Content count

  • Joined

  • Last visited

  1. Hello, Is there any update? Thanks
  2. Hello, -------- >I use a late 2013 MacBookPro, i74850HQ, 16GB, OS X 10.11 >The DigitalIn_Record.py with 1M samples is working fine for me down to divider 26, up to ~3.8MHz. ------- >i'm using a 2014 macbook pro with 2,5Ghz Core i7 and 16GB ram, so I guess this should not be the bottleneck... >When executing my program (sample format 8bits, divider 200) I can't get much more than 500Ksamples/sec otherwise I get data lost and >corruptions. ------- It's interesting that you both use similar Apple hardware and get such different results. I will try to find a MacBook but attila could you please tell us the following: a) version of WF; b ) version of FTDI driver; c) firmware version of your AD2 (btw, is it upgradable? ) d) whatever else might be useful to know to be able to replicate your environment; It would be also very interesting to know what do you get if you repeat the same test with on Windows using the latest software available on your web site - I just want to know if those numbers (divider 26 etc) are really achievable at present time for Windows users using WF 3.5.4 installer. thanks
  3. the continuation. sample rate / num of samples/ num of loss occurrences/ num of lost samples 1MHz 10.000000 11 45056 1MHz 10.000000 5 65536 1MHz 1.000000 2 28672 1MHz 1.000000 1 4096 2MHz 1.000000 1 8192 2MHz 1.000000 2 8192 2MHz 10.000000 12 409600 2MHz 10.000000 7 40960 2MHz 10.000000 7 49152 2MHz 10.000000 7 36864 PS: num of loss occurrences - is the number of times when cLost.value > 0, number of lost samples is += cLost.value in terms of DigitalIn_Record.py if the number of samples is set to 1.000.000 then no samples are lost at 2MHz but this very short period since we are talking about possibility to continuously stream data to a PC And this is a standalone python script, in WF you will have 5 time slower sample rate (there are several posts on the forum) I have searched the forum and saw the staff's explanation why we have such results: a) USB bandwidth limitation. That makes no sense to me (just personal opinion) since USB 2.0 has more than enough bandwidth to cope with those data acquisition speeds (people were asking if USB 3 would help - even USB 2 in this case is far from saturation (just looking at the numbers); b ) The necessity to poll several tools at once (in case of WF) and as a result the need to use USB bus for multiple transfers in addition to stream data from AD2 to PC. That makes no sense to me either since the result does not depend on the number of WF tools - I can open only Logic analyzer and still not get 1MHz or so s.r. in WF for any buffer that is longer a certain, fixed number. And yes, it works fine for short periods i.e. small set of data. There is possibility that I, somehow misunderstood something and therefore the provided results are not entirely correct. But at the moment my understanding is that one can either record a short periods of time with high (relatively because it does not come even close to 100MS/s (yes, I understand that this is an internal s.f.) sample frequency or longer periods with lower sample frequency - low enough not to allow you to reliably capture 400 kHz SPI data exchange from WF for 5 seconds. Thanks.
  4. Hello, I am observing a similar situation and pretty much sure that the problem is not in the user's hardware. I already spent a lot of time trying to make it work at some acceptable level but with no success. I have tried 3 different computers, WinXP, Win7 32/64, two (different high end Lenovo) of them have SSD with write speed way faster than 100 MB/s, 24GB-32GB RAM, different USB 2 and 3 controllers, 2 different (USB 2 and USB 3) hubs, WaveForms 3.5.4, AD2 is powered by an individual 5V power supply. I tried "record" mode from WaveForms and from standalone python script (modified DigitalIn_Record.py). The result i.e. whether or not you get a message about lost/corrupted samples depends on both the sample rate and the number of samples to acquire. On the most powerful Lenovo (32GB RAM, SSD 450 MB/s write speed), with both USB2/3 plus with/without dock's USB 2 controller I can get the following result: sample rate / num of samples/ num of loss occurrences/ num of lost samples 1MHz 10.000000 11 45056
  5. Hello, I decided to use Pi 3B (pigpio lib, python) as a I2C slave and AD2 as master just to learn more about AD2 features and I2C protocol in general. the script itself: var ddd = [] if(Clear()!=true) return "I2C bus error. Check the pull-ups." i_ret = Write(0x13, 116) if( i_ret != 0) return i_ret; // "Device NAK"; //wait(0.1); ddd = Read(0x13,10) FileWriteBinary("~/Desktop/data2.bin", ddd); return ddd A simple scenario: AD2 sends a command from a script (100 kHz freq) , in 10-100 ms Pi (I2C slave) responds with 10 bytes of data, I want to capture the request/response data. What can be simpler? But the problem is that I am limited by the number of samples (16K at best). First and foremost - I cannot use "Record" mode because I need to run the script (in "Record" mode this option is not available from I2C tab). So, I have 16K samples max (with noise turned on I have only 8K), the bus speed is 100 kHZ, therefore I need the sample rate faster than 2XX kHz. I noticed that the result greatly depends on the selected rate: odd numbers like 200, 300 kHz may/will yield some sensible results but 280 kHz, 310 kHz almost guarantied to lead to totally inadequate results. With 300kHz rate, 8K samples I can cover only (1 / 300000) * 8192 = 27.3 ms or for 16K => 54ms, which no enough for this example. What is more - many captures just contain incomplete/incorrect data but I think this is the result of low sampling rate (300 kHz). Some of them contain just captured request data, some - response data (and that is really weird since it means that request data _was sent but missed by AD2). So, what is the right way to achieve this simple goal with AD2? PS: I read about real-time sample compression used in different types of logic analyzers and I think that it could be a very nice solution to this type of problems and great improvement for AD2 - most of the time during that 10-100 ms time frame the state of signals don't change i.e. the state is static and therefore being compressed it would take very little space in the buffer. That would lead automatically to the longer observation period, using the same sampling rate. Simple and powerful... Thanks.
  6. Hello attila, >You can use Logic Analyzer I2C interpreter for such purpose. Thanks for the advice, I will try.
  7. Hello attila, Thank you for the provided screenshots, it really helped. That's totally my fault that I missed such obvious thing as "Help" tab.
  8. Hello, I was wondering if there is a way to use AD2 as i2C slave ? It isn't a problem to use it as I2C master, it works as expected and is very useful for data exchange visualization. But somehow I have difficult time to figure out how to use it in slave mode, I assume it has to be some sort or script. But looking at the available script commands ( I am neither an expert in WF nor i2C communication) I cannot figure out how to do that. Thanks.
  9. Hello attila, >For the next software version for handling larger amount of UART data, warning and recovery in case of reception >buffer overflow. Excellent, because at some point I started doubting my own sanity since MCU simply could not send all this garbage, therefore I began to double check AD2 protocol decoding with other tools. Now I know that for now I better use other tools for controlling serial communication and wait for your improvements. BTW, when you are talking about "next software version" are you talking about weeks, months, years? Are there any maintenance releases for WF? And last but not least. Please forgive my ignorance, but when you say " I added improvements" I automatically assume that you are a member of a dev. team. Would it be possible to consider 2 more relatively small but very useful improvements ? a) add history for edit fields were applicable. What can be more less productive and more annoying than entering the same/almost data in the same field (for example Protocol-> subaddress/write etc) again and again? Even Turbo Pascal IDE in 1990 had it but WF in 2017 does not. b) when one opens the tab protocol ->script (at least for IC2) for the first time he can see a short description of all available commands (given as comments) used for writing I2C scripts (for example). But as soon as he by mistake or on purpose replaces the help text with something else there is no way to get that info back - this is exactly what happened to me. Now I am searching through the documentation and on this forum for a description of all commands that can be used in the script. A small button "default" that could reset the tab with all its windows into original state and show the lost info would be extremely useful. Does it make sense? Thanks!
  10. Hello jpeyron, >Also could you attach some screen shots of this issue. The original post contains the screenshot clearly showing the result of reading data by Windows Terminal and AD2 and the difference that bothers me. thanks
  11. Hello, I have a question about UART in AD2. Is it a hardware or software implementation? I was playing with a small ESP2866 board which is controlled through serial interface. I noticed that often AD2 would receive data from the module and display it as binary data. Normally it happens to long strings while short responses / first 1-20 bytes of long responses are displayed correctly. Being intrigued by that I tried to connect the ESP2866 through USB to TTL serial adapter using Windows Terminal, Serial Monitor in Arduino IDE, from my own Python program (based on pySerial) - in all those cases I would correctly receive data of any length. Eventually I just connected the TX line of ESP2866 to AD2 TX while keep it connected and controlled from Windows Terminal via USB to TTL and got the screenshot that fully confirms what I am saying. Could somebody explain to me why AD2 fails to decode proper serial communication ?
  12. Hello attila & jpeyron, Thanks for the provided explanation. best, av_disp
  13. Hello, I have a question regarding the quality of oscillogram displayed by the oscilloscope ( the screenshot is attached). The wave generator generates slow square wave, the channel 1 is connected straight to the wavegen 1 output. But when you examine the signal you see those yellow areas surrounding the leading and trailing edges and that's a bit confusing. What is this and is there anything I can do to get rid of it? Actually, I don't believe that it has anything to do with the signal itself (but I am not an expert), I would think that this is simply how the picture is drawn on the screen. Thanks!