- AuthorSearch Results
Found in Topics
JasonS posted on January 31, 2017 at 2:28 am View this postHi Guys
I thought I would finally ask this question. I’ve got the SA44B which I am using with a number of computers. For instance windows x64, windows x32, raspberry pi, linux i86 and my latest instalment is trying to get the SA44B APIs to work on an odriod xu4.
So I’ve managed to interface to the SA44B via the APIs for each operating system, but would like to understand the limitations (or where the limitations are) when working with the ARM devices.
There is definitely a drop in performance when switching from an i86 to an ARM environment. Where is the issue? Is it some memory management thing? Is it something to do with dropped samples?
I’m just trying to understand what ARM device I could use that would give similar performance to the i86 devices or is it a case of the APIs needing to be updated?
Any recommendations in helping me understand the ‘issues’ with the ARM environment?
An example of the discrepancies between the 2 architectures would be if I was looking at a DBV-T spectrum (in spike) on an i86 pc, it would be a nice flat amplitude response. Whereas, with the same settings, the ARM response would show significant peaks and troughs in the amplitude. Averaging fixes this but I’m after the better performance!
Many thanks
Regards
JasonFound in Topics
scottrf posted on January 30, 2017 at 1:41 pm View this postWe have several SA44Bs. One now has no output. Using Spike in swept mode, the display is a solid color. In zero span mode, there is no line, data shows not a number. Using LabVIEW API, the device can open and return API ver, serial number, etc., but when retrieving zero span IQ data, the data is NaN. No error is returned. I hooked a cable from the Self test output to the input, and ran the Self Test in Spike, and it passed.
Found in Replies
Andrew posted on January 30, 2017 at 9:31 am View this postIn reply to: Conduct signal level statistics using Spike
AndrewModeratorHello ykhaled,
We do not offer this type of plot in our software (CCDF plot). This is something we may offer in the future, but for now we don’t currently have plans for this.
The only work-around I see available is to utilize our programming API to make the measurement in your own application. This would require programming experience as well as the ability to make this calculation with the waveform data from the BB60C.
Let me know if you have additional questions.
Regards,
AndrewFound in Replies
Andrew posted on January 29, 2017 at 7:08 pm View this postIn reply to: HELP
AndrewModeratorHello mehran,
We are working on Labview vi’s right now for our products. These files should be available in the next couple of weeks. If you cannot wait for us to deliver this, then consider using the example vi project we distribute in the API download folder. The vi project can be found in the sa_series examples. The API for the SA44/SA124 is very similar to the BB60C API and you should be able to convert this project to the BB60C API in short time.
Regards,
AndrewFound in Topics
bbowar posted on January 24, 2017 at 2:56 pm View this postTopic: Embarcadero Compiler Error with bb_api.dll
in forum BB Series DiscussionsI have written some code which I compile using an Embarcadero compiler for a 64 bit target and have no issues. When I select to compile for a 32 bit target my compiler gives me the following error “Unrecognized _declspec modifier”
The line causing the error is in bb_api.h:
“BBDEPRACATED(“This function is deprecated…”)
Any idea what the could be the problem?Found in Replies
joeqsmith posted on January 23, 2017 at 12:00 pm View this postIn reply to: Basic Spike questions
joeqsmithParticipantAndrew, I swapped the board out for the second one. It too has been solid. Not a single glitch and I am using the hub and extension cable as well. The BB60C has been in use a fair amount. It seems the Dell’s USB ports may just not be as clean. I guess you could buy the same PC and see if you could replicate the problem. Maybe there would be a way to allow the BB60C to auto recover. Attached my latest video with Labview. Things are a little cleaner and I have a much better understanding how to use the API now.
Found in Replies
joeqsmith posted on January 12, 2017 at 7:27 pm View this postIn reply to: Simple API question
joeqsmithParticipantNo problem. I’ve continued to work with the API using LabVIEW. The more I use it, I like it.
Found in Topics
JasonS posted on January 10, 2017 at 1:46 pm View this postTopic: Running Spike with Presets from Command Line
in forum General DiscussionsMorning,
Thanks for the great products you are producing!
I’m looking for a way to start Spike from a batch file that will either:
1) Allow me to set the parameters of the spectrum analyser from the command line OR
2) Allow me to start spike with a saved PresetI’m able to do this using the APIs and a custom program, but in some instances I would like to use the latest Spike functionality.
I’m running a remote pc with an SA44b connected and using tightvnc to connect to it, hence the need to start spike with some predefined parameters.
Many thanks for your help.
Regards
JasonFound in Replies
Andrew posted on December 22, 2016 at 8:47 am View this postIn reply to: Convert bbr file to other format
AndrewModeratorHello magintd,
I can clarify. The bbr file is a flat recording of sweeps only (frequency domain ‘bins’). The IQ data is not recorded in this file. The sweeps are stored as min/max arrays. If the avg detector is enabled, min/max should equal the same values. I will attach a basic bbr parser so you can see the layout and how we parse the files in our software.
If you are looking to get IQ data, then we do have another recording feature in zero-span that records IQ data. If you are looking for the ultimate flexibility, you could grab IQ data directly from the device with our APIs.
Let me know if you have additional questions.
Regards,
A.J.Attachments:
You must be logged in to view attached files.Found in Replies
Andrew posted on December 13, 2016 at 8:43 am View this postIn reply to: Simple API question
AndrewModeratorHi Joe,
Did you get download the latest API files from the link I posted above? The bbFetchRaw function is deprecated and is not used in any of the examples I provide. The function that replaces it is the bbGetIQ function and has more flexibility.
That said, decimation is the only way to control the sample rate of the device. bbFetchRaw will always return the same amount of data per call. You do not need to call bbQueryStreamInfo more than once. bbGetIQ allows you to retrieve an arbitrary amount of samples per function call. bbFetchRaw guarantees no loss of samples assuming data retrieval keeps up with the sample rate of the device. The API will store about 3/4 of a second worth of data before data loss occurs.
This information and more can be found in the API manual at
https://signalhound.com/sigdownloads/BB60C/BB60-API-Manual.pdfRegards,
A.J.Found in Replies
Andrew posted on December 12, 2016 at 8:56 am View this postIn reply to: Simple API question
AndrewModeratorHi Joe,
Glad you found your problem with that function.
Regarding getting IQ data from the receiver, take a look in the examples folder. There will be an example of the minimal IQ acquisition setup. This should be a good starting point. If you don’t see the examples folder, get the latest API files from this download
https://signalhound.com/download/bbsa-application-programming-interface-for-windows-3264-bit/
Video triggering occurs in the Spike software. The implementation is simply looking for the transition across a certain amplitude. (for() loop through each IQ sample). Pattern triggering is much more involved and is performed in the Spike software as well.
Regards,
A.J.Found in Replies
joeqsmith posted on December 12, 2016 at 7:22 am View this postIn reply to: Simple API question
joeqsmithParticipantSTUPID STUPID STUPID… pointer problems… Must have been too late in the day and I could not see it.
I am reading the API document and I am trying to understand what I need to do to get the BB60C into zero-span mode.
Basically, I am wanting to try and decode that 2FSK signal I mentioned earlier using Labview. I have it now working with your demodulator using the clipboard copy paste. I also have it working with the raw IQ data now with the file save under zero-span. Next step is just to pull the data directly from the BB60C.
Also, I did not see anything in the API for triggers. Does this mean that the triggers in Spike were all at a higher level?
Found in Topics
joeqsmith posted on December 11, 2016 at 2:15 pm View this postTopic: Simple API question
in forum BB Series DiscussionsI am attempting to use the latest API and for the most part, everything seems to work which is why I wonder if I found a bug.
I did notice that when I call the bbGetDeviceType, it always returns a 0. The device is open when I make the call. It does not return an error.
I assume the problem is between the keyboard and chair but I noticed the document mentions four possible types including BB_DEVICE_BB124
but the header only defines three.
// Device type
#define BB_DEVICE_NONE 0
#define BB_DEVICE_BB60A 1
#define BB_DEVICE_BB60C 2Is this call functional?
Thanks
Found in Replies
Andrew posted on December 8, 2016 at 8:54 am View this postIn reply to: SA44B measurement amplitude
AndrewModeratorHello ssw,
Did you download the API files found at this link?
https://signalhound.com/download/bbsa-application-programming-interface-for-windows-3264-bit/In this download folder you will find two examples, simple_sweep_1 and simple_sweep_2. They will show you how to open, configure, and acquire data from the SA44B. You will use the saConfigCenterSpan function to control the frequency range of a sweep, and you will use the saGetSweep functions to acquire one sweep at your desired configuration. The example files should be able to be compiled and ran.
Hopefully this is enough to get you started. Contact us at support@signalhound.com if you have additional questions.
Regards,
A.J.Found in Topics
ssw152003 posted on December 7, 2016 at 11:44 pm View this postTopic: SA44B measurement amplitude
in forum SA Series DiscussionsHello! My name is SungWon and I am a hardware engineer.
I am using the SA44B for our product, and I have some questions. The software development environment is Visual Studio 2015 and I am working with C ++.First, how to set the frequency band to measure. I have read the API manual, but since I am a hardware engineer, it is a bit difficult to understand.
Second, what is the API function that reads Amplitude? Or how can I know the Amplitude value directly?
I refer to the API manuals and examples, but it is hard to understand what they are. I have also used the forum, but it is hard to know because I only have to look at the example.
Thank you!
Found in Replies
Justin Crooks posted on October 28, 2016 at 1:18 pm View this postIn reply to: EVM measurement
Justin CrooksModeratorRamin,
At this point we do not have a software interface to automate Spike’s EVM measurements, but it is something we have talked about, and may eventually add.
Right now, you’d have to choose between reading the Spike software EVM manually, or using the API to capture I/Q data and something like Matlab or LabView (or other library) to compute EVM.Found in Topics
Ramin posted on October 28, 2016 at 8:44 am View this postTopic: EVM measurement
in forum General DiscussionsHi all,
I am designing an automated (production) test system for an ISM band 2.4GHz digital transceiver board. I need to measure EVM on a DQPSK modulated signal and was thinking of using BB60. I know that it is possible through Spike (at least one of marketing pictures is showing that). But is it possible trough API or any other way under control of a test software?Regards
RaminFound in Replies
catalin_ro posted on October 11, 2016 at 12:26 am View this postIn reply to: BB60C–external trigger–bbFetchRaw(buffer, triggers)
catalin_roParticipantI might reply to this one!
First of all, the buffer length is in I/Q samples, not in 32-bit floating point values. So, the 16384 I/Q samples in each buffer actually means 32768 (2*16384) 32-bit floating point values. Considering that, the index that you reported in the example, 26666, is mostly correct.
But there is a well hidden problem in how you determined it. The API manual states that the trigger position is in I/Q samples number. So you must first convert the trigger position to the I/Q sample number before multiplying it by 2.
So you have SamplePos=TrigPos/DecimRatio (integer math!) and then go at 2*SamplePos in the received buffer to get the samples after the trigger.
The way you estimated the sample position is not correct because for many trigger position values, when using integer math, 2*Pos/Decim is different from 2*(Pos/Decim) and you end up accessing the Q1/I2 instead of I1/Q1 (the samples are considered I1/Q1, I2/Q2 etc.).
Catalin
Found in Replies
Andrew posted on October 10, 2016 at 1:38 pm View this postIn reply to: Two BB60C IQ streaming in the same process
AndrewModeratorHello Catalin,
It sounds like you found the source of the issue, which is that the API is not thread safe. In our software I always limit API function calls to one thread, so I can’t make any guarantees, but I believe each device could be interfaced in a different thread once open. The opening process itself is not thread safe, and you do not want to interact with one device from two different threads, for instance, don’t try to re-initiate a device from one thread when another thread is still retrieving IQ data.
The invalidDevice error that you are seeing would indicate corrupted memory and/or corrupted initialization sequence. My guess is that this is also related to thread safety. If you continue to see this issue, we might start considering corrupted internal flash memory/damaged traces/issues with microcontroller/etc.
rgds, You may contact me at the email in my previous reply if you wish, and are still experiencing issues.
Regards,
A.J.Found in Replies
Andrew posted on October 10, 2016 at 9:03 am View this postIn reply to: BB60C–external trigger–bbFetchRaw(buffer, triggers)
AndrewModeratorHello sszqdz,
I apologize for the confusion. The bbFetchRaw function, before the last API version, returns trigger values relative to the full 40MS/s rate. To convert to values relative to the IQ data you received, simply divide the trigger values by the decimation rate, 64 in the example you provided. In the latest API version with the bbGetIQ function, we are performing the calculation for the user.
Regards,
A.J.- AuthorSearch Results