-
Notifications
You must be signed in to change notification settings - Fork 39
Add Arduino IDE support for new boards #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In order to keep commit diffs readable I will henceforth remove hex files in one commit, change files that would have made those hex files out of sync in subsequent commits, and then rebuild the hex files in a final commit.
SD CS pins are now defined using standard AVR register/bit notation.
This silences the "dereferencing type-punned pointer will break strict-aliasing rules" warnings that make it hard for me to find any new warnings in the build log. Ideally this warning should be fixed and then this compiler option can be removed.
Change the variant indicator from "var" to "v". The bootloader filenames are pretty long which could cause path length to be longer than the maximum on some systems.
Variants are used for processors other than ATmega1284P so this name is incorrect.
Untested because I don't own the hardware.
ATmega32/A doesn't support PCINT so this code causes a compiler error. Other variants with PCINT support code don't have this issue because they use macros only.
ATmega32/A doesn't support efuse but the Arduino AVR Boards avrdude default recipe programs an efuse. To solve this issue without needing to create a custom tool entry in platform.txt I made a dummy efuse in the ATmega32 avrdude.conf entry(as shown in watterott/Wattuino@140b044). The lack of efuse also prevents me from having a BOD menu as BOD is set via lfuse on ATmega32/A, thus the combination Clock/BOD menu. Untested because I don't own the hardware.
megacore-standard variant from MegaCore v1.0.3: https://github.com/MCUdude/MegaCore/releases/tag/v1.0.3 Untested because I don't own the hardware.
There is a bug(arduino/Arduino#5260) in the Arduino IDE that causes the menu item text to not update from the previously selected board if the menu title text is the same but the MENU_ID is different. Arduino AVR Boards defines menu.cpu=Processor so I must do the same to reduce the chances of a user encountering this issue. Note that this issue still may be caused by other boards packages.
Using Mighty 1284P avr_developers variant file downloaded from https://github.com/JChristensen/mighty-1284p/blob/219f016b1705b26473c4ab3f5ac6a6986cf1ea69/avr/variants/avr_developers/pins_arduino.h for the base of WiringS/WiringSPlayShield. Using MegaCore standard variant file downloaded from https://github.com/MCUdude/MegaCore/blob/f4266789d40afb79a00cc7007c5acbfc31ad8181/avr/variants/standard/pins_arduino.h for Wiring1.
Convert tabs to spaces. Trim trailing spaces.
WiringS variant pin mapping based on http://wiring.uniandes.edu.co/source/trunk/wiring/firmware/hardware/Wiring/WiringS/BoardInfo.txt?revision=1138 WiringSPlayShield variant pin mapping based on http://wiring.uniandes.edu.co/source/trunk/wiring/firmware/hardware/Wiring/WiringSPlayShield/BoardDefs.cpp?revision=1229 and http://wiring.uniandes.edu.co/source/trunk/wiring/firmware/hardware/Wiring/WiringSPlayShield/BoardDefs.h?revision=1160 Wiring1 variant pin mapping based on http://wiring.uniandes.edu.co/source/trunk/wiring/firmware/hardware/Wiring/Wiring1/BoardInfo.txt?revision=1143
Changes made to support ATmega1281/2561's PCINT, PG5, and different timers. The same variant file can now be used to support Wiring 1.0 and 1.1 boards. Wiring 1.1 pin mapping based on http://wiring.uniandes.edu.co/source/trunk/wiring/firmware/hardware/Wiring/Wiring1.1/BoardInfo.txt?revision=1232
Modified to support ATmega1281/2561's PCINT, PG5, and different timers.
Arduino.h doesn't define TIMER0. MegaCore fixes this by modifying Arduino.h but I can't do this so I have to fake it in the pins_arduino.h files.
Untested because I don't own the hardware.
SD CS pin 8 causes a compiler error so it is disabled. I will try to get this fixed in the next release. Untested because I don't own the hardware.
Goldilocks v1.1/Analogue downloaded from https://github.com/feilipu/Arduino_Goldilocks_Variant/blob/3ba73c440bd2335bff3bc181a49f023b92642fcb/hardware/seeed/avr/variants/goldilocks/pins_arduino.h WildFire v2 downloaded from https://github.com/WickedDevice/WildFire-Arduino-Core/blob/b1bd17036ef9a5ac3b94cf03878b2b93f44c8359/WickedDevice/variants/wildfirev2/pins_arduino.h WildFire v3 downloaded from https://github.com/WickedDevice/WildFire-Arduino-Core/blob/b1bd17036ef9a5ac3b94cf03878b2b93f44c8359/WickedDevice/variants/wildfirev3/pins_arduino.h Wiring S Wiring Play Shield Wiring 1.0/1.1
ATmega1280, ATmega640 goldilocks/wildfirev2 variant wildfirev3 variant WiringS variant WiringSPlayShield variant Wiring1 variant
This file is necessary for compatibility with the Eclipse Arduino plugin which will not show programmers for any other package. Due to removeing the toolsDependencies items, avr_boot is currently incompatible with the plugin but it appears the plugin developer may have added compatibility for this configuration. Programmers entries from Arduino AVR Boards 1.6.13.
…configurations The Mighty 1284P variants are specifically configured for ATmega1284/P. I can use the MightyCore standard and bobuino variants to support the other parts but the Sleeping Beauty support had to be removed for the other parts..
Arduino.h doesn't define TIMER0, which is used by ATmega32/A so the definition needs to be added to the variant files.
just wow!!! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.