- AuthorSearch Results
Found in Replies
Steve Barba posted on August 23, 2024 at 4:19 pm View this postIn reply to: Programming Support
Steve BarbaParticipantIn fact, we are using the API even though that limits us and is trickier to configure for our software automation. PyVisa & SCPI works smoothly on other devices. We’ll use a different company’s spectrum analyzer for future projects. Thanks for the information.
Found in Replies
Andrew posted on August 23, 2024 at 1:41 pm View this postIn reply to: Programming Support
AndrewModeratorHi Steve,
If you want to use SCPI, then yes Spike has to be running. Spike has a hidden mode, which can be activated by launching it from the command line with a special flag. The Spike user manual details this.
If you want a true headless interface, you could use the API’s which are located in our SDK. The headless APIs support only basic data acquisition such as sweeps and I/Q data. Any additional processing or operations such as markers or channel power, or etc, would need to be performed in your application.
Let me know if you have follow up questions.
Found in Replies
Andrew posted on July 23, 2024 at 9:08 am View this postIn reply to: Settling Time for BB60C
AndrewModeratorHi Wilson,
Yes, empirical tests have been done. A recent test showed a typical switch time at ~43ms.
It’s important to realize that it can depend on a few things. The 43ms above was done by repeatedly switching frequencies with no I/Q data acquisition at each frequency, probably the optimal scenario.
The switch time includes things like sending the stop streaming command to the device, flushing all USB transfers, cleaning up the large arrays allocated in the API, reconfiguring the instrument, and starting up the stream at the new frequency. Some of these are more deterministic than others.
The BB60 is rather slow in this regard. Both the SM200/435 and SP145 devices have something called the I/Q sweep list in the API. This allows you to preconfigure up front a list of frequencies and I/Q sample counts to collect, and execute this all at once. This brings switching time to sub-1ms at the cost of having to know in advance the frequencies you want to switch to.
The VSG60 is similar in that to get the full speed of 200us, you need to feed the switch frequencies far in advance to keep the queue saturated. If you don’t, the full switch time is more like 100ms.
You may contact me directly at aj@signalhound.com if you want to discuss any of these options in more depth.
Found in Topics
Wilson Horner posted on July 23, 2024 at 5:13 am View this postTopic: Settling Time for BB60C
in forum BB Series DiscussionsHello,
I am capturing I/Q data of varying frequencies via the BB60C API and need to switch center frequency using bbConfigureIQCenter(). My question is, how long does this configuration take?
For the VSG60A, a frequency switch configuration is listed in the manual as taking ~200 μs, however no mention of this is in the BB60C manual. Another thread on here estimates “10s of ms” for this switch, but is there any documentation or empirical tests done to measure this?
Regards,
WilsonFound in Topics
- This topic was modified 9 months, 1 week ago by
BEged. Reason: hello, regards
BEged posted on July 18, 2024 at 3:54 am View this postTopic: BB60D API decimation CPU usage
in forum BB Series DiscussionsHello Support Team,
We currently use BB_API Version 5.0.6 (6/22/2023), which provides a way to configure the device for IQ streaming by way of bbConfigureIQ. In our use case, the IQ stream we take out of the API has multiple consumers with differing needs, meaning that we already do our own filtering and decimation downstream, with multiple differing sets of parameters.
This in turn means that we take the lowest common denominator form of the stream out of the API, which happens to be the full 40MS/s stream without any decimation whatsoever. Our problem is that the API already does its own filtering and decimation, even in the case of the largest bandwidth setting, using valuable CPU resources that we would like to spend elsewhere.
This has us wondering whether you might consider extending the API such that it would allow taking out IQ streams without any preceding processing whatsoever. Something along the lines of bbConfigureIQRaw(int device).
We realize that this would affect the frequency domain structure of the stream (e.g. it might be a 80MS/s real sample stream instead, with a center frequency that is a complex function of other streaming parameters), but as we do our own processing downstream anyway, we could just absorb whatever we need to deal with that into those downstream processing tasks.
Regards,
Found in Replies
Andrew posted on July 1, 2024 at 11:23 am View this postIn reply to: Send the Device a Setup File?
AndrewModeratorHi mlund,
Unfortunately no. If you are trying to configure either sweeps or an I/Q stream in the API, most of the settings in the Spike software control panels directly correspond to settings available in the API, but you have to write code to properly configure those desired settings. There is no notion of presets in the API.
It should also be known that the device itself stores very little of the configuration (most memory on device is volatile), almost all of the configuration is PC side.
Found in Topics
mlund posted on July 1, 2024 at 10:51 am View this postTopic: Send the Device a Setup File?
in forum BB Series DiscussionsIs there a way for Spike to create a setup file which I can then send to the device through the API?
I see in Spike the Preset option.
In the API I do not see a way to send a setup file to the device.Found in Replies
Andrew posted on June 26, 2024 at 8:22 am View this postIn reply to: Sample Rate – 486.1111
AndrewModeratorAndy,
Unfortunately this is the only sample rate available from our API.
That being said, in MATLAB, you could use the resample(x,p,q) function like this,
> y = resample(x,9,10)
and y will be resampled to 437500, which would be a nice integer. Is this what you’re trying to do?
Found in Replies
Andrew posted on June 21, 2024 at 11:18 am View this postIn reply to: unit conversion
AndrewModeratorIs the I/Q data 16-bit integer or are you using the 32-bit floating point data from the API? If you are using the 16-bit integer data, there is an additional scale factor you must account for.
Also, what value are you comparing it to in Spike? If you are looking at a modulated signal, you’re going to need to do a channel power measurement. If looking at a CW, then the instantaneous I/Q power will have more relevance.
dBm = 10*log10(i^2 + q^2) is the correct equation. Make sure it’s log10 not log2.
Look forward to your response.
Found in Topics
JeremyLin posted on June 20, 2024 at 9:04 am View this postTopic: unit conversion
in forum BB Series DiscussionsI am using python to get data from BB60C, but I met some problems during unit conversion to mV from I/Q data .
In this reference https://signalhound.com/sigdownloads/SDK/online_docs/bb_api/index.html#IQDataTypes
It said dBm = 10log (I^2 + Q^2), I^2+Q^2 is P in mW, I tried AM_in_mV = (P_in_mW * 0.05)^0.5
But the result is not the same as in SPIKE. Where did I get wrong?Found in Replies
Roger posted on May 21, 2024 at 10:43 am View this postIn reply to: SA_TG_SWEEP Flag
Found in Topics
ANguyen posted on May 21, 2024 at 7:59 am View this postTopic: SA_TG_SWEEP Flag
in forum SA Series DiscussionsHello there!
I am attempting to control the SA124B and perform a scalar network analysis via LabVIEW. Whenever I run the program, a -4 error always occurs at the saInitiate module, indicating an invalid parameter error.
According to the API reference, I am supposed to pass the SA_TG_SWEEP flag as the mode as well as set the flag to 0. I have tried passing int 5 and int 6 as the SA_TG_SWEEP flag, but the error continues to persist. What is the integer value of the flag, and where can the int values for other flags for future reference? Thank you!
Attachments:
You must be logged in to view attached files.Found in Topics
ed.kornegay posted on May 14, 2024 at 7:21 am View this postTopic: python sockets and Spike
in forum General DiscussionsHas anybody used python sockets to communicate with Spike on port 5025? I have a hacked telnet library (using Ubuntu) to do the SCPI commands now, but it is buggy. I don’t need the functionality of the API, and I don’t want to refactor existing code. I need to do basic configuration and return a marker amplitude.
Thanks
Ed KFound in Topics
OLanterman posted on April 17, 2024 at 1:23 pm View this postUsing the libsm_api.so.2.3.3 for RHEL8 we are getting “-11: Data synchronization error” when calling smGetVrtPackets(). This happens fairly consistently but also might not fail or might fail after some significant amount of time.
The setup is an SM200C. This is attached either via a sonnettech transceiver (fp10+) attached to a laptop or connected to a 10G switch connected to a server. Both are running RHEL 8.
This also happens when using Spike v3.9.0. Though most of time with Spike we’re getting a -6 error. Given the closed nature of libsm_api.so and no debug artifacts or sources I’m stumped. Any help would be appreciated. Thanks.
Found in Replies
Roger posted on March 22, 2024 at 10:03 am View this postIn reply to: Call Chain Error When Running LabVIEW
RogerModeratorHi ANguyen,
Thanks for the details provided.
The error is -8: Device Not Found. The error codes can be looked up in the API docs.
Is the SA44B working in Spike? If so, make sure Spike is not running when attempting to connect in LabVIEW. If not, it would be best to troubleshoot that first.
Note that the USB driver needs to be installed separately. It can be downloaded with this link. Unplug devices, right click on the driver and select “Run as administrator”. Then plug in device and run Spike.
If you are not able to get the SA44B running in Spike, please reach out to support@signalhound.com for more detailed troubleshooting.
– Roger
Found in Replies
kaiser posted on February 22, 2024 at 8:55 am View this postIn reply to: Queued Sweep Bug?
kaiserParticipantThanks Andrew.
I do have to say that with SM200C’s, the difference in speed between Queued Sweeps and non-queued is basically imperceptible in our application. It’s very very response non-queued…I’ll be able to test how the SM200B’s hold up doing the same. If I remember right the non-queued was significantly slower.
Here’s some of the various code bits for how we’re configuring the SignalHound.
sm_api.smSetSweepSpeed(handle, SmSweepSpeed.smSweepSpeedFast);
CurrentStatus = sm_api.smSetSweepCoupling(handle, 125.0e3, 125.0e3, 0.0001); //Gives a 3.1kHz scan, 138us blanking (similar spectrum sweep time, about 50% duty cycle).
sm_api.smSetSweepDetector(handle, SmDetector.smDetectorAverage, SmVideoUnits.smVideoLog);sm_api.smSetSweepWindow(handle, SmWindowType.smWindowNutall);
sm_api.smSetSweepSpurReject(handle, SmBool.smFalse);
sm_api.smSetPreselector(handle, SmBool.smFalse);//GPIO configuration
int gpiosteps = 2;
sm_api.SmGPIOStep[] Steps = new sm_api.SmGPIOStep[gpiosteps];Steps[0].freq = 2.2e9;
Steps[1].freq = 2.38e9;
Steps[0].mask = 0x00;
Steps[1].mask = 0x0F;sm_api.smSetGPIOState(handle, SmGPIOState.smGPIOStateOutput, SmGPIOState.smGPIOStateOutput);
Found in Topics
kaiser posted on February 21, 2024 at 2:04 pm View this postTopic: Queued Sweep Bug?
in forum SM Series DiscussionsI have a quick question about queued sweeps and how they work.
I have two signal hounds hooked up, and I basically just queue up 16 sweeps and then let them cook.
What’s happening is that sometimes it looks like I drop a sweep or am missing one or something, and then it re-inserts itself later.
The application very quickly switches between multiple RF sources, and does a scan and then switches to another one. For the sake of this effort, let’s say I have 20 different sources. I then plot a power graph showing the power at these different sources, and I continually do this over and over and over.
So I expect say a certain amount of power at source 10. And it’s usually correct. But sometimes that power shows up in the 9 slot, but then a couple of seconds later jumps back to the 10 slot. And then maybe 15 seconds later it jumps back to the 9 slot, and just kind of sometimes ping-pongs around but is only ever off by the single sweep.
The weird thing is that if I don’t queue sweeps (just use the normal smGetSweep), OR if I only queue 1 sweep it seems to work perfectly and all the energy stays in the bins it should be in. But anything above queueing a single sweep, and things get wonky.
Any thoughts?
Code outline is something like:
FastSpecAns[0].QueueSweeps(16);
FastSpecAns[1].QueueSweeps(16);
while (State == ArrayState.TRACKING)
{
SpectrumZero = FastSpecAns[0].GetFinishSweep();
SpectrumOne = FastSpecAns[0].GetFinishSweep();
}And GetFinishSweep is basically just:
SmStatus f = sm_api.smFinishSweep(handle, QueuePos, null, Sweep, ref sweeptimeEpoch);
SmStatus s = sm_api.smStartSweep(handle, QueuePos);QueuePos++;
if (QueuePos >= SweepsToQueue)
{
QueuePos = 0;
}Found in Replies
Andrew posted on January 18, 2024 at 9:55 am View this postIn reply to: Failed to run on raspberry pi2
AndrewModeratorHello BSchwartzer,
We no longer support the RPi builds for the SA devices. The RPi builds had several issues and we were not able to get the SA devices to run stable either on ARM or x86 Linux architectures. For the forseeable future, the SA’s are supported under Windows only.
Additionally, None of our devices are supported under ARM architectures. The BB, SP, and SM lines are supported in x86/64 Linux OS’s. We target Ubuntu primarily with some support for CentOS and Redhat.
We are evaluating the NVidia Jetson platform for specific device APIs (it will not include the SA44/124). We will have more information on that in the future.
If you have follow up questions, let me know.
Found in Topics
BSchwartzer posted on January 18, 2024 at 4:40 am View this postTopic: Failed to run on raspberry pi2
in forum SA Series DiscussionsI’m tring to run the example code for rpi2 from the sdk. from the directory signal_hound_sdk/device_apis/sa_series/lib/_obsolete/arm-rpi2 (obsolete)/sa_api_armv7-A_3_0_6/examples
I’ve maneged to compile them but during the runtime i’m getting the following error:
[ 8713.459978] 8<— cut here —
[ 8713.463074] Unhandled fault: alignment exception (0x001) at 0x7614fbba
[ 8713.469683] [7614fbba] *pgd=18a2d835, *pte=1931b75f, *ppte=1931bc7f
Bus error
Please help me to solve thisThanks
Found in Topics
BSchwartzer posted on January 17, 2024 at 11:48 am View this postTopic: library for arm64
in forum SA Series DiscussionsI would like to connect the sa124b to nvidia TX2 (arm64) but I don’t have the libsa_api.so that fits my processor. The sdk comes only for ubuntu x64, rpi2, windows and beagleboard.
How can I get the library for arm64?Thanks
- This topic was modified 9 months, 1 week ago by
- AuthorSearch Results