Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Teensyduino Compatibility Updates #28

Open
wants to merge 34 commits into
base: master
Choose a base branch
from

Conversation

dmadison
Copy link

I went back and found the commit where you made the initial modifications, then updated the library for each release in turn until I got to the most recent version.

Changes from original:

  • Serial behavior now mimics the USB_DISABLED flag, which is easier and requires fewer modifications. A Serial class instance still exists for compatibility with existing code.
  • Fixed USB compilation errors related to the security descriptor and the unicode symbol in the manufacturer name.
  • Fixed compilation of all other USB modes (also done the latest 1.42 PR Edited for Teensyduino 1.42 #26)

I tested each version update using a generic Serial example (USB Serial mode) and the library Simple_Example (USB XInput mode), as well as a few random examples here and there.

Version # Commit Date Latest Arduino Version Tested Version
1.21 6ed0c5f 3/15/2015 1.61 1.61
1.22 0dcc3a1 4/4/2015 1.6.3 1.61
1.23 66b28af 5/13/2015 1.6.4 1.61
1.24 4cf71a4 6/23/2015 1.6.4 1.61
1.25 c0196ca 9/18/2015 1.6.5-r5 1.61
1.26 c006772 11/11/2015 1.6.6 1.6.1
1.27 0254d93 1/5/2016 1.6.7 1.6.7
1.28 8a7f15d 4/10/2016 1.6.8 1.6.7
1.29 bb95e54 7/9/2016 1.6.9 1.6.7
1.3 d1d357b 9/6/2016 1.6.11 1.6.11
1.31 eae6544 11/8/2016 1.6.12 1.6.11
1.32 9c88ebe 12/9/2016 1.6.13 1.6.11
1.33 2b24e39 12/14/2016 1.6.13 1.6.11
1.34 8a02ea6 12/27/2016 1.8.0 1.8.0
1.35 68036bd 1/18/2017 1.8.1 1.8.0
1.36 2852a52 3/31/2017 1.8.2 1.8.2
1.37 7099935 6/19/2017 1.8.3 1.8.2
1.38 a8ed957 8/28/2017 1.8.4 1.8.2
1.39 dba7390 9/6/2017 1.8.4 1.8.2
1.4 3ede33c 10/10/2017 1.8.5 1.8.2
1.41 3ad6599 1/17/2018 1.8.5 1.8.2
1.42 9b5d9f9 6/7/2018 1.8.5 1.8.5
1.43 cb6289f 9/2/2018 1.8.6 1.8.5

(Note that the dates are the release dates of the Teensyduino versions, not the date for that version's cores commit.)

This update also adds compatibility support for 1.43.

I spent awhile trying to figure out how to do this "cleanly" so it would import from the cores repo and you could pull in files for new releases, but I never could figure out how to do it so that you didn't have to track all of the other unrelated files. For each version update I downloaded the old installers and created a new temporary installation, then copied over the vanilla files and resolved the conflicts in git. Tedious, but it got the job done and the result is clean.

This pull request will hopefully bring the repo fully up to date, fixing the few discrepancies in the last update pull request (#26). It will also introduce versioned commits for users with legacy Teensyduino software.

Only keep modified files
These changes will get re-added in a bit, I just need to move the files out of the way first.
Taken from the PaulStoffregen/cores repo at 6ed0c5f01fbd20449c12d9a54cd4c529e7532bdf (1.21)
This isn't included in the 'cores' repo, so I had to take it from the installer. The 1.28+ version included in the original modifications does not match the cores file commits, so I'm using the original 1.21 file and working up.
Did not included the serial modifications because they were from an older commit (f8938ec) that is included and overwritten in cores
These are now correcly merged with the cores files. Yay!
Mimics the USB_DISABLED functionality in creating a dummy Serial class.
Not sure why this is straight-up commented out, as the compiler throws a fit in any other modes except XInput that use the daisy-chain definition here.
Stores the copyright symbol as its unicode hex representation rather than a character literal, and explicitly brackets the security descriptor array initializer.
These are functionally identical, so the different naming is more confusing than anything.
Easier to track these as XInput associated changes while updating.
No cores file updates.
Adds MTP descriptors
No changes between 1.34 and 1.35
Note that the Teensy LC has a compilation bug in the 1.38 release. This is fixed in 1.39.
Teensy now uses the BCD_DEVICE macro where a custom macro for XInput was previously used, so that macro name for XInput has been updated in usb_desc.h
@dmadison
Copy link
Author

It doesn't look like this repo is being maintained any longer 🙁 and it seems that Zach's website is offline as well. If anyone is looking for updates, I've split the boards updates into a new repo here, and also created a more comprehensive library that you can find here.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant