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” “`