adafruit / adafruit/Adafruit_VS1053_Library

Support for differential Output

Open
#28 0 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.