myriadrf / novena-rf Goto Github PK
View Code? Open in Web Editor NEWA 300 MHz to 3800 MHz RF module for the Novena Open Hardware Computing Platform
A 300 MHz to 3800 MHz RF module for the Novena Open Hardware Computing Platform
For interfacing between EIM with the framer/deframer.
Failed to build while compiling driver/host
Work around is to remove libi2c-dev and then compiling
$sudo apt-get remove libi2c-dev
[ 4%] Building CXX object CMakeFiles/NovenaRF.dir/home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp.o
In file included from /home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp:26:0:
/usr/include/linux/i2c-dev.h:37:8: error: redefinition of ‘struct i2c_msg’
struct i2c_msg {
^
In file included from /home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp:25:0:
/usr/include/linux/i2c.h:68:8: error: previous definition of ‘struct i2c_msg’
struct i2c_msg {
^
In file included from /home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp:26:0:
/usr/include/linux/i2c-dev.h:89:7: error: redefinition of ‘union i2c_smbus_data’
union i2c_smbus_data {
^
In file included from /home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp:25:0:
/usr/include/linux/i2c.h:128:7: error: previous definition of ‘union i2c_smbus_data’
union i2c_smbus_data {
^
CMakeFiles/NovenaRF.dir/build.make:399: recipe for target 'CMakeFiles/NovenaRF.dir/home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp.o' failed
make[2]: *** [CMakeFiles/NovenaRF.dir/home/ret/Novena-RF/lms-suite/lms-suite/src/src/ConnectionSPI.cpp.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/NovenaRF.dir/all' failed
make[1]: *** [CMakeFiles/NovenaRF.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
We need to be able to sleep with a timeout for read/writeStream when the stream is not ready. We can select()/poll() on a userspace GPIO from sysfs. Just need to figure out a possible GPIO candidate between the FPGA and the arm. Suggestions appreciated.
The API is almost complete: pothosware/SoapySDR#8
This will give user's direct access to the DMA buffers, which will be a nice optimization when the FPGA sample format can be dealt with in the user's application --
TLDR: avoids data type conversion overhead.
The novena has 3 screw holes near the high-speed header. Would it be possible to add any of them to this daughter board for more secure long term mounting.
Used for tuning corrections and to tune the LO away from the desired passband. A cordic may be desirable in the RX and TX DSP chains within the FPGA.
mapping to read/write registers on the FPGA from userspace
The rules would set permissions on
The gpios also have to be exported.
--lms control signals
lms_rxen : out std_logic;
lms_txen : out std_logic;
lms_lmsrst : out std_logic;
mrf_gpio0 : out std_logic;
mrf_gpio1 : out std_logic;
mrf_gpio2 : out std_logic;
I dont know what the last three gpios are for, perhaps antenna switches. Currently, these IOs are controlled by a SPI-based state machine controlled by the ARM. It may be desirable to control these based on the ADC/DAC active signals coming from the framer/deframer; for the purposes of automatic antenna switching (if that is indeed their use case).
We don't need libusb1.0, but its a compilation requirement to use the lms-suite inside the NovenaRF module. It may be worth commenting out libusb with ifdefs to avoid this requirement.
I ran into some problems with uhd and osmocom tools and also gqrx on the Novena.
turned out that getSampleRate() was being called without _cachedSampleRates having been initialized, resulting in errors like FATAL: map::at or std::out_of_range errors
I chose to add:
_cachedSampleRates[SOAPY_SDR_RX] = 0;
_cachedSampleRates[SOAPY_SDR_TX] = 0;
to the constructor, which solved it.
Mapping API calls in the lms-suite to function overloads of SoapySDR::Device.hpp:
https://github.com/pothosware/SoapySDR/blob/master/include/SoapySDR/Device.hpp
Hi All,
while building lms-suite with this command :
'mkdir build && cd build && cmake .. && cmake --build .'
it outputs :
-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found wxWidgets: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/build
Scanning dependencies of target lms-suite
[ 1%] Building CXX object CMakeFiles/lms-suite.dir/src/CommonUtilities.cpp.o
[ 3%] Building CXX object CMakeFiles/lms-suite.dir/src/ConnectionCOM.cpp.o
/home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/src/ConnectionCOM.cpp:332:2: warning: #warning Currently searching only for ACM connections [-Wcpp]
#warning Currently searching only for ACM connections
^
[ 4%] Building CXX object CMakeFiles/lms-suite.dir/src/ConnectionManager.cpp.o
[ 6%] Building CXX object CMakeFiles/lms-suite.dir/src/ConnectionSPI.cpp.o
/home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/src/ConnectionSPI.cpp: In function ‘bool IsNovenaBoard()’:
/home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/src/ConnectionSPI.cpp:40:30: error: elements of array ‘i2c_msg messages [2]’ have incomplete type
struct i2c_msg messages[2];
^
/home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/src/ConnectionSPI.cpp:40:30: error: storage size of ‘messages’ isn’t known
/home/gasser.alaaeldien/lms-suite-master/lms-suite-master/LMS6002D/lms-suite/src/src/ConnectionSPI.cpp:51:25: error: ‘I2C_M_RD’ was not declared in this scope
messages[1].flags = I2C_M_RD;
^
make[2]: *** [CMakeFiles/lms-suite.dir/src/ConnectionSPI.cpp.o] Error 1
make[1]: *** [CMakeFiles/lms-suite.dir/all] Error 2
make: *** [all] Error 2
i don't know what is wrong
hi,
I have an error compiling Novena-FR, at make step I have the following error:
$ make
Scanning dependencies of target NovenaRF
[ 4%] Building CXX object CMakeFiles/NovenaRF.dir/Streaming.cpp.o
In file included from /usr/include/features.h:392:0,
from /usr/include/c++/5.3.1/arm-slackware-linux-gnueabi/bits/os_defines.h:39,
from /usr/include/c++/5.3.1/arm-slackware-linux-gnueabi/bits/c++config.h:482,
from /usr/include/c++/5.3.1/cstdint:38,
from /tmp/Novena-RF/driver/host/NovenaRegs.hpp:11,
from /tmp/Novena-RF/driver/host/NovenaRF.hpp:11,
from /tmp/Novena-RF/driver/host/Streaming.cpp:10:
/usr/include/gnu/stubs.h:10:29: fatal error: gnu/stubs-hard.h: No such file or directory
compilation terminated.
CMakeFiles/NovenaRF.dir/build.make:62: recipe for target CMakeFiles/NovenaRF.dir/Streaming.cpp.o' failed
make[2]: *** [CMakeFiles/NovenaRF.dir/Streaming.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/NovenaRF.dir/all' failed
make[1]: *** [CMakeFiles/NovenaRF.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Do you know how can I fix this ?
(I'm compiling natively on Novena).
I put in a chain of 4 half-bands for both interpolation and decimation by up to 1,2,4,8,or 16. Its not ideal:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.