Closed tfry-git closed 5 months ago
Memory usage change @ 1856897cc5514b167b5e07b3f07b5688bad9e1b1
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 |
:green_heart: -24 - 0 | -0.04 - 0.0 | :small_red_triangle: 0 - +4 | 0.0 - +0.02 |
arduino:avr:uno |
:green_heart: -12 - 0 | -0.04 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_giga:giga |
0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:adafruit_circuitplayground_m0 |
:green_heart: -24 - 0 | -0.01 - 0.0 | 0 - 0 | 0.0 - 0.0 |
esp8266:esp8266:huzzah |
N/A | N/A | N/A | N/A |
rp2040:rp2040:rpipico |
:green_heart: -24 - 0 | -0.0 - 0.0 | :small_red_triangle: 0 - +16 | 0.0 - +0.01 |
Memory usage change @ 51ae09a918a81009a38d47996a79cc179dc77bd3
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 |
:grey_question: -40 - +8 | -0.06 - +0.01 | :small_red_triangle: 0 - +4 | 0.0 - +0.02 |
arduino:avr:uno |
:grey_question: -12 - +60 | -0.04 - +0.19 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_giga:giga |
:green_heart: -72 - 0 | -0.0 - 0.0 | :green_heart: -16 - 0 | -0.0 - 0.0 |
arduino:samd:adafruit_circuitplayground_m0 |
:green_heart: -508 - -12 | -0.19 - -0.0 | :green_heart: -4 - 0 | -0.01 - 0.0 |
esp8266:esp8266:huzzah |
N/A | N/A | N/A | N/A |
rp2040:rp2040:rpipico |
:green_heart: -32 - 0 | -0.0 - 0.0 | :grey_question: -4 - +12 | -0.0 - 0.0 |
Memory usage change @ 832cf3ad1f62b2a1b178fc26e84cac02baee25e6
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 |
:grey_question: -40 - +8 | -0.06 - +0.01 | :small_red_triangle: 0 - +4 | 0.0 - +0.02 |
arduino:avr:uno |
:green_heart: -110 - -38 | -0.34 - -0.12 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_giga:giga |
:green_heart: -72 - 0 | -0.0 - 0.0 | :green_heart: -16 - 0 | -0.0 - 0.0 |
arduino:samd:adafruit_circuitplayground_m0 |
:green_heart: -508 - -12 | -0.19 - -0.0 | :green_heart: -4 - 0 | -0.01 - 0.0 |
esp8266:esp8266:huzzah |
N/A | N/A | N/A | N/A |
rp2040:rp2040:rpipico |
:green_heart: -32 - 0 | -0.0 - 0.0 | :grey_question: -4 - +12 | -0.0 - 0.0 |
Memory usage change @ 6a0e0015e4ecdec311f33ec50000b1e8efc40b59
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 |
:grey_question: -40 - +8 | -0.06 - +0.01 | :small_red_triangle: 0 - +4 | 0.0 - +0.02 |
arduino:avr:uno |
:green_heart: -110 - -38 | -0.34 - -0.12 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_giga:giga |
:green_heart: -72 - 0 | -0.0 - 0.0 | :green_heart: -16 - 0 | -0.0 - 0.0 |
arduino:samd:adafruit_circuitplayground_m0 |
:green_heart: -508 - -12 | -0.19 - -0.0 | :green_heart: -4 - 0 | -0.01 - 0.0 |
esp8266:esp8266:huzzah |
N/A | N/A | N/A | N/A |
rp2040:rp2040:rpipico |
:green_heart: -32 - 0 | -0.0 - 0.0 | :grey_question: -4 - +12 | -0.0 - 0.0 |
Memory usage change @ 9d64122be1a52b10f332267c56f1b36d3e3714fb
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 |
:grey_question: -40 - +48 | -0.06 - +0.07 | :small_red_triangle: 0 - +12 | 0.0 - +0.06 |
arduino:avr:uno |
:grey_question: -110 - +90 | -0.34 - +0.28 | :grey_question: -1 - +1 | -0.05 - +0.05 |
arduino:mbed_giga:giga |
:green_heart: -72 - 0 | -0.0 - 0.0 | :green_heart: -16 - 0 | -0.0 - 0.0 |
arduino:samd:adafruit_circuitplayground_m0 |
:green_heart: -508 - -12 | -0.19 - -0.0 | :green_heart: -4 - 0 | -0.01 - 0.0 |
esp8266:esp8266:huzzah |
N/A | N/A | N/A | N/A |
rp2040:rp2040:rpipico |
:green_heart: -32 - 0 | -0.0 - 0.0 | :grey_question: -4 - +12 | -0.0 - 0.0 |
I promised to explain a bit, what I have done (not in any particular order).
TLDR:
Without looking at the diffs yet (I tried to kept up to date, but that went a bit fast in the end…), some preliminary answers:
D'accord on switching to Mozzi.h as the new main include file?
Completely, this actually makes more sense to me, name-wise.
Comments on the MozziPrivate namespace hack?
Seems like a clean solution to me, isn't that what namespaces are for basically?
Could you test the Teensies once more? And perhaps an external output sketch or two?
Will try to do soon, alongside a more in-depth review!
I will update here what tests I do and there results as I go.
Board | Condition | Compiles | Works | Comment |
---|---|---|---|---|
AVR | EXTERNAL PT8211 | yes | yes | straight from the example |
RP2040 | EXTERNAL PT8211 | yes | yes | SPI.begin() & SPI.beginTransaction() should be placed after `startMozzi() for some pin config (???) |
RP2040 | I2S PT8211 | yes | yes | |
Teensy 3.2 | SPI PT8211 | yes | yes | |
Teensy 3.2 | standard (DAC mono) | yes | yes | Tested mozziAnalogRead() while at it |
Teensy 4.0 | standard (PWM mono) | yes | yes | Tested mozziAnalogRead() while at it |
Teensy 4.0 | SPI PT8211 | yes | yes |
Quick thought, before I forget. I know I was the author of the config_example_rp2040_i2s_pt8211.h
, but after thinking about it, I wonder if I should not have put all the possible configurable in there (including DMA for instance, with a warning) so that this file could act as a documentation, if these settings are worth being editable (they are not right now).
Not sure anyone would need to change them, but while this is still fresh maybe worth deciding how much is hidden and not editable and how much should be protected but still editable? That does not concern only the RP2040, but probably other platforms where fine hardware tuning were needed.
To be honest, I think this is probably easier for users as it is right now, and probably easy to change afterward anyway…
Ok, in order to keep everything from diverging too far, I think I'll merge this (into devel/Mozzi2), later tonight. As far as I understand, the FixMath2 branch is currently stalled waiting on this, because you are still going to touch the examples, right? I'll try to get that in sync, too.
We can still address the question of how to best set up the MozziPrivate-namespace, later. (Even after Mozzi 2.0, as it won't be user visible).
Regarding your question about additional options in config_example_rp2040_i2s_pt8211.h, I concur, we should not make too much detail too visible. As a rule of thumb, I'd say, anything that isn't immediately expected to make a useful difference "outside the box" should be considered an implementation detail and remain hidden. (E.g. the number of separate buffers).
Hi,
As far as I understand, the FixMath2 branch is currently stalled waiting on this
Well, not really… It is stalled because I do not manage to put enough time on it these days… But it starts to come to an end, Line
class adaptation, optimizations and examples change remain and that's it…
We can still address the question of how to best set up the MozziPrivate-namespace, later. (Even after Mozzi 2.0, as it won't be user visible).
I agree. I did not have to work on that file yet (but that might come with the next port I have in mind for the ATTiny), so I honestly do not have a super clear idea of what is best…
Notes:
Regarding flash (and RAM) usage changes: I left only the reports at a few steps that I think are meaningful, to get a clearer picture, and removed the other ones. What we see is: