Replies: 2 comments 8 replies
-
I have made some minor changes to CRSF for Arduino for the purposes of this investigation.
Absolutely none of these changes will make it into the Main-Trunk, as none of this is intended to be a part of CRSF for Arduino. I have done this only for the purposes of this investigation. Once my investigation is complete, all of these changes will be discarded. Now, over to my control. Now, I said that I will be using both my Arduino Uno & my Arduino Micro. In hindsight, I had forgotten just how outdated my Uno was & I no longer have a USB cable that will fit it. All but one of my USB cables are all USB-C, with only one of my cables being USB Micro B, which I keep around for my other development boards that have a USB Micro B connector. Absolutely none of my USB cables have the right connector for my Arduino Uno. To give you a fair idea of how old my Uno is: It's an Arduino SRL (IE the old Arduino.org) board & I bought it about a year or two before the whole "Arduino SRL vs Arduino LLC" spat went down. So, my Arduino Micro serves as the only AVR representative in my investigation. It's not ideal, because my palette is nowhere near as diverse as I would like it to be, & my own circumstances right now prevent me from expanding on this for the time being. Tomorrow, I am recording my baseline values with my Metro M4 Express, & I will post my results as a reply to this thread. |
Beta Was this translation helpful? Give feedback.
-
I have finally reached my conclusion with this experiment. Over on the Main-Trunk, somewhere between ce0fc7c and 86af1e1, I started using dynamic memory allocation. This provides me with a single definitive answer to "Why does your library not work on my Arduino UNO?" |
Beta Was this translation helpful? Give feedback.
-
In my Readme, I assert that legacy AVR boards (such as the Arduino UNO R3) aren't compatible with CRSF for Arduino.
Excerpt:
Over time, I have reconsidered my original position on this claim & thought "Is there a possibility that older development boards such as the Arduino UNO R3, Arduino Mega 2560, & Arduino Micro could be compatible?" & "If there is the possibility of these older boards being compatible, what limiting factors could there be that could significantly impact the performance of CRSF for Arduino?"
I would like to investigate my original claim to see whether-or-not there is any truth behind this or I am unnecessarily gate-keeping.
If my investigation disproves my original claim, that could allow me to diversify CRSF for Arduino's compatibility even further than what I already have available to you.
My hypothesis is if there are any limiting factors, it would be the following:
CRSF for Arduino occupies 14824 bytes of flash memory when compiled for the Adafruit Metro M4.
The ATmega328p (the microcontroller inside the Arduino UNO R3) has a flash memory of 32 kilobytes.
CRSF requires a baud rate of 420000. If the clock speed is not high enough, this could reduce the baud rate to a value lower than 420000 - EG 115200.
This means that I may not be able to achieve the required 420000 baud rate in order to satisfy the requirements of the CRSF protocol.
I already have a couple of legacy development boards on-hand:
These are the boards that I am using to test my hypothesis on.
Additional hardware:
The version of CRSF for Arduino that I am using is Version 0.4.0, which enables telemetry feedback.
For the firmware, I am using the GPS Telemetry example with
CRSF_DEBUG
&VIEW_RC_CHANNELS
enabled.My RadioMaster TX16S is used to monitor GPS telemetry as well as sending RC data to my development board.
My Ranger & RP3 serve as the over-the-air pipe for the CRSF protocol.
I am conducting my investigation during my hiatus, over the month of August.
I will report my findings in the comments section below.
When my investigation is complete, I will announce my conclusion in the main discussions channel & put links to this investigation there & in my main Readme.
This should give me plenty of homework to do in my absence.
"Until next time..." --Kyle Hill.
Beta Was this translation helpful? Give feedback.
All reactions