Skip to content

Version 0.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ZZ-Cat ZZ-Cat released this 08 Aug 03:36
· 57 commits to Main-Trunk since this release
ce0fc7c

Overview

It has been a while since my last MINOR cut of CRSF for Arduino.
I told you all I would be on hiatus by the start of August. Yet... here I am. I am too much of a 'work-a-holic' to stay away from my project. So, enjoy August's release. =^/.~=

As always, there is a discussion thread open for this release. So, download this, flash it, test it, submit your feedback etc.

PS: I need to remember to roll these things out more regularly.

What's New

  • feat(devboard): Add support for Seeed Studio XIAO SAMD21 (#27)
  • feat(telemetry): Add GPS Telemetry (#18)

What's Changed

  • refactor(rc channels): Use packed RC channels (#30)
  • refactor(library): Split CRSF for Arduino up into abstraction layers (#34)
  • refactor(crsf): Performance & reliability improvements (#32)

API Changes

There are some slight changes to the API & these changes are as follows:

  • CRSFforArduino(HardwareSerial *) constructor is deprecated & has been removed from the API.
    • Use CRSFforArduino() as your default constructor from here on out.
  • CRSFforArduino::begin() returns a bool value - IE This function returns true if CRSF for Arduino is initialised successfully or false if it hasn't.
  • The return data type for CRSFforArduino::update() is void.
    • This means you no longer need to read back the return value from this function, to check whether-or-not valid RC channel data was received. Everything is now handled internally.
    • Simply call CRSFforArduino::update() in your loop() as a standalone function.
  • Reading back RC channels like this: crsf.rcToUs(crsf.getChannel(1)) is now deprecated.
    • To read an RC channel value, use CRSFforArduino::readRcChannel(n). Where n is the channel number from 1 to 16. This function returns the channel value in microseconds, by default.
    • If you want to read the raw channel value, CRSFforArduino::readRcChannel() takes an optional bool argument. Set this to true to get the raw value. For example crsf.readRcChannel(1, true) will give you the raw value of channel 1.
  • To send GPS telemetry, use CRSFforArduino::telemetryWriteGPS().
    • This takes six arguments. Five of which are float & the sixth argument is uint8_t.
    • These arguments are:
      • latitude (in decimal degrees)
      • longitude (in decimal degrees)
      • altitude (in centimetres)
      • speed (in centimetres per second)
      • groundCourse (in degrees)
      • satellites (the number of satellites that are in view of your GPS module)

Full Changelog: v0.3.3...v0.4.0

Semantic Versioning

All releases of CRSF for Arduino follow the Semantic Versioning Guidelines.
This means "Major.Minor.Patch".
Major = New features that are incompatible with previous iterations.
Minor = New features &/or hardware support that retains compatibility with the current Major release.
Patch = Bug fixes.

This also means that Major version 0.x.x is experimental software, where a lot of features are either still missing or are unstable. You are advised to use this Major version with caution.
Your feedback is always welcome. If you spot any bugs, don't hesitate to open an issue.
For general comments & questions, please use the discussions section.