MUSE LUXE speaker with Squeezlite (Logitech Media server)

Ok Philippe, that makes sense. If I get a chance to open my Muse Luxe, I can measure the battery voltage and adapt the scale factor in the bat_config key to match the reported battery voltage with the measured voltage.

Question: In case that I want to change the scale factor, can I use the Muse build of squeezelite-esp32 and enter alternative bat_config parameters in the NVS editor? Or do I then need to use the generic I2S build?

no worries I will soon provide an equivalence mesured voltage at the battery with voltmeter to raw adc.

Having successfully flashed OK a few time, I’m now having problems. It still plays OK, wifi etc but cannot do any commands with esptool to reflash. As an example using esptool with trace and read_mac command - esptool reads a number of blocks OK and then fails.

Any idea how to reset the board (e.g. remove and short pins).

Chip is ESP32-D0WDQ6 (revision 1)
TRACE +0.000 command op=0x0a data len=4 wait_response=1 timeout=10.000 data=0ca0f53f
TRACE +0.000 Write 14 bytes: c0000a0400000000000ca0f53fc0
TRACE +0.003 Read 1 bytes: c0
TRACE +0.000 Read 13 bytes: 010a040000a0000000000000c0
TRACE +0.000 Received full packet: 010a040000a0000000000000
TRACE +0.000 command op=0x0a data len=4 wait_response=1 timeout=10.000 data=0ca0f53f
TRACE +0.000 Write 14 bytes: c0000a0400000000000ca0f53fc0
TRACE +0.003 Read 1 bytes: c0
TRACE +0.000 Read 13 bytes: 010a040000a0000000000000c0
TRACE +0.000 Received full packet: 010a040000a0000000000000
TRACE +0.000 command op=0x0a data len=4 wait_response=1 timeout=10.000 data=10a0f53f
TRACE +0.000 Write 14 bytes: c0000a04000000000010a0f53fc0
TRACE +0.003 Read 1 bytes: c0
TRACE +0.000 Read 12 bytes: 010a040033000000000000c0
TRACE +0.000 Received full packet: 010a040033000000000000
TRACE +0.000 command op=0x0a data len=4 wait_response=1 timeout=10.000 data=18a0f53f
TRACE +0.000 Write 14 bytes: c0000a04000000000018a0f53fc0
TRACE +10.010 Serial data stream stopped: Possible serial noise or corruption.

Really strange b/c with the FTDI chip used, when connecting such tool, the WROVER (esp32) is reset and put in download mode from ROM, so nothing can interfere and AFAIK, there is no use of locked firmware (burnt fuse). Did you try to erase everything from esptools?

In the unlikely event that the autodownload mode fails I have hidden a secret IO0 button to force the download mode. Insert a paperclip in the jack port until you feel a click and hold it, turn off and on. Then you should be in download mode.

I’ve tried esptool.py erase_flash - fails in the same place.
I modded esptool to log what is happening. The 0x0a command is a read. The tools reads efuse memory locations 3,4,5 OK but fails on efuse 6.
I’ve tried to do a espefuse.py summary - and it fails in same place.

I think all the ESP tools go through a common set of reads to determine the chip, setup etc before they try to do an action as esptool is used on all ESP chips.

Tried the paperclip in the jack port. Got the message “waiting for download”. Then tried esptool.py - same error.

I need to read up some more on efuse but it “feels” like that specific efuse memory is dead and so ESP32 hangs trying to read that location. Serial port comes back to life if power off/on again and boots all the firmware.

Thanks, I’ll keep trying but it’s not high priority.

Looks like speaker is back to normal. I’ll do a reflash later today to check it fully.

I disconnected speaker from USB & fully discharged the speaker overnight. Reconnected to PC USB and let it charge for a bit before turning it on.

Now “esptool chip_id” and “espefuse summary” commands runs OK. Ubuntu was not rebooted - so nothing change on host side.

Techno-fairies obviously did their usual overnight fix.

Phew!
It’s all magic to me! I reflashed with the original bin file. Set up the WiFi. Then I used the OTA update to get the latest Muse firmware. All working apart from the dreadful battery drain.

hi just an update, I’m still working on the standby battery leak and a possible solution. And also we will publish this week a little tutorial on how to add a screen with a 3d printed mount add on :
image

All for this week :crossed_fingers:

The tutorial to add the screen is available here : ESPmuse Luxe FAQ

Here are the results of my tests of the last few days regarding 2 issues reported about the MuseLuxe :

  1. Short battery life while playing audio
  2. Short standby time when the device is OFF after a few hours it does not wake up

Executive summary
in a nutshell the battery capacity is not good. For backers who bought the Luxe before February 4th 2022 I admit that the specification advertised was wrong about the battery capacity thus you can if you wish return the product for a full refund (I will also pay for the shipment return) If you wish to do that please send me a message.
There is also a tutorial at the end to guide you to replace the battery.

Analysis and root cause :

1. Short battery life while playing audio
I ran a discharge test while streaming an internet Radio using SqueezeLite and I got a playing time of about 4h15mn.
image

The battery management chipset (BMS) is charging to 4.16v and cut-off is at 3v. The battery capacity is quite low as I tested some discharge cycles at about 1500mAh, the battery is labeled with 1200mAh. Also notice that the value of the ADC is quite unstable, to me this is due the rather low capacity of the battery that when under discharge has a voltage drop, as the discharge changes quickly tension changes too.

ADC reads Vbat factor
2416 4.09 590.71
2407 4.04 595.79
2331 4.01 581.30
2324 3.98 583.92

2. Short standby time when the device is OFF after a few hours it does not wake up
For short standby time, when the switch is in off position, the battery only lasts about 14h. So there is a current leak even when off. The root cause of this current leaks come from the BMS chipset bug that draws about 14mA in off position, but this alone can’t explain that the battery is empty after half a day, so the quality of the battery is still in question.
When I did my prototype this was not the case so I suspect that it is a problem with the batch of this chip that I have used for production even if it was bought from an official source. This combined with a small capacity battery leads to a standby time below industry expectations for bluetooth speakers.

The BMS was also tested for security features, and it behaves as expected protections of overcharge and under discharge is working as expected. The battery built-in protection is also working as expecting. So no security issues.

Conclusion
Yes the BMS chip is drawing current even when off, this with a shorter battery capacity than I expected leads to the 2 issues mentioned. Changing for a better battery quality will drastically improve performance of the Luxe.

Just as a matter of comparaison original battery vs 3500mah Battery:

  • Playing time goes from 4h to 9h+
  • Standby time goes from 14h to 60h+

here is a tutorial on how to change the battery

For all backers that bought the Luxe before February 2022 I admit that the specification advertised was wrong about the battery capacity thus you are eligible for a full refund (I will also pay for the shipment) For future buyers the specification will be changed so they will be informed of the performance to expect before buying.

With respect to short standby time when the power switch is in OFF position, I think that the 14mA leakage current drawn by the BMS chipset is not the full explanation. If I assume a pessimistic battery capacity of 1000mAh, it would still take 1000/14 = 71 hour to discharge the battery. This is five times longer than the 14 hours that you have seen. It seems there must still be something else, unless the battery has a very large leakage itself

I fully agree, the BMS can’t take all the blame for this issue.There is I think the BMS, and the poor battery capacity. Maybe also the 14mA increases with battery voltage drops, I will also test this.

What I know for sure is when chaging the battery I have tested battery standby time of more 60h. I had to stop the test as it appeared already a descent standby time.

The capacity of the battery would have to be around 200mAh to discharge completely at 14mA so there must be another leak somewhere.it would also be strange for all of the BMS chips to have a “bug”. Do you think 60 hours is a decent standby time? It means if you leave it unused for 2 days you will only get 20% of the expected playing time. So practically it needs to be charged before every use.

It should be possible to use a 5000mAh 21700 too, there seems to be enough space, or am I wrong.

I totally agree with you guys numbers does not adds up, so I am on a new very interesting lead that I will test over the weekend , let see if the battery level changed as expected on monday morning.

@Chrissy - Yes, I think you should be able to fit a 21700 very easily. I think it would not quite fit where the original battery was - that ‘shelf’ leaves a gap of 20mm. But the gap on the other side of that shelf is ~45mm. Between the speakers there is at least 80mm to play with, and the depth up to the back of the passive radiator is ~40mm.

If you changed the PID of the Silicon Labs USB/serial device then Windows could automatically collect and install the right driver.
See https://community.silabs.com/s/article/downloading-cp210x-drivers-from-windows-update?language=en_US

I don’t know if changing the PID would have any effects on other systems that check the USB VID/PID info.

I received my MUSE LUXE today and I see no signs of life at all, just a blue flashing LED when connected to USB. It arrived with the switch in the “on” position. It didn’t show up as a Bluetooth device so I flashed the SqueezeliteML firmware. It still doesn’t show up on Bluetooth and also doesn’t broadcast a WiFi AP.

Hi,
Just to be sure :
-When the speaker arrived have you tried to turn it on and did you hear ‘bluetooth’?
-have you used a usb data cable and have no problem to upload the bin file?

Being able to load the bin and not see the Bluetooth name is rather unusual. Have you tried to load out SqueezeLite bin at address 0?

Feel free to contact me in PM for this troubleshooting