-
Notifications
You must be signed in to change notification settings - Fork 313
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
Reconsider the /3 sample rate default for ARM #234
Comments
Since you can easily override this configuration default, have you seen a marked decode improvement when removing /3? Btw, Direwolf is running on a lot of RaspberryPi Zero, Zero W, etc. |
I'm more of a scientist than a philosopher so I like to run experiments to answer questions. ========== RPi 3 ======================== First let's see what impact this has. I'm running on an RPi 3 here. $ atest -P+ -D1 01_Track_1.wav While this is running, it is taking 100% of one core. No surprise there. top - 18:01:19 up 17 days, 7:24, 4 users, load average: 0.80, 0.28, 0.10 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND The RPi 3 is plenty fast, this is taking about 13% of one core. … So an RPi 3 is plenty fast. Now with "-D3". $ atest -P+ -D3 01_Track_1.wav Roughly 3 times faster which I suppose you might expect if the audio sample rate is 1/3. =============== RPi 1A =========================== I'm still running an RPi 1A (not even + variation) for my digipeater/IGate. top - 18:23:27 up 31 days, 22:19, 4 users, load average: 2.61, 2.88, 2.72 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND Direwolf is running about 20% CPU which I would consider comfortable. Let's shutdown the digipeater for a while, to run some timing tests. $ atest -P+ -D1 01_Track_1.wav It's faster than real-time but I would worry about it keeping up if anything else is going on. $ atest -P+ -D3 01_Track_1.wav ============ Summary ================================= So, there is the dilemma. That's why the decimation factor of 3 is in there for ARM. People with faster CPUs can add the "-D1" command line option (or /1 after MODEM in the config file) if they really care about the 0.4% improvement. |
I would hazard a guess that most ARM devices running Direwolf today aren't Raspberry Pi 1s. Most newer systems easily support the full-rate demodulator. Getting full sample rate on these devices requires a fair amount of digging through the documentation to figure out the modem syntax. In order to make Direwolf show its best performance, I think it may be time to default to /1 on all devices.
For those who are running low-power CPUs that can't handle the full-rate decode, maybe we can handle that a little bit more gracefully — for example, by updating the message printed on
-EPIPE
to mention the decimate setting, or maybe even re-initing the demodulator on the fly after a few overruns.The text was updated successfully, but these errors were encountered: