Giter Site home page Giter Site logo

oscimp / oscimpdigital Goto Github PK

View Code? Open in Web Editor NEW
47.0 9.0 6.0 154.6 MB

OscillatorIMP ecosystem for the digital characterization of ultrastable oscillators and Software Defined Radio (SDR) frontend processing

License: Other

buildroot fpga digital-characterization redpitaya linux-driver sdr software-defined-radio plutosdr data-stream-processing ecosystem

oscimpdigital's People

Contributors

ghiildil avatar jmfriedt avatar mer0m avatar om1air avatar sdenis6 avatar trabucayre avatar trleo42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oscimpdigital's Issues

[Install] 2. Prepare Drivers

Hello everyone,

I am really interested in trying your platform for resonator characterization, but unfortunately I am having some trouble with the installation on the RedPitaya (14 bit version).

After running sudo make install_nfsdir (https://github.com/oscimp/oscimpDigital/wiki/2Prepare#drivers)
I made sure to follow every instruction, including adding Path and sourcing the variables.

bernardo@bernardo-ThinkPad-X230:~/oscimpDigital/linux_driver$ sudo make install_nfsdir make -C add_const_core install; make -C axi_to_dac_core install; make -C data_dma_direct_core install; make -C data_to_ram_core install; make -C edfb_core install; make -C fft_core install; make -C fir_core install; make -C fpgagen_core install; make -C nco_counter_core install; make -C pidv3_axi_core install; make -C redpitaya_converters_12_core install; make -C switch_core install; make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' Makefile:2: /Makefile.inc: No such file or directory make[1]: *** No rule to make target '/Makefile.inc'. Stop. make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/axi_to_dac_core' Makefile:2: /Makefile.inc: No such file or directory (...) for all instances make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/redpitaya_converters_12_core' make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/switch_core' Makefile:2: /Makefile.inc: No such file or directory make[1]: *** No rule to make target '/Makefile.inc'. Stop. make[1]: Leaving directory '/home/bernardo/oscimpDigital/linux_driver/switch_core' Makefile:7: recipe for target 'install_nfsdir' failed make: *** [install_nfsdir] Error 2

Running only make install_nfsdir yields:

bernardo@bernardo-ThinkPad-X230:~/oscimpDigital/linux_driver$ make install_nfsdir make -C add_const_core install; make -C axi_to_dac_core install; make -C data_dma_direct_core install; make -C data_to_ram_core install; make -C edfb_core install; make -C fft_core install; make -C fir_core install; make -C fpgagen_core install; make -C nco_counter_core install; make -C pidv3_axi_core install; make -C redpitaya_converters_12_core install; make -C switch_core install; make[1]: Entering directory '/home/bernardo/oscimpDigital/linux_driver/add_const_core' make -C ~/buildroot-2020.11.1//output/build/linux-xilinx-v2019.1 SUBDIRS=/home/bernardo/oscimpDigital/linux_driver/add_const_core modules ARCH=arm \ CROSS_COMPILE=~/buildroot-2020.11.1//output/host/bin/arm-linux- make[2]: Entering directory '/home/bernardo/buildroot-2020.11.1/output/build/linux-xilinx-v2019.1' Building modules, stage 2. MODPOST 1 modules make[2]: Leaving directory '/home/bernardo/buildroot-2020.11.1/output/build/linux-xilinx-v2019.1' add_const_core.o mkdir -p /nfs/redpitaya/modules mkdir: cannot create directory โ€˜/nfsโ€™: Permission denied /home/bernardo/oscimpDigital/linux_driver/Makefile.inc:33: recipe for target 'install' failed

My environment at the time of running:

XDG_VTNR=7 LC_PAPER=de_BE.UTF-8 LC_ADDRESS=de_BE.UTF-8 XDG_SESSION_ID=c2 XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/bernardo LC_MONETARY=de_BE.UTF-8 CLUTTER_IM_MODULE=xim SESSION=ubuntu GPG_AGENT_INFO=/home/bernardo/.gnupg/S.gpg-agent:0:1 TERM=xterm-256color VTE_VERSION=4205 SHELL=/bin/bash OSCIMP_DIGITAL_APP=/home/bernardo/oscimpDigital/app QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 WINDOWID=60880727 LC_NUMERIC=de_BE.UTF-8 OLDPWD=/home/bernardo/oscimpDigital UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1238 GNOME_KEYRING_CONTROL= GTK_MODULES=gail:atk-bridge:unity-gtk-module OSCIMP_DIGITAL_IP=/home/bernardo/oscimpDigital/fpga_ip USER=bernardo LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: LC_TELEPHONE=de_BE.UTF-8 QT_ACCESSIBILITY=1 UNITY_HAS_3D_SUPPORT=true XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh BR_DIR=~/buildroot-2020.11.1/ DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg UNITY_DEFAULT_PROFILE=unity DESKTOP_SESSION=ubuntu PATH=/~/buildroot-2020.11.1/output/host/usr/bin:/home/bernardo/bin:/home/bernardo/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/:/home/bernardo/oscimpDigital/app/tools/module_generator:/home/bernardo/oscimpDigital/fpga_ip/tools/ QT_IM_MODULE=ibus QT_QPA_PLATFORMTHEME=appmenu-qt5 OSCIMP_DIGITAL_LIB=/home/bernardo/oscimpDigital/lib LC_IDENTIFICATION=de_BE.UTF-8 XDG_SESSION_TYPE=x11 PWD=/home/bernardo/oscimpDigital/linux_driver JOB=unity-settings-daemon XMODIFIERS=@im=ibus GNOME_KEYRING_PID= LANG=en_US.UTF-8 GDM_LANG=en_US MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path LC_MEASUREMENT=de_BE.UTF-8 COMPIZ_CONFIG_PROFILE=ubuntu IM_CONFIG_PHASE=1 OSCIMP_DIGITAL_DRIVER=/home/bernardo/oscimpDigital/linux_driver OSCIMP_DIGITAL_NFS=/nfs GDMSESSION=ubuntu SESSIONTYPE=gnome-session GTK2_MODULES=overlay-scrollbar SHLVL=1 HOME=/home/bernardo XDG_SEAT=seat0 LANGUAGE=en_US GNOME_DESKTOP_SESSION_ID=this-is-deprecated UPSTART_INSTANCE= UPSTART_EVENTS=xsession started XDG_SESSION_DESKTOP=ubuntu LOGNAME=bernardo COMPIZ_BIN_PATH=/usr/bin/ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-HMmCGZ5wBW XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop QT4_IM_MODULE=xim LESSOPEN=| /usr/bin/lesspipe %s INSTANCE= UPSTART_JOB=unity7 BOARD_NAME=redpitaya XDG_RUNTIME_DIR=/run/user/1000 DISPLAY=:0 IP=10.42.0.1 XDG_CURRENT_DESKTOP=Unity GTK_IM_MODULE=ibus LESSCLOSE=/usr/bin/lesspipe %s %s LC_TIME=de_BE.UTF-8 LC_NAME=de_BE.UTF-8 XAUTHORITY=/home/bernardo/.Xauthority _=/usr/bin/env

I should add some considerations:
The buildroot-2020.11.1 is untouched besides the instructions given in the Wiki.
The file Makefile.inc is indeed in the parent directory.

Anything else that would help this debugging I can happily provide.

Thank you very much for the help!

Customized IP Guidelines

Hello everyone.

I am a user of the OscimpDigital framework and I would like to start by thanking you guys all the good work.

I use a 14b RedPitaya to do some signal processing on my sensors and wanted to implement a biquad structured IIR lpf with coefficients that could be accessed externally by the user and injected through the add_const IP. There would be no need to add these to the libOscimpDig libraries since I could change the coefficients in such a simple way like in the FIR IP.

I saw an (unfinished?) implementation of the IIR lpf (https://github.com/oscimp/fpga_ip/blob/master/iir_lpf_complex/hdl/iir_lpf_complex.vhd). I have tried to adapt this script (annexed) for my implementation, but when I tried connecting it to the other IPs the connections did not match.


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity iir_lpf_complex is 
	generic (
		DATA_WIDTH : natural := 16
	);
	port (
		data_i_i   : in std_logic_vector(DATA_WIDTH-1 downto 0);
		data_q_i   : in std_logic_vector(DATA_WIDTH-1 downto 0);
		data_en_i  : in std_logic;
		data_clk_i : in std_logic;
		data_rst_i : in std_logic;
		data_i_o   : out std_logic_vector(DATA_WIDTH-1 downto 0);
		data_q_o   : out std_logic_vector(DATA_WIDTH-1 downto 0);
		data_en_o  : out std_logic;
		data_clk_o : out std_logic;
		data_rst_o : out std_logic;
		a0         : in signed(DATA_WIDTH-1 downto 0); -- Biquad filter coefficients
		a1         : in signed(DATA_WIDTH-1 downto 0);
		b0         : in signed(DATA_WIDTH-1 downto 0);
		b1         : in signed(DATA_WIDTH-1 downto 0);
		b2         : in signed(DATA_WIDTH-1 downto 0)
	);
end entity;

architecture bhv of iir_lpf_complex is
	signal data_i_1, data_i_2, data_i_3 : signed(DATA_WIDTH+1 downto 0) := (others => '0');
	signal data_q_1, data_q_2, data_q_3 : signed(DATA_WIDTH+1 downto 0) := (others => '0');
	signal en_i_1 : std_logic := '0';
begin
	data_i_2 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_i_1 - b1 * data_i_3 - b2 * data_i_2;
	data_q_2 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_q_1 - b1 * data_q_3 - b2 * data_q_2;
	data_i_3 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_i_1 - a1 * data_i_3 - a0 * data_i_2;
	data_q_3 <= to_signed(0, DATA_WIDTH+2) when data_rst_i = '1' else data_q_1 - a1 * data_q_3 - a0 * data_q_2;

	data_i_o <= std_logic_vector(data_i_1(DATA_WIDTH-1 downto 0));
	data_q_o <= std_logic_vector(data_q_1(DATA_WIDTH-1 downto 0));
	data_en_o <= en_i_1;
	data_clk_o <= data_clk_i;
	data_rst_o <= data_rst_i;

	process(data_clk_i) is
	begin 
		if rising_edge(data_clk_i) then
			en_i_1 <= data_en_i;
			if (data_rst_i = '1') then 
				en_i_1 <= '0';
				data_i_1 <= (others => '0');
				data_q_1 <= (others => '0');
				data_i_2 <= (others => '0');
				data_q_2 <= (others => '0');
				data_i_3 <= (others => '0');
				data_q_3 <= (others => '0');
			end if;

			if (data_en_i = '1') then
				data_i_1 <= signed(data_i_i);
				data_q_1 <= signed(data_q_i);
			else 
				data_i_1 <= data_i_1;
				data_q_1 <= data_q_1;
			end if;

			if (en_i_1 = '1') then
				data_i_1 <= data_i_3;
				data_q_1 <= data_q_3;
			else	
				data_i_1 <= data_i_1;
				data_q_1 <= data_q_1;
			end if;
		end if;
	end process;
end architecture bhv;

I used Vivado's IP Packager.

Are there guidelines to make customized IP compatible with the OscimpDigital library? Or could you point me in a direction where I could make this specific source compatible?

Thank you!

Bernardo

NFS mount - connection timed out

Hello once again.

I am encountering a problem regarding mounting the nfs folder on the red pitaya.

I have tried debugging it, but with no success.

1. I am able to ping the RP from my host computer.

bernardo@bernardo-ThinkPad-X230:~/oscimpDigital$ ping 192.168.0.10
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=64 time=0.225 ms

and vice-versa:

redpitaya> ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=64 time=0.402 ms

All necessary files are sourced:
source redpitaya/sourceme.ggm
source oscimpDigital/settings.sh
source /tools/Xilinx/Vivado/2019.2/settings64.sh
export PATH=/buildroot-2020.11.1/output/host/usr/bin:$PATH

are executed everytime I open a new terminal

My exports file in RP:

/nfs *(rw,no_root_squash,sync,no_subtree_check)

My fstab file (I have tried both the existing line and the one present in the wiki, chapter 2. Prepare):

GNU nano 5.2 New Buffer Modified

/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620 0 >
tmpfs /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 >
sysfs /sys sysfs defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
configfs /sys/kernel/config configfs defaults 0 0
192.168.0.1:/nfs/redpitaya /usr/local nfs defaults,noauto,nolock 0 0
#192.168.0.2:/nfs/redpitaya16 /usr/local nfs defaults,noauto,nolock 0>
#192.168.0.1:/nfs /usr/local nfs defaults,noauto,nolock 0 0

I have nfs-kernel-server and nfs-common installed and updated. I have uninstalled and re-installed to see if that would fix the situation but it did not. I have checked the ports used by nfs (followed https://serverfault.com/questions/377170/which-ports-do-i-need-to-open-in-the-firewall-to-use-nfs) and I disabled the firewall for those ports.

When executing the last command on Chapter 2, I get a connection timed out error in the red pitaya.

redpitaya> mount /usr/local
mount: mounting 192.168.0.1:/nfs/redpitaya on /usr/local failed: Connection timed out

Is there a log that could hint me what could be originating this error?

Could the cause be the location of the nfs folder and the path interpretation depending if you are root or not when doing the last steps of Chapter 2 on the host computer?

I have tried doing the final steps both at the oscimpDigital folder and using sudo su and following the steps from there.
In the last case, the nfs folder will be created in the SSD where the host computer system folders are. Here if I am not mistaken is where I think ~ is interpreted differently.
The combination of the settings.sh file, the export file and the fstab file not matching is something that I would like to take out of the way before assuming it is a networking problem. What is the default location of the NFS folder in a working environment?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.