Last active
April 14, 2021 13:56
-
-
Save tlrobinson/4ab94d0e9fe7ba86c2ea507b1ca86c4d to your computer and use it in GitHub Desktop.
ham radio / amateur radio setup notes for mac and raspberry pi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# e.x. | |
# | |
# bbs.sh KE6JJJ-1 1200 145090000 | |
# bbs.sh KE6JJJ-1 9600 433370000 | |
# | |
set -eu | |
call=$1 | |
speed=${2-"1200"} | |
frequency=${3-""} | |
direwolf_log_file=$(mktemp /tmp/direwolf.XXXXXX) | |
direwolf_pid="" | |
rigctl_options="-m 370 -r /dev/ttyUSB1" | |
cleanup() { | |
echo "Exiting..." | |
if [ ! -z "$direwolf_pid" ]; then | |
kill $direwolf_pid | |
rm -f "$direwolf_log_file" | |
fi | |
} | |
trap "exit" INT TERM | |
trap "cleanup" EXIT | |
if ! grep -q "radio$speed" "/etc/ax25/axports" 2> /dev/null; then | |
echo "Adding radio$speed to /etc/ax25/axports. Enter your callsign:" | |
read yourcall | |
echo "radio$speed $yourcall $speed 255 2 ($speed bps)" | sudo tee -a "/etc/ax25/axports" > /dev/null | |
fi | |
if [ ! -z "$frequency" ]; then | |
echo "Setting radio frequency to $frequency and offset to 0" | |
rigctl $rigctl_options F "$frequency" | |
rigctl $rigctl_options O 0 | |
fi | |
# make sure kernal modules are loaded | |
modprobe ax25 mkiss | |
# start direwolf | |
direwolf -p -t 0 -B "$speed" > "$direwolf_log_file" & | |
direwolf_pid="$!" | |
# get the device from the direwo | |
sleep 1 | |
device=$(grep -Eo "/dev/pts/[0-9]+" "$direwolf_log_file" | head -n 1) | |
if [ -z "$device" ]; then | |
echo "Unable to get Direwolf KISS device" | |
exit 1 | |
fi | |
sudo kissattach "$device" "radio$speed" > /dev/null | |
sudo kissparms -p "radio$speed" -t 100 -s 100 -r 25 -c 1 | |
echo "Callsign: $call" | |
echo "Frequency: $(rigctl $rigctl_options f) (offset $(rigctl $rigctl_options o))" | |
echo "Speed: $speed" | |
echo "Logs: $direwolf_log_file" | |
echo | |
echo "Press enter to connect..." | |
read | |
axcall "radio$speed" "$call" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
KE6JJJ-1 | |
Bernal Heights, San Francisco, California | |
https://www.reddit.com/r/amateurradio/comments/cuxso3/packet_radio_bbs_in_san_francisco_still_operating/ | |
https://www.reddit.com/r/amateurradio/comments/64skvj/packet_bbs_in_san_francisco/ | |
Frequency Baud Rate Radio Tnc/PAD | |
50.60 MHz 1200 Alinco DR-06T Kantronics KAM | |
145.09 MHz 1200 Kenwood TM-D700A Kantronics KPC3+ | |
223.60 MHz 1200 Alinco DR-235MkIII Kantronics KPC3 | |
433.37 MHz 9600 Kenwood TM-D700A internal TNC | |
N0ARY commands: | |
ACTivate unkill a message <= SYSOP ONLY | |
Add (keyword: EVENT, CLUBS, SKIP), same as + | |
ADVenture | |
All (keyword: LIST) | |
ASCENDing (keyword: LIST) | |
Approved (keyword: SET) | |
AXRelay set outgoing SSID (keyword: GATEWAY) | |
Barometer (keyword: WX) | |
Bulletin (keyword: LIST, SEND) | |
Bye quit the bbs | |
Bye quit the bbs | |
CALLBK (server) | |
CD change directory on file system | |
CHeck check in/out a NTS message for delivery, see NTS | |
CLubs set/show current clubs (keyword: LIST) | |
CONnect connect to remote AX.25 station | |
COMPuter set/show computer, see EQUIPMENT | |
COpy send a copy of a message to another user | |
Days (keyword: EVENT) | |
DELete (keyword: EVENT, CLUBS, SKIP), same as - | |
DESCENDing (keyword: LIST) | |
DIr display a directory of files, same as LS | |
DISTribution manipulate a distribution list | |
DOWN (keyword: LIST) | |
EDit edit a message header, see NTS | |
EMail set/show your EMAIL forwarding address | |
EQuipment show your current equipment list | |
EVent add/delete/show calendar of events | |
EXit same as BYE | |
FILESYS (server) | |
First (keyword: LIST) | |
FName set/show your first name, see WP | |
FREQ set/show the frequencies you monitor | |
FORward alter forwarding on a message (sysop) | |
Full (keyword: ) | |
Games | |
Header (keyword: READ) | |
HELd (keyword: LIST) | |
Help request help on commands, change help level | |
HIstory list the last command you executed | |
HOmebbs set/show home bbs | |
HOLd place a hold on a message, see RELEASE (sysop) | |
Humidity (keyword: WX) | |
INItiate start a server manually (sysop) | |
INFo get information about the system | |
In (keyword: CHECK, WX) | |
Kill kill a message (keyword: USER, SIGNATURE, VACATION) | |
KM kill all of your messages | |
Last (keyword: LIST) | |
LA list all, ignore SKIP variable | |
LB list bulletins | |
LC list messages matching your CLUBS list | |
LF list first messages | |
LINes set/show your screen size, pause function | |
List list messages | |
LK list killed messages | |
LL list last messages | |
LM list messages addressed to you | |
LN list new messages, new since last list on previous login | |
LNAme set/show your last name | |
LOAD display graph of user load by hour | |
LOOkup look a call up in the callbook | |
LOCal (keyword: LIST) | |
LO list old messages | |
LP list personal messages | |
LR list read messages | |
LS display directory of files, same as DIR | |
MAcro set/show macros | |
ME show all of your user information | |
Mine (keyword: LIST, KILL, READ) | |
Months (keyword: EVENT) | |
MOtd display the "message of the day", login message | |
New (keyword: LIST) | |
None (keyword: COMPUTER, RIG, SOFTWARE, TNC) | |
NOPrompt (keyword: LIST, READ, KILL) see LINES | |
Old (keyword: LIST) | |
Out (keyword: CHECK) | |
PAssword set user password, protects personal data | |
PENding (keyword: LIST) | |
Personal (keyword: LIST, SEND) | |
PHone set/show your phone number, see PASSWORD | |
POrts show who is currently connected to system | |
PROCess (keyword: KILL) | |
QTh set/show your QTH, city and state, see WP | |
Quit same as BYE | |
Rain (keyword: WX) | |
RELease remove a hold from a message, see HOLD (sysop) | |
RIG set/show your radio used for packet, see EQUIPMENT | |
REPly reply to a message, same as SR | |
Read read a message or file | |
RH read messages with full routing header, READ HEADER | |
RK read message and kill it (sysop) | |
RM read all messages addressed to you, READ MINE | |
RW show users that have read a message, READ WHO | |
SB send a bulletin, SEND BULLETIN | |
SD send a message to a distribution list | |
SEArch search callbook for a callsign by name, see CALLBK | |
SECure (keyword: SEND) | |
Send send a message | |
SET alter a user (sysop) and (keyword: WX) | |
SHell shell out to UNIX (sysop) | |
SIGNature create/kill/show a users signature entry | |
SKip clubs and categories to hide in your list requests | |
SOFTware set/show your packet software, see EQUIPMENT | |
SP send a personal message, SEND PERSONAL | |
SPAWN start a tnc server (sysop) | |
SR send reply to a message, see REPLY | |
SS send a secure message, SEND SECURE | |
ST send an NTS message, SEND NTS | |
Talk request to speak to the sysop, if around | |
Temperature (keyword: WX) | |
TELnet connect to a remote host on the Internet | |
TNC (keyword: PORTS) | |
TNC144 (keyword: SPAWN) | |
TNC220 (keyword: SPAWN) | |
TNC440 (keyword: SPAWN) | |
Users show recent connects (keyword: KILL) | |
UP (keyword: LIST) | |
VACation create/kill/show a users vacation entry | |
Weeks (keyword: EVENT) | |
WHEreis show the WP entry for call, same as WP | |
WHO show information about a user | |
Wind (keyword: WX) | |
WP show the WP entry for call, same as WHEREIS | |
WRite write a file to disk (keyword: SIGNATURE, VACATION) | |
WX display weather statistics | |
ZIp set/show your zip code, see WP |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# hackrf | |
brew install dfu-util hackrf | |
# gqrx | |
brew cask install gqrx | |
brew cask install cubicsdr | |
brew cask install sdr | |
brew cask install cutesdr | |
# quisk (as of version 4.1.53 on 3/30/2020) | |
brew install portaudio pulseaudio | |
pip3 install --upgrade pip setuptools wxPython pyserial | |
env ARCHFLAGS="-arch x86_64" CFLAGS="-D USE_MACPORTS" pip3 install quisk | |
# pihpsdr (as of v2.0.0-rc9 on 2020/04/01) | |
git clone [email protected]:g0orx/wdsp.git | |
make -f Makefile.mac install | |
popd | |
git clone [email protected]:g0orx/pihpsdr.git | |
pushd pihpsdr | |
make -f Makefile.mac install | |
popd | |
# ghpsdr3 (incomplete) | |
# brew install codec2 pulseaudio jack libconfig libusb libevent ortp | |
# ln -s /usr/local/Cellar/libusb/1.0.22/include/libusb-1.0/libusb.h /usr/local/include/libusb.h | |
# export LDFLAGS="-L/usr/local/opt/openssl/lib" | |
# export CPPFLAGS="-I/usr/local/opt/openssl/include" | |
# export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig" | |
# git clone https://github.com/alexlee188/ghpsdr3-alex.git | |
# cd ghpsdr3-alex | |
# autoreconf -vif | |
# ./configure | |
# brew services start jack | |
# brew services start pulseaudio | |
brew install gnuradio gr-osmosdr | |
# kalibrate-hackrf | |
brew install fftw hackrf libtool autoconf automake pkg-config | |
git clone https://github.com/scateu/kalibrate-hackrf.git | |
pushd kalibrate-hackrf | |
./bootstrap | |
popd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# enable ssh, vnc, serial port, disable serial console | |
raspi-config | |
# vnc password | |
vncpasswd -user | |
# hamlib + rigctl | |
sudo apt-get install libhamlib-dev libhamlib-utils | |
# plug in radio, then: | |
# list USB ttys: | |
dmesg | grep tty | |
# [ 9559.861151] usb 1-1.3.1: cp210x converter now attached to ttyUSB0 | |
# [ 9560.369568] usb 1-1.3.3: cp210x converter now attached to ttyUSB1 | |
# verify rigctl works (370 = Icom IC-7100): | |
rigctl -m 370 -r /dev/ttyUSB0 f | |
# add alias | |
echo 'alias rig="rigctl -m 370 -r /dev/ttyUSB0"' >> ~/.bashr | |
# list sound cards: | |
arecord -l | |
# **** List of CAPTURE Hardware Devices **** | |
# card 1: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio] | |
# Subdevices: 1/1 | |
# Subdevice #0: subdevice #0 | |
# direwolf (current package doesn't include hamlib support) | |
git clone https://github.com/wb2osz/direwolf.git | |
cd direwolf | |
make | |
sudo make install | |
make install-conf | |
make install-rpi | |
cd | |
sudo nano ~/direwolf.conf | |
# under "FIRST AUDIO DEVICE PROPERTIES", add (adjust to match above sound card and serial port): | |
# MYCALL YOURCALL | |
# ADEVICE plughw:1,0 | |
# PTT RIG 370 /dev/ttyUSB0 | |
# start direwolf (disable text color) | |
direwolf -t 0 | |
# xastir | |
sudo apt-get install xastir | |
# yaac | |
sudo apt-get install openjdk-8-jre librxtx-java unzip | |
mkdir ~/yaac | |
cd ~/yaac | |
wget https://www.ka2ddo.org/ka2ddo/YAAC.zip | |
unzip YAAC.zip | |
echo 'alias yaac="java -jar ~/yaac/YAAC.jar"` >> ~/.bashrc | |
cd | |
# start and configure xastir and/or yaac | |
sudo xastir | |
java -jar ~/yaac/YAAC.jar" | |
# set call sign and coordinates | |
# add interface, "Networked AGWPE" on "localhost:8000" | |
# flrig + fldigi | |
sudo apt-get install flrig fldigi | |
# wsjt-x | |
sudo apt-get install wsjtx | |
# js8call | |
sudo apt-get install libgfortran3 | |
wget http://files.js8call.com/1.1.0/js8call_1.1.0_armhf.deb | |
sudo dpkg -i js8call_1.1.0_armhf.deb | |
# install ax25 software | |
sudo apt-get install ax25-apps ax25-tools | |
# add to /etc/axports: | |
# ax0 KK6GCX 1200 255 2 (1200 bps) | |
# start direwolf with KISS pseudo-terminal | |
direwolf -t 0 -p | |
# attach multi kiss interface | |
mkiss -s 19200 -x 1 /tmp/kisstnc | |
# attach kiss interface (replace "/dev/pts/3" with the output of previous command) | |
sudo kissattach /dev/pts/3 ax0 | |
# connect | |
axcall ax0 CALLSIGN | |
# rtc | |
# follow instructions on https://thepihut.com/blogs/raspberry-pi-tutorials/17209332-adding-a-real-time-clock-to-your-raspberry-pi | |
# sdr | |
sudo apt-get install cubicsdr cutesdr gqrx-sdr soapysdr-tools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt-get autoremove && sudo apt update && sudo apt upgrade | |
# ghpsdr3-alex (as of 3/31/2020) | |
sudo apt install git build-essential libfontconfig1 | |
sudo apt install mesa-common-dev libglu1-mesa-dev -y | |
sudo apt install jackd2 libjack-jackd2-dev portaudio19-dev | |
sudo apt install qtcreator qt5-default qtmultimedia5-dev | |
sudo apt install libusb-0.1-4 libusb-dev libfftw3-dev libpulse-dev libsamplerate0-dev | |
sudo apt install libusb-1.0-0-dev libconfig-dev xdg-utils libortp-dev libevent-dev libcodec2-dev libssl-dev | |
git clone https://github.com/alexlee188/ghpsdr3-alex.git | |
cd ghpsdr3-alex | |
sh ./cleanup.sh | |
autoreconf -i | |
sh ./alex-conf.sh | |
make | |
sudo make install |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
minicom -b 1200 -D /dev/cu.SLAB_USBtoUART | |
minicom -b 9600 -D /dev/cu.SLAB_USBtoUART | |
for 9600 bps enter "HB 9600" | |
to connect enter "C CALLSIGN" | |
to disconnect enter "D" | |
to get to minicom menu: shift-escape-Z |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://thomask.sdf.org/blog/2015/07/19/dire-wolf-bbses-and-beyond.html
https://wcares.org/special-interests-3/aprs/aprs-raspberry-pi-virtual-tnc/
https://www.kenwood.com/i/products/info/amateur/pdf/TH-D72AE_IDM.pdf