Unsupported Arcitecture when using FAB_LED library #328
Replies: 7 comments 7 replies
-
Sorry for not getting back sooner to your PM - havcen;t had a chance to look into it until now... Oh dear.... Well, yes, that does appear to be accurate - he has a bunch of architecture-specific macros for different types of processors, and the classic AVRs are ARDUINO_ARCH_AVR, these are ARDUINO_ARCH_MEGAAVR, and the timing of relevant instructions has changed on these parts (this guy's code relies on cbi/sbi, which are single cycle instead of 2 cycle now) I am once more in awe of that dude. Are the requirements for supporting a new architecture obscure? Undocumented? scattered across many files? Or are they clearly described in one place? Try https://github.com/SpenceKonde/FAB_LED/blob/master/FAB_LED.h It compiles now (haven[t tested with LEDs), if you confirm it works I'll send him a PR. As an aside, euhm..... on the 841 you pretty much can run at 16 MHz from the internal oscillator. I think I had one chip out of the dozen or so I tested with that had to be cranked all the way to 254 or 255? Current version supports this, but takes a guess on the new OSCCAL0, Future version of ATTinyCore (probably the next release) will provide proper tuning support (I needed the tooling for it written anyway). The oscillator on the 841/441 is unique, wonderful, and infuriating (the strong voltage dependence - which does help for 16@5v) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
That's the wacky error you get when the sketch compiles to something too big to fit in the flash of the selected chip, and that chip is smaller than 8k - the combination of having rjmp, not jmp and memory mapped flash leaves the compiler giving these ugly messages instead of a normal one saying it doesn't fit. The useful part of that error is: |
Beta Was this translation helpful? Give feedback.
-
Nothing I changed would be compiled in if built for a pro mini - that's
classic AVR, ARDUINO_ARCH_AVR, the changes I made are only pulled in for
ARDUINO_ARCH_MEGAAVR devices, like the ones supported by megaTinyCore.
…On Thu, Feb 18, 2021 at 9:24 PM ModernDayGriswolds ***@***.***> wrote:
Spence,
So I uploaded the program code to my Pro Mini, only changing the input and
output addresses, with your FAB_LED.h file still in there and it compiled
and worked just fine. So there is something else going on between the core
and the FAB_LED library that is not jiving.
Can I bother to ask you if there is anything else that can be done to get
it to work??
Thanks,
James
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#328 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEW2BP65QWDUHG3VLXVTS7XDXTANCNFSM4XZHH62A>
.
--
____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore <https://github.com/SpenceKonde/ATTinyCore>: Arduino support for
all pre-2016 tinyAVR with >2k flash!
megaTinyCore <https://github.com/SpenceKonde/megaTinyCore>: Arduino support
for all post-2016 tinyAVR parts!
DxCore <https://github.com/SpenceKonde/DxCore>: Arduino support for the AVR
Dx-series parts, the latest and greatest from Microchip!
Contact: [email protected]
|
Beta Was this translation helpful? Give feedback.
-
The one thing I'd try is.. pick a pin in port A where the same-numbered pin
in PORTB is also exposed. Check that pin too....I'm not clear where the
port ID is coming from...
If they're getting it from core-supplied macrolike digital pin to bit mask,
but hardcode A=1, B=2 ... they''d be off by 1 port, because PORTA is
numbered 0 on modern AVR, and 1 on classic AVR. (classic AVR uses 0 for
NOT_A_PORT, modern AVR uses -1 or 255, for NOT_A_PORT)
Also, do you have a 'scope? It would be worth checking to see if data is
coming out of some pin, just nothing valid enough to control pixels. I find
it sort of hard to believe that it could compile but do *nothing* with all
his code behind it, so what's going on?
…On Thu, Feb 18, 2021 at 9:40 PM ModernDayGriswolds ***@***.***> wrote:
Ah, gotcha. So is there anything else that I could try?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#328 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEW6GS4SHO2UC6C7JRMLS7XFSRANCNFSM4XZHH62A>
.
--
____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore <https://github.com/SpenceKonde/ATTinyCore>: Arduino support for
all pre-2016 tinyAVR with >2k flash!
megaTinyCore <https://github.com/SpenceKonde/megaTinyCore>: Arduino support
for all post-2016 tinyAVR parts!
DxCore <https://github.com/SpenceKonde/DxCore>: Arduino support for the AVR
Dx-series parts, the latest and greatest from Microchip!
Contact: [email protected]
|
Beta Was this translation helpful? Give feedback.
-
Yes actually, that does make sense.... the number you're passing is being
used as the bit of the pin on port A. How do you tell the library which
pins to use? When I looked at the examples, it looked like they had a weird
way of specifying it, by port and bit, not arduino pin number. Are you
using that correctly? I'm not sure that that library attempts to convert
arduino pin numbers... the examples I saw had it spec'ed by port and bit.
If it was defaulting port a and using what was passed as bit, that is what
you would see
…____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore: Arduino support for almost every ATTiny microcontroller
Contact: [email protected]
On Fri, Feb 19, 2021, 22:11 ModernDayGriswolds ***@***.***> wrote:
OK, So got some time in tonight on it. my LED pins for the ws2811 pixels
outputs are as follows:
const int Led1 = PIN_PB0;
const int Led2 = PIN_PC0;
const int Led3 = PIN_PA4;
const int Led4 = PIN_PA6;
With this code running, I took the data pin around to all open pins on the
board. Only one started working. That is PIN_PA2. Pin 15 on arduino.
Physical pin 18 on the 816.
So I changed the Led# assignments over to Arduino pin numbers. Same pins
as before in the PIN_Pnx but with Arduino numbers in place:
const int Led1 = 9;
const int Led2 = 10;
const int Led3 = 0;
const int Led4 = 2;
Got the same result. Only one worked. That is PIN_PA2. Pin 15 on arduino.
Physical pin 18 on the 816.
So now I changed the pins to different Arduino pin numbers as follows:
const int Led1 = 1;
const int Led2 = 2;
const int Led3 = 3;
const int Led4 = 4;
Now this time I got a different result. This thoroughly confuses me. I
have four outputs that function, but none coincides with what is supposed
to be working. The working Arduino pins now are: 0,14,15,16.
Again, changed to different Arduino numbers:
const int Led1 = 5;
const int Led2 = 6;
const int Led3 = 7;
const int Led4 = 8;
Again, got a different result. Now I only have three working outputs.
Arduino pins: 1,2,3. That is it.
Can you make heads or tails of this? Where are the numbers assignments
coming from?
I plan to do more testing by making a program that only has one output and
see if I can't get a mapping of what number is what on this 816.
So, yeah, you were right, it is spitting out data, but just not where I
would expect it. Plus side though, it is working!!
James
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#328 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEW4UFD6LV76F4W2ZXD3S74R4ZANCNFSM4XZHH62A>
.
|
Beta Was this translation helpful? Give feedback.
-
See the pinout chart in the repo, 0~7 gets you output on PA0~PA7. PA0 is
the updi pin, though, so you wont get output there.
…____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore: Arduino support for almost every ATTiny microcontroller
Contact: [email protected]
On Fri, Feb 19, 2021, 22:11 ModernDayGriswolds ***@***.***> wrote:
OK, So got some time in tonight on it. my LED pins for the ws2811 pixels
outputs are as follows:
const int Led1 = PIN_PB0;
const int Led2 = PIN_PC0;
const int Led3 = PIN_PA4;
const int Led4 = PIN_PA6;
With this code running, I took the data pin around to all open pins on the
board. Only one started working. That is PIN_PA2. Pin 15 on arduino.
Physical pin 18 on the 816.
So I changed the Led# assignments over to Arduino pin numbers. Same pins
as before in the PIN_Pnx but with Arduino numbers in place:
const int Led1 = 9;
const int Led2 = 10;
const int Led3 = 0;
const int Led4 = 2;
Got the same result. Only one worked. That is PIN_PA2. Pin 15 on arduino.
Physical pin 18 on the 816.
So now I changed the pins to different Arduino pin numbers as follows:
const int Led1 = 1;
const int Led2 = 2;
const int Led3 = 3;
const int Led4 = 4;
Now this time I got a different result. This thoroughly confuses me. I
have four outputs that function, but none coincides with what is supposed
to be working. The working Arduino pins now are: 0,14,15,16.
Again, changed to different Arduino numbers:
const int Led1 = 5;
const int Led2 = 6;
const int Led3 = 7;
const int Led4 = 8;
Again, got a different result. Now I only have three working outputs.
Arduino pins: 1,2,3. That is it.
Can you make heads or tails of this? Where are the numbers assignments
coming from?
I plan to do more testing by making a program that only has one output and
see if I can't get a mapping of what number is what on this 816.
So, yeah, you were right, it is spitting out data, but just not where I
would expect it. Plus side though, it is working!!
James
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#328 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEW4UFD6LV76F4W2ZXD3S74R4ZANCNFSM4XZHH62A>
.
|
Beta Was this translation helpful? Give feedback.
-
Hello all,
I am a novice at this stuff. I know enough to get myself into pickles like this. Spence has messaged with me a few times about other issues, but I figured I would post on here to see if anyone else could help with this issue, as I'm sure he is a busy guy.
So, I started with the ATtiny Core and an 841 board. My sketch compiles just fine. Didn't like how I had to use an external crystal for 16Mhz, so I switched gears to the MegaTinyCore and an 416 chip. No external crystal needed, but now the sketch will not compile on this Core and gives me an 'Unsupported Architecture' error. This goes way above my head. I understand some of the lingo, but not most.
The reason for using FAB_LED instead of the installed NeoPixel library is the RAM usage. I need to control 700 pixels on 4 outputs. That would require 8.4Kb of Ram minimum due to the buffers needed. I am not writing fancy code to make the pixels dance all different colors. It is a simple test function to turn all 700 pixels on one output to a certain color. For function basically. FAB_LED performs this task easily without the need for buffers so it uses hardly any RAM.
Below is the error message that I am getting. Hopefully it's in code format. Thanks, James
Beta Was this translation helpful? Give feedback.
All reactions