- AuthorSearch Results
Found in Replies
Andrew posted on November 5, 2018 at 8:48 am View this postIn reply to: New API
AndrewModeratorAndrew4010,
Yes, APIs with version 4.0.0 and greater support all BB60C/A devices. We don’t maintain download links for older versions of the APIs. I don’t believe the interface has changed between 3.1.1 and the current version so it should be a drop in replacement.
Regards,
AndrewFound in Topics
Anonymous
Anonymous posted on November 5, 2018 at 5:48 am View this postTopic: New API
in forum BB Series DiscussionsHello
Q1 I have old device.Is the API >= 4.0.0 backward compatible?
Q2 Where can I download BB_API Version 3.1.1?Thank you
Found in Replies
ray62202 posted on November 4, 2018 at 1:26 am View this postIn reply to: Error compiling Linux sample code
ray62202ParticipantI installed a fresh copy of Ubuntu LTS (downloaded ISO image yesterday from Ubuntu) for testing, so it is ‘factory new’.
Yeah, that linker message was so vague as to be useless (typical).The only other thing I had to do was to install g++ in the standard manner – $sudo apt install g++.
I listed the details of the compiler config in the forum post.I deleted everything and extracted the SDK from a new download, and captured the installation sequence below:
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$ ldconfig -v -n .
.:
libbb_api.so.4 -> libbb_api.so.4.0.2 (changed)
libftd2xx.so -> libftd2xx.so
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$ ln -sf libbb_api.so.4 libbb_api.so
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$ sudo cp libbb_api.* /usr/local/lib
[sudo] password for dunn874:This is the (SDK) library after the install, with libbb_api.so and libbb_api.so.4 as a soft links.
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$ ls -la
total 14836
drwxr-xr-x 2 dunn874 riocdev 4096 Nov 1 10:49 .
drwxr-xr-x 5 dunn874 riocdev 4096 Oct 18 08:53 ..
lrwxrwxrwx 1 dunn874 riocdev 14 Nov 1 10:49 libbb_api.so -> libbb_api.so.4
lrwxrwxrwx 1 dunn874 riocdev 18 Nov 1 10:49 libbb_api.so.4 -> libbb_api.so.4.0.2
-rw-r–r– 1 dunn874 riocdev 14957792 Oct 17 16:21 libbb_api.so.4.0.2
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$This is the /usr/local/lib after the install
NOTE! the soft-link libbb_api.so is NO LONGER A LINK, BUT A COPY OF THE FILEdunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$ ls -la /usr/local/lib
total 43840
drwxr-xr-x 4 root root 4096 Nov 1 10:50 .
drwxr-xr-x 10 root root 4096 Jul 17 06:23 ..
-rw-r–r– 1 root root 14957792 Nov 1 10:50 libbb_api.so
-rw-r–r– 1 root root 14957792 Nov 1 10:50 libbb_api.so.4
-rw-r–r– 1 root root 14957792 Nov 1 10:50 libbb_api.so.4.0.2
drwxrwsr-x 4 root staff 4096 Jul 17 06:46 python2.7
drwxrwsr-x 3 root staff 4096 Jul 17 06:24 python3.6
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/lib/Ubuntu 18.04$Build the device_info project:
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/sample_projects/device_info$ make
g++ -Wall main.cpp -o dev_info -Wl,-rpath /usr/local/lib -lbb_api/usr/bin/ld: out of memory allocating 30374008975618 bytes after a total of 282624 bytes
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target ‘all’ failed
make: *** [all] Error 1
dunn874@WE31900:~/Projects/signal_hound_sdk/device_apis/bb_series/linux/sample_projects/device_info$Same problems
Please advise asap, we are on a tight schedule for a demonstration.
– Ray
Found in Topics
ray62202 posted on October 31, 2018 at 3:49 pm View this postTopic: Error compiling Linux sample code
in forum BB Series DiscussionsI have been getting an error building the linux sample code:
Linker Error for sample project – device_info
…signal_hound_sdk_10_25_18/device_apis/bb_series/linux/sample_projects/device_infoI installed the .so library per BB instructions:
…signal_hound_sdk_10_25_18/device_apis/bb_series/linux/lib/Ubuntu 18.04/libbb_api.so.4.0.2The build stops with a linker error:
g++ -Wall main.cpp -o dev_info -Wl,-rpath /usr/local/lib -lbb_api/usr/bin/ld: out of memory allocating 30374008975618 bytes after a total of 282624 bytes
collect2: error: ld returned 1 exit status
Makefile:6: recipe for target ‘all’ failed
make: *** [all] Error 1I have tried building on Linux Mint 19 (from Ubuntu 18.04) and on a real Ubuntu 18.04 LTE installation with the same results.
What am I missing? Any suggestions on what to check, since I assume your sample programs build an work fine.
– Ray
Linux info
>cat /proc/version
Linux version 4.15.0-38-generic (buildd@lcy01-amd64-023) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018>uname -a
Linux WE31900 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux> g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v –with-pkgversion=’Ubuntu 7.3.0-27ubuntu1~18.04′ –with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs –enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ –prefix=/usr –with-gcc-major-version-only –program-suffix=-7 –program-prefix=x86_64-linux-gnu- –enable-shared –enable-linker-build-id –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –libdir=/usr/lib –enable-nls –with-sysroot=/ –enable-clocale=gnu –enable-libstdcxx-debug –enable-libstdcxx-time=yes –with-default-libstdcxx-abi=new –enable-gnu-unique-object –disable-vtable-verify –enable-libmpx –enable-plugin –enable-default-pie –with-system-zlib –with-target-system-zlib –enable-objc-gc=auto –enable-multiarch –disable-werror –with-arch-32=i686 –with-abi=m64 –with-multilib-list=m32,m64,mx32 –enable-multilib –with-tune=generic –enable-offload-targets=nvptx-none –without-cuda-driver –enable-checking=release –build=x86_64-linux-gnu –host=x86_64-linux-gnu –target=x86_64-linux-gnu
Thread model: posix
gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)Found in Replies
Andrew posted on October 15, 2018 at 9:16 am View this postIn reply to: SA44B – How to Build and Test the examples in SDK
AndrewModeratorHello Sri,
Our device APIs are standard Windows DLLs. The interface is exposed through a set of C functions, which means you can call these functions from most programming languages like Python, C++, Matlab, etc. Each language will have its own development environment. If you were programming in C++, I would use Visual Studio, which you can download and use for free (for small business/non commercial projects). We do not have any guides for using VS or for setting up your development environment.
Regards,
AndrewFound in Replies
- This reply was modified 7 years ago by
stevecrm.
stevecrm posted on September 11, 2018 at 9:36 am View this postIn reply to: Recording Raw IQ Samples – Suspiciously low values?
stevecrmParticipantFor reference these are my capture settings
`bb_api.bbConfigureCenterSpan(id, 70000000, 4.0e6); //center hz, span hz
bb_api.bbConfigureLevel(id, -20.0, bb_api.BB_AUTO_ATTEN);
bb_api.bbConfigureGain(id, bb_api.BB_AUTO_GAIN);
bb_api.bbConfigureIQ(id, bb_api.BB_MIN_DECIMATION, 4.0e6); //bandwidth hzFound in Topics
stevecrm posted on September 11, 2018 at 9:34 am View this postI’m using the API to pull raw IQ samples and I couldn’t find the A/D output range in the manual.
I’m trying to troubleshoot some things and one thing I notice is that my IQ samples have suspiciously low values.
I’m putting in a ~2MHz wide QPSK signal at ~-30dBm, Spike gives me a nice beautiful constellation so I know my signal level must be good. My IQ samples range from -0.00662 to +0.006358. Is this correct? I was expecting something more like -1 to 1.
Found in Replies
Andrew posted on August 21, 2018 at 12:29 pm View this postIn reply to: Pull IQ Samples To Make Constellation Plot (API)
AndrewModeratorHi stevecrm,
So you may indeed be pulling the I/Q data and plotting it correctly, but unfortunately it will still not produce the constellation plot you see in Spike. The reason for this is that Spike is doing additional processing between acquiring I/Q data from the API and plotting it in the constellation plot.
The main steps the Spike software is performing is resampling, symbol timing recovery, carrier recovery, and filtering. This can be quite a complex subject and not one I can cover in a forum post. You can find more information in a digital communications textbook, by searching online for search terms like “PSK demodulation”, or exploring software packages like GNURadio which has software blocks for the major components of a PSK receiver.
Keysight has an excellent block diagram of the various components in a spectrum analyzer when making PSK modulation measurements. See the following link on page 282.
http://literature.cdn.keysight.com/litweb/pdf/E4440-90620.pdf
I hope this helps, let me know if you have follow up questions.
RegardsFound in Topics
stevecrm posted on August 21, 2018 at 11:45 am View this postI’m trying to pull out raw IQ samples to create a constellation plot using the API. When I use spike I get a nice QPSK signal constellation, but I’m having trouble getting anything similar with the API.
I’m using the example that comes with the SDK, all I’ve done is change some frequency/bandwidth values.
My carrier is 1.84MHz wide at 70MHz. The documentation says that IQ samples are interleaved and range from +/-1. I’m assuming this means that the resulting array is structured like:
I1, Q1, I2, Q2, I3, Q3…etcMy problem is that I’m getting IQ values that range from +/- 0.01, so I think I’m just seeing noise. If I plot I and Q separately they seem like roughly ok sine waves. Also if I plot IQ in 2D to make a constellation, I just get a big circular donut, nothing that looks like there are 4 converging points.
I use the reference level of -40 because that worked in Spike.
Anyone know what I’m missing? Any helps is appreciated
I’ve adjusted the demo code to take the samples and dump them to a file:
int id = -1; bbStatus status = bbStatus.bbNoError; txtResults.Text += "Opening Device, Please Wait\n"; status = bb_api.bbOpenDevice(ref id); if (status != bbStatus.bbNoError) { txtResults.Text += "Error: Unable to open BB60\n"; txtResults.Text += bb_api.bbGetStatusString(status) + "\n"; return; } else { txtResults.Text += "Device Found\n\n"; } Console.Write("Configuring the device to stream I/Q data\n"); bb_api.bbConfigureCenterSpan(id, 70000000, 4.0e6); //center hz, span hz bb_api.bbConfigureLevel(id, -40.0, bb_api.BB_AUTO_ATTEN); bb_api.bbConfigureGain(id, bb_api.BB_AUTO_GAIN); bb_api.bbConfigureIQ(id, bb_api.BB_MIN_DECIMATION, 4.0e6); //bandwidth hz status = bb_api.bbInitiate(id, bb_api.BB_STREAMING, bb_api.BB_STREAM_IQ); if (status != bbStatus.bbNoError) { txtResults.Text += "Error: Unable to initialize BB60 for streaming\n"; txtResults.Text += bb_api.bbGetStatusString(status) + "\n"; return; } int return_len = 0; int samples_per_sec = 0; double bandwidth = 0.0; bb_api.bbQueryStreamInfo(id, ref return_len, ref bandwidth, ref samples_per_sec); txtResults.Text += "Initialized Stream for \n"; txtResults.Text += "Samples per second: " + (samples_per_sec / 1.0e6).ToString() + " MS/s\n"; txtResults.Text += "Bandwidth: " + (bandwidth / 1.0e6).ToString() + " MHz\n"; txtResults.Text += "Samples per function call: " + return_len.ToString() + "\n"; // Alternating I/Q samples // return_len is the number of I/Q pairs, so.. allocate twice as many floats float[] iq_samples = new float[return_len * 2]; int[] triggers = new int[80]; bb_api.bbFetchRaw(id, iq_samples, triggers); txtResults.Text += "Retrieved one I/Q packet\n\n"; StringBuilder sb = new StringBuilder(); foreach(float sample in iq_samples) { sb.Append(sample.ToString() + Environment.NewLine); } File.WriteAllText("output.csv", sb.ToString()); txtResults.Text += "Closing Device\n"; bb_api.bbCloseDevice(id);
Found in Replies
Andrew posted on August 21, 2018 at 9:09 am View this postIn reply to: Compressed IQ stream
AndrewModeratorNoeldi,
Good question, and it’s a bit tricky to answer. Our waterfall plot currently is only available in the sweep mode. Each sweep is plotted on the waterfall and generally each sweep is going to take 1ms+ depending on the analyzer and settings. So that would be your minimum resolution.
To get 10us resolution in a waterfall plot, we would need to introduce the waterfall plot into the zero-span mode (or some other I/Q mode) and perform overlapping FFT’s on the IQ data. We don’t have anything like this in Spike right now.
As Justin mentioned, our max bandwidth IQ device is 40MHz right now with the SM200A, or 27 MHz with the BB60C. Both are programmable and this type of resolution is possible if you were willing to program and work with the I/Q data yourself using our API.
We are working to increase the I/Q bandwidth of the SM200A to 160MHz for up to 1 second captures. This is still in development.
Regards,
AndrewFound in Replies
Andrew posted on August 21, 2018 at 8:55 am View this postIn reply to: shr file size restrictions
AndrewModeratorYou can change the max file size allowed in the preference menu. It is limited to 1GB when running the 32-bit version of Spike.
There are several ways you could reduce file size depending on your needs, you can increase RBW, add a sweep interval, or take advantage of the decimation in time/freq on the recording toolbar.
If you need even more flexibility than what Spike provides, you could consider programming to the API directly, then you full control over the acquisition and recording process.
Regards
Found in Replies
Andrew posted on August 21, 2018 at 8:53 am View this postIn reply to: .shr file format specification
AndrewModeratorYou can change the max file size allowed in the preference menu. It is limited to 1GB when running the 32-bit version of Spike.
If you need even more flexibility than what Spike provides, you could consider programming to the API directly, then you full control over the acquisition and recording process.
Regards
Found in Topics
Anonymous
Anonymous posted on August 16, 2018 at 6:12 pm View this postis there any people ever using the i9 CPU to run BB60C by API?
Found in Topics
catalin_ro posted on July 14, 2018 at 12:45 pm View this postTopic: Linux API version
in forum BB Series DiscussionsIn the past the latest Linux API version for BB60C was 3.0.16. I see that the new “all included” release has Linux API version 3.0.5 for BB60C!!!
Found in Topics
abaker posted on July 12, 2018 at 7:22 am View this postTopic: Calling bb_api.dll from VBA
in forum BB Series DiscussionsHi All,
Has anyone tried calling the bb_api.dll from Excel VBA? We have some existing test code that communicates with several IEEE Analysers and I wanted to add the bb60C.
Currently I keep getting the error “Bad calling convention”
Regards
AndrewFound in Replies
Nazar posted on June 8, 2018 at 5:02 am View this postIn reply to: Error When Opening a Device (TG124A).
NazarParticipantHello Andrew
With your information, i was able to fix the problem. I used the bb_api as a guide, so assumed the device id had to be a reference, which was the problem.
Bad:
[DllImport(“tg_api.dll”, CallingConvention = CallingConvention.Cdecl)]
public static extern tgStatus tgOpenDevice(ref int device);Good:
[DllImport(“tg_api.dll”, CallingConvention = CallingConvention.Cdecl)]
public static extern tgStatus tgOpenDevice(int device);Thank you very much
NazarFound in Topics
Nazar posted on June 7, 2018 at 12:59 pm View this postTopic: Error When Opening a Device (TG124A).
in forum TG Series DiscussionsI wrote a short program(In c#) that uses the tg_api.dll to control the signal generator. I used the simple example provided by the SDK as a reference, but when invoking
tgOpenDevice(device)
I get a ‘-3’ error, which corresponds to tgDeviceInvalidErr
I am using ‘0’ as the device value. Is this correct? All the drivers are installed and i can run the signal generator from the Spike GUI.
Is there any more information about what can cause the error?
Found in Replies
Justin Crooks posted on May 14, 2018 at 10:57 am View this post
Justin CrooksModeratorJulian,
The BB60A will need firmware version 5 to be compatible. You can download it here: https://signalhound.com/support/product-downloads/bb60c-bb60a-downloads/The TG124A being used as a standalone generator, and amplified/modulated appropriately, should probably work for immunity testing. Depending on your needs, you may wish to low pass filter the TG output as it tends to have higher harmonics than a dedicated signal generator. You would probably want to automate it using our TG standalone API, which you can get from https://signalhound.com/products/usb-tg124a/
Found in Topics
julian posted on May 14, 2018 at 1:04 am View this posthi Signal Hound people,
1) I see the TG124A recommended for use with a mini-circuits coupler and a BB60C as a scalar network analyser.. well, I happen to have the older BB60A, and I was wondering if this setup can work with my BB60A, too?
2) Ideally if I buy a TG to use with my spectrum analyser for antenna analysis, it’d be nice to be able to use it to do immunity stuff, at least till I get around to spending the $$ on a proper signal generator.
In that case, I’d be interested in using the TG with a tekbox TBMDA1 (modulated driving amp)
https://www.tekbox.com/product/TBMDA1_Manual.pdf
From what I can see – The TG at max output is -12dBm, so if I run the TG through a 10dB attenuator, then into this, I’ll be able to get myself a signal from 40M to 3G, at 0dBm down to -18dBm (with 1k AM applied or not, via switch control on the amp) which I can then run into another bigger power amp that likes 0dBm input, to punch the signal out much bigger.Do you expect any issues that I’d have here if I was using a standard frequency scan from the Spike software (or my own software, using the API) as a basic immunity scan source? the result doesn’t have to be perfect, but it’d be nice if it was at least a bit useful for pre-compliance purposes.
Found in Replies
Andrew posted on May 1, 2018 at 1:34 pm View this postIn reply to: .shr file format specification
AndrewModeratorHi Andy,
I am attaching a folder with the example project we will be shipping for SHR parsing. The format is very similar to the BBR file except it changed the header format (still a single struct) to include all the new settings that were introduced with the SHR file format. Also, the sweeps are prefixed with a bit more information than just the timestamp. The general parsing process should be very familiar and similar.
In the future, this will be available in the standard API/SDK download, sorry I hadn’t got around to uploading it yet.
Regards,
AndrewAttachments:
You must be logged in to view attached files.- This reply was modified 7 years ago by
- AuthorSearch Results