{"id":14234,"date":"2017-02-14T20:41:37","date_gmt":"2017-02-15T03:41:37","guid":{"rendered":"http:\/\/ainslies.net\/?p=14234"},"modified":"2017-02-14T21:03:58","modified_gmt":"2017-02-15T04:03:58","slug":"chip-tnc","status":"publish","type":"post","link":"https:\/\/ainslies.net\/?p=14234","title":{"rendered":"CHIP TNC"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-14256\" src=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC-1-213x300.jpg\" alt=\"\" width=\"213\" height=\"300\" srcset=\"https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC-1-213x300.jpg 213w, https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC-1.jpg 305w\" sizes=\"auto, (max-width: 213px) 100vw, 213px\" \/><\/a>I&#8217;ve had a <a href=\"http:\/\/www.mobilinkd.com\">mobilinkd<\/a> for a couple of years now and I like the small form factor and the mobility of the device. I&#8217;ve always wanted it to have some additional features such as a connected mode ( either USB or serial ) and the ability to track without the need for a cell phone. Wifi would also be a preferred wireless interface.<\/p>\n<p>I tried using the AP510 to fill some of these features but it&#8217;s under powered and prone to burning out it&#8217;s LDO.<\/p>\n<p>At the urging of a friend, <a href=\"http:\/\/www.beer.org\/blog\/\">Herb<\/a>, I sat down and designed one that fit our needs.<\/p>\n<p><strong>The hardware feature set we decided on<\/strong><\/p>\n<ul>\n<li>Arm SOC module running Linux for TNC<\/li>\n<li>Audio\/PTT interface for Yaesu and Kenwood\/BaoFeng<\/li>\n<li>1W RF module ( could be VHF or UHF )<\/li>\n<li>GPS expansion port<\/li>\n<li>XBee header<\/li>\n<\/ul>\n<p>For the ARM module we chose the <a href=\"https:\/\/docs.getchip.com\/chip.html\">C.H.I.P.<\/a> by Next Thing Co. I has a nice small form factor and the site claims you can order 1 &#8211; 1 million with very little lead time ( it turns out they are limiting you to 5 at a time right now ). A couple of other nice features of the module are WiFi, bluetooth, Lipo charger and 2 USB ports.<\/p>\n<p>I used the same audio\/PTT interface as the mobilinkd so I could reuse the audio cables.<\/p>\n<p>We chose the <a href=\"http:\/\/www.sunrisedigit.com\/en\/Show.asp?id=34\">SR FRS 1W<\/a> for the on board RF interface. It&#8217;s got a nice small form factor but there are some issues with it&#8217;s PTT that we are still debugging.<\/p>\n<p>The GPS expansion port is just a slot in the board with serial RX\/TX, i2c, 3V3, 5V and GND. I&#8217;ve looked at a few GPS modules but haven&#8217;t started designing anything yet. Part of the reason I&#8217;m holding off is that the side of the board I wanted to put the expansion on would interfere with the USB ports from the CHIP. Until I design a GPS interface module I&#8217;m just using a small <a href=\"http:\/\/www.gpscentral.ca\/products\/usglobalsat\/usb-gps-ND-105C.html\">ND-105 MicroUSB adapter<\/a>.<\/p>\n<p>I chose the XBee header because there are a number of boards that are already designed for that form factor that support a large number of RF protocols. Now, because of the issues with the GPS expansion slot I might just design a GPS module to plug in there.<\/p>\n<p>Running the audio interface and the GPS dongle from a 2500mAH battery the board can run for about 4 hours. I need to do some optimisation to try and get that into the 8 hours range.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_front-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-14257\" src=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_front-1-174x300.jpg\" alt=\"\" width=\"174\" height=\"300\" srcset=\"https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_front-1-174x300.jpg 174w, https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_front-1.jpg 287w\" sizes=\"auto, (max-width: 174px) 100vw, 174px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_back-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-14258 alignright\" src=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_back-1-173x300.jpg\" alt=\"\" width=\"173\" height=\"300\" srcset=\"https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_back-1-173x300.jpg 173w, https:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_PCB_back-1.jpg 338w\" sizes=\"auto, (max-width: 173px) 100vw, 173px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Software features<\/strong><\/p>\n<ul>\n<li>Debian &#8211; standard CHIP install<\/li>\n<li><a href=\"https:\/\/github.com\/nytowl\/direwolf\/tree\/multi_net_client\">Direwolf<\/a> &#8211; so the device can function as a TNC\/digipeater\/X25 modem<\/li>\n<li>Lighttpd webserver for configuration and UI<\/li>\n<li>Host AP and wifi client simultaneously<\/li>\n<li>APRX for viscous digipeating<\/li>\n<\/ul>\n<p><a href=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_settings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-14250\" src=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_settings.png\" width=\"300\" height=\"293\" \/><\/a> <a href=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_map.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-14251\" src=\"http:\/\/ainslies.net\/wp-content\/uploads\/2017\/02\/ChipTNC_map-300x283.png\" alt=\"\" width=\"300\" height=\"283\" \/><\/a>I had to make some modifications to Direwolf to get it to handle multiple TCPIP clients, as APRX, the web ui and a message daemon all share Direwolf.<\/p>\n<p>The UI is written in python using the web.py framework and currently supports these features.<\/p>\n<ul>\n<li>List of recent APRS beacons<\/li>\n<li>Settings for APRX, Direwolf and PTT<\/li>\n<li>Send and receive APRS messages<\/li>\n<li>Maps for to show beacon locations<\/li>\n<li>Display Direwolf logs for debugging<\/li>\n<\/ul>\n<p>These all need cleaning up but for the most part are functional.<\/p>\n<p>For the message interface a message daemon is needed to store messages for the interface and handle message ACKs. It attempts to re-transmit the message 3 times or until it is properly ACKed. The UI can also re-send failed messages.<\/p>\n<p>I want to add a feature that failed messages will be re-transmitted when the messaged receives a beacon from the intended recipient.<\/p>\n<p><strong>Moving forward<\/strong><\/p>\n<p>The boards arrived a week ago and apart from a few minor difficulties ( wrong parts, reversed RF module foot prints , you know the usual ) are working working well. So a second rev will be required. But a new rev means new features , right ?<\/p>\n<p><strong><br \/>\nREV2 features <\/strong><\/p>\n<ul>\n<li>Concurrent RF module and audio interface. The unit could be across band digipeater or repeater<\/li>\n<li>LED TX\/RX indicator<\/li>\n<li>Squelch tied to an interrupt for low power modes<\/li>\n<li><a href=\"https:\/\/docs.getchip.com\/chip_pro.html\">CHIPPro<\/a> &#8211; <a href=\"https:\/\/upverter.com\/Akkea\/4c1305fcc4cef5df\/ChipPRO-adapter\/\">adapter<\/a>\u00a0to mitigate CHIP supply issues<\/li>\n<\/ul>\n<p>The code is all hosted on gitlab right now in a private repo but I&#8217;ll probably open that up if there are any others interested in helping out.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; I&#8217;ve had a mobilinkd for a couple of years now and I like the small form factor and the mobility of the device. I&#8217;ve always wanted it to have some additional features such as a connected mode ( either &hellip; <a href=\"https:\/\/ainslies.net\/?p=14234\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14234","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/posts\/14234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ainslies.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14234"}],"version-history":[{"count":16,"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/posts\/14234\/revisions"}],"predecessor-version":[{"id":14259,"href":"https:\/\/ainslies.net\/index.php?rest_route=\/wp\/v2\/posts\/14234\/revisions\/14259"}],"wp:attachment":[{"href":"https:\/\/ainslies.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ainslies.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ainslies.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}