DreamCatcher
Contents
Setting up the OS
There are two OSs that you can use on the DreamCatcher.
- Armbian
- Standard ARM Linux OS based on Debian, Highly supported but does NOT have build in support for Outernet. This OS requires lots of tweaking to up and going...
- Armbian for DreamCatcher, V5.27
- Skylark
- Os based on Busybox is read only and has the full Outernet system ready to go. This is the one to use if you want to play with outernet with no tweaking
- Skylark, for the Passive Antenna, Released May 14, 2017
- Skylark, for the Active Antenna, Released June 22, 2017
Burning the image to an SD Card
A microSD greater than 4GB in size is required.
Extract the image
It is compressed using "gzip.", many common Unzipping tools on your chosen OS can un-compress these.
- Linux / OSx
- gunzip [filename.gz]
- Windows
- use 7Zip
Write the image to the SD card
the best way to burn the SD card is by using etcher here---> https://etcher.io/
Startup the DreamCatcher with Armbian Distro
1) Insert SD card into Dreamcatcher board slot marked "SD0_OS," next to LED array.
2) insert the USB Wifi Dongle, or other USB network device if you have it.
3) Optionally - connect the USB Cable to your PC with a terminal application open.
4) connect power to a USB port, or alternatively the USB cable to PC can provide power
after the bootup process you should see a "Dreamcatcher Login:" prompt
- Default Username
- root
- Default Password
- 1234
Configure Wifi
To connect to a wifi network, you can use one of the following methods, SSID/password will be stored and applied automatically at next boot.
Single Command Line
nmcli d wifi connect [your_ssid] password [your_password]
nmcli d wifi connect MYSSID password IMSOSECURE
if you succeed, you should see something like:
Connection with UUID '8f820c8a-5af3-4336-8161-6f57030a7ec5' created and activated on device 'wlan1'
Simple Command line Gui
nmtui
The UI is very self explanatory.
Check the current IP
to check assigned ip use:
ifconfig
root@dreamcatcher:/etc# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB) wlan1 Link encap:Ethernet HWaddr e8:4e:06:4b:a6:fa inet addr:10.0.1.150 Bcast:10.0.1.255 Mask:255.255.255.0 inet6 addr: fe80::ea4e:6ff:fe4b:a6fa/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:78 errors:0 dropped:0 overruns:0 frame:0 TX packets:41 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14882 (14.5 KiB) TX bytes:4947 (4.8 KiB)
Install The RTL-SDR Libraires and Utilities
To install librtlsdr and sdr utilities like rtl_fm etc, use:
apt update; apt install rtl-sdr
(you will need to have already connected to network for this to work)
Shutting Down
Unlike Skylark, the root filesystem here is modified and is writeable, so it is important you shut this down properly:
sudo poweroff
Hardware Details
Board LEDS
Onboard LEDs can be controlled by writing to the ON/OFF Control file in SysFs. In the case of LED1/Pckts to turn on the led, write a 1 to the SYSFS Device On/Off Control.
To Turn the Led on:
echo 1 > /sys/class/leds/packet/brightness
To Turn it off:
echo 0 > /sys/class/leds/packet/brightness
LED1 / Pckts | |
---|---|
Description | Flashes with Outernet Packets are Received |
Color | Green |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/packet |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED2 / Flock | |
---|---|
Description | Satellite Lock Indicator on when satellite signal is locked |
Color | Red |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/lock |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED3 / SNR1 | |
---|---|
Description | SNR indicator |
Color | Blue |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/snr1 |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED4 / SNR2 | |
---|---|
Description | SNR indicator |
Color | Blue |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/snr2 |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED5 / SNR3 | |
---|---|
Description | SNR indicator |
Color | Blue |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/snr3 |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED6 / SNR4 | |
---|---|
Description | SNR indicator |
Color | Blue |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/snr4 |
Usage | On/Off = brightness |
Notes | Unused in Armbian |
LED7 / USR1 | |
---|---|
Description | sdcard activity indicator. equivalent of the HDD activity light |
Color | Green |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/storage |
Usage | On/Off = brightness |
Notes |
LED8 / USR2 | |
---|---|
Description | heartbeat: flashes when kernel is booted and working normally. |
Color | Green |
Default at Boot | OFF |
SysFs Device | /sys/class/leds/heartbeat |
Usage | On/Off = brightness |
Notes | long off, N short flashes, long off, repeat, where N = 2 * Load_Average |
LED9 / PWR | |
---|---|
Description | Power: White LED, on when board is powered. |
Color | White |
Default at Boot | ON |
SysFs Device | |
Usage | |
Notes |
LED10 / AGP3 | |
---|---|
Description | |
Color | Red |
Default at Boot | |
SysFs Device | |
Usage | |
Notes |
LED11 / STATUS | |
---|---|
Description | |
Color | Green |
Default at Boot | |
SysFs Device | |
Usage | |
Notes |
LED12 / USBH | |
---|---|
Description | USB Hub Indicator Light, Green when active |
Color | Green |
Default at Boot | ON |
SysFs Device | /sys/class/leds/usbhuben |
Usage | On/Off = brightness |
Notes | Turning this off, will disable all USB ports. |
RF Ports
There are two RF ports on the DreamCatcher, they are labeled "LNA_IN" (at the corner of the board), and "LNA_BYPASS". They are SMA Type connections. To enable them you will write a 0 or a 1 to the appropriate SYSFS file location. Writing a 1 will enable it, and a 0 will disable it. if you enable one, you must disable the other;
NOTE: you must be a Superuser to control these... use "sudo su" first
Enable LNA_BYPASS
- This is normally selected when you are using an external LNA, or Active Antenna
echo 1 > /sys/class/leds/rfswitch1/brightness echo 0 > /sys/class/leds/rfswitch2/brightness
Enable LNA_IN
- This would be used with a passive antenna or internal LNA
echo 0 > /sys/class/leds/rfswitch1/brightness echo 1 >/sys/class/leds/rfswitch2/brightness
Enable LNA_BYPASS Bias Tee
- To Enable the bias tee, use the following commands
- NOTE: 68 mA current limit set by R76/100k
echo 119 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio119/direction echo 1 > /sys/class/gpio/gpio119/value
Temperature Monitoring
Armbian includes a monitoring application that gives you access to some of the hardware level details... for example to determine the CPU Temp use the following command:
armbianmonitor -m
however this of little use in automated monitoring or application development.
Usage: armbianmonitor [-h] [-b] [-c $path] [-d $device] [-D] [-m] [-p] [-r] [-u] ############################################################################ Use armbianmonitor for the following tasks: armbianmonitor -c /path/to/test performs disk health/performance tests armbianmonitor -d monitors writes to $device armbianmonitor -D tries to upload debug disk info to improve armbianmonitor armbianmonitor -m provides simple CLI monitoring armbianmonitor -p tries to install cpuminer for performance measurements armbianmonitor -r tries to install RPi-Monitor armbianmonitor -u tries to upload armhwinfo.log for support purposes ############################################################################
Direct access to Temp
The following returns the temperature of the CPU in Celsius
cat /sys/class/thermal/thermal_zone0/temp
Returns:
32900
This is the same as 32.9C
TODO: I want to see how the RPi-Monitor works on the DreamCatcher, i know it works on the RaspberryPi and the OrangePi
Additional Headers
SPI1 | |
---|---|
Description | Serial Peripheral Interface |
MOSI | Master Output, Slave Input |
MISO | Master Input, Slave Output |
CS0 | Slave Select |
CLK | Clock |
GND | Ground |
SPI2 | |
---|---|
Description | Serial Peripheral Interface |
MOSI | Master Output, Slave Input |
MISO | Master Input, Slave Output |
CS0 | Slave Select |
CLK | Clock |
GND | Ground |
TWI2 | |
---|---|
Description | Two Wire Interface (I2C) |
GND | Ground |
3V3 | 3.3 Volt |
SCK | Serial Clock Line |
SDA | Serial Data Line |
UART1 | |
---|---|
Description | Universal Asynchronous Receiver/Transmitter |
GND | Ground |
RX | Receive Line |
TX | Transmit |
3V3 | 3.3 Volt |
JTAG | |
---|---|
Description | Joint Test Action Group |
RESET_N | Test Reset |
GND | Ground |
TDO | Test Data Out |
TCK | Test Clock |
TMS | Test Mode Select |
TDI | Test Data In |
3V3 | 3.3 Volt |
GPIO | |
---|---|
Description | These are in not in the correct order (what IS the CORRECT order?) Use the names to identify |
5V0 | 5.0 Volt |
GNDD1 | |
PC15/NDQ7 | |
PC13/NDQ5 | |
PIN17/NRE | |
PC3/NCE1 | |
PC1/NALE | |
PC19/NDQS | |
PG9/LED1 | |
PG11/USBH | |
PE5 | |
PB16 | |
PB15 | |
PE9 | |
PE10 | |
PE11 | |
PB1 | |
3V3 | |
GNDD | |
GNDD2 | |
PC14 | |
PC4 | |
PC2 | |
PC0 | |
PB10 | |
PG10 | |
PE4 | |
PE6 | |
PE7 | |
PE8 | |
PB4 | |
PB3 | |
PB2 | |
PB0 |
Test Points
P1 | |
---|---|
Description |
Outernet Specific Applications
ONDD Setup
FTP to a DreamCatcher, copy the following files off of the system... be SURE to FORCE binary transfer.
/usr/sbin/ondd(md5:207723be33f4da57bd64a6549e11e95d) /usr/sbin/ontimeout (md5:5092f17f0152ca352799290999ba7a6c)
Create an empty conf file
/etc/ondd/ondd.conf
Create a place to place downloads
/home/downloads (or wherever)
Create a place for download cache
/home/download_cache
Run ondd with the following command:
/usr/sbin/ondd -d --pid_file /var/run/ondd.pid --cfg-gile [empty cfg file you created] -c [location for download cache] -o [location for completed downloads] -D /var/run/ondd.data --sdr-timeout-handler /usr/sbin/ontimeout
Command Help
[Skylark][outernet@outernet:/usr/sbin]$ /usr/sbin/ondd -h 00:11:21.099 [main] Unable to load config: /etc/ondd.conf (null) Usage: ondd --cfg-file CONFIG_FILE override default config file location --pid-file PID_FILE override default pid file location --ctrl-sock SOCK_FILE override default control socket path used for ipc --status-sock SOCK_FILE override default status report socket path - status e --cert-file CERT_FILE override default ceritificate file location -D SOCK_FILE data socket path to which the demodulator sends raw s --sdr-timeout-handler script to execute if no data arrives through the date -o PATH path to output directory where downloaded files are d -c PATH path to cache directory where partially downloaded fd -O PATH if specified, files which path does not begin with td -b N set the maximum number of download completion eventsy -d start ondd in daemon mode -i print to stdout the current signal strength and snr,d -V enable verbose mode -v display ondd version info -h display this helptext
ADS-B reception using dump1090
Install Updates and Base Packages
sudo apt update sudo apt upgrade sudo apt install rtl-sdr librtlsdr-dev pkg-config build-essential
NOTE: When i did this part, it bricked the card twice, not sure why, it just did... so YMMV
wget https://raw.githubusercontent.com/keenerd/rtl-sdr/master/rtl-sdr.rules sudo mv rtl-sdr.rules /etc/udev/rules.d/
Reboot the DreamCatcher
sudo reboot
Install dump1090
Download and compile dump1090 (one time only):
mkdir adsb cd adsb git clone https://github.com/MalcolmRobb/dump1090 cd dump1090 make
Antennas
Hook-up a 1090MHz antenna, suitable for ADS-B reception to the LNA_BYPASS RF input of Dreamcatcher. You can find some good starting points here: http://discussions.flightaware.com/ads-b-flight-tracking-f21/three-easy-diy-antennas-for-beginners-t20177.html
Running dump1090
echo 1 | sudo tee /sys/class/leds/rfswitch1/brightness echo 0 | sudo tee /sys/class/leds/rfswitch2/brightness ./dump1090 --interactive --net
NOTE: The “rfswitch1” and “rfswitch2” lines are not strictly necessary, but will not hurt anything - the Dreamcatcher Armbian image ships with the LNA bypass enabled by default.
Running dump1090 as a daemon
if you dump1090 to run in the background after a reboot, you need to set it up as a daemon.
Create a Startup script in /etc/init.d
The following is a sample startup script. This was poached from this site: http://www.satsignal.eu/raspberry-pi/dump1090.html
- Create a simple script in /etc/init.d, in my case i called it, dump1090.sh
- Cut and paste the following into the file
#!/bin/bash ### BEGIN INIT INFO # # Provides: dump1090 # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: dump1090 initscript # ### END INIT INFO ## Fill in name of program here. PROG="dump1090" PROG_PATH="/home/pi/dump1090" PROG_ARGS="--interactive --net --no-fix --net-ro-size 500 --net-ro-rate 5 --net-heartbeat 60 --gain -10" PIDFILE="/var/run/dump1090.pid" start() { if [ -e $PIDFILE ]; then ## Program is running, exit with error. echo "Error! $PROG is currently running!" 1>&2 exit 1 else ## Change from /dev/null to something like /var/log/$PROG if you want to save output. cd $PROG_PATH ./$PROG $PROG_ARGS 2>&1 >/dev/null & echo "$PROG started" touch $PIDFILE fi } stop() { if [ -e $PIDFILE ]; then ## Program is running, so stop it echo "$PROG is running" killall $PROG rm -f $PIDFILE echo "$PROG stopped" else ## Program is not running, exit with error. echo "Error! $PROG not started!" 1>&2 exit 1 fi } ## Check to see if we are running as root first. ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi case "$1" in start) start exit 0 ;; stop) stop exit 0 ;; reload|restart|force-reload) stop start exit 0 ;; **) echo "Usage: $0 {start|stop|reload}" 1>&2 exit 1 ;; esac exit 0
NOTE: You need to alter the PROG_PATH value to the location of your dump1090 application
- Set the permission to executable
sudo chmod +x /etc/init.d/dump1090.sh
- Install to the startup directories
sudo update-rc.d dump1090.sh defaults
- If you want to remove it later
sudo update-rc.d -f dump1090.sh remove
- Test Start the application
sudo /etc/init.d/dump1090.sh start
- NOTE: If you want to stop it
sudo /etc/init.d/dump1090.sh stop
Verify that it is running
To verify that the application is running connect to the IP Address of the system and 8080 like
http://10.0.1.150:8080
you should see a map load..
Running the Dreamcatcher SDR from another System
The SDR on the dreamcatcher is connected the the CPU via USB, this connection can be changed to an external USB and the SDR can be connected to another systems USB. Doing this will prevent the SDR from being used by the dreamcatcher.
To Do this:
- Populate USB1 connector (or just solder wires for a usb pigtail cable)
- Remove R72 and R73 and move them to the R116 and R117 footprints.
This will disconnect the SDR from the usb hub on the DreamCatcher and route it's usb to the external cable.
Listen to FM broadcasts
Its possible to listen to standard FM broadcast radio using the Dreamcatchers SDR.
Install necessary Software
sudo apt install rtl-sdr sox
Enable sound output through the 3.5mm TRRS connector
alsamixer
Enable every column except the second and third by pressing “m” (for mute/unmute) when the column is selected. Use the keyboard left-arrow and right-arrow keys to move among the columns. For the second column, use up-arrow and down-arrow keys to adjust output volume. Be careful to not set it too high; if the column color changes to white, it has been set too high. Leave the third column muted.
You may have to reset theseAon every boot. Alternatively, you can save and restore them using: sudo /usr/sbin/alsactl store sudo /usr/sbin/alsactl restore
Connect a TRRS (tip-ring-ring-sleeve) headset cable - the kind you might use with an Android phone - to the 3.5mm connector on Dreamcatcher that is labelled “headphn”. This has 4 conductors - a “normal” set of headphones has 3.
Run this:
rtl_fm -f 104.7M -M fm -s 340k -A fast -r 32k -l 0 -E deemp | play -r 32k -t raw -e s -b 16 -c 1 -V1 -
More information about the various command line options is at the rtl_fm homepage at http://kmkeen.com/rtl-demod-guide/
Obviously, the most important one is the -f option for selecting the tuned frequency. You may also have to play around with the -s if the output is noisy.
FM broadcasts tend to be quite powerful signals, and I have not needed an antenna for receiving any of the local stations, but in case of bad reception, just adding a sub-1M SMA cable at the LNA_BYPASS RF input of the Dreamcatcher should improve reception dramatically.