Before your Feather can communicate with The Things Network, you'll need to create an application.
First, we're going to register an account with TTN. Navigate to their account registration page to set up an account.
Once logged in, navigate to the The Things Network Console. This page is where you can register applications and add new devices or gateways. Click Applications
Click Add Application.
Fill out an Application ID to identify the application, and a description of what the application is. We set our Handler Registration to match our region, us-west. If you're not located in the U.S., TTN provides multiple regions for handler registration.
Once created, you'll be directed to the Application Overview. From here, you can add devices, view data coming into (and out of) the application, add integrations for external services, and more. We'll come back to this section later in the guide.
Click Register Device
On the Register Device Page, The Device ID should be a unique string to identify the device.
The Device EUI is the unique identifier which came in the same bag as your Radiofruit Feather. We'll pad the middle of the string with four zeroes. Lost your key? No worries - you can also click the "mix" icon to switch it to auto-generate.
The App Key will be randomly generated for you by TTN. Select the App EUI (used to identify the application) from the list.
Next, we're going to switch the device settings from Over-the-Air-Activation to Activation-by-Personalization. From the Device Overview, click Settings
On the settings screen, change the Activation Method from OTAA to ABP.
Then, switch the Frame Counter Width from 32b to 16b and disable frame counter checks. TTN will display a warning, ignore it, and click Save.
Now that the application is set up, and the device is registered to the application, let's move on to setting up Arduino with TinyLoRa.
Why are we disabling Frame Counter Checks if The Things Network Console doesn't recommend it?
Disabling frame counter checks allows you to transmit data to The Things Network without requiring a match between your device's frame counter and the console's frame counter.
If you're making a project and doing a lot of prototyping/iteration to the code, disabling these checks is okay as it'll let you reset the device and not re-register it to the application (it'll also prevent counter overflows).
If you're deploying a project, you'll want to re-activate the frame counter for security purposes. With the frame counter disabled, one could re-transmit the messages sent to TTN using a replay attack.
The Things Network's documentation page has a full explanation about the role of the Frame Counter.