Giter Site home page Giter Site logo

crts's Introduction

CRTS

The Cognitive Radio Test System (CRTS) provides a framework for software defined radios (SDRs) with interfaces from the web.

Development Status

This software package is not ready for general public use.

Ports

Currently developing on:

  • Debian GNU/Linux 9.3 (stretch)
  • Ubuntu 16.04, 18.04

Dependencies

apt install libjansson libreadline-dev dia

See README in dependencies/ subdirectory. Installing the dependencies is more involved than installing CRTS, so we provide a separate dependencies directory.

If you are using this source code from a git repository there is a git submodule, webtop, https://github.com/vtwireless/webtop.git, that is software depends on. Webtop can be downloaded by running the included bootstrap script.

Building and Installing CRTS (this package)

Then run

  ./bootstrap
  ./configure --prefix /usr/local/my_CRTS
  make
  make install

where you pick a better prefix than /usr/local/my_CRTS.

Running ./configure will generate the file config.make, you can edit this file, uncomment some make build options.

"make download" for code re-usability

Not unique to CRTS, we introduce the idea of downloading all the files needed, before starting to build the software, so we have a "download" make target as in running make download as you'll see below.

Currently the bootstrap script will run make download which does not require configuration.

TODO

  • Add --add_directory as option to bin/crts_contestWebServer to add a static files to the we server. It would make it so that there is effectively a symlink to a directory from the htdocs/ servers static root directory; so for example:
      crts_contestWebServer --add_directory my_demo
    
    would add the directory my_demo to URLs like https://servername.com/my_demo/ to the server that it runs. The files in my_demo/ can then access all the files in the document root with a relative path in URLs in the files in my_demo/. Currently we are using symlinks in htdocs/ to do this.

Up grading Firmware and FPGA Images with Pre-built Images

With a browser go to relative to your UHD installation prefix installation directory, UHD_PREFIX

  $UHD_PREFIX/share/doc/uhd/doxygen/html/page_images.html

Download files by running:

  $UHD_PREFIX/bin/uhd_images_downloader

This will download files to:

  $UHD_PREFIX/share/uhd/images/

Read some more on the web pages. In my case I had a USRP N210 and I ran:

  uhd_image_loader --args="type=usrp2,addr=192.168.10.2"

In my case the output on the terminal where I ran that was:

[INFO] [UHD] linux; GNU C++ version 6.3.0 20170516; Boost_106200; UHD_3.11.0.1-0-4e672fab
Unit: USRP N210 r4 (F44901, 192.168.10.2)
Firmware image: /usr/local/encap/uhd/share/uhd/images/usrp_n210_fw.bin
-- Erasing firmware image...successful.
-- Writing firmware image...successful.
-- Verifying firmware image...successful.
FPGA image: /usr/local/encap/uhd/share/uhd/images/usrp_n210_r4_fpga.bin
-- Erasing FPGA image...successful.
-- Writing FPGA image...successful.
-- Verifying FPGA image...successful.

For the X310

$UHD_PREFIX/utils/uhd_images_downloader.py

$UHD_PREFIX/bin/uhd_image_loader" --args="type=x300,addr=192.168.12.2"

For USB USRP devices https://files.ettus.com/manual/page_transport.html#transport_usb_udev

Development notes

If you are developing using a git repository, run

git add htdocs/webtop && git commit -m "upgraded version of webtop"

to upgrade the webtop git submodule to your current checkout of crts.

on git submodules

How can I specify a branch/tag when adding a Git submodule? https://stackoverflow.com/questions/1777854/how-can-i-specify-a-branch-tag-when-adding-a-git-submodule

If you want to move the submodule to a particular tag:

  cd submodule_directory
  git checkout v1.0
  cd ..
  git add submodule_directory
  git commit -m "moved submodule to v1.0"
  git push

Then, another developer who wants to have submodule_directory changed to that tag, does this

  git pull
  git submodule update --init

crts's People

Contributors

cornet3d avatar kgadgil avatar lanceman2 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

crts's Issues

Control CRTS web server program launching in general

  1. It may be good to have a more stable web server that can launch CRTS web servers. And so better interfaces with canvas and the course material. This could be easy, or it could be hard to do.

Maybe an apache2 web server that CGI launches the CRTS web serve and also that serves just some pages that describe the HLSI project for the general public. That might be in contrast to the canvas pages that have restricted access. Should both link to each other?

  1. We need a method to make launched CRTS USRP (and the like) programs so that timeout and self-kill when users do on interact with them.

What code / Tag is the release ?

There should be a version number for what KG is working on top of.

That version will need to support the tutorial scenario set also...

Also, please make a more obvious distinction from the new streamer stuff...

๐Ÿ‘

Development Status
This software package is not ready for general public use.

Test spectral notch with ofdm-notch-test branch

There are essentially two (untested) changes in this branch:

  1. Increased the number of subcarriers from 32 to a more reasonable 200
  2. Added a notch of 25 subcarriers (12.5% bandwidth) offset from DC

With this change, the data should still go through fine, but the band should be visibly non-contiguous. Furthermore, an interferer placed within that notch should have little to no effect on performance.

CRTS client side javaScript API to control URRPs

Make a client side javaScript API that the web user can use in a text box to make a web client USRP controller.

There are HLSI exercises at https://vtwireless.github.io/HLSI/ that have a text box where the user enters code that controls the "virtual" radio. We need to do this with real radios, but there are no javaScripts functions to do that yet. You can't just run freq=4.0e6; and the frequency on a USRP magically changes. We need to make a function like setFreq(4.0e6) that does that. ... And so on.

Then we need to consider if we need to make the corresponding the "virtual" radio exercises consistent with that ...

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.