Difference between revisions of "Setting Up Your Raspberry Pi"
Line 70: | Line 70: | ||
* Software Install | * Software Install | ||
− | ** <tt>sudo apt install python3-ipython jupyter vim texlive</tt> | + | ** <tt>sudo apt install python3-ipython jupyter vim texlive libusb-dev</tt> |
** Copy over VIM config (if you use vim) | ** Copy over VIM config (if you use vim) | ||
** <tt>scp .vimrc pi@radiopi:</tt> | ** <tt>scp .vimrc pi@radiopi:</tt> |
Revision as of 20:02, 17 January 2022
With the growing utility and prevalence of low-cost computing boards, it is becoming increasingly common to embed computing directly into instrumentation. The Raspberry Pi is an example of a relatively low-cost but very versatile computer capable of running a full-fledged (Linux) operating system and performing a non-trivial amount of computing, while also providing interfaces for low-level communication with electronics. The Raspberry PI (RPi) is not the only example of such board, and it is not necessarily suited to all embedded computing applications, but it is widely used and quite capable.
Because of its ubiquity and versatility, we have chosen the RPi as a platform for data acquisition and computing for the Undergraduate Radio Lab. Having a common computing platform for the class makes it easy for us to introduce you to the Linux operating system (a mainstay of scientific computing), the world of embedded computing, and new developments in software-defined radio (SDR). I strongly encourage you to buy your own for use in this class so that you can take it home with you. These little computers are super versatile and you will find that you can use them for all sorts of things. In my home, I use them for wireless print servers, robot controllers, roku-like TV streamers, video game emulators, and as a straight-up desktop computer for kids doing remote schooling. Think of this purchase as your "textbook" for this class.
To get started, here is a parts list:
Raspberry Pi
- Raspberry PI 4 version B (2 or 4 GB RAM) (~$45/$55 ea). Alternately, may use RPI 3.
- stock is low because of pandemic supply chain problems. Try https://www.canakit.com/raspberry-pi-4-4gb.html or https://www.sparkfun.com/products/15446.
- if stock is exhausted, back-order and switch to using it whenever it arrives (using the class ones in the meantime)
- the computing board does not come with: monitor, keyboard, mouse, power supply, SD card (its hard drive), or even a case to hold it. Some places sell a "starter kit" that has many of these things, or you can buy them separately (under accessories below).
RPi Accessories
- plastic case ($6 ea; e.g. https://www.adafruit.com/product/4301)
- note that RPi1-3 cases are not compatible with RPi4
- 15W USB-C charger w/ cable (~$15 ea; e.g. https://www.adafruit.com/product/4298)
- not all USB-C chargers source the same power. Any USB-C charger will work, provided it supplies >= 15 W.
- RPi1-3 use micro-USB (not USB-C). a cheap USB-C to micro-USB adapter (e.g. https://www.amazon.com/Adapter-Convert-Connector-Support-Compatible/dp/B07GH5KJH2) will do the trick.
- micro-HDMI to HDMI cable (~$10 ea; e.g. https://www.adafruit.com/product/1322)
- necessary for RPi4 (RPi1-3 use HDMI)
- we will have these in class, but if you want to plug into a monitor (or TV) at home, you'll need this
- aluminum 15x15x15 mm heatsink ($2 ea; e.g. https://www.adafruit.com/product/3082)
- keeps your RPI from overheating on processing-intensive applications. Particularly necessary for RPI 3.
- bluetooth keyboard/mouse (~$20 ea; e.g. https://www.amazon.com/Rii-Ultra-slim-Wireless-Multimedia-Raspberry/dp/B07BF3LFN3)
- only buy this if you don't have another one lying around you could use
- Samsung EVO plus 32 GB (95 MB/s read, 20 MB/s write) micro SD Card (~$10 ea)
- suggest only buying this brand (others seem more prone to corruption, or are slow).
- blank is fine, we'll copy over our class "image" to it for you.
- it's often handy to have more than one of these on hand; consider buying a couple
Software-Defined Radio (SDR) Receiver
To digitize radio-frequency (RF) signals and get them on an RPi, you need SDR receiver (we will stock these in class, but if you want one for home, or if you are working remotely, consider buying). These are only necessary for "radio" applications. They come with some cheap antennas you can use to listen to, e.g., FM radio on your RPI. Cheap SDRs have become available because they are used for tuning in to broadcast TV and FM radio.
- (option 1, preferred) Nooelec NESDR SMARTee v4 (~$35 ea; e.g. https://www.nooelec.com/store/sdr/sdr-receivers/smart/nesdr-smart-sdr.html)
- more rugged/isolated version with the same chipset as the rest below. Has an SMA connector that is easier to interface to stuff in the class
- (option 2) Nooelec NESDR Mini R820T SDR & DVB-T (~$25 ea; e.g. https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-mini.html)
- same chipset as above, but less rugged. has a mcx connector that requires a male mcx to male sma pigtail connector ($10, https://www.nooelec.com/store/male-mcx-to-male-sma-pigtail-rg316-0-5-length.html) to connect to other stuff in class, but we will buy some of these to have on hand.
Setup
The SD card you ordered functions as your RPi's hard drive. You will need to install it with an operating system, along with any software you will need. The easy way to do this is to clone an existing installation from another card. If you come to class, we will do this for you. Otherwise, follow the instructions below.
Setup from Scratch
Raspberry Pi's benefit from being a standard set of hardware. As such, they have a customized version of Linux (a free, open-source version of Unix) that runs on them an includes drivers for all their hardware. That customized Linux version is called Raspbian (being a branch of Debian Linux for a Raspberry Pi). Other operating systems exist, but we will only support Raspbian in class.
- Set up SD Card
- This has to be done on an already working computer with an SD Card reader. Instructions are here. Below is a summary outline for Linux.
- On an existing linux installation, you can use gparted
- plug in SD card
- use dmesg to find the /dev/ path to the device (/dev/mmcblk0 in this tutorial). Do *not* use any pN extensions to this name (e.g. mmcblk0p1).
- format SD Card as FAT32
- unmount /dev/mmcblk0
- download a basic Raspbian install from https://www.raspberrypi.com/software/operating-systems
- sudo dd bs=1M if=2021-10-30-raspios-bullseye-armhf-full.img of=/dev/mmcblk0
- (can check progress with sudo iotop -o , takes about 5 min)
- Initial boot
- get wireless up (click Desktop icon in top-right)
- open up a terminal and run the following commands
- sudo apt update
- sudo apt upgrade
- open Raspberry Pi Configuration (menu)
- change hostname to, e.g., radiopi
- Interfaces: ssh=enabled, vnc=enabled, remote gpio=enabled
- Localisation: Keyboard US layout
- reboot
- change passwd
- Software Install
- sudo apt install python3-ipython jupyter vim texlive libusb-dev
- Copy over VIM config (if you use vim)
- scp .vimrc pi@radiopi:
- Fix missing ipython command
- vi .pydisutils.cfg and add these lines:
- [install]
- install-scripts=/usr/local/bin
- sudo pip3 install --force ipython
- sudo pip3 install astropy
- vi .pydisutils.cfg and add these lines:
SDR Setup
See https://wiki.gentoo.org/wiki/Rtl-sdr
- Plug SDR module in
- Force detect as sdr, not dvb
- sudo vi /etc/modprobe.d/blacklist-dvb.conf add the following line:
- blacklist dvb_usb_rtl28xxu
- sudo apt install rtl-sdr gqrx-sdr
- sudo vi /etc/udev/rules.d/20-rtlsdr.rules add the following line:
- SUBSYSTEM==”usb”, ATTRS{idVentor}==”0bda”, ATTRS{idProduct}==”2838”, GROUP=”pi”, MODE=”0666”, SYMLINK+=”rtl_sdr”
- sudo vi /etc/modprobe.d/blacklist-dvb.conf add the following line:
Class Software
- install ugradio
- git clone https://github.com/AaronParsons/ugradio.git
- cd ugradio/ugradio_code
- sudo pip3 install .