Hello everyone,
Short story:
I would like to ask if it is possible to bring back the Miri support that was removed in October 2020?
The market for cheap SDR receivers has changed in recent years and there are now more good boards with Miri chipsets.
Long story:
I work as an industrial mechanic, but my secret loves since many years are electronics and amateur radio. It was GNU Radio that allowed me to learn a lot about filtering, modulation or signal mixing without the necessary technical training.
I started with the RTL-SDR sticks like many others and they got me off to a good start, but the lack of ability to receive signals below 20MHz without modification makes it difficult for beginners to experiment.
This is where the cheap Miri Boards come into play today. I ordered boards with Miri chipset from China for 18€ delivered to Germany. They have a good performance for beginners and signals above 10kHz can also be received well.
My plan is to develop cheap open source boards for amateur radio beginners that are connected directly to the Miri boards. Based on the NE555 and the Si5351A, basics such as filters, attenuators, mixing and modulating frequencies should be explained and tested.
My biggest problem is that I'm not a good programmer, so I can't manage to re-implement Miri support myself and compile gr-osmosdr to get it running on Windows (yes, I'll burn in hell for it one day).
Hence my request to resume Miri support in gr-osmosdr or the question of whether someone can help me to create a fork that can be compiled with Miri Support under Windows.
Offtopic:
After all these years of using gr-osmosdr, I would like to take this opportunity to thank everyone involved for their time and dedication, which enables people like me to learn and develop with simple means and without expensive equipment.
Thanks for your time and Merry Christmas to everyone!
Marc
Hey osmocom-sdr,
I've got a choose your own adventure patch set here for the adventurous
reviewer.
On OpenBSD (but not specific to OpenBSD) libusb-1.0 lives in
/usr/local/lib. The default linker (lld 13.0.0 on 7.2) doesn't include
/usr/local/lib in its out of the box search path, which triggers a build
failure in rtl-sdr because the -L argument(s) aren't passed through to ld.
The root cause here is that we pass ${LIBUSB_LIBRARIES} to
target_link_libraries, which is only the -lfoo arguments, but not the
-L/foo/bar arguments. This tends to work on most systems, since libusb is
usually in a place ld will search anyway.
There's two ways I could see to do this. Here comes the choose your own
adventure part:
1) The first is to use the PkgConfig::LIBUSB helper, which can be passed
directly to `target_link_libraries`, which allows all the arguments to be
passed through. This means the existing hooks to pass in a manual path
would be dropped and building without pkg-config against libusb won't be
supported anymore. This is the attached git format-patch entitled
"0001-Use-the-PkgConfig-imported-target-rather-than-_LIBRA.patch".
2) Punch the -L arguments through next to the LIBUSB_LIBRARIES argument to
`target_link_libraries`, add a new knob to set the values ("manual libusb
librarypath"), and when using pkg-config, generate the arguments with a
FOREACH. This is the attached git format-patch
"0001-Pass-additional-library-directory-arguments-to-ld.patch".
Both patch flavors build on my Debian sid box and an OpenBSD 7.2 box.
paultag
--
:wq
The signal handler for SIGINT/TERM/QUIT and, importantly, SIGPIPE tries
to write an informational message to stderr. When however stderr is
redirected to a closed pipe, this will cause (another) SIGPIPE, and in
turn the signal handler will get called again, and again and again.
Since we intend to exit rtl_fm anyways, we can just ignore this signal
from this point on.
---
Here is a small test program to verify the bug.
from subprocess import Popen, PIPE
p = Popen("rtl_test", stderr=PIPE)
# sighandler is set up after rtlsdr_open() call, so read past that
while p.stderr.readline()[:8] != b"Sampling": pass
p.stderr.close()
p.terminate() # SIGTERM -> sighandler() -> fprintf(stderr) -> SIGPIPE!
Note that the signal handler is not set up immediately, but only after
rtlsdr_open() is called. Due to line buffering/flushing on stderr, we
must read from the pipe or rtl_* will stall and SIGTERM/PIPE will still
be handled by the SIG_DFL, not triggering the write to the broken pipe.
And in case someone is wondering: Using signal(2) instead of
sigaction(2) is OK, as long as it only sets to SIG_DFL or SIG_IGN.
src/rtl_adsb.c | 1 +
src/rtl_fm.c | 1 +
src/rtl_power.c | 1 +
src/rtl_sdr.c | 1 +
src/rtl_tcp.c | 1 +
src/rtl_test.c | 1 +
6 files changed, 6 insertions(+)
diff --git a/src/rtl_adsb.c b/src/rtl_adsb.c
index 7aea8dd..8119ac8 100644
--- a/src/rtl_adsb.c
+++ b/src/rtl_adsb.c
@@ -123,6 +123,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
fprintf(stderr, "Signal caught, exiting!\n");
do_exit = 1;
rtlsdr_cancel_async(dev);
diff --git a/src/rtl_fm.c b/src/rtl_fm.c
index 7c84332..037793c 100644
--- a/src/rtl_fm.c
+++ b/src/rtl_fm.c
@@ -246,6 +246,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
fprintf(stderr, "Signal caught, exiting!\n");
do_exit = 1;
rtlsdr_cancel_async(dongle.dev);
diff --git a/src/rtl_power.c b/src/rtl_power.c
index 6204de2..df3ceb7 100644
--- a/src/rtl_power.c
+++ b/src/rtl_power.c
@@ -195,6 +195,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
do_exit++;
multi_bail();
}
diff --git a/src/rtl_sdr.c b/src/rtl_sdr.c
index e6537ca..2c93b57 100644
--- a/src/rtl_sdr.c
+++ b/src/rtl_sdr.c
@@ -74,6 +74,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
fprintf(stderr, "Signal caught, exiting!\n");
do_exit = 1;
rtlsdr_cancel_async(dev);
diff --git a/src/rtl_tcp.c b/src/rtl_tcp.c
index 84f5591..8781ba9 100644
--- a/src/rtl_tcp.c
+++ b/src/rtl_tcp.c
@@ -144,6 +144,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
fprintf(stderr, "Signal caught, exiting!\n");
rtlsdr_cancel_async(dev);
do_exit = 1;
diff --git a/src/rtl_test.c b/src/rtl_test.c
index 9b44097..b7f46ea 100644
--- a/src/rtl_test.c
+++ b/src/rtl_test.c
@@ -115,6 +115,7 @@ sighandler(int signum)
#else
static void sighandler(int signum)
{
+ signal(SIGPIPE, SIG_IGN);
fprintf(stderr, "Signal caught, exiting!\n");
do_exit = 1;
rtlsdr_cancel_async(dev);
--
2.38.1
The new-ish RFSpace CloudSDR is mostly the same as the Cloud-IQ, but has a few differences. I’ve tested it thoroughly and it works well. One side note, the CloudSDR (and probably others) require the UDP host port to be set equal to the SDR’s port. This allows multiple CloudSDRs to work simultaneously. That is, a second CloudSDR needs a different IP address, obviously, but also needs a different port, e.g. 50001 rather than the default 50000.
Regards,
Mike McCarrick
I am trying to go back and simply install gqrx on Liux Mint v21 Vanessa
(Ubuntu Jammy) using an RTL-SDR V3. It all started I believe when I tried
to install SDR++ building it from source.
I install osmo_sdr and gr-osmosdr. I have worked my way through and
deleted some of the issues, the last one being getting rid of the osmo_sdr
binary. Deleting that removed the error I was getting with the
libgnuradio-osmosdr.0.2.0 (it was showing libgnuradio-osmosdr.0.2.0 (build
0.3build53 or something).
I am now getting an error running gqrx is "gqrx: error while loading shared
libraries: libgnuradio-blocks.so.3.10.1: cannot open shared object file: No
such file or directory". Some fragment of something I uninstalled
incorrectly is causing gqrx distribution to think that this is already
installed. If I could figure out what that is, it would be helpful.
The reason I am posting this here is because it started I believe when I
installed either osmo_sdr or gr-osmosdr.
Thank you.
Kevin
Hello various Osmocom mailing lists,
as previously announced (https://osmocom.org/news/191):
* The binary packages are being built on Osmocom's own OBS server now.
* We will stop pushing packages to the openSUSE OBS server at the end of
October (in one week).
If you are using Osmocom binary packages, please make sure that you have
configured the new repository URLs.
See the wiki for details:
https://osmocom.org/projects/cellular-infrastructure/wiki/Binary_Packages
Best,
Oliver
--
- Oliver Smith <osmith(a)sysmocom.de> https://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Dear Osmocom community,
your input is required in order to tune the re-launch of the OsmoDevCall
talk series. One of the complaints before the suspension in Summer this year
was that the "Friday night 8pm CEST" timeslot was not exactly ideal for several
people.
Finding a common denominator might be difficult, given that Osmocom is a dayjob
for some, a hobby for most, and we're of course not all in the same time zone
or even continent.
So let's try to run a couple of polls to figure out:
* What is the best day of the week for OsmoDevCall?
https://bitpoll.de/poll/CEQnaQKEvO/
* What is the best time of day for OsmoDevCall?
https://bitpoll.de/poll/59dgmzOocT/
* What is the best frequency of OsmoDevCall
https://bitpoll.de/poll/8jyuRJB6Hb/
The polls are open until October 21st, 2021. I would appreciate a high turn-out
so we have a good representation across our community to make an educated decision
about the schedule of futur events.
Can't wait to re-start OsmoDevCall!
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
[please follow-up-to openbsc(a)lists.osmocom.org so we don't cross-post
all related mails]
Dear Osmocom community,
OsmoDevCall used to be rather successful for quite some time in recent years,
but recently has been suffering quite a bit due to insufficient people
volunteering to present. Big thanks to all who did! Interestingly,
there's no shortage of ideas of topics at
https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCall - but then
many of the potential speakers did not have the interest or time to
follow-up.
Most recently, the last few instances have not been taking place due to a lack
of volunteers during my holidays.
Last, but not least, while during COVID lockdown winter "friday night
8pm" was a good idea, this of course is more difficult during the
summer, when people are more likely want to go out the weekend.
So, to summarize, let me ask some questions:
* would you be interested in OsmoDevCall continuing?
* which day/time/timezone would you prefer ?
* would you be able and willing to volunteer to give at talk within the
next 3 or so months?
Any other suggestions for or around OsmoDevCall are of course also welcome.
Thanks in advance,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
That compiles as well, I removed const as well for a simple reason:
The AVX version above doesn't use const and doesn't modify mulme either
Am 20.06.22 um 11:18 schrieb Patrick Welche:
> (I would just get rid of "register" and not "const" as well)
>
> P
>
> On Mon, Jun 20, 2022 at 04:41:20AM +0200, Stefan Oltmanns wrote:
>> Hello,
>>
>> gr-osmosdr currently doesn't build on macOS (probably not with clang in
>> general), because C++17 does not allow the "register storage class
>> specifier".
>>
>> The fix is quite trivial:
>>
>> --- a/lib/hackrf/hackrf_sink_c.cc
>> +++ b/lib/hackrf/hackrf_sink_c.cc
>> @@ -299,7 +299,7 @@ void convert_avx(const float* inbuf, int8_t*
>> outbuf,const unsigned int count)
>> #elif USE_SSE2
>> void convert_sse2(const float* inbuf, int8_t* outbuf,const unsigned
>> int count)
>> {
>> - const register __m128 mulme = _mm_set_ps( 127.0f, 127.0f, 127.0f,
>> 127.0f );
>> + __m128 mulme = _mm_set_ps( 127.0f, 127.0f, 127.0f, 127.0f );
>> __m128 itmp1,itmp2,itmp3,itmp4;
>> __m128i otmp1,otmp2,otmp3,otmp4;
>>
>> Could you please apply that patch and also create a new release?
>> Unfortunately gr-osmosdr was thrown out of the homebrew package earlier
>> this year, because it didn't build.
>> I would like to get it back in, because that would make things on mac a
>> lot easier (and GNURadio tutorials for mac would be correct again and
>> not cause frustration).
>>
>> I assume the easiest way to get it back in is to have a new official
>> release that builds again correctly.
>>
>> Best regards
>> Stefan
Hello,
gr-osmosdr currently doesn't build on macOS (probably not with clang in
general), because C++17 does not allow the "register storage class
specifier".
The fix is quite trivial:
--- a/lib/hackrf/hackrf_sink_c.cc
+++ b/lib/hackrf/hackrf_sink_c.cc
@@ -299,7 +299,7 @@ void convert_avx(const float* inbuf, int8_t*
outbuf,const unsigned int count)
#elif USE_SSE2
void convert_sse2(const float* inbuf, int8_t* outbuf,const unsigned
int count)
{
- const register __m128 mulme = _mm_set_ps( 127.0f, 127.0f, 127.0f,
127.0f );
+ __m128 mulme = _mm_set_ps( 127.0f, 127.0f, 127.0f, 127.0f );
__m128 itmp1,itmp2,itmp3,itmp4;
__m128i otmp1,otmp2,otmp3,otmp4;
Could you please apply that patch and also create a new release?
Unfortunately gr-osmosdr was thrown out of the homebrew package earlier
this year, because it didn't build.
I would like to get it back in, because that would make things on mac a
lot easier (and GNURadio tutorials for mac would be correct again and
not cause frustration).
I assume the easiest way to get it back in is to have a new official
release that builds again correctly.
Best regards
Stefan