LimeSDR C# project

#1

Hello to all, this is my first message to this group. I uploaded program written in C# for LimeSDR control (receive and transmit). Project can be downloaded from address:


Executable is at: https://github.com/GoranRadivojevic/LimeSDR-/tree/master/bin/Release
Short description: https://github.com/GoranRadivojevic/LimeSDR-/blob/master/README.md
(sorry but no help file for now).
LimeSDR# is based on PowerSDR and GSDR, written and tested on Win7 x64 using VS 2010 version. Because I don’t own LimeSDR board (v1.4) I had very limited time for experimenting (only two weeks) and before it is returned it will be great satisfaction for me if someone can verify that program also work on another PC. So far I tested VHF from 6m to 23cm receive and transmit, HF only receive (without board modification reception is poor). J12 GPIO pins are used for BPF control (0…3), TX out (4) and keyer DASH, DOT input (6,7). Usable sample rates are from 192K-3072K(for now must be identical for RX and TX). For VHF optimal is 768K sample rate, 1.5MHz BW. For HF 3072K sr and 40MHz bw. Higher sample rate are not working on my PC because there is no decimation downstream in DttSP library. My slower PC Q9300 quad core with additional USB 3.0 card can deal with 768K streams, faster R5 1500X up to 3072K. On faster PC I also played with SDR# plugin and with decimation 60Mb/s CPU usage is around 20%.
TODO: bug fixes and second RX/TX usage.
Any suggestion and help is appreciated.

73 de yt7pwr Goran

7 Likes
#2

Well program runs and looks good to bad it dosen’t work with the limesdr mini thou :frowning:

1 Like
#3

@yt7pwr - Goran,

I’ll check this program out on both my LimeSDR and my Lime Mini to see how it plays, too, and report back - thanks for uploading this - from the user interface itself it looks spectacular…! More to follow as I have it - stay tuned…

73 de Marty, KN0CK

1 Like
#4

Thank you for interest for this program. LimeMini is not supported at this time because I don’t have one for testing. My primary interest is VHF and Mini is perfect for me but at the moment only big brother is available for play.

73 de yt7pwr

2 Likes
#5

@yt7pwr - Goran,

Is your build based on the LimeSDR V1.2 or did you borrow a V1.4 to do the development? Just curious since you mentioned that you didn’t have a V1.4. I have both (V1.2 and V1.4) and will check this out on both. Also, both of mine are HF modified, so I should be able to show pictures and/or video of its operation in the HF band where both of my Limes (V1.2 and V1.4) operate real well using SDRConsole V3.0 - great receive. So I will be particularly interested in how it plays with HF transmit, too, as compared to SDRAngel - So please stay tuned…

73 de Marty, KN0CK

#6

My Lime board is v1.4. Unfortunately HF transmit do not work here because up sample conversion (48000–>3072000) is not working correctly. Little better is at 10m because sample rate can go lower to 1536K but is still no good.

73 de yt7pwr

#7

@yt7pwr - Goran,

You might want to look at SDRAngel to see how transmit was done there - it works perfectly in HF for voice and data.

73 de Marty, KN0CK

#8

@yt7pwr - Goran,

I did a quick test over my lunch hour and the immediate thing I’ve seen - - and need to check further - - is that I’m not getting coherent receive in HF at all. I’ve tried tuning over the range of 2 - 15 MHz and I’m not seeing anything coherent. Do you have NCO on? Also, I will check my LimeSDRs against other applications to confirm all tests and if I see similar results between your app and the other app I will reflash my Limes with the latest firmware - stay tuned for more information.

73 de Marty, KN0CK

#9

For HF my settings are: 3072K sample rate (RX and TX), 40MHz BW. Everything else is by default. If your settings are wrong two things can happen: USB label can go RED during startup sequence or LOSC can go RED if Limesuite library return negative answer on frequency change. In first case stop app, click on USB label until become GREEN (or reset board), change settings and try again.
Without board modification (one of usage conditions) I was able to hear AM broadcast station on 15MHz and 9MHz band and few ham radio station on 20m (CW and SSB) using R1_H input. My antenna is 20m dipole under attic. Board is without any proper enclosure received plenty interference from PC, TV…
NCO algorithm is used when LOSC is set below 48MHz. I did not found NCO explanation so I experimented using countless “trial and error” method. My first experiment show strange result: board is not going down to 30MHz but dramatically increase noise floor somewhere around 42MHz. First NCO algo is with 45MHz but later is changed to 48Mhz.
Local company, board owner, unfortunately do not use Windows nor HF and they was not able to help me in my experiments.

73 de yt7pwr

#10

Loaded it on the living room laptop. Somehow, I lost most of my OpenGL support on this laptop. I love the layout. The additional features are excellent.
One question, the PTT output on the GPIO, could that be used as a PTT input, to key the radio?
I can’t wait to really test it out.

Thank you,
Ed
AA7QQ

#11

@yt7pwr - Goran,

I tested LimeSDR C# out last night and it works pretty well on the higher bands (2m and up). Receive is good and transmit was clear and great audio quality - but I’d really like to see a PTT button added to the user interface if someone doesn’t have PTT capability ‘plumbed-in’ yet from GPIO. I used VOX and it worked, but I’m not a VOX fan for transmit. I’d really like to see it operate more on the HF bands and down to 2 MHz if possible - I know that the LimeSDR itself isn’t too great at 160m, but I can receive broadcast AM in good shape with other apps in receive and that’s even lower than 160m. Typical sample rates that I’m using with SDRAngel with 11 to 22kHz audio sample rate are 5 MS/s and work real well in the 160m to 20m range.

User interface is great - love that meter and the controls are definitely from openHPSDR or other development efforts along the line of the Apache and other Hermes radio projects.

Keep up the great work and let us all know when the next release is with some bug fixes implemented and we’ll all keep this rolling.

73 de Marty, KN0CK

#12

PTT button is called MOX and it is enabled unless RX only option is checked. Also keyboard combination Ctrl+M should change PTT state. Another way to switch to TX is to be creative and use CAT port.
Two GPIO pins are not used yet, one could be manual PTT or single CW keyer and second maybe for external PA (with sequencer?) or XTRV?
@Marty: I need additional information about HF issues: is it possible to receive anything below 48MHz?
@All: in your report please include OS info and short hardware description (USB3.0 or USB2.0, motherboard internal or additional add-on card, GPU card, etc…), CPU usage and maximum achieved sample rates.

73 de yt7pwr

1 Like
#13

I’ll be sure to test & report this weekend.
1.Dell T5500 12 core Xeon 3Ghz 72G EEC RAM W764Pro
2.Udoo X86 Ultra Win10Pro & Ubuntu VGA touchscreen
3.HP Laptop W7Pro old & tired.
If you have any settings that you would like tried, just let me know.

Thank you for your hard work.

Ed

#14

@yt7pwr - Goran,

Yep…!! It’s entirely possible to receive from 400 kHz and up using the LimeSDR. In fact, last night I was checking out both of my V1.4 LimeSDRs I own and tuned to 1540 kHz KXEL in Waterloo and I tuned to 600 kHz WMT in Cedar Rapids and then did my usual cruising the band from 75m (3970 kHz) to 10MHz (at night the propagation isn’t good above 10 MHz unless there’s special atmospheric conditions for it). So YES YES YES the LimeSDR is fully capable of receive and transmit in the HF band and certainly below 48 MHz. I (and many other Hams) are living proof that we use our Limes on HF right now.

Also, pertaining to platforms, I’ll give you my rundown of PC platforms I use and what OS that are used with my Limes:

1.) Dell Optiplex 9010 Core i5, 3.2GHz, with 8GB RAM, 1TB hard drive under Windows 10 64-bit - - works excellent with the Windows version of SDRAngel with 5 MS/s.
2.) Dell Optiplex 3020 Core i3, 2.5 GHz, with 8GB RAM, 500GB hard drive and runs Ubuntu 17.10 (Artful) 64-bit - works excellent with the Ubuntu version of SDRAngel with 5 MS/s
3.) LattePanda micro-sized PC with LCD touchscreen, 1.5GHz, 8GB RAM, 32GB SD Card, running Windows 10 64 bit - works excellent with the Windows version of SDRAngel with 5 MS/s
4.) UDOO Advanced X86 1.8 GHz running Ubuntu 17.10 and 5" HDMI LCD screen - works excellent with the Ubuntu version of SDRAngel with 5 MS/s
5.) Pine Rock64 (Pi-Killer) 1.56 GHz running Ubuntu Mate (16.10 version) 4GB RAM, 32GB SD Card - this runs LimeUtil and SoapySDRUtil fine - still working on getting GQRX working on it
6.) MSI i5 2.3 GHz ‘hockey puck’ computer with 8GB RAM and 150GB SSD running Windows 10 64-bit - works excellent with the Windows version of SDRAngel with 5 MS/s

ALL those platforms (other than the afforementioned Pine but does have USB 3.0) operate with the LimeSDR and have USB 3.0 resources (I bought them for that reason) and all have USB 2.0 resources, too.

Hope this helps - - there are A LOT of Hams out there who run HF on SDRConsole to receive and I run SDRAngel with receive and transmit on HF…If you make this a V/U/SHF app you’ll lose a great number of Hams who will just continue to use SDRAngel since that’s our solution and running great right now. Please continue to work this for HF - - it’s a VERY viable market…And I like the user interface, too… :slight_smile:

73 de Marty, KN0CK

#15

I was not clear enough so I’m going to supplement the question: can you receive anything below 48MHz with my application? Losc must be below 48MHz in order to activate NCO algorithm. My tests show identical result on HF as with SDRConsole V3.0 (minus few bugs - TIA gain is not working).
Where can I found SDRangel for WIndows?

73 de yt7pwr

#16

Goran,
any relation of your new LimeSW with -> http://genesisradio.com.au/GSDR/new/Documentation/html/English/GSDR/?author=1

Regarding SDRAngel ->

73
Djani

1 Like
#17

From my first post:

so yes this project is derived from GSDR. In each C# file at the top there is a short description from PowerSDR and my GSDR work .

73 de yt7pwr

1 Like
#18

@yt7pwr - Goran,

I didn’t have much luck tuning my V1.4 LimeSDR with the latest firmware with LimeSDR C# and get anything of substance - at one point it did crash, but I will try it again on my Windows platform this evening and let you know the outcome. Pictures, too, if I have similar results to yours. How’s transmit coming along for HF? Keep us all advised - more to follow in about 10 hours…Stay tuned -

73 de Marty, KN0CK

#19

@yt7pwr - Goran,

Okay - Same issue. I am unable to tune the HF band with LimeSDR C# and obtain anything of any substance. There are spurs in the spectra that do not move when I tune and that tells me that the Lime isn’t configured right for HF. I took the same receiver and put it on my SDRAngel setup and it worked fine - tuned all over and received the HF band. So something still isn’t right yet…Hopefully you’ll find the issue and I can try another version.

UPDATE: Also I wanted to add that you cannot start LimeSDR C# on an HF frequency - the waterfall turns a solid pink color and does nothing. You are forced to move to a higher frequency (in this case, 144.000 MHz for example) and then start the application, THEN tune to an HF frequency…but it won’t be coherent.

73 de Marty, KN0CK

#20

I rebuilt my PC and install Win10 x64 with the same result: momentary I’m listennig on 7.410MHz some Chinese AM station, on 9.41 Portuguese language (maybe Brasil station)! HF is working fine! LimeSDR# rebuilt with VS2017 comunity edition show almost 50% less CPU than previous VS2010 Win7 combination (one of the reasons is that only under Win10 Ryzen CPU virtual cores are fully functional). VS2017 output window shows firmware version 4 and gateware version 2 revision 12.
HF tuning problem can be from Limesuite.dll mismatch (if Windows first find different .dll file searching &PATH system variable). You can try to rename Limesuite.dll from app folder and see what is happening: if USB label became green you have another Limesuite.dll (from Pothos package maybe). If nothing helps please send me database.xml from app folder for analysis.

73 de yt7pwr