Skip to content

V3.0.0

Compare
Choose a tag to compare
@chipaudette chipaudette released this 16 May 21:44
· 94 commits to main since this release

Summary: First release for Tympan Rev F, including its new Bluetooth module.

Background: The Tympan RevF is basically a Tympan RevE with a new bluetooth module.

  • Commonality: Both units are built around a Teensy 4.1. So, both units must be compiled under the Arduino IDE as a Teensy 4.1. Also, the RevF continues to use the same audio codec (TI AIC3206) that we have used since Tympan RevA. The RevF continues to have an external interface for add-on shields that is identical to Tympan Rev D and Rev E.
  • Differences: The main difference is the bluetooth module. In addition to the bluetooth module functioning differently (thereby requiring its own software support), the module is also wired back to the processor using different pins. The new nRF52840 module is more flexible with its BLE functions and we have direct control over the firmware that runs on the nRF52840. The only real loss is that the nRF52840 does not support Bluetooth Audio whereas our old module in the RevD and RevE did support Bluetooth Audio.

Major Changes to the Tympan_Library:

  • All of the examples in the Tympan_Library have been updated to default to Tympan RevF. This does not break anything. If you are running a RevE or a RevD, simply change that line of code from TympanRev::F back to match the version of the Tympan that y have.
  • BREAKING CHANGES: There are changes in this release that could break your existing code. Specifically, the Bluetooth classes within the Tympan_Library have been reworked in order to enable a common interface to control both the old Bluetooth module as well as the new one. Introducing this generic interface layer causes this release to break any existing user code that employs BLE. To adapt to the new library, it is likely that only two changes will be needed to your code :
    • Code Fix, Step 1: Previously, when you created your BLE instance, you used a line like BLE ble;. Now, you must do BLE &ble = myTympan.getBLE();. Or, if you were using the UI version of the BLE class instead of the basic BLE class, it's a similar substitution: BLE_UI &ble = myTympan.getBLE_UI();
    • Code Fix, Step 2: in your Arduino setup() function, you previously set up the BLE using a line like ble.setupBLE(firmware_rev);. Replace this line with myTympan.setupBLE();

Be aware that only basic BLE functions are available through this new generic "BLE" interface. For deeper, module-specific controls, you can instead instantiate a BLE_BC127 object or a BLE_nRF52 object and use it instead of a generic BLE object.

Toolchain: This release was developed on Windows with Arduino IDE 2.3.1 and Teensyduino 1.59.