Peak
<img src=“https://badge.fury.io/rb/peak.svg” alt=“Gem Version” /> <img src=“http://img.shields.io/badge/yard-docs-blue.svg” />
- Author
-
Jeffrey Phillips Freeman, WI2ARD ([email protected])
- Copyright
-
Copyright © 2016 - present Syncleus, Inc.
Peak is a full suite APRS client and reference implementation for the APEX protocol. APEX is a next generation APRS based protocol. It is a full-feature application for digipeating, compatible with most AX.25 KISS TNC devices, and utilizing the full APEX stack.
For more information on the project please check out the project’s home page.
Peak is Free and Open-source software under Apache Software License v2
Installation
Install the application using gem.
gem install peak
Running the app
Once installed copy the peak.conf.example file over to peak.conf in the /etc directory, then edit the file and replace it with your details. Next just run the application with the following command.
peak run
There isn’t much to the application right now, the application is still pre-release so more features and configuration options should be added soon. For now the application will display all packets read in and send out a status, id, and beacon packet every 10 minutes.
This is Free software: Apache License v2
Development
After checking out the repo, run bin/setup
to install dependencies. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in app_info.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Consistent ports
It is important that the ports associated with the TNCs be consistent between boots. To do this first get the info using ‘lsusb -v`, for example you might get the following:
“‘ Bus 001 Device 005: ID 0403:d011 Future Technology Devices International, Ltd SCS Position-Tracker/TNC Couldn’t open device, some information will be missing Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0xd011 SCS Position-Tracker/TNC
bcdDevice 6.00
iManufacturer 1 SCS
iProduct 2 SCS Tracker / DSP TNC
iSerial 3 PT5690Y
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0020
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P Couldn’t open device, some information will be missing Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x067b Prolific Technology, Inc.
idProduct 0x2303 PL2303 Serial Port / Mobile Action MA-8910P
bcdDevice 3.00
iManufacturer 1 Prolific Technology Inc.
iProduct 2 USB-Serial Controller
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
“‘
Then add the appropriate rules under ‘/etc/udev/` to ensure they get a special static symlink. For example for the above output the udev rule would look as follows.
“‘ SUBSYSTEM==“tty”, ATTRSidVendor==“067b”, ATTRSidProduct==“2303”, SYMLINK+=“ttyUSB-kenwood” SUBSYSTEM==“tty”, ATTRSidVendor==“0403”, ATTRSidProduct==“d011”, ATTRSserial==“PT5690Y”, SYMLINK+=“ttyUSB-scs” “`