Talk:Beaglebone Spectrum Analyzer

From MyLabWiki
Jump to: navigation, search



Decided to take a stab at making a quick-hack mockup of a spectrum analyzer using a Beaglebone and and rtlsdr DVB-T dongle. Must be ready by Saturday morning for a presentation I am giving at the 2013 Danish Winter VHF meeting.

To begin with I will be using the default Beaglebone demo image available from the download site, namely Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.05-beaglebone-2012.11.22.img.xz. The application software will be built using:

  • librtlsdr
  • kiss_fft
  • Gtk+ for a simple GUI


The spectrum analyzer is working, see photo.

Som info and benchmarks for this completely unoptimized image:

  • Automatically starts the application on boot.
  • Startup time is somewhere around 2 minutes (from power on till application is running).
  • CPU load is around 30% when doing 20 frames per second.


Used the spectrum analyzer mock-up for demo during my SDR talk at the 2013 Danish winter VHF meeting. It was very well received and people were very interested. There has also been a lot of positive reaction on Twitter.

Trying to build a custom image based on and


Image successfully built and it boots in 6.3 seconds, see system-analyze output.

Gtk+ libraries are installed, not the devpacks. Same for libusb and ncurses. Git, gcc and pkg-config are installed as well. RTL dongle does not work well with this build (copied binary from other disk built using different version of the libraries).


Trying demo GNOME 2 image again, this time using a class 10 SD card (I was using class 4 previously).

Reduced autologin delay from 10 to 1 second.

Application is running within 45 seconds after poweron:

 root@beaglebone:~# systemd-analyze 
 Startup finished in 4784ms (kernel) + 7389ms (userspace) = 12174ms
 root@beaglebone:~# systemd-analyze blame
   3583ms pvr-init.service
   2166ms cape.service
   1984ms connman.service
   1958ms avahi-daemon.service
   1932ms systemd-logind.service
   1353ms xinetd.service
    804ms console-kit-daemon.service
    616ms console-kit-log-system-start.service
    461ms udev-trigger.service
    455ms systemd-modules-load.service
    266ms systemd-remount-api-vfs.service
    253ms dev-mqueue.mount
    172ms dbus.service
    164ms systemd-sysctl.service
    159ms udev.service
    130ms tmp.mount
    129ms systemd-user-sessions.service
    123ms sys-kernel-debug.mount
     74ms systemd-tmpfiles-setup.service
     39ms remount-rootfs.service

So, about 30 seconds are wasted on GDM and GNOME startup.


After a complete opkg upgrade gdm is no longer started :o)

I can still start the spectrum anaylzer by:

 $ ssh root@beaglebone
 $ xinit rtlizer

Had to modify rtlizer to no longer enter full screen mode as there is no WM. We read WxH from command line and use 320x240 if nothing is specified.