Does anyone have a simple GRC for RX conventional Phase 1 audio? The larger program I am working on is in C and I just want to make sure I have the Gnuradio graph right and tune it before I hard code it into C. It monitors a SmartNet II system, so I don't need Phase 2 or Trunking.
If not, is it best to look at the scope.py app in OP25-repeater to figure out what the best blocks are to use for decoding?
I am trying to switch over from gr-dsd so everything will be more native.
Last dumb question, is it better to use the receive blocks in op25 or op25-repeater.
Thanks!
Russell
These patches look really great and I think we should merge them into OP25. The bch check does look like it is redundant but it isn't 100% clear what the "perfect" solution would be anyway.
As far as this one:
> sample = 32767 * (sample < 0) ? -1 : 1; // * sgn(sample)
>
> Multiplication has higher precedence than the ternary conditional, so
the intent of this code is to ensure that 'sample' is confined to the range [-32K, +32K]. The above line of code would only be executed if there's an overflow (which should not occur, in theory). So if it's greater than 32,767 we want to set it to 32,767 (and similarly for the - case, if it's less than -32K we limit it to -32K). So it does look like it needs a set of ( ) added around everything after the * . For that matter, not sure why it couldn't just be
sample = 32767 * sgn(sample);
as suggested in the code...
Thx Russ!
Max
I tried to install OP25 on my Linux Mint Machine. I let it run through the night, and when I woke up, the machine had crashed. I would like to try again, but my hard drive is limited on space. If I retry the PY Bomb, will it overwrite everything, or must I delete the failed install, and if I must delete, can anyone provide some guidance on that?
Kindly,
Michael
Hi all, is the older OP25 code still available for the older GR API? I want to make sure before I dump the whole pybombs experiment. Don't get me wrong, I love the concept and it's ease of use, but most of the out of tree modules aren't 3.7 compliant. Half of the recipes won't even compile. All of the GR examples I find across the internet will not open in GRC, so I have to manually edit them. I'm just tired of the hassles...
Thanks guys.
-Scott
Hi All,
I am getting back into OP25 and would like to know what version of Ubuntu would be the best to use with OP25 and GNU Radio. I will be installing Ubuntu alongside of Windows XP on a Lenovo desktop.
thanks,
Joe
in git branch max-phase2-tdma. At this stage none of the python apps have been updated yet, other than a CLI test driver in apps/tdma/tdma_audio.py.... If doing research with this version you need to uninstall any previous installed version(s) of OP25, as the runtime C++ blocks have been updated.
Max
Hello all. In an attempt to finally start playing with OP25 I tried to
install it over the weekend. Following the simple instructions on the
wiki I cloned pybombs and ran it to install gr-op25, accepting the
defaults in the process.
Below are the last few lines of output containing many errors related
to the UHD driver. Is this just the result of the source being out of
whack at the time it was downloaded? Or did I miss something on my
end? I had previously tried it a couple days before and got similar
errors.
For reference I'm a somewhat advanced Linux user, but git and the
pybombs concept are new to me.
Thanks,
Brett KQ9N
[ 64%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b100/b100_impl.cpp.o
[ 64%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b100/clock_ctrl.cpp.o
[ 65%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b100/codec_ctrl.cpp.o
[ 65%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b100/dboard_iface.cpp.o
[ 66%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b100/io_impl.cpp.o
[ 66%] Building CXX object
lib/CMakeFiles/uhd.dir/usrp/b100/usb_zero_copy_wrapper.cpp.o
[ 67%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b200/b200_impl.cpp.o
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_impl.cpp: In
constructor 'b200_impl::b200_impl(const uhd::device_addr_t&)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_impl.cpp:162:
warning: format '%x' expects type 'unsigned int*', but argument 3 has
type 'uint16_t*'
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_impl.cpp:164:
warning: format '%x' expects type 'unsigned int*', but argument 3 has
type 'uint16_t*'
[ 67%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/b200/b200_iface.cpp.o
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual void b200_iface_impl::write_eeprom(uint16_t,
uint16_t, const uhd::byte_vector_t&)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:243:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual uhd::byte_vector_t
b200_iface_impl::read_eeprom(uint16_t, uint16_t, size_t)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:259:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual void b200_iface_impl::transact_spi(unsigned
char*, size_t, unsigned char*, size_t)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:283:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:295:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual void b200_iface_impl::ad9361_transact(const
unsigned char*, unsigned char*)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:308:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:316:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual void b200_iface_impl::reset_fx3()':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:439:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual void b200_iface_impl::reset_gpif()':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:451:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual uint8_t b200_iface_impl::get_usb_speed()':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:483:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual uint8_t b200_iface_impl::get_fx3_status()':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:498:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual uint16_t b200_iface_impl::get_compat_num()':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:513:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'void
b200_iface_impl::usrp_get_firmware_hash(hash_type&)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:527:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'void
b200_iface_impl::usrp_set_firmware_hash(hash_type)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:539:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'void
b200_iface_impl::usrp_get_fpga_hash(hash_type&)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:551:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'void b200_iface_impl::usrp_set_fpga_hash(hash_type)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:563:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp: In
member function 'virtual uint32_t
b200_iface_impl::load_fpga(std::string)':
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:598:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:623:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:646:
error: 'libusb_error_name' was not declared in this scope
/home/brett/pybombs/src/uhd/host/lib/usrp/b200/b200_iface.cpp:675:
error: 'libusb_error_name' was not declared in this scope
/home/brett/gnuradio/include/boost/system/error_code.hpp: At global scope:
/home/brett/gnuradio/include/boost/system/error_code.hpp:214: warning:
'boost::system::posix_category' defined but not used
/home/brett/gnuradio/include/boost/system/error_code.hpp:215: warning:
'boost::system::errno_ecat' defined but not used
/home/brett/gnuradio/include/boost/system/error_code.hpp:216: warning:
'boost::system::native_ecat' defined but not used
make[2]: *** [lib/CMakeFiles/uhd.dir/usrp/b200/b200_iface.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [lib/CMakeFiles/uhd.dir/all] Error 2
make: *** [all] Error 2
ERROR:root:PyBOMBS Make step failed for package (uhd) please see bash
output above for a reason (hint: look for the word Error)
Stevie
Several folks attempting to join the group have reported trouble with either the yah00 captcha or with not getting email replies after receiving the initial request-confirmation email. Not sure what's happening to cause this. The trouble reports can be found starting in this thread
http://forums.radioreference.com/software-defined-radio/282056-sdrs-vs-hard…
Max
The RTL SDR sticks as mentioned seem to have delays when changing frequency that cause lost calls in trunking mode. I've added a new feature (updated in git branch max-trunking-update2 and in the wiki) which uses a software Local Oscillator instead of hardware retuning which essentially makes tuning instantaneous. There is a restriction that all of the channels to be tuned including the trunk CC must fall inside the tuning passband (whose width is equal to the sampling rate). See the SignalScope wiki page for more information.
Outside of this, LSM trunking works very well now with RTL SDR
Max