NI 6259 photon counter min pulse detection

Hello,
I have a PCI 6259 DAQ card which I'm using as a counter. Is there a limit to the minimum pulse width it can count while operating as a counter? My photon counter gives out TTL pulses with widths of 50ns which I think is below what the counter can read unless I am mistaken. I'm using the 100kHz internal clock as the clock source. Is there anyway to get the counter to pick up such small pulses?
Would the NI PCI 6120 DAQ card be a better choice for this type of measurement? I should be able to get my hands on one shortly.
Thanks for your time,
Mark.
Solved!
Go to Solution.

A 50 ns pulse corresponds to a 20 MHz freq.  You should be able to capture/measure such a TTL pulse with a 6259, but I don't think you'll really want to be measuring pulse *widths*.   You'd only be able to get a nominal count of 4 timebase edges per width with a possible +/- 1 count uncertainty, i.e., 25% measurement error.
More likely, you'd either want to:
        1. measure the period/frequency of successive rising edges of these 50 ns pulses, effectively timestamping every detected photon.   Brief fast bursts of photons may produce an unrecoverable FIFO error.   A newer X-series device with a bigger counter FIFO would be a better choice if this is an issue.
OR
        2. perform "binning" by counting the # of these 50 ns pulses that occur during equal time intervals.   Here you are pretty immunce to brief bursts of photons, but you need to sustain long-term throughput over the PCI bus.  You're probably pretty safe sampling at <= 100 kHz or so, but if you need better precision on the bins & thus faster sustained throughput, I'd again recommend a PCIe X-series board. 
   You might also have to watch out for a feature known as "Duplicate Count Prevention" which could impact your measurement data if you ever have 0 photons in a given interval.  The faster you sample, the more likely this is to come up.
-Kevin P

Similar Messages

  • PCI6602 to detect TTL output from single photon counter

    Dear all,
    I am learning how to use Labview.
    Here is the system I try to set up.
    1.   Single photon counting module, 2.5v TTL output, 20MHz light source
    2. BNC-2121 block
    3. PCI6602
    4. Labview 7.0, NI-DAQmx
    The aim of this system is to counts the number of the detected photons from the light source.
    I have problem to start this task. Can you guys help to creat a sample which i can start from?  
    Your help will be greatly appreciated.
    Frankie

    Hi Frankie,
    I would suggest using the NI-DAQmx counter shipping examples to get
    started.  The Count Digital Events VI would be a good starting
    point. 
    You can open it through:
     Help >>
    Find Examples >>
    Hardware Input and Output >>
    DAQmx >>
    Counter Measurements >>
    Count Digital Events >>
    Count Digital Events.
    Hope this helps!
    Micaela N
    National Instruments

  • Count ttl pulse only over 2 V

    Hi I have a problem while I was trying to count a ttl pulse by using the DAQ Assistant. The problem may be simple but I just cannot solve that since I am new to LabView.
    There is a TTL pulse generated from our APD which is about 30 ns width, 5V. I want to use LabView to do the photon counting. However due to the noise, I would like to set a count limit of 2V, so the software only count the TTL pulse which is greater than 2V. But I cannot do that. There is no option to set the limit.
    And our hardware is BNC-2110 and PCIe-6323.
    Can someone help me with this? Thanks.
    Solved!
    Go to Solution.

    Okay so perform a finite or continous read of your analog input.  Then you can perform a threshold, where all values below 2 become 0.  This can be done many ways but I'd suggest an auto indexing for loop and using a select function in the for loop.  Then you can perform any normal edge detection you normally would to count pulses.
    EDIT: Post some code if you can.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Counting TTL pulses within specified integration time

    Dear all,
    I have a PCI-6014 board, and I use Labview 7.1 and would like to do the following task with DAQmx7.4:
    Analog source:  analog square wave (or = 1Hz TTL pulses) produced by a function generator
    Signal: photon signals from a photomultiplier (random TTL pulses)
    I would like to count the photon signals at 100ms integration time, repetitively. But I don't want cumulative counts, just the number of photons (TTL pulses)  in every 100ms.  I would also like to make sure that I synchronize the counter with the analog source, i.e. to make sure I get exactly 10 data points in each analog cycle. ( I can't use the computer to start the function generator and it just keeps running., so I want to make sure I start counting on the starting edge of the analog wave.)
    I used to do this with the traditional DAQ and connected the analog source to the "GATE" pin of the counter , so i could count "while gate is high" ( or while gate low, or count on rising edge/ falling edge. ) However I found some problems and I think my counter wasn't counting correctly, and I would like to rewrite the task  with DAQmx anyway.  Ideally I would like to separate the signals that occur in the first 1/2 and the second 1/2 of each analog cycle. But if that is not quite achievable, I can do the separation later when I process the data, provided that I know each 10 data points from the counter correspond to each analog cycle.
    I have read several threads on the discussion board, but I still couldn't configure my applications using those examples.
    Also I wonder if the "Arm Start Trigger" function is not available on my PCI-6014 card ? Because I can not find it in the Start Trigger property node.
    Thank you very much for your reply. Any hint or advice would be greatly appreciated.
    Joyce

    ...(Continued from prev post due to 500-char limit)
    Now, here's a proposal for a method that should be able to work, though it'll require more data and more processing.  One key area to watch out for under DAQmx is the property node for "Duplicate Count Prevention."  The behavior changed between 7.1 and 7.3 (on E and/or M series, but not on TIO-based counters), then the defaults changed in 7.4, and something changed yet again in 7.5
    Bottom line: you can set it to True or False.  One setting will allow you to buffer up 0 values for intervals where there are no Source signals (photon events) within a sampling period (10 Hz hw clock).  The other setting will not record anything in the buffer for those intervals.  Clearly, you need the former setting, so you can always experiment to see how it behaves.  I kinda gave up on trying to interpret it, understand it, or keep up with the differences by DAQmx version and DAQ board.
    Ok, here goes:  I'm going to propose that you actually oversample by about 10x and that you capture the Analog square wave in sync with your photon counts.  Then your post-processing can determine for sure which samples correspond to Analog Square High and which to Low.  You'll also be able to adjust for times when you get 1 too many or one too few samples in a square wave cycle, due to having independent un-sync'ed timebases.
    So on one counter you generate a 100 Hz clock.  The other one is programmed for buffered period measurement using the 100 Hz clock as a SampleClock and the photon pulses as the Source signal (this must be set up using a DAQmx Channel property node I believe).  Remeber to be careful also about the DuplicateCountPrevention property.
    You would further setup an AI task using the same 100 Hz clock as a Sample clock.  Be sure that the 100 Hz clock task is started after starting both the other tasks.  Also, be sure to always read the same # of samples from both tasks to keep the counter period and AI data in sync.
    Voila!  You now generate a data record of # of photon pulses for each 10 msec interval along with the voltage of the analog square wave at the end of that interval.  A bit of post-processing and you're covered.  If you're not required to manipulate data while the acq tasks are running, you can surely afford to bump up the oversampling rate considerably.  The main advantage is to gain resolution on the time of transition of the analog square wave.  For any interval ending with a TTL state change, you won't know where within that interval the transition occurred.
    -Kevin P.

  • 2d raster scan photon counting optimizati​on

    I have written a VI for a 2-D raster scan and counting TTL pulses from a photon counter at every pixel.
    It seems to be working fine and is serving its purpose for the time being. However there are a couple of thing I want to improve
    Currently, I have 2 loops, on within the other for each of the axes (x and y) for the scan. Then within the inner loop, I am counting the pulses. Now, the problem I am facing is that I have not figured out how to start the counter from 0 at every iteration. Instead, what I am doing is running the counter twice in a for loop and outputting the difference between these two iterations using shift registers.
    What I would like to do is avoid having to count twice for each iteration. I tried the start task and stop task vi but they seem to be doing nothing. 
    The other thing that would be nice is to avoid having the loops. I have heard that it is "expensive" to use the loops and they cause some overhead time in the program. I don't really think it is bothering me at this point but I think if I have to do faster scanning rates then it might. Currently I am scanning at >100ms per pixel. 
    (And also, just FYI, my raster wavefrom is slightly different in that in is a "triangle"instead of sawtooth. i.e. it goes to the end of the fast axis, then starts the next line from the end rather than the beginning to avoid sudden jerks to my hardware.)
    I have attached my VI. thanks
    Aditi
    Attachments:
    Galvo_Scan_Image 5.vi ‏92 KB

    I cannot help with your counter issues.
    The loops do have some overhead. It is on the order of a few nanoseconds. While loops are probably slightly slower than for loops because of the extra testing. Compared to your DAQ timing the loop time is completely negligible. Look at the test program below.
    Since you know (or can calculate) the number of steps, for loops are probably the better choice. I think the conditional for loop is available in LV 2011.
    You should probably move the AO Create channels VIs and associated Clear Task VIs outside the loops. Connect the task ID wires via shift register so that the value will be passed in the event someone enters start and end values which result in zero iterations of the loops.
    Generally to speed things up you want to move any calculations and any displays (indicators) outside the loops when it can be done without adverse impact on functionality.  For example the divide by two can be moved to the outer loop; the inputs do not change within the inner loop.  If you do not need to see every update immediately, reducing the number of writes to the Intensity graph amy speed things up a bit.
    Avoid right to left wires and wires behind other objects. These have no effect on program performance but they make it much harder to understand what is going on and to fine problems. I have attached a cleaned up version of your program.
    Lynn
    Attachments:
    Loop times.vi ‏12 KB
    Galvo_Scan_Image 5.2.vi ‏74 KB

  • Counting ttl pulses

    Hello Everyone,
    I am attempting to continuously record (i.e. time stamp) only positive (i.e. 'Logic High' event) TTL pulses from a PMT using a PCI-6602 board via a BNC-2121.
    From reading the LabVIEW tutorials/examples it seems that I should be able to get very high precision (15 digits) from the "Get Date/Time In Seconds" VI. I need to be able to record times to the microsecond (at least). Yet when I look at the data it appears that for every digit less than a millisecond either a 9 or a 0 is recorded, which leads me to believe that I can't get better time resolution than a millisecond. Is there anything I can do to change this?
    Assuming that I can get this to work I would also like to simultaneously monitor and record a second PMT channel. Any hints or tips would be great!
    I've attached my very basic VI below.
    Cheers,
    CJ
    Message Edited by CJKS on 05-22-2006 11:53 AM
    Attachments:
    PMTcounter.vi ‏126 KB

    Yes the simpliest way to do what you want is to count the time between rising edges using a counter (the 6602 has 8 80 Mhz 32-bit counters).  Yo will not use digital io but time counting.  The gate of your counter will be the TTL/Cmos pulse from your PMT and the source of the counter will be the 6602 master clock 80Mhz, so you can count clock ticks between photons, now you have a 12.5ns time resolution.  You can use the system clock to get a time zero if you would like to use absolute time.  The olny thing to keep in mind is that you will be limited to a maximum time between pulses of 2^32/80M or 53 seconds, you will get an overflow of your counter but usually this is not a problem with photon counting.  You will be also limited to a maximum photon rate of about 20Mphoton events.sec this is also not a problem since the interesting photon events seem to happen between these time scales.  if you want a longer time scale you cvan always casceds 2 counters to get 64bit resolution but this is probablu not necessary.  Look at the buffered period measurment examples.  You can easily scale this to 8 counters with 8 PMTs if desired with your curent hardware but this gets expensive.  Goodluck.
    Paul
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Photon counting

    Hi i am setting up a fluorescence correlation spectroscopy (FCS) experiment based on a home made confocal microscope coupled to a single avalanche photodiode (SAPD Perkin Elmer) that is able to count photon by delivering TTL pulses (2.5 V, 9 ns). To perform FCS or single molecule FRET experiment analysis I need to record photon count during several minutes. We have installed a PCIe 6361 with a connector box. I am a newbie in the labview "world" and I tried to record photon flux by using the attached vi. as you will see it is not really optimized in term of speed acquisition. it works well if i record 1 000 000 points with 1µs time resolution. unfortunatly for ma purpose it is definitively not enough moreover the NI card is a able to run 100Mhz.
    would it be possible to use some tricks ? like FIFO mode or a sliding buffer ?
    many thanks for your help.
    regards
    Attachments:
    essai_1.vi ‏26 KB

    Dear John,
    thanks for
    your answer. I apologize; I did not give enough information in my post. If
    fact, in our experiment the count rate is at maximum 1 MHz, moreover the APD is
    saturated when the count rate reach 10 MHz. Basically we perform two kind of
    experiments; in the FCS scheme, the photon flux is recorded and we have an
    algorithm that is computing the autocorrelation of the fluorescence signal. As
    you can see on the picture, we typically need a microsecond resolution on a
    time scale that covers several orders of magnitude. In this case we need to
    record the flux with µs resolution for let says 1 minute. I am wondering if it
    is possible instead of counting the photon to record the arrival time of the
    photon. Indeed when the count rate is low (10-50 kHz) we will have zero values
    most of the time so it is maybe more clever to record arrival time …. The
    second kind of experiment is the energy transfer scheme in which we monitor the
    interaction between two biomolecules by using two fluorophores. A laser is
    exciting the first one (donor) and if the second one (acceptor) is at less than
    10 nm you will observe an energy transfer from the donor to the acceptor. It is
    hugely used in biology to evidence molecular interaction. In this case you need
    to record with the detectors the fluorescence signal for several minutes with a
    time resolution of 1-100 µs. Again the size of the file can be very big.
    I hope this
    will help you in your answer.
    Regards,
    pascal

  • What is the min pulse width that can be measured using a 32-bit conter?

    what is the min pulse width that can be measured using a 32-bit conter?
    and also by chnaging the referenced Clock, can we measure as min as 10ns pulse width?

    You could measure a 40ns pulse, but not with a great degree of accuracy. Here's a good document on how counter pulse width measurements are handled:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/7C77FB9EDC17C3C386256802007B8AB3
    With a 40 ns pulse, you'd have 3 counts per pulse so your uncertainty is pretty high (33%). Another way to look at it would be that you would read either 3 counts or 4 counts which would be values of 37.5ns (3*12.5ns) or 50ns depending on where the rising edges fall. So you wouldn't be able to tell the difference between a 40ns pulse and a 42ns pulse, but you would between a 40ns and a 100ns.
    Hope this helps,
    Andrew S
    National Instruments
    Message Edited by stilly32 on 09-18-2006 05:04 PM
    Getting Started with NI-DAQmx
    Measurement Fundamentals

  • Photon Counting on 6321

    I am attempting to count photons from 2 photomultiplier tubes (PMT) using Labview. I currently have written a program which will count from a single PMT. I was wondering if the manor in which I wrote the program will reliably count up to 1 MHz, which I believe the card can do, and if it is the best way to write this code. I am relatively new to LabView (esspecially counting).
    The program is designed to take a count every 10 - 100 ms and store them for analysis later. I will at somepoint require a program like this to run for up to an hour. It would also be nice if the counter reset evertime instead of reporting the summation of the counts.
    Using labview 2012.
    Thank you,
    A
    Attachments:
    Simple Count.vi ‏89 KB

    Your 6321 has a max samplerate of 250kSPS , so if you need to measure your pulse energy and assuming 5 samples per pulse you can go up to 50kHz ....
    (less since it's statistic)
    And you will need some pulse shaping .... (a 7 step RC,OP buffer chain? )
    Since it is a multiplexing card, make shure that your pulse shaping circuit has a low output impedance (more 1Ohm than 50Ohm and close to the DAQ)  (take a look at the settling time error in the spec)
    Crosstalk between the channels need to be investigated.
    Look at the examples about DAQ streaming TDMS data to file.
    Think about a producer-consumer architekture. One loop is reading (producer) and one loop is saving (consumer 1) and two more loops take copied slices of the data to make online monitoring ...
    If you just want to count the pulses, you can use the internal counter, up to 1Mhz shouldn't be a problem (again a fast pulse chaper, comparator needed)
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • I have been using USB 2.1 10/100M ethernet adaptor. But it takes more than 15 mins to detect network interface. What should I do. I am not using apple's company adaptor. It's local company.

    I have been using USB 2.1 10/100M ethernet adaptor. But it takes more than 15 mins to detect network interface. What should I do. I am not using apple's company adaptor. It's local company.

        jsavage9621,
    It pains me to hear about your experience with the Home Phone Connect.  This device usually works seamlessly and is a great alternative to a landline phone.  It sounds like we've done our fair share of work on your account here.  I'm going to go ahead and send you a Private Message so that we can access your account and review any open tickets for you.  I look forward to speaking with you.
    TrevorC_VZW
    Follow us on Twitter @VZWSupport

  • Pulse detection Mood Lamp

    Hi Guys, Im doing my Final Year Project and i have a lot of issues to solve and im stuck. i hope somebody can help me.
    Besically, My groupmate and myself have decided to create something called the Pulse detection Mood Lamp. This is how we hope it will work.
    We will first detect the pulse of any person using EMANT300 that is connected via USB and we have managed to get the proper pulse's into the VI. Now this is where the problem comes in, we need the output to go to a mood lamp. and we are not sure how to control this. we had a few options , but my supervisor cancelled them out too.one was to use the philips living colours mood lamp and using their RF-Remote to control the mood lamp which is too complicated.Next was to use PIC 16F628(A) but i have got no idea how to convert this .hex file into a .vi file. so im wondering what i can do to convert this pulses's into Coloured lights. I was thinking of Using LED as the output.but again im not too sure how to go about doing that. the colours will change depending on the pulse. so basically when a person inserts his/her finger into the pulse detector, the colour of the Led/Lamp should change according to their pulse. all i need to do now is to figure out what to use as my output and how to programme it.

    I agree with Wiebe.  Modifying the remote control is a much better way to control your lamp.  I have done that with an IR remote control for a video tape recorder and it has worked for years.
    The LEDs should also be fairly straightforward.  The EMANT300  specifications indicate that the digital outputs can drive 20 mA which is sufficient for standard LEDs.
    The EMANT300 LV drivers can use some updating.  For example the EMANT300 Find All.vi can create havoc if you have several (non-EMANT300) devices connected.  It changes the emulated serial port settings before checking ID but does not change them back afterwards if the device is not an EMANT300. I have rewritten it to eliminate that problem.  What version of LV are you using? 
    Lynn

  • How to count TTL pulses during 100ms ?

    I need to count TTL pulses coming out of an instrument (particule
    counter). The pulses appear randomly. I must count how many pulses
    appeared in the last 100ms, and so on, every 100ms. I don't want
    cumulative counts, but the number of events every 100ms.
    I need a hardware clock, so that the counting pace cannot be disturbed
    by Windows making some weird, unrequested, CPU-hungry task.
    I fact, I need to do that for 2 identical instruments of the same kind,
    and I have 2 cards with 2 counters each, total 4 counters. My idea
    would be to use 1 counter as the clock for 2 other counters, but how to
    trigger the counter value read ?
    Thanks.

    Hi,
    In the example I gave you, you need to supply the TTL you want to count the pulse (connected on pin 37) and a TTL "clock"  which is connected to PFI0. The TTL on PFI0 permits a hardware timing (100ms for example) to count the edges that occur on the TTL source.
    If you do not need hardware timing, have a look at the example attached. You only have to connect the TTL source and the VI counts every 100ms (software timed) the edges that occur durind those 100 ms.
    Hope it will help you,
    Regards,
    David D.
    Application Engineer - NI France
    01-02-2006 01:26 PM
    Attachments:
    Compatge des fronts toutes les 100 ms.vi ‏61 KB

  • Sr 400 photon counter (stanford research system)

    hi,
    i need help regarding sr400 two channel gated photon counter(SRS)
    my problem is:
    i open getting start wizard ,it shows.
    hardware presence verified
    software  "        ''          ' '
    interface sequential verified
    upto here it is ok .but when i goto max and open NI488.2 communicator and write string in send string(*IDN?), IT GIVE ERROR
    iberr=EABO
    i tried the same with interactive control and when i write
    GPIB0: ibwrt" *idn?"
    it gives
    [c100] <errtimo cmpl>
    error: EABO
    count : 0
    so can u plz tell how to tackle that problem.
    thanks

    You need to understand the difference between the GPIB bus commands and instrument commands. You seemed to have looked at the basic example that's in the manual. The first line in the example does some things to the GPIB bus's interface management lines like interface clear (IFC) and remote enable (REN). You do not issue these commands in MAX's communicator when you want to program the instrument. Those sort of commands are available but you don't normally have to do any of that. You do need to issue the commands that are listed in the section on remote programming. The very first example listed is the command "CM". As the manual states, if you send CM {j} where {j} is 0-3, you set the counter mode. If you send just "CM", the instrument returns the counting mode. You will not get a response back from the instrument when you set something. You will only get data back from the instrument when you issue a specific command that tells the instrument to return something. Instruments designed within the last 20 years have better command sets than what you have to work with. These "newer" instruments use a "?" at the end of every command that tell the instrument to return data.
    Before you do much more, I would recomend that you do a little studying on the GPIB bus. There are some tutorials and app notes at : http://zone.ni.com/devzone/devzone.nsf/webcategories/3992D796622FADB1862567BD006DBD98.

  • SR 400 gated photon counter

    I don't have a ton of experience with Labview, but I'm trying to get the Stanford Research Systems SR400 gated photon counter to use a fixed gate mode to count.  I looked at the example driver that I found and realized that it isn't capable of doing anything more than a cw sweep.  I found this driver in the forums (http://forums.ni.com/attachments/ni/40/1879/1/sub​vI.vi), but in the process of updating to labview 8.2 (from labview 7.1 it said), it is missing some connections somewhere.  I was wondering if anyone knew how to find the problem pieces in it and how to fix it.  I have another question about the SR400.  Is labview capable of trigging it through the software, or do I need to have an actual physical trigger going in to the trigger input.  Thanks for your help.
    JOn

    Hey Jon,
    I'm unsure if the SR400 is able to trigger externally, but if in the manual for the SR400, you're able to find the command for it, you should be able to easily implement it. If it's GPIB communication, just open labVIEW, and go to Help->Find Examples->and Search for GPIB, and you should find a nice example called "labVIEW<->GPIB.vi". If it's serial communicaiton, just search "Serial" and you should be able to find a nice example called "Basic Serial Write and Read.vi". Just copy the triggering command if it's found in the manual into the write field, and you should have no problem implementing it. I like these two examples a lot, because they're easy to build from.
    Regards,
    Nick D.

  • How do I count arbitrary pulses from an oscilloscope with labview

    I am looking at arbitrary pulses on a TEK 2024B oscilloscope.  I want to use LabView to count those pulses and record a time stamp for each pulse (perhaps to an excel spreadsheat).  The duration of the measurement is over ten minutes and the pulses, on the average, occur once per millisecond.  How do I count/record these pulses with LabView?

    Jay,
    I would start by downloading the Instrument Driver for the 2024B from ni.com/idnet It should have the functions that the scope is capable of implemented there. If you have problems using the driver please post back.
    -Marshall R
    National Instruments
    Applications Engineer
    One stop for all your NI-VISA Support
    GPIB Support has a new homepage

Maybe you are looking for

  • Error in generating CAP File

    I unzipped the java card kit to C:\java_card_kit-2_2_1 Then created a java card applet with applet AID A00000006203010C06 and package AID as A00000000000000000 with java card kit path as JAVA CARD API LOCATION C:\java_card_kit-2_2_1\lib\api.jar JAVA

  • Ipod to iphoto

    Reinstalled my os did not have photos backed up but there on my ipod how do I get them back on to iphoto

  • Help System

    I am new to Authorware and I am working on my first piece. I have been trying to figure out how best to construct a help system in Authorware that is similar to the format used in Microsoft's HTML Help Workshop. This system allows you to search for h

  • Premiere 8.0 hasn't worked right since new

    I bought a new HP desktop computer and Photoshop and Premiere 8 for Christmas. Also a new Canon HD camcorder. The main purpose of editing video's and burning to dvd. I got the top of the line HP e9280t with Win 7,  I7 processor, 8 gig of DDR3, ATI Re

  • Why is my IP Profile half of what it was?

    So I signed up for the 20mb broadband service and had it activated 14 days ago.  On the day it was activated, I ran a speed test and my IP profile was over 19,000Kbps (indeed, before I upgraded, BT told me from their data I would be achieving 19mb).