PigRemote

User Guide

Version 1.0C

© 2013 Nicholas Garner, N3WG, Pignology, LLC


Table of Contents

Document Overview

Copyright Notice

Terms of Use and Liability Waiver

Community Support

Introduction

Will PigRemote Work For Me?

System Overview

PigRemote Device Overview

Motherboard

Linux System / BeagleBone

Audio Codec Daughtercard

RF Module

Connections

Build

Installation

Power

Ethernet

Audio Connections

Ground Loop Isolators

RS-232 Rig Connection

Elecraft

Elecraft K3

Elecraft KX3

Elecraft K2

Icom

Yaesu

Kenwood

TS-480

Quick Start

Install

Discover

Avahi Note (ZeroConf)

Audio Test

Control

Pigtail Enabled Rig Control Applications - Pignology

Pigtail Enabled Rig Control Applications - Third Party

Third Party Rig Control Software using Virtual Serial Ports

Software - Local Side

Windows

PRDiscover

PRAudio

PRControl

K3UI

KX3UI

Mac OSX

PRDiscover

PRAudio

PRControl

K3UI

KX3UI

Linux

PRDiscover

iOS

PRDiscover

PRAudio

PRControl

HamLog

Android

PRDiscover

PRAudio

PRControl

Helpful Third Party Software

SSH

Windows

Mac

Terminal Emulator

Windows

Mac

Linux

Internet Connectivity

Dynamic DNS Note

Port Forwarding

Ports Requiring Forwarding

Other Ports in Use

PR Settings & Console Connectivity

Audio Routing

Settings

Web Access and Overview

Console Connectivity

SSH

Terminal

Audio Level Adjustments

Audio Codec Level Adjustments

PigRemote Internals

Filesystem

Networking

PigRemote Software/Services

praudio-s

pigtail

prannouce

nginx

Other Software in /opt/PigRemote/bin

Audio

Other Services

cron

SSH

NTP

systemd

Afraid DDNS Updater

Troubleshooting

Serial Control

Audio

Mac Audio

PigRemote Software Upgrade

Appendices

A: com0com Windows

B. com2tcp Windows

C. socat Linux

D. Dynamic DNS using Afraid DNS

E. Schematics

PigRemote Motherboard

PigRemote Audio Codec

BeableBone

Revision History



Document Overview

This document serves to guide PigRemote users through the use of the system.  The perspective of this guide is from the point of view of a user who has just unpackaged the system.  To start, we’ll cover the various components involved in the system.  We’ll follow this with an overview of how to get everything connected and then a Quick Start section to see the system working.

Copyright Notice

PigRemote  software, Copyright © 2013 by Pignology, LLC.. All rights reserved. The copyrights for certain components of PigRemote  software contained herein are owned by other third parties and used and distributed under license. Certain components of PigRemote software are licensed under the GNU General Public License ("GPL") version 2.0, the GNU Lesser General Public License version 2.1 or other open source licenses. For three (3) years, copies of GPL licensed source code may be obtained by emailing a request to support@pignology.net. The open source software is governed by the terms and conditions of the applicable open source license. The open source software, the applicable open source licenses and other open source notices may be identified in this document, the documentation or in a README file accompanying the PigRemote software.

Terms of Use and Liability Waiver

Terms of Use

This product is offered to you conditioned upon your acceptance without modification of the terms, conditions, and notices contained.

Limitation of Liability

In no event shall Pignology, LLC be liable for any direct, indirect, punitive, incidental, special consequential damages whatsoever arising out of or connected with the use or misuse of its products.

General

This disclaimer statement is governed by the laws of the State of California, USA.  You hereby consent to the exclusive jurisdiction and venue of the Courts of competent jurisdiction, USA, in all disputes arising out of or relating to the use of this product.  Use of this product is unauthorized in any jurisdiction that does not give effect to all provisions of these terms and conditions, including without limitation this paragraph.

Modification of Terms and Conditions

Pignology, LLC reserves the right to change the terms, conditions, and notices under which their products are offered.

Community Support

A Yahoo Group has been created for PigRemote.  Please consider joining the group to receive information about updates, ask questions or report problems.  If you know the answer to a question posed by another user, please feel free to help out.

PigRemote Yahoo Group

Introduction

PigRemote is an open platform for remote station control produced and designed by Pignology, LLC, http://pignology.net.  It is a small computer in the form of an appliance powered by embedded Linux running on a Texas Instruments Sitara AM3359 ARM Cortex-A8 processor.

Purpose built software is installed on the device to accomplish the these three primary goals.

  1. Bi-directional Streaming Audio
  2. Rig Control, RS-232 Based Connections
  3. Environment Control

Using this system, it’s possible to completely control your amateur radio station from either the local network or over the Internet.  Audio streaming is bi-directional using standard VoIP protocols and rig control is accomplished by redirecting serial rig control data to an established TCP connection.  This software, the suite of apps to accomplish the three primary goals, is available for the majority of operating systems including Windows, Mac OSX, Linux, Android, and iOS.

PigRemote handles the audio and rig control functions of controlling your station, environment control and monitoring can also be accomplished through the use of a mesh network created with the RF data module option.  The RF data module talks to a similar module installed in the Station Controller product from Sierra Radio Systems, http://hamstack.com.

Critical Note:

The PigRemote system must only be powered using the supplied 5V/2A power adapter.  The system is not tolerant of any voltage outside of 5V +/- 0.1v.  See the Power section for more information.

Will PigRemote Work For Me?

When considering the purchase of a PigRemote, there are three signals that need to be considered.  

  1. Serial Rig Control
  2. Audio Received by the Radio
  3. Audio Transmitted by the Radio

Given PigRemote’s relative youth, not all radios out there have been tested and given its universal nature we might need to adapt the connectors and use third-party software to accomplish the goal of remoting your radio.  Use the following sections describing the three bullet points above to determine if PigRemote might work for your intended installation.

Please note, Pignology software like HamLog on iOS, Mac and Android, cannot control all radios but there are solutions for using third-party rig control software with PigRemote by using a virtual serial port shim like com0com/com2tcp or Advanced Virtual COM Port from KernelPro.

Serial Rig Control

Most modern amateur radio transceivers have a serial port that offers some form of radio control using control commands, often referred to as a CAT protocol.  Pignology has tested the device with Elecraft, Kenwood, Yaesu and Icom for Rig control and while the cables might be different, all have worked to proxy the serial data through to the radio.

Where you will run into an issue is if the control protocol for the radio you intend to use does not have a command to put the radio into transmit.  For example, the IC-706MKIIG does not have a CAT command to put the radio into transmit so there’s no way to actually transmit from a remote station using PigRemote as the transport.

You’ll need to verify that the radio you intend to use has a command to put the radio into TX.  Most newer radios do.

Audio Received by the Radio

Audio received by the radio needs to be transported over the network to you using the PRAudio application.  This also is not usually an issue because most radios have a headphone jack.  

Audio Transmitted by the Radio

When operating a remote station you expect to be able to transmit voice as well.  This is where most of the questions arise.  First, as mentioned in the Serial Rig Control section above, we need to be able to put the radio into TX.  Once we have the radio in TX we need to get audio from the PigRemote into the radio. The Audio Out jack on the PigRemote is a standard 3.5mm stereo audio jack.  If you radio has a Line In jack, this should work just fine.  If not, then the audio connection will need to be adapted to whatever method is available on the radio to get audio into it.

For example, the FT-817 from Yaesu, you can send audio into the radio using the accessory jack on the back however, the radio will only transmit this audio if the radio is in PKT mode.  This means we need to get the audio into the mic jack so the 3.5mm audio connection coming out of the PigRemote needs to be adapted to the RJ-45 connector on the side of the radio.

Conclusion

To answer the question, “will it work for me?” ask yourself these questions.

  1. Can I put the radio into transmit using a serial command?  You can verify this in the manual for your radio.
  2. Is there a Headphone jack on the radio?  This will allow you get audio into the PigRemote for transport back to you.
  3. Is there a Line In audio path or can I adapt the 3.5mm Audio Out from the PigRemote to my radio?  This is highly dependent on the answer to #1.

System Overview

Standard operation of the PigRemote involves three primary components.

  1. Computer/Laptop/Smartphone/Tablet
  2. PigRemote Device
  3. Amateur Radio Transceiver

Connections from the radio to the PigRemote are physically wired to enable access to audio in and out and the radio’s serial control port, usually referred to the CAT port.

The computer and/or mobile device acts as the control interface.  A suite of applications is available for download to connect to the various services available on the PigRemote.  The connection from the computer to the PigRemote is over the network.  As described in the following diagram, the control interface (computer) can be located anywhere you have IP connectivity back to the PigRemote.

PigRemote Connectivity

PigRemote Device Overview

The PigRemote contains four printed circuit boards (PCBs).

  1. Motherboard - Pignology, LLC
  2. Linux system - CircuitCo BeagleBone
  3. Audio Codec - Pignology, LLC
  4. RF Module - Digi Xbee

Motherboard

The motherboard in the PigRemote was designed by Pignology, LLC.  It’s primary purpose is to interface the various components together.  It also hosts the electronics to convert the TTL UART signals from the BeagleBone to RS-232 levels for serial communication with the radio.

Motherboard Block Diagram

The schematic for the PigRemote Motherboard is available in Appendix E.

Linux System / BeagleBone

The CPU is hosted on an off-the-shelf development board named BeagleBone produced by CircuitCo.  

BeagleBone Connectors

In the above picture, the connector labeled USB Client is the window into the system.  There is an FTDI USB-Serial IC on the BeagleBone.  Using the supplied mini-USB cable plugged into your computer it’s possible to connect to the console of the Linux system running on the BeagleBone.  Refer to the Console Connectivity section for information on connecting to the terminal.

There is a wealth of information on the Internet about the BeagleBone.

http://beagleboard.org/bone

The Schematics for the BeagleBone can be found here:

http://beagleboard.org/hardware/design

Audio Codec Daughtercard

The audio codec in the PigRemote is a Texas Instruments TLV320AIC3106.  The audio codec in the PigRemote was designed by Pignology, LLC based on the open hardware Audio Cape from CircuitCo.  The majority of the components are the same as the audio cape; the 1.8v voltage regulator is a different package and there is no EEPROM for cape identification as it’s not needed in this purpose built implementation.  The audio codec interfaces with the BeagleBone using I2C.

The schematic for the PigRemote Audio Codec Daughtercard is available in Appendix E.

RF Module

The PigRemote has a Digi XBee module installed.  This module is used for wireless serial connectivity to the Sierra Radio Systems Station Controller.  The sockets/headers this module is plugged into follow the common pinout used by devices in this form factor.  Devices such as the RN-XV from Roving Networks will also work in this socket.

Connections

Several connections are available on the back of the PigRemote.  The LED on the front of the PigRemote is on if power is applied to the BeagleBone and off when unplugged.  There is no logic or system status (other than power) tied to this LED.

Enclosure Label

Description

5V-2A

This is the power source for the PigRemote.  The power is applied directly to the BeagleBone and the 3.3V pins on the BeagleBone are used to power the rest of the system.  This power connection is not tolerant of any voltage outside of 5V +/- 0.1V.  Only use the supplied power adapter with the PigRemote.

ENET

This is a 10/100 Mbps FastEthernet port that should be connected to your home network using the supplied Ethernet cable.

TERM

This is the USB client port mentioned above.  A mini-USB cable is supplied for this connection if needed.

OUT

Audio OUT from the audio codec.

IN

Audio IN to the audio codec.

RIG

RS-232 connection for your radio.

Build

If you purchased a PigRemote with the option to omit the BeagleBone, you will need to install it first.  Please observe ESD precautions when disassembling the PigRemote including the use of an anti-static mat and wrist strap.

  1. On the underside of the PR enclosure is 4 black screws, remove these and the top cover should come off.
  2. Once inside, there are 4 silver screws holding the PCB in place, remove these.
  3. Once all 8 screws are removed the end plates of the enclosure can be removed.
  4. Remove the main PCB and place it on a static mat on a hard surface.
  5. Position your BeagleBone over the 96 pins on the motherboard and press down with your full palm applying pressure evenly over all 96 pins.  Ensure the pins are lined up prior to seating the BeagleBone as the 96 pins of friction make it pretty difficult to remove after it’s installed.
  6. In the box the PR came in will be a Micro-SD card containing the operating system for the PigRemote.  Insert this SD card into the BeagleBone.
  7. Place the motherboard into the enclosure and place the end plate of the enclosure.  Ensure you have the end plates in place prior to screwing in the 4 motherboard screws.  Screw in the 4 silver PCB screws.
  8. Replace the top of the enclosure and insert the four black enclosure screws.

Installation

The system is on or off based on whether or not the power supply is plugged in.  Apply all of the following connections prior to turning on the system by plugging in the power; apply power last.  Do not unplug the system without shutting it down first.  This could lead to a corrupt filesystem on the micro SD based hard disk.  It’s possible to shut the system down using the web GUI (see Settings).

NOTE:

To turn off the system, it should be shut down first, just like your home computer, to avoid file system corruption.  All PigRemote services run from memory with little to no disk access other than start-up however, to be safe, hit the Shutdown button in the Web interface and wait 30 seconds before removing power.

Power

The PigRemote derives its power from the BeagleBone.  While the BeagleBone alone can be powered by USB only, the entire PigRemote system should only be powered by the supplied power supply.  This power supply supplies 5V at a maximum of 2A.  The USB specification allows an attached device to draw a maximum of 500mA from the USB port.  The audio codec, RF module, and RS-232 MAX3232 can bring the system over this limit.  The power jack on the BeagleBone is not tolerant of voltage differences of more than +/- .1V above or below 5V.  The power supply supplied with the PigRemote is from Volgen America and can be purchased from DigiKey.

Power Supply Datasheet

Power Supply @ DigiKey

Ethernet

The Ethernet port on the BeagleBone should be connected to your home network using a standard straight through CAT5/6 cable prior to turning the system on.  Upon boot, the system will use DHCP to determine its IP address.  In most installations, the home router would provide the DHCP services for the PigRemote to get assigned its IP address.

Audio Connections

There are two stereo audio connections provided on the PigRemote.  These are connected to the TLV320AIC3106 audio codec.  The audio in/out jacks connect to the Line In and Headphone Out pins, respectively.

Specifics for audio connections to radios that do not have stereo line-in/headphone connections will be added to this document as reported by the community.  If you achieve this connectivity on a radio without these standard audio connections, please feel free to email your findings to the PigRemote Yahoo Group so others can benefit as well.

NOTE: PigRemote has an Audio Route setting that can be set to Local or Remote.  This is a key setting that can lead to frustration if not set correctly.  Please review the Audio Routing section to understand how to use this setting.  The default, as shipped, setting is Local to ensure the Quick Start section below works.

Ground Loop Isolators

PigRemote ships with two ground loop isolators that can be installed in-line with the audio in and out connections.  These should only be needed with certain radios, for example, it doesn’t appear to be required with the KX3 but the K3 needs them.  They do not hurt the audio when installed so it’s best to go ahead and install them just in case.

RS-232 Rig Connection

The DE-9 connector on the PigRemote is for the connection to the radio.  The port is wired as a DTE RS-232 port, same as your computer.  Pins 2, 3, and 5 are connected to the Beaglebone’s UART that the pigtail service is managing.  For radios that require hardware flow control via CTS/RTS (Kenwood), DIP switch position 3 on the motherboard can be turned on to connect pins 7 and 8 on the serial port to simulate hardware flow control.

NOTE: If your radio has a Time Out Timer for transmit, it’s a good idea to enable that.  This will prevent the radio from staying in TX in the event the rig control connection is severed.  

Elecraft

For Elecraft K3 you can use a standard straight through serial cable.  For the KX3, use the KXSER cable available from Elecraft or fabricate your own.  The KXSER cable can be made by splicing a stereo headphone cable and serial cable together.  The pinout for the KXSER cable is in the Elecraft KX3 manual.  For the K2, use the special serial cable provided with the KIO2 module that only connects the TX, RX, and GND pins of the serial port.  

NOTE: The serial port on the KIO2 module of the K2 is not a standard RS-232 compliant serial port.  For safety of you and your K2, do not connect the PigRemote to the K2 with anything other than the serial cable that you made as part of the KIO2 assembly.

Elecraft K3

The provided in-line ground loop isolators should be used with the Elecraft K3.

PigRemote Connection

Elecraft K3 Connection

Audio IN

Headphone

Audio OUT

Line In

Set MIC SEL to Line In and adjust Line In Gain to about 20.

Set MENU:MIC_SEL to Line In

RIG

RS-232 straight through cable

Elecraft KX3

PigRemote Connection

Elecraft K3 Connection

Audio IN

Headphones

Audio OUT

Mic

RIG

ACC1 - Requires KXSER cable from Elecraft or fabricate your own.

Elecraft K2

Icom

Connectivity to Icom radios can be accomplished using either the Icom branded CT-17 box or the CT-17 board from Pignology.  This board is available at http://shop.pignology.net.  The CT-17 board from Pignology needs power.  This can be provided from the PigRemote itself using the middle switch of the DIP switch on the motherboard, labeled P4P.  Turning this switch on will provide 3.3v on pin 4 of the serial port to power the MAX3232 IC on the Pignology CT-17 board.

Icom Audio connectivity TBD

If you have successfully tested the PigRemote with any Icom radio please let support@pignology.net know.

Yaesu

Older Yaesu radios can be connected to PigRemote using the Yaesu CT-62 cable.

Newer Yaesu radios with DE9 serial ports can be connected with a straight through serial cable however, you will need a gender changer.

Yaesu Audio connectivity TBD

If you have successfully tested the PigRemote with any Yaesu radio please let support@pignology.net know.

Kenwood

Kenwood radios can be connected with a straight through serial cable however, you will need a gender changer.  Also, there is a DIP switch on the motherboard of the PigRemote that can be used to loop CTS/RTS together to simulate hardware flow control for the Kenwood radio.  This is required to talk to Kenwood radios.

TS-480

Please reference the following picture for connecting the TS-480 to the PigRemote audio connections.

http://www.kenwood.com/i/products/info/amateur/ts_480/connection.html

Other Kenwood Audio connectivity TBD

If you have successfully tested the PigRemote with any Kenwood radio please let support@pignology.net know.

Quick Start

This quick start guide assumes you are connected to the same network as the PigRemote.  It is recommended to run through this quick start prior to attempting to connect from the Internet so there are no issues with NAT and port forwarding on your home router.

Install

Head over to http://pignology.net/pigremote/sw.html and download/install the following applications for the Operating System on your home computer.

        http://pignology.net/winapps.html

Discover

Start the PRDiscover application.  Note, this software will only work when running PRDiscover on the same network as the PigRemote.  This is due to the way PigRemote is broadcasting its presence.  After a few seconds (by default) you should see the IP address of the PigRemote appear.

Successful Discovery of PigRemote on Mac OSX

Avahi Note (ZeroConf)

Before proceeding, zero configuration networking services through Avahi on the PigRemote should be mentioned.  Avahi is installed on the PigRemote and starts by default.  With this service enabled, it’s possible to talk to/discover the Pigremote using a name rather than IP address however, this is only possible on other operating systems that support zero configuration networking.  The name used to talk to the PigRemote is “pigremote.local”.  If your operating system supports Zeroconf, PRDiscover would only be necessary to assist with configuring port forwarding for the different services needed to run over the Internet.

To test if your system can resolve the IP address of the PigRemote using zero configuration network, open your terminal/command prompt and run “ping pigremote.local”.  If the ping is successful, you can use “pigremote.local” as the address of the PigRemote when talking to it locally, on the same LAN.

Audio Test

With the IP address discovered through PRDiscover, or pigremote.local if that works on your system, open PRAudio and set:

Again, you should be on the same LAN as the PigRemote for this test.  The “Local” checkbox tells PRAudio that we’re on the same LAN as the PigRemote.

Click “Connect”.

If everything is connected properly, you should hear the audio from the radio as well as see a message in PRAudio that it’s connected or confirmed.  This audio is bi-directional always, just like a phone call.  When you speak to your computer, that audio will be exiting the PigRemote’s audio OUT port. If your radio has VOX turned on, you might start transmitting.  If you connect a pair of headphones to the audio OUT port, you can listen to yourself speaking across the network.

Successful Audio Connection on Mac with PRAudio

Control

Pigtail Enabled Rig Control Applications - Pignology

Pignology provides several applications that support rig control over the network using the Pigtail process on PigRemote.  The Software section below gives an overview of how to connect these applications to PigRemote.

Platform

App

Description

Link

Windows

K3UI

Elecraft K3 control over the network as well as with wired serial port.

Pignology

Windows

KX3UI

Elecraft KX3 control over the network as well as with wired serial port.

Pignology

Mac

HamLog

Supports several radios from Elecraft, Yaesu, Icom, and Kenwood.

Mac App Store

Mac

KX3UI

Elecraft KX3 control over the network as well as with wired serial port.

Mac App Store

Mac

K3UI

Elecraft K3 control over the network as well as with wired serial port.

Mac App Store

iOS

HamLog

General purpose logging with many tools.  Includes remote rig control support for several radios from Elecraft, Yaesu, Icom, Kenwood.

iTunes App Store

Android

HamLog

General purpose logging with many tools.  Includes remote rig control support for several radios from Elecraft and Yaesu.

Android Play Store

Pigtail Enabled Rig Control Applications - Third Party

Platform

Name

Description

Link

iOS

RumLog

RumLog for iOS is a great logging application that has Pigtail functionality built-in.

Link

If you’re a developer, get coding!  See the Pigtail section in PigRemote Internals for information on how to talk to the Pigtail process on PigRemote.

Third Party Rig Control Software using Virtual Serial Ports

Currently, on Windows and Linux, it’s possible to use your preferred logging/rig control software by running a virtual serial port pair and a serial port to tcp proxy such as com0com with com2tcp for Windows or socat with pseudo terminals in Linux.

There are instructions for installing and running com0com/com2tcp in Appendix A and Appendix B.  Instructions for socat and pseudo terminals on Linux are in Appendix C.

As an alternative, KernelPro has a virtual serial port package for Windows named Advanced Virtual COM Port that appears to do the same thing as com0com/com2tcp however this is not free software.  Also, Pignology has not tested this.

Advanced Virtual COM Port from KernelPro

Software - Local Side

The list of software that follows is mostly software developed by Pignology, LLC.  These sections give a quick introduction on how to connect the applications listed to PigRemote, they do not cover an in-depth overview of the use of the application.  Most of applications are pretty self explanatory however, if you have questions, please feel free to email support@pignology.net.

Windows

Windows software PRAudio and PRDiscover can be installed from:

http://pignology.net/pigremote/sw.html

The Pigtail enabled applications K3UI and KX3UI for the Elecraft radios K3 and KX3 can be installed from:

http://pignology.net/winapps.html

As an owner of a PigRemote, Pignology will provide license keys for these applications for free.  Please email support@pignology.net with the information regarding your order for verification and we will provide you with a license key to remove the 30 day limit of the software.

PRDiscover

The windows version of PRDiscover is a small application that start listening for PigRemote announcements on the local network.  This application can be used to find the IP address of your PigRemote.

PRDiscover on Windows

PRAudio

When PRAudio is started, after it checks for updates, you will be presented with the following screen.  Set the IP address of the PigRemote and check/uncheck Local based on whether you are connected to the same network as the PigRemote and then click Connect.  The audio should start streaming in a second or so.  Please refer to the Audio Routing section for an explanation of Local vs. Remote routing.

PRAudio on Windows

NOTE: Once the audio stream is started it is locked to that audio device input/output until the stream is stopped and the application is exited.  If you want to switch from computer speakers to headphones you will need to stop the stream and quit the app, then connect headphones and restart the stream.

PRControl

PRControl provides a software control panel to remotely control the Sierra Radio Systems Station Controller.  There is a 2.4GHz wireless link from the PigRemote to the SRS SC.

PRControl for Windows

Once started, enter the IP/hostname of your PR and click connect.

PRControl on Windows (Connected)

Once connected to the PigRemote’s SRS SC proxy service you will see the above screen.  From here you can turn relays on/off and monitor the various sensors on the Station Controller.

K3UI

K3UI is a Pigtail enabled application from Pignology that brings the face of your K3 to your computer.   The application talks to the PigRemote which proxies the serial rig control data to the radio and vice versa.  K3UI is available for install from here: http://pignology.net/winapps.html

K3UI Windows Start Screen

Once started, to use the software with a PigRemote, click the Settings button in the bottom right corner of the window.  In the PigRemote section, enter the IP/hostname (or click Discover if on the same network as the PigRemote) of your PR and click connect.

K3UI Settings

Once the PigRemote IP/hostname is set, click Start in the upper right corner of the window.

K3UI on Windows (Connected)

Once connected to the PigRemote’s Pigtail proxy service you will see the above screen.  From here you can manipulate the radio by pressing the various buttons on the radio.

KX3UI

KX3UI is a Pigtail enabled application from Pignology that brings the face of your K3 to your computer.   The application talks to the PigRemote which proxies the serial rig control data to the radio and vice versa.  KX3UI is available for install from here: http://pignology.net/winapps.html

KX3UI Windows Start Screen

Once started, to use the software with a PigRemote, click the Settings button in the bottom right corner of the window.  In the PigRemote section, enter the IP/hostname (or click Discover if on the same network as the PigRemote) of your PR and click connect.

KX3UI Settings

Once the PigRemote IP/hostname is set, click Start in the upper right corner of the window.

KX3UI on Windows (Connected)

Once connected to the PigRemote’s Pigtail proxy service you will see the above screen.  From here you can manipulate the radio by pressing the various buttons on the radio.

Mac OSX

Windows software PRAudio and PRDiscover can be installed from:

http://pignology.net/pigremote/sw.html

The Pigtail enabled applications K3UI and KX3UI for the Elecraft radios K3 and KX3 can be installed from the Mac App Store, search for Pignology.

As an owner of a PigRemote, Pignology will provide you with these applications for free.  Please email support@pignology.net with the information regarding your order for verification and we will provide you with a method to download the software

PRDiscover

The windows version of PRDiscover is a small application that start listening for PigRemote announcements on the local network.  This application can be used to find the IP address of your PigRemote.

insert pic

PRDiscover on Mac

PRAudio

When PRAudio is started, after it checks for updates, you will be presented with the following screen.  Set the IP address of the PigRemote and check/uncheck Local based on whether you are connected to the same network as the PigRemote and then click Connect.  The audio should start streaming in a second or so.  Please refer to the Audio Routing section for an explanation of Local vs. Remote routing.

PRAudio on Mac

PRControl

PRControl provides a software control panel to remotely control the Sierra Radio Systems Station Controller.  There is a 2.4GHz wireless link from the PigRemote to the SRS SC.

PRControl for Mac

Once started, enter the IP/hostname of your PR and click connect.

PRControl on Mac (Connected)

Once connected to the PigRemote’s SRS SC proxy service you will see the above screen.  From here you can turn relays on/off and monitor the various sensors on the Station Controller.

K3UI

K3UI is a Pigtail enabled application from Pignology that brings the face of your K3 to your computer.   The application talks to the PigRemote which proxies the serial rig control data to the radio and vice versa.  K3UI is available for install from here:  https://itunes.apple.com/us/app/k3ui/id626886809?mt=12

K3UI Mac Start Screen

Once started, to use the software with a PigRemote, click the Settings button in the bottom right corner of the window.  In the PigRemote section, enter the IP/hostname (or click Discover if on the same network as the PigRemote) of your PR and click connect.

K3UI Settings

Once the PigRemote IP/hostname is set, click Start in the upper right corner of the window.

K3UI on Mac (Connected)

Once connected to the PigRemote’s Pigtail proxy service you will see the above screen.  From here you can manipulate the radio by pressing the various buttons on the radio.

KX3UI

KX3UI is a Pigtail enabled application from Pignology that brings the face of your K3 to your computer.   The application talks to the PigRemote which proxies the serial rig control data to the radio and vice versa.  KX3UI is available for install from here:  https://itunes.apple.com/us/app/kx3ui/id590043143?mt=12

KX3UI Mac Start Screen

Once started, to use the software with a PigRemote, click the Settings button in the bottom right corner of the window.  In the PigRemote section, enter the IP/hostname (or click Discover if on the same network as the PigRemote) of your PR and click connect.

KX3UI Mac Settings

Once the PigRemote IP/hostname is set, click Start in the upper right corner of the window.

KX3UI on Mac (Connected)

Once connected to the PigRemote’s Pigtail proxy service you will see the above screen.  From here you can manipulate the radio by pressing the various buttons on the radio.

Linux

PRDiscover

PRDiscover for Linux is a command line utility.  This application is provided as source and must be compiled to be executed.  The source for PRDiscover for Linux an be downloaded from http://pignology.net/pigremote/sw.html.  The following terminal output shows all the steps to download and compile.  

The following commands can be used to download, extract, compile, and run PRDiscover.

wget http://pignology.net/pigremote/prlinux/prdiscover.tgz

tar xvzf prdiscover.tgz

cd prdiscover

make

./prdiscover

Download source

Extract

Compile

Run

PRDiscover on Linux

Download, Extract, Compile, Run

iOS

PRDiscover

The windows version of PRDiscover is a small application that start listening for PigRemote announcements on the local network.  This application can be used to find the IP address of your PigRemote.

PRDiscover on iOS

PRAudio

When PRAudio is started, after it checks for updates, you will be presented with the following screen.  Set the IP address of the PigRemote and check/uncheck Local based on whether you are connected to the same network as the PigRemote and then click Connect.  The audio should start streaming in a second or so.  Please refer to the Audio Routing section for an explanation of Local vs. Remote routing.

PRAudio on iOS

PRControl

The PRControl application is available in the iOS App Store.

When the application is started you are presented with the following start screen.

PRControl on iOS

You can press “Discover” if you are on the same network as your PigRemote to automatically fill the Hostname field.  If you are operating remote, you can use your Dynamic DNS (Afraid DDNS) entry or the public/routable IP address of your router at home.

Once the Hostname field is populated, click connect.  The follow screen will be displayed and the device will attempt to connect to the srssc process on the PigRemote and start querying the SRS Station Controller.  If an error occurs you will be notified and it will take you back to the start screen.

PRControl on iOS (Connected)

From this view you can turn relays on and off as well as monitor the status of the various sensors on the Station Controller.

HamLog

The following screenshots demonstrate how to configure HamLog to use PigRemote for rig control.  HamLog is available in the iOS App Store here: https://itunes.apple.com/us/app/hamlog/id308437400?mt=8

Open HamLog, Click Tools

Open HamLog, Click Tools

Click Remote

Enter your PR IP/Hostname and Click Enter

Verify the IP/Radio Selected

Add a Contact.

The Pigtail background process will start and begin querying the radio.

Android

Section Details Coming Soon

PRDiscover

Java on Android does not support the ability to listen for broadcast packets on the local network.  PRDiscover is not possible on Android.

PRAudio

PRControl

Helpful Third Party Software

There are a couple applications that will enable you to connect to the Linux system running on the BeagleBone, SSH and a terminal emulator.

SSH

Upon boot, the Linux system starts a Dropbear SSH daemon that enables you to log into the system and get a shell over the network, securely.  

Windows

Mac

The Mac operating system includes SSH.  Open terminal and run “ssh pigremote.local” or “ssh <ip_address_of_PigRemote>” to connect to the PigRemote.

Terminal Emulator

The mini USB port on the BeagleBone can be used to get to the console of the Linux OS.  There is an FTDI chip on the BeagleBone that presents a serial port to the computer when connected via USB.  You may need to update your FTDI drivers  Visit this page for information on updating drivers to support the USB serial port available on the BeagleBone.

Once the BeagleBone is connected to your computer by USB cable you’ll need a terminal emulator to connect.  The serial port settings are:

Windows

        Microsoft Article on Changing COM Port Number

Mac

Link: http://freeware.the-meiers.org/

Linux

Both Minicom and screen can be installed using the tools available for package management on your preferred Linux distribution.

Internet Connectivity

* Ensure everything works on your local network prior to testing over the Internet. * 

Dynamic DNS Note

When connecting to the PigRemote from across the Internet, Dynamic DNS can relieve the frustration of having to remember the Internet routable IP address of your home router.  Pignology recommends the free DDNS service Afraid DNS.  The PigRemote has a DDNS client update program installed for the Afraid DDNS system.  See Appendix D for information on setting up a dynamic DNS entry for your PigRemote using Afraid DNS and the Dynamic DNS section for information on configuring the Afraid DNS updater on PigRemote to automatically update your Afraid DNS entry.

Port Forwarding

PigRemote listens on the following TCP/UDP ports however, not all of them need to be forwarded to PigRemote.  

The ports listed in the “Ports Requiring Forwarding” table below will need to be forwarded on your home Internet router to the PigRemote.

 

Ports Requiring Forwarding

Service

Protocol/Port

Purpose

pigtail

TCP:7373

Used for TCP to serial (RS-232) bridge for rig control.

praudio-s

UDP:37372

SIP control channel for VoIP signalling

praudio-s

UDP:37373

UDP:37374

Used for RTP audio streams between PigRemote and the remote device.  The VoIP in use uses Symmetric RTP.

srssc

TCP:7374

Used for TCP to serial (RS-232) bridge for Sierra Radio Systems Station Controller.

Other Ports in Use

Service

Protocol/Port

Purpose

nginx

TCP:80

(Optionally Forward) This is for the webserver running on PigRemote.  It is used for configuration.  If you choose to enable access to the web server from the Internet and if your router permits you to forward from a different port to port 80, that would be preferred.  It’s not recommended to expose port 80 to the Internet.  For example, N3WG forwards TCP port 7380 to port 80 of the PigRemote.

ssh

TCP:22

(Optionally Forward) SSH daemon running on the PigRemote.  This gives full access to the system’s console/shell.

PR Settings & Console Connectivity

Audio Routing

This concept is key to successful audio streaming.  The Audio Route setting can be set from the web interface on PigRemote.  The differences between Local and Remote is in how the praudio service on PigRemote identifies itself to a VoIP caller such as PRAudio on Windows, Mac, iOS, or Android.  When the Audio Route setting is set to Remote, when the praudio service is first started it will contact a STUN server to determine its public, Internet routable, IP address.  Pignology hosts a STUN server available at stun1.pignology.net.  This STUN server is configured by default in PigRemote and on the PRAudio clients.  You’re welcome to use another STUN server if you wish.

If you are using PigRemote in Local mode at home and then leave and want to start streaming audio to your mobile device, you’ll need to flip the audio route to Remote.  There is a link on the front page of the web interface to flip the audio route easily.  See the next section, Settings, to see where that is.  Simply click this link and the system will update the settings and restart the PRAudio-S process.  If you do not flip the audio route, you will have one way audio for about 60 seconds then it will time out.

Setting

Description

Local

When Audio Routing is set to Local, no STUN resolution will occur.

Remote

When Audio Routing is set to Remote, upon starting the PRAudio-S service it will run through the STUN resolution process to determine it’s NAT type and the public IP address of the system.

Settings

Settings for PigRemote can be modified from the console/terminal or using a web browser.  The preferred method of settings manipulation is using the web interface.  PigRemote has a web server (nginx) installed that is serving web pages.  If your operating systems supports zeroconf you can surf to http://pigremote.local and enter the web username and password listed below

Web Access and Overview

When you browse to the PigRemote device, you will be prompted with for a username/password which is offered using HTTP Basic Authentication.  

NOTE: HTTP Basic Authentication is not a secure method of authentication.  The password is sent obfuscated using Base64 encoding but not encrypted.  Base64 is easily reversed.  Keep this in mind when if you forward the web server traffic in from the Internet.  

HTTP Basic Authentication Explained

Base64 Explained

Use the following information to access the web server running on PigRemote.

IP Address/Hostname

Use PRDiscover or pigremote.local

Username

admin

Password

pr73pr

When surfing to your PigRemote you’ll be presented with the following view.  The red numbered boxes overlaid on the images below are detailed in the table following the pictures.

Number

Description

1

The current version of software on your PigRemote and the latest version available for download.  See the Upgrade section for information on upgrading if these numbers don’t match.

2

The current settings.

3

A link to go to the Settings page to modify settings.  See the next set of screenshots.

4

A link to flip the audio route.  If the route is currently Local, it will flip it to Remote and restart the audio daemon, and vice versa.

5

The current status of the various processes on the system and links to restart them if needed.

6

The current uptime of the system and a link to view the top processes and CPU utilization for the processes.

7

Support information.

Web Settings

When you click the Modify Settings link you’ll be presented with the following page to modify settings.  The Submit Changes button at the bottom of the page will commit all settings on the screen to the system and restart all services.

Number

Description

1

Audio Routing: Local or Remote.  See the Audio Routing Section for information on this setting.

2

STUN Server: Used with Remote Audio Routing to determine the public IP address of your system.  This is the IP address that will be used in the SIP messages telling the remote PRAudio application which IP address to contact.

3

Pigtail Baud: This is the baud rate for /dev/ttyO1.  When the pigtail process starts it reads the settings file on disk and uses that baud rate.  This baud rate must match the baud rate of the radio connected to the RIG port on the back of PigRemote

4

Pigtail Stop Bits: The number of stop bits to send when sending data out of the ttyO1/RIG serial port.  This should be 1 for most radios.  Kenwood radios running at 4800 baud require two stop bits.

5

SRS SC Baud: This is the baud rate for the /dev/ttyO5 connection to the Digi Xbee module.  This should be left at 9600 unless you modify the configuration on the Xbee module or if you replace the included Xbee with something like the RV-XV from Microchip to get Wi-Fi to Serial connectivity.

6

PRAnnounce Ping Interval: This is how often the system will send a broadcast packet to the local network.  These are the same packets used by PRDiscover.  A high interval will result in PRDiscover, and the other Discover functions built into the various apps, to wait a long time before discovering the IP address of PigRemote.

7

Afraid DDNS URL: This is the update url the system will use to update your Afraid Dynamic DNS entry.  See the Afraid DNS section for more information.

8

Submit Changes: Clicking this button will apply all changes and restart all services.

9

Shutdown (halt) the system.  This will not turn off power, it will just shutdown all services, unmount file systems and halt.  You will have to remove power from the device and plug it back in to restart it.  To remove power both the wall wart AND USB Term connection need to be removed.

10

Reboot the system. This will happen immediately.  Keep in mind that the services don’t start until the system has been up for 30 seconds so it may be a minute before the system is ready for use.

Console Connectivity

SSH

SSH is the preferred method of connecting to the Linux operating system running on the BeagleBone.  If your computer’s operating system supports zero configuration networking as described in the Avahi Note it’s possible, and much more convenient, to SSH to ‘pigremote.local’.

Using your SSH client of choice, and knowing either the IP address of the PigRemote (or pigremote.local) connect via SSH using these settings:

IP Address/Hostname

Use PRDiscover or pigremote.local

Username

root

Password

pr73pr

Port

22

Terminal

The USB Client port on the BeagleBone is exposed through the enclosure and labeled TERM.  The supplied mini-USB cable can be connected from the TERM port to your computer.  The BeagleBone has an FTDI IC enabling your computer to recognize and install a serial port on your computer.  Once connected, any terminal application can be used to connect to the serial port and get access to the shell.  On Linux and Mac, the serial ports will most likely show up as “/dev/ttyUSB*”.  There will be two installed.  In most cases the second port listed is the one you will use to connect to the BeagleBone.  On Windows, please use Device Manager to determine the COM port the system mapped the serial port to.

Audio Level Adjustments

The quality of the audio in both directions is affected by several audio level settings.

  1. AF Setting on the Radio
  2. Line-in level on the Audio Codec
  3. Audio out volume from the Audio Codec
  4. Volume setting on the computer/mobile device that is receiving/sending the audio stream.

Each of these settings can be tweaked to ensure clean audio on the other end.  If AF is too high on the radio, then you may hear distorted audio when receiving the audio stream on your remote computer.  PigRemote ships with audio codec levels that sounded okay to the author but you might want to modify them.

Audio Codec Level Adjustments

The audio levels of the Codec within PigRemote can be manipulated using the console application, “alsamixer”.  Alsamixer is a soundcard mixer for ALSA soundcard drivers with an ncurses interface.  To start alsamixer, SSH into PigRemote and run “alsamixer”.  It is not recommended to do this from the USB Terminal connection as there’s a problem with the screen colors and format.

alsamixer running in Terminal on Mac from

an SSH session into PigRemote

Once running alsamixer, there are three different views, Playback, Capture, and All.  The Playback view allows you to change audio levels for audio played out of the OUT port.  In the Capture view you can modify the levels of audio received into the IN port.  The All view combines all settings into one view.  You can use the arrow keys right and left to switch between the different settings and up/down to rise/lower the level.  

The settings you’ll need to modify to manipulate the audio codec levels within alsamixer are:

Playback: HP DAC

Playback: PCM

Recording: PGA Capture

PigRemote Internals

A working knowledge of Linux, navigating the filesystem, editing files and executing programs is very helpful before digging into the Linux system running on PigRemote.

 

The tutorial at the following URL gives a great introduction to these topics.

http://www.ee.surrey.ac.uk/Teaching/Unix/

Filesystem

All PigRemote specific files and executables are located in /opt/PigRemote.

Directory

Description

/opt/PigRemote/bin

Executables used in the operation of PigRemote

/opt/PigRemote/etc

Settings

/opt/PigRemote/nginx

NGINX Webserver (Executable, Settings, Web Root)

Networking

The Beaglebone in the PigRemote ships with the eth0 interface configured to get its address via DHCP.  The system uses connman to manage network interfaces.  It’s possible to reconfigure this to use a static address.  You’ll need to connect to the Beaglebone with either SSH or the TERM connection to accomplish this.  

You can use the following instructions to set a static IP address on your PigRemote.  You’ll need to know some specifics of your network; the IP address you want to set, the network mask (usually 255.255.255.0, 24 bit mask), the default gateway, and the IP addresses of DNS servers you wish to use.  In the examples below I use Google’s Public DNS servers.

  1. Install connman-tests

This step may or may not be needed based on when your PigRemote was delivered.  You can install the connman-test package with the command “opkg install connman-tests”.  It will not damage anything to run this command if it’s not needed.

Example Output:

root@pigremote:/etc/network# opkg install connman-tests

Installing connman-tests (0.79-r3) to root...

Downloading http://eu.feeds.angstrom-distribution.org/feeds/v2012.05/ipk/eglibc/armv7a/base/connman-tests_0.79-r3_armv7a.ipk.

Installing python-dbus (1.0.0-r1) to root...

Downloading http://eu.feeds.angstrom-distribution.org/feeds/v2012.05/ipk/eglibc/armv7a/python/python-dbus_1.0.0-r1_armv7a.ipk.

Installing libdbus-glib-1-2 (0.98-r1) to root...

Downloading http://eu.feeds.angstrom-distribution.org/feeds/v2012.05/ipk/eglibc/armv7a/base/libdbus-glib-1-2_0.98-r1_armv7a.ipk.

Configuring libdbus-glib-1-2.

Configuring python-dbus.

Configuring connman-tests.

root@pigremote:/etc/network#

  1. Determine adapter service name

We need to determine the service name connman is using to manipulate the eth0 interface.  This name will vary for each system out there so this step is critical.  Do not copy paste the commands in the subsequent steps into your PR as it will not work.  In the example below my service name is “ethernet_0018318d9799_cable”.

Switch into /usr/lib/connman/tests directory and run get-services.  The highlighted text below is the name we need.

root@pigremote:/# cd /usr/lib/connman/test

root@pigremote:/usr/lib/connman/test# ./get-services

[ /net/connman/service/ethernet_0018318d9799_cable ]

        IPv6.Configuration = { Method=auto Privacy=disabled }

        AutoConnect = false

        Name = Wired

        Nameservers = [ 208.67.222.222 208.67.220.220 ]

        Provider = { }

        Favorite = true

        Domains.Configuration = [ ]

        State = online

        Proxy = { Method=direct }

        Nameservers.Configuration = [ ]

        IPv4 = { Netmask=255.255.255.0 Gateway=10.1.1.1 Method=dhcp Address=10.1.1.88 }

        IPv6 = { Privacy=disabled PrefixLength=@ Method=auto Address=2001:470:82b2:0:218:31ff:fe8d:9799 }

        Domains = [ screammy.name ]

        Ethernet = { Interface=eth0 MTU=1500 Method=auto Address=00:18:31:8D:97:99 }

        Security = [ ]

        Proxy.Configuration = { }

        Type = ethernet

        Immutable = false

    IPv4.Configuration = { Method=dhcp }

  1. Configure Static IP

Using the adapter name we retrieved in Step 2, we can reconfigure the network interface to have a static IP.  This command takes effect immediately so you’ll need to log back into the PR via SSH after you hit the enter key.

We’ll use the “set-ipv4-method” command to set the method to manual and set the static IP.

The syntax of the command is:

./set-ipv4-method <service> [off|dhcp|manual <address> [netmask] [gateway]]

manual: the method we’ll use

<address>: The static IP address we want to assign.

[netmask]: The network mask our network uses, most likely 255.255.255.0.

[gateway]: The default gateway for our network.

root@pigremote:/# cd /usr/lib/connman/test

root@pigremote:/usr/lib/connman/test# ./set-ipv4-method ethernet_0018318d9799_cable manual 10.1.1.44 255.255.255.0 10.1.1.1

At this point we’ll need to log back into the PR with the new IP address.

  1. Configure DNS Services

Once logged back into the system, you’ll need to set your DNS servers for name resolution since we aren’t receiving that information from DHCP any longer.

The command to set the DNS server is “set-nameservers” also in the /usr/lib/connman/test directory.

The syntax of the command is:

./set-nameservers <service> [nameserver*]

In the example below I’m using Google’s Public DNS servers with addresses 8.8.8.8 and 8.8.4.4.

root@pigremote:/# cd /usr/lib/connman/test

root@pigremote:/usr/lib/connman/test# ./set-nameservers ethernet_0018318d9799_cable 8.8.8.8 8.8.4.4

PigRemote Software/Services

There are four primary services running on the PigRemote.

NOTE: These services start 30 seconds after the system is booted.  This is to allow the system to get an IP address using DHCP.

Service

Description

praudio-s

The VoIP server.

pigtail

The TCP/Serial proxy for Rig Control.

prannounce

The daemon that announces the PigRemote to the local network.

nginx

The web server running on PigRemote.

praudio-s

The “praudio-s” application is the bi-directional streaming audio application that enables you to hear and talk to your radio.  It is a standards based VoIP client that uses SIP for signalling and RTP for media transport.  The codec in use is Speex (wideband/16000).

PRaudio-S is based on the wonderful open source VoIP library PJSIP.

pigtail

The pigtail program is a TCP to serial proxy.  When started it creates a TCP listener on TCP port 7373.  Any data that is received in the payload of an IP packet is immediately sent out the serial port.  The pigtail process is tied to serial port /dev/ttyO1.  The server is managed by select() and has a maximum number of connections of 10 so it’s possible to have multiple clients connect at the same time and talk to the serial port.

When data is received on the serial port it is not immediately sent back to connected clients.  The pigtail process will hold onto data for 500ms before sending it.  This 500ms window is used to buffer serial data to ease parsing by connected applications as well as to save bandwidth by reducing IP/TCP overhead caused by sending a packet with a few bytes payload.

When multiple clients are connected at the same time, they will all see the same serial data.  For example, if two clients, A and B, have an established connection to the pigtail process and A sends a command to the radio connected to ttyO1, when the response from the radio is received by ttyO1, pigtail will send the serial data received back to both clients A and B.

Pigtail Settings

There are two settings currently available that the pigtail process relies on.  UART Baud and Stop bits.  The Pigtail Baud set within settings must match the baud rate of the serial port on the radio.

prannouce

The prannounce application is used to broadcast the device’s existance on the network.  Since there is no quick user interface other than the terminal or SSH, prannonce is used to ease the discovery of the PigRemote’s IP address.  The PRDiscover applications on the various platforms listen for these broadcast messages and then display the IP address the broadcast is heard from.

PRAnnounce is a simple datagram sender.  When started it will parse the pigremote.settings file in /opt/PigRemote/etc for the amount of time it should wait between sending pings.  It will then send a ping and wait for that period of time and loop.  The datagrams are send to the IP broadcast address 255.255.255.255 with a destination port of 7373.  The payload of the datagram is “pigremote ping”.  

The PRDiscover applications listen on UDP port 7373 and since the packet is broadcast, all hosts on the same network will hear it.

nginx

The webserver in PigRemote is nginx.  The entire installation of nginx is in /opt/PigRemote/nginx.  Web pages are served from /opt/PigRemote/nginx/html.  nginx does not have native support for PHP so PHP-FPM is used as a proxy for PHP webpages.

Other Software in /opt/PigRemote/bin

There are several other executables in /opt/PigRemote/bin.  They are described in the following table.

Executable

Description

TODO

Audio

TODO - ALSA SoC

Other Services

cron

Scheduled program executions are possible through cron.  The cron package in use in PigRemote is named “cronie” and the package it is installed with is “cronie-systemd”.

SSH

PigRemote runs OpenSSH for secure shell connectivity.  SSH provides an encrypted communication channel between your computer and the Linux system running on the BeagleBone.  See the Software section for SSH client recommendations.

NTP

A Network Time Protocol is installed and runs every 30 minutes to ensure the system time is accurate.  The timezone is set to GMT.

systemd

PigRemote uses systemd for management of most services.  Systemd starts on boot and executes all startup services, including the PigRemote services like pigtail and praudio-s.  The command “systemctl” is used to start and stop services manually, for example “systemctl stop pigtail” will stop the pigtail service and stop listening for pigtail connections from remote devices.

systemd tutorial

Afraid DDNS Updater

PigRemote contains a custom program called “afraid_ddns_updater”.  This programs job is to send a message to the Afraid.org Dynamic DNS service to update your dynamic hostname entry.  The program runs, by default, every four hours via cron however, as shipped, it is not configured.  You will need to set “afraid_url” in Settings via the web interface for it to start working.  The program will simply exit after determining that the afraid_url setting is not configured.  The Dynamic DNS using Afraid DNS Appendix has information on setting up an account at afraid.org and adding a subdomain entry.  Once you have a subdomain created you can get the URL to enter into Settings by clicking on Dynamic DNS on the left and then copying the link address in Direct Link as shown in the following pictures.  That copied link should be set in Settings via the web interface.

Click Dynamic DNS to view Update URLs

Copy/Paste the Direct URL into Settings on the PigRemote Web Interface

Troubleshooting

Serial Control

If you can’t control your radio through PigRemote.  Verify the baud rates match on both sides. The PigRemote ships with a baud rate of 38400.  The radio should match this baud rate.  If you’re using an Elecraft radio you might need to reboot the radio after changing the baud to clear the internal serial receive buffer.

Audio

If you find that you have about 30 seconds of audio when running remotely and then it dies, check your router’s configuration for an option for SIP ALG and disable it.

Mac Audio

There are several common problems with audio not working on the Mac.

  1. Check System Preferences->Sound that input and output are pointing to the correct device.
  2. Check that you are not sending audio via AirPlay to an Apple TV or Airport Express
  3. If you have LogMeIn installed, it’s audio driver breaks PRAudio for some reason.
  4. If you run PRAudio and click the PRAudio menu item at the top of the screen, there’s a Debug item.  Click that before clicking connect and send that to support@pignology.net for help.

PigRemote Software Upgrade

TODO

Appendices

A: com0com Windows

Website: http://com0com.sourceforge.net

Download the latest versions of both com0com(...-unsigned...) and com2tcp(386) from the following URL. http://sourceforge.net/projects/com0com/files/?source=navbar

Extract all files from both zip packages and install com0com first.  

Run setup.exe from the com0com directory.  

NOTE: Windows 8 users, you need to disable driver signature enforcement following these steps:

Disable driver signature check:

http://forums.mydigitallife.info/threads/38041-How-to-forever-disable-driver-signature-enforcement-in-Windows-8

1. From the Metro Start Screen, open Settings (move your mouse to the bottom-right-corner of the screen and wait for the pop-out bar to appear, then click the Gear icon).
2. Click ‘ChangePC Settings’ at the bottom right corner.
3. Click ‘General’.
4. Scroll down, and click ‘Restart now’ under ‘Advanced startup’.
5. Click ‘Troubleshoot’.
6. Click ‘Advanced Options’
7. Click ‘Windows Startup Settings’
8. Click Restart.

After the installation has completed there’s a checkbox option to start the Setup program.  By default, COM3 and COM4 are tied together as well as two virtual serial ports named CNCA0 and CNCB0.  If COM3 and/or COM4 are in use it may assign a different set of numbers.  Run the Setup application to verify the names of the serial ports tied together.  We’ll need this information for com2tcp.

B. com2tcp Windows

com2tcp is a tcp to serial port bridge.  com2tcp.exe is packaged in a zip file along with a README.txt and can be downloaded from the same location as com0com (Appendix A).  com2tcp relies on com0com to provide the virtual serial ports needed to make com2tcp work.  Once you have download com2tcp, extract the contents.  You will need to open a command prompt to run com2tcp.

Open a command prompt window and navigate to the directory where you saved com2tcp.

You can start com2tcp to connect to your PigRemote device with the following command:

com2tcp.exe --ignore-dsr --baud 38400 \\.\COM4 <YOUR_PR_IP_ADDRESS> 7373

YOUR_PR_IP_ADDRESS should be replaced with the IP address of your PigRemote device.  Keep in mind that this IP address might be the public IP address of your home router if you are not on the same network as the PR device.  You may want to put this into a batch file (.bat) so you can double-click to start the com2tcp service.

When the command above is executed you should see the following.

C:\Users\nwgar_000\Downloads\com2tcp-1.3.0.0-386>com2tcp.exe --ignore-dsr --baud 38400 \\.\COM4 <YOUR_PR_IP_ADDRESS> 7373

OpenC0C("\\.\COM4", baud=38400, data=8, parity=no, stop=1) - OK

DSR is ON

WaitComReady() - OK

The “WaitComRead() - OK” tells us that it’s waiting for the COM port to be opened.  In this case it would be COM3, which is bridged to COM4.  You can test this connectivity by opening a terminal emulator, such as TeraTerm, and opening COM3.  When the COM port is opened, you will receive output in the command prompt window running com2tcp.

C:\Users\nwgar_000\Downloads\com2tcp-1.3.0.0-386>com2tcp.exe --ignore-dsr --baud 38400 \\.\COM4 <PR_IP> 7373

OpenC0C("\\.\COM4", baud=38400, data=8, parity=no, stop=1) - OK

DSR is ON

WaitComReady() - OK

Connect("<PR_IP>", "7373") - OK

InOut() START

DSR is ON

DSR is OFF

You can now start up your rig control software of choice and connect it to COM3.  com2tcp will intiate a connection back to the PigRemote and start proxying the data to/from your radio, PigRemote and rig control software.

When the COM port is closed, the TCP connection is terminated.

<...>

Connect("<PR_IP>", "7373") - OK

InOut() START

DSR is ON

DSR is OFF

InOut() - STOP

Disconnect() - OK

C. socat Linux

You can use socat and pseudo terminals in Linux to pipe rig control commands over the network to PigRemote.  Most Linux distributions offer socat as an installable package.  Check your preferred Linux distribution’s package management system to see if it’s available.  If not, you can install from source.  The source is available for download here.

Once installed, you can link a pseudo terminal to PigRemote with this command:

socat -d -d pty,raw,echo=0 tcp:PIGREMOTE_IP:7373

The -d -d enables debug so you can tell which pty is allocated.  Here’s an example:

root@usv1:~# socat -d -d pty,raw,echo=0 tcp:10.1.1.100:7373

2013/05/20 01:14:45 socat[4646] N PTY is /dev/pts/4

2013/05/20 01:14:45 socat[4646] N opening connection to AF=2 10.1.1.100:7373

2013/05/20 01:14:45 socat[4646] N successfully connected from local address AF=2 10.1.1.253:46464

2013/05/20 01:14:45 socat[4646] N starting data transfer loop with FDs [3,3] and [5,5]

From the output above we can see that socat allocated /dev/pts/4 for the connection.  You can now point your rig control software to /dev/pts/4 in the serial port configuration section.  You can press Ctrl-C to kill socat.

D. Dynamic DNS using Afraid DNS

The following screenshots will walk you through creating an account at afraid.org and adding a subdomain entry for your pigremote.

Surf to http://afraid.org and Click Main Menu

Click “Setup an account here”

Fill in the form and click “send activation email”

Check your email and click the verification link.

Return to http://afraid.org click Main Menu and log in.

Click Subdomains

Click Add

Fill in the form and click “Save!”

The Subdomain field will be the hostname you’re registering.

In this example, my dynamic DNS entry will be:

the_name_you_want_to_call_it.mooo.com

There are many thousands of options for the domain name.

The destination field will be populated with the external IP address

of the system you’re using to register this domain name.

Once saved, it will show up in the subdomains list.

Click Dynamic DNS on the left.

Right click on “Direct URL” and copy the link address.

Surf to your PigRemote and click “Modify Settings”.

Paste the URL into the Afraid DDNS URL field and click “Submit Changes”.

E. Schematics

PigRemote Motherboard

PigRemote Audio Codec

BeableBone

The BeagleBone schematics can be downloaded from here:

http://beagleboard.org/hardware/design

Revision History

Date

Version

Author

Reason for Change

20130321-Present

0.1

N3WG

Initial Draft in Progress

20130517

1.0

N3WG

First Release

20130519

1.0A

N3WG

Added information on how to use HamLog on iOS with PigRemote

20130522

1.0B

N3WG

Added Will PR Work for Me section

Added info on the KernelPro Virtual Serial Port driver

20130610

1.0C

N3WG

Added links to control software