Welcome to JoshKnows.com

Hi, I'm Josh Blum. This site is for me and my projects.

Recent GNU Radio work

GRAS - Advanced Scheduler

I am working on GRAS, the GNU Radio Advanced scheduler to implement many new hooks and features. Read more about the goals of the GRAS project: https://github.com/guruofquality/gras/wiki

https://a248.e.akamai.net/camo.github.com/aad70cd7cdd02b2406b6f9080a707d6b5d37ac95/687474703a2f2f692e696d6775722e636f6d2f42787332592e706e67

GRAS - OpenCL Block

The OpenCL block allows a user to interface with an OpenCL compatible device, like a GPU. This block handles most of the complications of using the OpenCL API. All the user has to do is feed the block a .cl file with the kernel source and click run! https://github.com/guruofquality/grex/wiki/Opencl

https://a248.e.akamai.net/camo.github.com/59e4cfb83d6291c4c0693e7237c0d088d47b01d9/687474703a2f2f692e696d6775722e636f6d2f377563367972312e706e67

GrExtras

GrExtras blocks provide unique and useful functionality not found in mainline GNU Radio. Also, these blocks act as a demonstration of the advanced functionality and API found in GRAS: https://github.com/guruofquality/grex/wiki/Blocks

https://a248.e.akamai.net/camo.github.com/11b9d4af017ac2957e93cc29938a1db95f372f34/687474703a2f2f692e696d6775722e636f6d2f456a6b57362e706e67

Volk aligment work

Read the announcement here: https://lists.gnu.org/archive/html/discuss-gnuradio/2012-07/msg00064.html

Status, work unmerged, latest rebase on this branch: https://github.com/guruofquality/gnuradio/tree/volk_work_rebase

Recent UHD Work

I am the main developer for the USRP Hardware Driver. New features are being developed everyday!

Self-Calibration

Doubled RX and TX bandwidth with sc8 samples

New timed commands feature

  • Send commands at a specific time (imagine tuning, frequency hoping)
  • Also reduced control packet RTT for network products
  • status: to be part of next branch soon

GrExtras - A home for my misc blocks

This new project can be compiled in-tree or standalone against a gnuradio install. It performs feature checking and conditional compiling. All misc blocks that dont have a home in gnuradio reside here. See README at the github page for more: https://github.com/guruofquality/grextras

Recent Gnuradio Work

I work day and night to make gnuradio easier to install, easier to use, and faster. Here is a summary of my recent work (merged and un-merged into mainline).

Blocks coding guide

I wrote a useful guide to help users write blocks in c++ or python. See the blocks coding guide.

Building with CMake

GNU Radio barely fits into the autotools paradigm; unsightly hacks, checked-in generated files, multiple stages of generation. Fortunately, most of this insanity fits very nicely into CMake's build framework. CMake also gives gnuradio cross platform support and support for generating package installers.

Building under MSVC

You can almost painlessly build gnuradio in visual studio. Most dependencies can be downloaded and installed as pre-built. Everything runs native. No bullshit. :-)

Writing blocks in python

Useful message passing

Added ability for blocks to pass messages. All blocks can accept messages and post messages to downstream subscribers. Use the flow graph's message connect call to subscribe blocks to message providers. Message can be bulk data packets to implement a mac layer, or tiny control messages to implement a control plane.

In-place gr-buffer optimizations

Added ability that allows the scheduler to share upstream buffers to downstream buffers to take advantage of caching in the CPU. If a block meets the in-place buffer requirements, just call this->set_inplace(true) inside the block's constructor, and the scheduler will do the rest. Every little bit of performance gain counts.

  • status: development branch inplace_blocks on jblum.git
  • set inplace(true) on gr-core math blocks

New gnuradio component gr-blocks

  • status: development branch new_blocks on jblum.git
  • added SIMD optimized versions of basic math blocks
  • added set_output_alignment to make integration of VOLK kernels easier
  • added gr_blocks_delay: configure delay of a stream dynamically at runtime
  • added gr_blocks_stream_selector: configure stream mux-ing dynamically at runtime

New gnuradio component gr-filter

  • status: development branch new_blocks on jblum.git
  • added gr_filter_fir_decim: SIMD optimized FIR filter

Look at this cool ASCII Art DFT

/images/ascii_art_dft.png

Home About Links Contact

Hits: 97578

/images/orange_cat_laser_eyes_small.jpg