[WIP] Attempts to fix Arduino Nano Every build#1719
Conversation
- suspect some examples might never work because Nano Every is using atmega4809 - ATmega4809 is a new feature, incremental changes was added since issue FastLED#716 - ci workflows files are only added after FastLED#716 squashed trials in order 1. enable GH actions on Nano Every build branches 2. temporary commented from Apa102HD examples from compile to isolate build failure 3. temporary commented VPORT optimisation in fastpin_avr.h and to try out missing DDR next 4. Revert "temporary commented from Apa102HD examples from compile to isolate build failure" This reverts commit d345abf. 5. temporary commented flat names section to isolate the failure of build 6. revert all temporary changes as the failure of build is likely caused by other issue - suspected the compilation has never fully functional since the support is added (atmega is WIP)
… is included as well
…ream build result
…s beyond simple Blink
31dba2a to
79e1628
Compare
|
Status Update
Default examples to fix:
Examples to confirm the compilation is working:
|
|
Feel free to take this forward to complete the support on Nano Every. Next step to the actual fix :
For the context, this block was added after we start adding the support of ATmega4809. |
|
Wow! Thanks for this!!! YOU ROCK!!! I'm going to add this to the release_notes.md Feel free to issue a PR if there is anything more that users should know! |
|
Hi, i checked out your commits more closely and it looks like you took out the APA102HD test for nano every. That test is still failing. I'm going to revert this so that all tests are running. I don't like having a major test type failing. Either the underlying cause needs to be fixed or if that's not possible, #ifdef'd so that the right pins are selected. Again, thanks for pushing the needle on this. |
|
I put the code into the latest chat gpt and it outputted this truncated version of fastpin_avr.h for just nano every. It compiles fine, though I don't know if it works in the runtime. |
|
Okay, i got the APA102HD test to compile with the AI suggestions. To make this easier I've split out the arduino nano pin definitions into it's own file: |
|
Hi @zackees , thanks for merging this to For your context, I discussed with @kriegsman about the codes for AVR platform has grown to support AVR mega and AVR tiny, especially this Your commit 484cc3c has given me a light on how to make the I think we don't have a workflow files for ATmega4809 ( Arduino Uno Wifi Rev 2 ) , while the Arduino UNO WiFi is using ATmega328 . We also don't have much CI coverage for the ATtiny series . The AVR platform is quite complicated and the current source in https://github.com/FastLED/FastLED/tree/master/src/platforms/avr includes ATmega ( Arduino Uno, Nano Every ) and ATtiny . I hope this context will be helpful for the refactoring or code organisation, directly on the |
|
I'm refactoring as I'm going. This codebase needs it. As soon as I separated the pin definitions I was able to instruct an AI to define the pins. I just did this same refactoring to support the stm32 bluepin and maple_mini. Feel free to use the same pattern whenever appropriate. |
|
@zackees I think we need a few build file for ATmega and more ATtiny, but I'm not yet familiar about how to create one. Feel free to @ me when you are adding one for new issues related to these platforms. Because we never have CI workflows in the historical time. 😅 |
|
You can tell me your boards and I can add them. Adding a build is not hard at all, see this: |
|
I only have an Arduino WiFi Rev2 ( using ATmega ) which I didn't use recently. My work is fully software in the recent years. I thought there will be more changes to the configuration eg. the json config in the Thanks for sharing an example commit to add a board into CI. I will add one when I'm messing with hardware again. 😄 |
|
There was a lot of code, i've abstracted it all away so it's easy now.
The tough parts come with the corner cases like new boards that get released. But you don't have to worry about that. |
It's highly likely the pin 18 and 19 are incorrectly defined , when added in
fastpin_avr.h. Probably a copy-and-paste mistake, unsure if this is causing the failure for exampleApa102HD.inoor other cause. 😅The original reference: https://github.com/FastLED/FastLED/blob/avrmega/platforms/avrmega/fastpin_avrmega.h#L107