adafruit / adafruit/Adafruit_VS1053_Library
Support for differential Output
- Dominant language
- C++
- Stars
- 152
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
I was trying to make the differential Output work by loading the current patch for the VS1053 and using the following settings afterwards:
```
// Enable Mono Output
musicPlayer.sciWrite(VS1053_REG_WRAMADDR, 0x1e09);
musicPlayer.sciWrite(VS1053_REG_WRAM, 0x0001);
// Enable differential output
uint16_t mode = VS1053_MODE_SM_DIFF | VS1053_MODE_SM_SDINEW;
musicPlayer.sciWrite(VS1053_REG_MODE, mode);
```
Unfortunately this didn't work and took me quite a while to realize that startPlayingFile is doing
```
// reset playback
sciWrite(VS1053_REG_MODE, VS1053_MODE_SM_LINE1 | VS1053_MODE_SM_SDINEW);
```
Is there a reason for this? IMHO startPlayingFile shouldn't mess with the MODE register.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at startPlayingFile, especially the reset playback write to VS1053_REG_MODE, and compare it with the caller's differential-output configuration. Determine how playback can retain the requested MODE settings, then verify that differential output remains enabled when a file starts on the VS1053 hardware.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- audio-video-rtc, embedded-iot
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100