All Projects → cujomalainey → ant-arduino

cujomalainey / ant-arduino

Licence: GPL-2.0, GPL-3.0 licenses found Licenses found GPL-2.0 LICENSE GPL-3.0 COPYING
An implementation of a ANT driver for Arduino, Mbed and ESP-IDF

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to ant-arduino

ZJ-SDK-RT-Thread-NORDIC
基于RT-Thread操作系统在子敬电子ZJ-TEK系列开发板的软件开发包
Stars: ✭ 68 (-1.45%)
Mutual labels:  ant, nrf52832, nrf52840
platform-nordicnrf51
Nordic nRF51: development platform for PlatformIO
Stars: ✭ 19 (-72.46%)
Mutual labels:  mbed, nrf51822
IOsonata
IOsonata multi-platform multi-architecture power & performance optimized software library for fast and easy IoT MCU firmware development. Object Oriented design, no board package to define, just pure plug & play any boards
Stars: ✭ 40 (-42.03%)
Mutual labels:  nrf52832, nrf52840
mbed-tools
⚠️ Beta Status: New command line tooling for Mbed OS
Stars: ✭ 40 (-42.03%)
Mutual labels:  mbed, mbed-os
Esp8266 Oled Ssd1306
Driver for the SSD1306 and SH1106 based 128x64, 128x32, 64x48 pixel OLED display running on ESP8266/ESP32
Stars: ✭ 1,590 (+2204.35%)
Mutual labels:  driver, mbed-os
iconsole-android
OpeniConsole connects to an iConsole+ fitness bike head unit over bluetooth.
Stars: ✭ 27 (-60.87%)
Mutual labels:  ant, antplus
ele-pro
element-ui ant-design admin
Stars: ✭ 12 (-82.61%)
Mutual labels:  ant
spinnaker sdk camera driver
Point Grey (FLIR) Spinnaker based camera driver (Blackfly S etc.)
Stars: ✭ 106 (+53.62%)
Mutual labels:  driver
fdb
Firebird Driver for Python
Stars: ✭ 49 (-28.99%)
Mutual labels:  driver
w1-gpio-cl
Command line configured kernel mode 1-wire bus master driver. w1-gpio standard Linux module enhancement/substitution.
Stars: ✭ 17 (-75.36%)
Mutual labels:  driver
embedded-sps
Embedded i2c Driver for Sensirion Particulate Matter Sensors - Download the Zip Package from the Release Page
Stars: ✭ 36 (-47.83%)
Mutual labels:  driver
proposal-function-helpers
A withdrawn proposal for standardizing some useful, popular helper functions into JavaScript’s Function object.
Stars: ✭ 41 (-40.58%)
Mutual labels:  callback
SwiftObserver
Elegant Reactive Primitives for Clean Swift Architecture #NoRx
Stars: ✭ 14 (-79.71%)
Mutual labels:  callback
dotnet-arangodb
.NET Driver for ArangoDB
Stars: ✭ 52 (-24.64%)
Mutual labels:  driver
MySQL MariaDB Generic
This MySQL_MariaDB_Generic library helps you connect your boards directly to a MySQL / MariaDB server, either local or cloud-based, so that you can store / retrieve data to / from the server. Supported boards are ESP8266/ESP32, WT32_ETH01 (ESP32 + LAN8720A), nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, SAM DUE, Mega, RP2040-based boards, P…
Stars: ✭ 35 (-49.28%)
Mutual labels:  mbed
image-cache
NodeJS Image cache with Base64 format
Stars: ✭ 18 (-73.91%)
Mutual labels:  callback
wfx-fullMAC-driver
Silicon Laboratories WFx Wi-Fi Full-MAC driver
Stars: ✭ 14 (-79.71%)
Mutual labels:  driver
hid-tmff2
Linux kernel module for Thrustmaster T300RS and T248
Stars: ✭ 83 (+20.29%)
Mutual labels:  driver
ars 40X
Driver for the Continental radar ARS_404 / ARS_408.
Stars: ✭ 55 (-20.29%)
Mutual labels:  driver
veikk-linux-driver
Linux driver for VEIKK-brand digitizers
Stars: ✭ 130 (+88.41%)
Mutual labels:  driver

ant-arduino

Arduino library for communicating with ANT radios, with support for nRF51 devices. This library Includes support for the majority of packet types.

Status

Build Status Test Status

News

  • 06/28/2020 ant-arduino v2.0.0 released with mbed support
  • 10/01/2017 Antplus-arduino released
  • 09/30/2017 Callback system complete, v1.0.0 released
  • 09/10/2017 System refactor complete
  • 12/26/2016 More examples and Tx added
  • 06/08/2016 Initial Experimental Rx only release
  • 04/21/2016 Project forked from Andrew Wrapp xbee-arduino

Roadmap

  • Add support for Zephyr and ESPIDF
  • Add support for SPI interface

Developer's Guide

Example

I have created several sketches of sending/receiving packets with NRF51 ANT radios. You can find these in the examples folder. Here's an example of configuring a channel with a NRF51 radio:

// Create an ANT object at the top of your sketch
ANT ant = ANT();

// Start the serial port
Serial.begin(9600);
// Tell ANT to use Hardware Serial. It's also possible to use SoftwareSerial
ant.setSerial(Serial);

AssignChannel ac;
ResetSystem rs;
SetNetworkKey snk;
ChannelId ci;
ChannelPeriod cp;
ChannelRfFrequency crf;
OpenChannel oc;

// Set Network Key, defaults to public, if you want the ANT+ key you need to get it from thisisant.com, DO NOT PUBLISH IT
snk = SetNetworkKey();
snk.setNetwork(0);
snk.setKey((uint8_t*)NETWORK_KEY);
ant.send(snk);

// Assign the channel and its type
ac = AssignChannel();
ac.setChannel(0);
ac.setChannelType(0);
ac.setChannelNetwork(0);
ant.send(ac);

// Assign the Channel IDs (these are all wildcarded values) (if you are using ANT+ see the profile for settings)
ci = ChannelId();
ci.setChannel(0);
ci.setDeviceNumber(0);
ci.setDeviceType(0);
ci.setTransmissionType(0);
ant.send(ci);

// Set the channel period (if you are using ANT+ see the profile for settings)
cp = ChannelPeriod();
cp.setChannel(0);
cp.setPeriod(1111);
ant.send(cp);

crf = ChannelRfFrequency();
crf.setChannel(0);
crf.setRfFrequency(0);
ant.send(crf);

// open the channel
oc = OpenChannel();
oc.setChannel(0);
ant.send(oc);

// Wait for the responses

See the examples folder for the full source. There are more examples in the download.

To add ANT support to a new sketch, add "#include <ANT.h>" (without quotes) to the top of your sketch. You can also add it by selecting the "sketch" menu, and choosing "Import Library->ANT".

Hardware

Internal Radio usage

If you are a more advanced tinkerer you can attempt to buy an ANT ready micro controller (such as the adafruit nrf52 express) you can load the board with the ANT softdevice and still use this library. Note: this does carry an element of risk. If you load a bad bootloader and brick your board and don't have a programmer handy then you will not be able to recover it till you get a programmer. Orrmany carries two repos that are example templates for the adafruit nrf52 express (bootloader and BSP.) You still need to added the headers and softdevice file yourself locally as Dynastream does not allow redistribution of the ANT softdevice.

External Radio usage

For development and general tinkering I highly recommend using an Arduino that has 2 serial ports, such as the Arduino Leonardo. The reason is the ANT Radio requires serial port access and it is useful to have another serial port available for debugging via the Arduino serial console. Also it is easier to use a 3.3V arduino than to use a level shifter

  • Teensy 3.2
  • Pro Mini 3.3V
  • Trinket 3.3V

ANT radios come in multiple models, but this driver is designed to only support the following:

  • nRF51
  • nRF52

You will need 3.3V regulator and logic shifting to convert from 5V (Arduino) to 3.3V (ANT). The Arduino is 3.3V tolerant.

Installation

Arduino 1.5 and later

Arduino now includes a library manager for easier library installation. From the Sketch menu select include library->Manage Libraries, then type "ant-arduino" in the filter and install.

Prior to Arduino 1.5 installation is a manual

Download a .zip or .tar.gz release from github. Determine the location of your sketchbook by selecting "preferences" on the Arduino menu. Create a "libraries" folder in your sketchbook and unzip the release file in that location.

If you are using platformio you can install the library by running platformio lib install 353

Uploading Sketches

Uploading sketches with a Leonardo is as simple as connecting the Arduino to your computer and uploading. When using a single serial port Arduino, such as the Pro Mini (3.3V), the jumpers on the ANT Radio must be disconnected. Then, after upload, reconnect the lines to have access to the serial port. Always remember to power off the Arduino before moving the jumpers.

Configuration

To use this library your ANT radio must be loaded with the ANT Network Processor firmware. See Wiki for recommended wiring.

Questions/Feedback

Questions about this project should be posted to http://groups.google.com/group/ant-api?pli=1 Be sure to provide as much detail as possible (e.g. what radios, firmware versions, configuration and code).

Consulting/Commercial Licenses

At the current time there is zero support for commercial usage. Contact me via email if you are looking to use this code commercially.

If you are looking for commercial support for ANT radios go to thisisant.com

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].