Thursday, September 25, 2025

Capture the Flag @ Ingeniería deMuestra

Hi everyone,

Just like last year (and since 2020), we're organizing a little CTF very much like GRCon's during an exposition event at our University (https://idm.uy/). Since it is completely online, we encourage people from all over to join and play. The only caveat is that it is in Spanish, but many English-speaking people have played it in the past. 

If you're interested, you may read all the details at our webpage https://ctf.idm.uy/ (or directly at https://eva.fing.edu.uy/course/view.php?id=1557&section=1#tabs-tree-start). You may register with a group of up to three people by sending us a mail to ctf@fing.edu.uy.

The deadline to register is next Thursday, and the CTF begins next Friday!

best
Federico

Monday, September 15, 2025

[GR-UHD] Announcing GNURadio 3 binary installers with UHD 4.9

Hi All,
 
Together with the latest UHD 4.9 release new GNURadio 3 binary installers with UHD 4.9 support are now available for Ubuntu and Windows.
 
Ubuntu Noble (24.04), Plucky (25.04):
- GNURadio 3.10.12
 
Windows 10/11:
Note:   The Windows installer bundle uses cmake changes not yet available in gnuradio main and has received limited testing outside of using grc with gr-uhd required features. Please refer to https://files.ettus.com/binaries/gnuradio/latest_stable/gnuradio_installer_README.txt for other known limitations.
 
Thanks,
Marian Koop
 
 

Friday, September 12, 2025

Re: Simple BPSK Constellation?

Ralph,

It's because the Constellation Modulator includes a root-raised cosine filter. If you just want bare constellation points, you can use the Chunks to Symbols block.

Ron

On 9/12/25 03:29, Ralph Ewig wrote:

Hi Everyone,

I've been trying to make a simple DBPSK transmitter for a random data (bit) source in GRC. My flowgraph just uses:

                        Constellation Object
Random Uniform Source > Constellation Modulator > Throttle > QT GUI Sink

However, in the constellation plot I see clusters around -1,1 and a point at 0,0 instead of the expected tight grouping just around -1,1. I've confirmed the source produces a stream of 0,1 (bytes) so there should be no errand points being mapped to 0 etc. Can someone point me in the right direction?

Thanks,
Ralph

Simple BPSK Constellation?

Hi Everyone,

I've been trying to make a simple DBPSK transmitter for a random data (bit) source in GRC. My flowgraph just uses:

                        Constellation Object
Random Uniform Source > Constellation Modulator > Throttle > QT GUI Sink

However, in the constellation plot I see clusters around -1,1 and a point at 0,0 instead of the expected tight grouping just around -1,1. I've confirmed the source produces a stream of 0,1 (bytes) so there should be no errand points being mapped to 0 etc. Can someone point me in the right direction?

Thanks,
Ralph

Wednesday, September 10, 2025

Re: binding errors in Ubuntu 24

Federico and all,

I've found a better solution for this issue (a little late, but better than never). If you use the latest version of castxml, the massive error problem is solved. Here's the steps:

1) Download the latest pre-built version of castxml at:

https://github.com/CastXML/CastXMLSuperbuild/releases

For Ubuntu 24.04, I used:

https://github.com/CastXML/CastXMLSuperbuild/releases/download/v2025.09.03/castxml-ubuntu-24.04-x86_64.tar.gz

2) Install the tar.gz file into any directory.

3) Set a path to the newly installed castxml binary. For example, I installed into /media/re/nvme/castxml:

export PATH=/media/re/nvme/castxml/bin:$PATH

gr_modtool bind now works good.

Ron

On 1/30/25 14:12, Federico 'Larroca' La Rocca wrote:
Hi, 
Thanks (publicly) to Ron for his solution, it worked like a charm. For anyone finding a similar problem, I've used a Docker with a 22.04 Ubuntu (you may use mine at https://github.com/git-artes/docker-gnuradio/, although there are several other out there), migrated the OOT through the required gr_modtool bind, and it also worked perfectly in my "native" 24.04. 
best
Fede

El mié, 29 ene 2025 a las 20:47, Ron Economos (<w6rz@comcast.net>) escribió:
I just tried gr_modtool bind on Ubuntu 24.04, and I'm getting the same
results (huge error dump).

For the last OOT I updated to 3.10, I just went back to Ubuntu 20.04 and
gcc 9.4.0. Then I checked that it builds okay on Ubuntu 24.04.

I've pasted my Ubuntu 24.04 gr_modtool bind error dump onto the end of
this e-mail.

Ron

On 1/29/25 14:44, Federico 'Larroca' La Rocca wrote:
> Hi,
>
> I'm trying to port our gr-isdbt OOT so that it works as
> "out-of-the-box" as possible in Ubuntu 24.04 (it's used in our course,
> so I would like the student's life to be as simple as possible).
>
> I've had some problems regarding binding, so I've decided to add a
> single block into a freshly created OOT, and I get the following error:
>   Python bindings for ofdm_synchronization.h are out of sync
> which makes sense since I've changed that file in the include
> directory. However, when running gr_modtool bind ofdm_synchronization
> I get several errors that end with
>   fatal error: too many errors emitted, stopping now [-ferror-limit=]
>   20 errors generated.
>   Error occurred while running CASTXML xml file does not exist
>
> I've seen that this has been reported
> (https://github.com/gnuradio/gnuradio/issues/6477) and that there's
> even a PR that has been merged into the main code
> (https://github.com/gnuradio/gnuradio/pull/7408).
>
> My question is then: what do you think would be the simplest way to
> avoid this problem?
>
> thanks!
gr_modtool bind alpbbheader_bb
GNU Radio module name identified: atsc3
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:14:
In file included from /usr/include/c++/14/memory:63:
In file included from /usr/include/c++/14/bits/memoryfwd.h:48:
/usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h:827:25: error:
       invalid suffix 'bf16' on floating constant
   827 |   typedef __decltype(0.0bf16) __bfloat16_t;
       |                         ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
  1989 | __glibcxx_float_n(32)
       | ^
/usr/include/c++/14/limits:1909:16: note: expanded from
       macro '__glibcxx_float_n'
  1909 |       { return __glibcxx_concat3 (__FLT, BITSIZE, _MIN__);
}            \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:232:1: note: expanded from here
   232 | __FLT32_MIN__
       | ^
<built-in>:217:64: note: expanded from macro
       '__FLT32_MIN__'
   217 | #define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
|                                                                ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1908:7: note: expanded from
       macro '__glibcxx_float_n'
  1908 |       min()
_GLIBCXX_USE_NOEXCEPT                                       \
       |       ^
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
/usr/include/c++/14/limits:1913:16: note: expanded from
       macro '__glibcxx_float_n'
  1913 |       { return __glibcxx_concat3 (__FLT, BITSIZE, _MAX__);
}            \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:235:1: note: expanded from here
   235 | __FLT32_MAX__
       | ^
<built-in>:172:64: note: expanded from macro
       '__FLT32_MAX__'
   172 | #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
|                                                                ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1912:7: note: expanded from
       macro '__glibcxx_float_n'
  1912 |       max()
_GLIBCXX_USE_NOEXCEPT                                       \
       |       ^
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
/usr/include/c++/14/limits:1917:17: note: expanded from
       macro '__glibcxx_float_n'
  1917 |       { return -__glibcxx_concat3 (__FLT, BITSIZE, _MAX__);
}           \
       |                 ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:238:1: note: expanded from here
   238 | __FLT32_MAX__
       | ^
<built-in>:172:64: note: expanded from macro
       '__FLT32_MAX__'
   172 | #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
|                                                                ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1916:7: note: expanded from
       macro '__glibcxx_float_n'
  1916 |       lowest()
_GLIBCXX_USE_NOEXCEPT                                    \
       |       ^
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
/usr/include/c++/14/limits:1933:16: note: expanded from
       macro '__glibcxx_float_n'
  1933 |       { return __glibcxx_concat3 (__FLT, BITSIZE, _EPSILON__);
}        \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:247:1: note: expanded from here
   247 | __FLT32_EPSILON__
       | ^
<built-in>:396:67: note: expanded from macro
       '__FLT32_EPSILON__'
   396 | #define __FLT32_EPSILON__
1.19209289550781250000000000000000000e-7F32
| ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1932:7: note: expanded from
       macro '__glibcxx_float_n'
  1932 |       epsilon()
_GLIBCXX_USE_NOEXCEPT                                   \
       |       ^
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
/usr/include/c++/14/limits:1936:52: note: expanded from
       macro '__glibcxx_float_n'
  1936 |       round_error() _GLIBCXX_USE_NOEXCEPT { return
0.5F##BITSIZE; }     \
       |                                                    ^
<scratch space>:249:4: note: expanded from here
   249 | 0.5F32
       |    ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1936:7: note: expanded from
       macro '__glibcxx_float_n'
  1936 |       round_error() _GLIBCXX_USE_NOEXCEPT { return
0.5F##BITSIZE; }     \
       |       ^
/usr/include/c++/14/limits:1989:1: error: use of undeclared
       identifier '__builtin_huge_valf32'
/usr/include/c++/14/limits:1960:16: note: expanded from
       macro '__glibcxx_float_n'
  1960 |       { return __builtin_huge_valf##BITSIZE();
}                        \
       |                ^
<scratch space>:265:1: note: expanded from here
   265 | __builtin_huge_valf32
       | ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: use of undeclared
       identifier '__builtin_nanf32'
/usr/include/c++/14/limits:1964:16: note: expanded from
       macro '__glibcxx_float_n'
  1964 |       { return __builtin_nanf##BITSIZE("");
}                           \
       |                ^
<scratch space>:267:1: note: expanded from here
   267 | __builtin_nanf32
       | ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: use of undeclared
       identifier '__builtin_nansf32'
/usr/include/c++/14/limits:1968:16: note: expanded from
       macro '__glibcxx_float_n'
  1968 |       { return __builtin_nansf##BITSIZE("");
}                          \
       |                ^
<scratch space>:269:1: note: expanded from here
   269 | __builtin_nansf32
       | ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: invalid suffix
       'F32' on floating constant
/usr/include/c++/14/limits:1972:16: note: expanded from
       macro '__glibcxx_float_n'
  1972 |       { return __glibcxx_concat3 (__FLT, BITSIZE,
_DENORM_MIN__); }     \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:272:1: note: expanded from here
   272 | __FLT32_DENORM_MIN__
       | ^
<built-in>:304:71: note: expanded from macro
       '__FLT32_DENORM_MIN__'
   304 | #define __FLT32_DENORM_MIN__
1.40129846432481707092372958328991613e-45F32
| ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1989:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1971:7: note: expanded from
       macro '__glibcxx_float_n'
  1971 |       denorm_min()
_GLIBCXX_USE_NOEXCEPT                                \
       |       ^
/usr/include/c++/14/limits:1992:1: error: invalid suffix
       'F64' on floating constant
  1992 | __glibcxx_float_n(64)
       | ^
/usr/include/c++/14/limits:1909:16: note: expanded from
       macro '__glibcxx_float_n'
  1909 |       { return __glibcxx_concat3 (__FLT, BITSIZE, _MIN__);
}            \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:276:1: note: expanded from here
   276 | __FLT64_MIN__
       | ^
<built-in>:431:65: note: expanded from macro
       '__FLT64_MIN__'
   431 | #define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
|                                                                 ^
In file included from /tmp/tmpaa_arrq6.h:1:
In file included from
/home/re/xfer/gr-atsc3/include/atsc3/alpbbheader_bb.h:13:
In file included from /opt/gnuradio-3.11.0git/include/gnuradio/block.h:17:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/basic_block.h:15:
In file included from
/opt/gnuradio-3.11.0git/include/gnuradio/io_signature.h:19:
In file included from /usr/include/spdlog/fmt/fmt.h:31:
In file included from /usr/include/fmt/core.h:15:
/usr/include/c++/14/limits:1992:1: error: no return
       statement in constexpr function
/usr/include/c++/14/limits:1908:7: note: expanded from
       macro '__glibcxx_float_n'
  1908 |       min()
_GLIBCXX_USE_NOEXCEPT                                       \
       |       ^
/usr/include/c++/14/limits:1992:1: error: invalid suffix
       'F64' on floating constant
/usr/include/c++/14/limits:1913:16: note: expanded from
       macro '__glibcxx_float_n'
  1913 |       { return __glibcxx_concat3 (__FLT, BITSIZE, _MAX__);
}            \
       |                ^
/usr/include/c++/14/limits:1894:34: note: expanded from
       macro '__glibcxx_concat3'
  1894 | #define __glibcxx_concat3(P,M,S) __glibcxx_concat3_ (P,M,S)
       |                                  ^
/usr/include/c++/14/limits:1893:35: note: expanded from
       macro '__glibcxx_concat3_'
  1893 | #define __glibcxx_concat3_(P,M,S) P ## M ## S
       |                                   ^
<scratch space>:279:1: note: expanded from here
   279 | __FLT64_MAX__
       | ^
<built-in>:368:65: note: expanded from macro
       '__FLT64_MAX__'
   368 | #define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
|                                                                 ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Error occurred while running CASTXML xml file does not exist

Tuesday, August 26, 2025

GSoC 2025 FM Receiver App — A PyQt5-based FM Receiver with GNU Radio Integrated

Hi everyone,

For the past 14 weeks, I've been developing a PyQt5-based FM Broadcast Receiver App with the help of my mentors and this awesome community.

I've finally wrapped up my GSoC 2025 project with RDS support, station scanning, and multi-recording built on GNU Radio.

Blog summary: https://studhamza.github.io/hamza-folio/blog/2025/gnu-week14_final/
Source code & docs: GitHub Page

Would love feedback or suggestions!

Really had fun interacting and learning from everyone; and hopefully I would stick around. Thank you all.

Best,
Hamza

Friday, August 15, 2025

Seeking Consultants for DVB-S/S2(X) and LoRa SDR Projects

Hello,

I'm Dr. Moses Browne Mwakyanjala, CEO of Remos Space Systems AB, a European aerospace company specializing in software-defined ground station solutions for small satellite operators. Our offerings include high-performance software modems, advanced mission control systems, and turnkey ground station deployments. We've proudly delivered solutions to several national space agencies worldwide.

We are currently seeking experienced consultants for two specialized SDR projects:
1. DVB-S/S2(X) Development in C++
• Implement DVB-S/S2(X) modulation/demodulation in C++.
• Optimize for performance with modern SDR platforms.
• Strong understanding of standards compliance, FEC, and advanced signal processing is essential.
2. LoRa SDR Development
• Implement the LoRa PHY layer for SDR platforms.
• LoRaWAN integration experience is a plus.
• Focus on flexible, software-defined deployments.

These are contract roles with flexible, remote collaboration, working closely with our in-house engineering team.

If you're interested, please send your CV, relevant project portfolio, and availability to mbkitine@gmail.com. Recommendations and referrals are also welcome.

Kind regards,
Moses

Dr Moses Browne Mwakyanjala


Founder - CEO

Remos Space Systems AB

m: +46 (0)70 278 2174

a: Aurorum 1C,  977 75 Luleå, Sweden