Arrow – TNC w/ BLE and 2M Radio

I’ve been working on Arrow for a while now, but I think it’s time I put it to rest for a bit and write down what has been completed.

I’ve learned lots of fun things from this project (and some horrible things…like AX.25 and the FCC limitations on the 2M band’s data rates!) and I hope someone in the future can make use of it or would be willing to work with me to encourage further development!

What is It?

Currently, Arrow is a full fledged TNC which means the following KISS parameters are supported: TX Delay, TX Tail (why is this even a thiiiiing?!?), Slot Time, and Persistence with built-in BLE connectivity and a 2M radio which is frequency agile. In addition to AFSK for AX.25, the radio supports FSK, GFSK, MFSK, and OOK along with M-ary options.

What is a TNC?

TNC for the uninformed stands for Terminal Node Controller in the amateur radio space….Yeah, I didn’t get much from that the first time I heard it either. In fact, I still don’t. I recommend reading the Wikipedia page for a primer.

In short, a TNC is a modem which was used in the early days of packet radio (actually lives on today mainly in APRS) to send digital data from your computer over audio links. TNCs were fantastic because they allow anyone with a radio capable of sending audio (the most common kind when TNCs were all the rage) to send digital data. You can think of it as the cooler cousin of your 56K dial-up modem, but typically way slower.

TNCs were originally used around about the same time the internet was in it’s infancy. The infrastructure and cost at the time for the internet was substantial; so instead amateur hobbyists would setup internet-like networks using what amounts to their walkie talkies, their home computer, and I hope you can guess it at this point – yes, their TNC.

Why did I do it? 

I want to explore and eventually create a new standard for packet radio in the Amatuer space which could provide voice, and data. While I’m still far from the dream I knew the solution would need the following:

  1. Use modern digital modulation techniques for better BER at low SNR.
  2. Reverse compatibility or support of AX.25 for APRS.
  3. Cheap to drive adoption
  4. Built-In Radio and Frequency agile

Current Specifications and Capabilities 


  • TI (CC1200) RF Transceiver IC with Balun + Matching Network for 2M (no PA at the moment)
  • ESP32
  • 18650 cell w/ built-in charger
  • Micro-USB connection for charging and UART access for debugging
  • JTAG port
  • Status LEDs
    • TX
    • RX
    • Battery Charging
    • Battery Charged


Arrow uses the KISS protocol over the Bluetooth SPP profile. This means when Arrow is connected to a computer, tablet or phone it presents itself as a virtual serial port. The KISS protocol is one of the standardized methods used to communicate and configure TNCs; therefore, it is well supported by existing programs (LinBPQ), apps (APRSDroid), and kissattach (Linux’s ax25-tools).

The uC on-board (ESP32) directly samples data from the CC1200 to decode FM AFSK BELL202 utilized for the standard 1200bps AX.25 used for APRS. Here you can see a video using two arrows to send a ping request over AX.25.

This combination provides what amounts to a plug-and-play solution for linking Arrow into existing Amatuer Radio solutions. The combination does have some limitations I hope to address (see below), but I believe hits most of my goals listed above.


The current implementation has the following limitations:

  1. The CC1200 does not support LoRa or PSK.
  2. The output power is very low (+15dBm) and a PA must be added for this to be viable solutions. Please reach out to me if you’re willing to help.
  3. Bluetooth SPP is not supported by iOS, but luckily the code can be adjusted to use a BLE GATT/GAP setup instead.

Learn More

Here is a presentation I’ve done on Arrow

Where can I get one?

I don’t believe the current solution is viable with its low output power. It does work well as an APRS receiver. If you’re interested in purchasing one feel free to contact me via this forum. The code and electrical design files can be found here. Hack away.

IdeasX – System Architecture

This is old material generated around 2016-2017. I’m posting here to archive the material.

The IdeasX system consists of 3 categories of devices:

IdeasX connected
A few examples of the devices types in the IdeasX system.

Encoder – Encoders are sensor equipped devices designed to interpret any feedback an individual can provide with the disability. A few examples of feedback is limb movement, EMG, EEG, and respiration. As a device which will basically “live” with the user, encoders need to be light, portable, wireless, and have a long battery life. In addition, change is hard so encoders have to be a breeze to configure and setup.

Current development state of a custom Wi-Fi based encoder aptly named “the module.” The device is charging denoted by the red light, and connected to the system denoted by the pulsating blue light.

Current development is focusing on detecting limb movement through the industry standard sensing method (gigantic switches, seriously), and a 3 axis accelerometer / 3 axis gyroscope IMU. IMU stands for inertial measurement unit. The information detected by the encoders is then processed locally and or streamed directly to the IdeasX system through Wi-Fi. Future devices may utilize lower power technology such as 802.15 or BLE.

Actuator – Actuators are devices which can be controlled by encoders. Actuators can be any device which can connect to the IdeasX system and has a list of commands for actuating that device. (Yes, you can make an encoder an actuator.)

There is quite a few actuators underdevelopment.

Workstation Client – A piece of software which allows encoders to send keystrokes, touches, and mouse clicks to any computer / smart device installed. It is specifically designed to interface with existing accessibility software. It also provides dialogs for automated pairing of encoders and actuators, lists of the active encoders in an institution / network, and dialogs for configuring encoders in the network.

iRobot – The iRobot Roomba is an amazing piece of technology which can do a lot more good than just cleaning your floors! iRobot provides a low-cost robotics platform called the Create based on the latest commercial Roomba. The Create provides access to the robot’s sensors and routines through a interface port. Undergraduate Temple students are currently designing a low-cost, plug and play kit which enables the Create to connect to the IdeasX system permitting the robot to be remotely controlled. This will provide opportunities to chair bounded students and users to interact spatially  in the world.

Wi-Fi Outlet – One powerful teaching tool utilized by therapists is called the Power Link 4 which is basically an adjustable relay. The Power Link allows a binary sensor to active a wall-powered device. The Power Link can be setup to be latching, or latched for a period of time. The tool is often used to help formulate a cause and reaction relationship between the sensor and world for the user (Hey! I pressed this and this wall lamp turned on? This is cool.) Unfortunately, despite being a rather simplistic device the Power Link retails for over 200 US dollars.  Luckily, for IdeasX there is already an abundance of devices which can emulate the role of the Power Link and more, are cheaper, and the only thing that stands in way is software!

Supervisor – Supervisors are devices loaded with management software for the IdeasX system. The software can exist as an app for smart devices, a web interface, or a native application of OSX, Windows and Linux. The role of software is to permit therapist to configure every aspect of the system and the devices in it.

Briefly, the purpose of the Supervisors include the following:

  • Listing active Encoders and Actuators in the IdeasX System
  • Pairing Encoders with Actuators
  • Storing Wi-Fi and Network parameters in Encoders and Actuators
  • Modification of Encoder sensitivity and Actuator functionality
  • Configuring Encoders for gesture recognition

Development thus far was originally a WX application for the Workstation Client. We were on a horrible deadline and the developer really worked magic to make it happen.

Okay. Okay. You can laugh, but what we did was pretty amazing for our original timeline.

I’ve recently been porting this to Qt which, if I may say so myself, looks amazingly less horrible, but still a bit horrible.


IdeasX – What is it?

This is old material I originally wrote in 2017. I’m re-posting here to archive.


IdeasX is a system developed to disrupt the current state of assistive technology for individuals with severe motor disabilities. Leveraging IoT technology and software, IdeasX aims to provide a robust method of connecting individuals via wireless sensors to a plethora of devices: from desktops running industry standard assistive software to wirelessly enabled iRobots fostering participation in gym classes. 

Whatever you do will be insignificant, but it is highly important that you do it. -Gandhi


Understanding the objectives of IdeasX requires a background of the problems similar assistive technology is attempting to solve, and the current solution set developed by industry.

The purpose of this technology is actually pretty simple: to provide an avenue for individuals with nearly zero vocal capabilities and an extremely limited range of motion to interact with world. Fundamentally, this technology is an interpreter except instead of translating languages we are translating a diminished range of motion into something a computer can understand.

This type of technology is not new and has been around for decades. Unfortunately, it is rather cost prohibitive, archaic, and clunky due to a lack of market competition. The U.S. market for assistive technology (targeted towards individuals with severe motor disabilities and/or on the autistic spectrum) is currently dominated by two entities: Don Johnston and AbleNet.

Don Johnson

Don Johnson develops software products for computer and mobile devices specifically designed to be maneuverable with limited user input. Remember, these are individuals which do not have the ability to navigate the digital realm with a mouse and keyboard; therefore, the software has to be usable with as little input diversity as one to two keystrokes. Don Johnson only sells a single hardware product called the Switch Interface Pro 6 (I like to call it SWIP6) which retails around 100 US dollars.

Switch Interface Pro 5.0. The confusing bit is the SWIP6 doesn’t have six inputs.

The SWIP6 is basically a glorified USB keyboard with 5  jacks. The jacks connect to sensors that users can activate. When a sensor is activated the SWIP6 sends a keystroke to the computer, and if the computer is loaded with Don Johnston software, this system is enough for a decent user experience. The sensors can range from something as complex as a blink activated switch to a simple button.

swip6 interface
Example setup of SWIP6 with various types of sensors. Note, you can see the five mono jacks on the bottom of the SWIP6. That is also my computer <3.


AbleNet sells hardware. They produce sensors which can used with the SWIP6, and therefore Don Johnson software, but also other devices which the sensors can directly plug into and manipulate. Combined with the SWIP6, the goods they sell can do some pretty amazing things.

Here are few other products in their line up.

ablenet products
Various AbleNet pressure activated sensors (switches). Top left, simple wired pushbutton switch. Top right,  PowerLink 4 mechanism which can be controlled by external sensors. Bottom left, 900MHz wireless pushbutton switch. Button right, BLE wireless pushbutton switch.
blow switchs
AbleNet pneumatically activated switches. These sensors are activated by blowing into the tube.

As you can see from the samples of AbleNet’s product line above, despite being produced for a wicked good cause, the sensors are rather ehhh…retro in their style, functionality, and pricing? $230 will give you the Jelly Beamer wireless pushbutton switch.  If you would like to use the wireless switch with Don Johnson’s software, you’ll still need the SWIP6 which is another $100. You want to use this switch with a cellphone? If you have an iPhone you can purchase the switch adapter for $190. Don’t have an iPhone? Well, you’re out of luck, but they do offer a BLE capable switch for $185. AbleNet has some great ideas, but I feel their products are bit unpolished, dated, and are too rigid in functionality..

Grand Issue

Despite my complaints (I can complain about anything), AbleNet is doing an honest job and delivering what the market expects…otherwise they wouldn’t be in business and stuff. Nevertheless, the lack of competition has stalled the market. User’s don’t know what modern technology has to offer, and current manufactures have little incentive to adjust profit margins and take the risk of funding new innovative solutions…and honestly, a lot has happened since the Jelly Beamer was developed. Technology has improved. Smart phones are now available that are infinitely more capable than the Jelly Beamer for

DISCLAIMER: Okay, I don’t actually know the amount assistive technology manufactures are making. It might be so little, that 230 USD is minimum feasible amount they can sell the good for and offer support.


The aim of IdeasX is to advance assistive technology into the 21st century through development of an open platform for connected assistive devices which can be deployed in domestic and institutional settings. Inexpensive, adaptive, multi-functional devices to populate the platform, and an inclusive attitude which will hopefully foster competition in the assistive technology market.


Wires are inconvenient for everyone. Devices developed for IdeasX will included wireless functionality as a standard and not a $100 option, but don’t worry my tin-foil-hatted-new-fangled-device-with-batteries-that-always-die-friends, the devices currently under development support encryption and will include the ability to be wired also.

IdeasX connected
Remind me to never make a diagram again because WordPress won’t let this picture expand unless I purchase lightbox? (Right click on the image and view in a new tab to see it expanded. Sorry, I’m looking for a better solution.)

IdeasX devices will connect to the IdeasX system (cough, cough cloud) through Wi-Fi. Wi-Fi is ubiquitous among computers and mobile devices. If you’re under financial strain you’re more likely to have a mobile device instead of a desktop computer. Its big to be able to do both. Supporting Wi-Fi also allows devices in the IdeasX system to connect to any device in the same network: wired or wireless. This allows us to connect to any networked computer without modifying an institution’s existing infrastructure and more importantly, any networked device can now be controlled by a student’s feedback. This is a fundamental shift. 


Module 45 20180820 (Annotations)
Projection of Solidworks model for 1st device developed specifically for IdeasX. This was actually created!

One of my largest gripes with existing solutions is there lack of adaptability. Everything has been modularized via hardware to the point of insanity, and nothing is built to work for the user. IdeasX devices currently under development all support OTA firmware updates. This way if the therapist thinks of a new awesome way to utilize the existing hardware, we can push a software update and boom! The 1st device under development which will detect feedback from users (we call them encoders) will feature ports to be backward compatible with existing technology sold by AbleNet, but also an IMU to detect motion, tilt, and position directly.

Module V0.3.1 Header
That little guy on the left above that box tan boxy thingy is the LSM6DS3 3 axis accelerometer and 3 axis gyroscope. I like to call it the IMU.


Institutions dedicated to students with C.P. such as H.M.S. and John G. Leach school support a large number of students, and will likely have an angry storm of connected devices to manage. IdeasX will incorporate management software which can be installed on iOS, Android, Windows, and OSX. The management software will allow Therapists to configure parameters of IdeasX device’s (sensitivity, sensing method, paired device, etc) and monitor the condition of the devices (RSSI and battery life). The elimination of wires and tracking features will increase the efficiency of therapists utilizing existing wired solutions and ease the wireless storm.

Quick mockup of the Workstation Client (WSC) because I’m too embarrassed of my GUI skills.
J.K. I’m slowly getting better.

Cost Effective 

IdeasX will be utilizing commercially available products whenever possible. For example, the $200+ Power Link 4 will be replaced with a $20 Wi-Fi controllable switch via a software update, and we already have plans for a kit which will convert your Roomba into mobile platform students can control.

Open and Exponential 

IdeasX started though a windy road of senior design project and open source software. Keeping with it’s roots, IdeasX aims to foster technical education for students and remain an open source system.