New project opportunity: Media player?

Post Reply
millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

New project opportunity: Media player?

Post by millim »

Dear community,

I am searching for a new project opportunity of a modern, skinable media player (at least mp3 audio format) for the Odroid GO. I am aware of the ogo-shell which is actually very nice and handy. However, I especially like the BT feature and was not able to find any working media player that supports BT audio streaming to wireless headphones which is ESP32 based. There are only examples around using the esp_adf feature set. Ok, the ESP32 supports only SBC codec over BT classic, but with properly set bit-rates it's comparable to MP3 quality. I did a bit of a search on the web and found some candidates:

A.) Rockbox (https://www.rockbox.org)
- Looks to be to divers and too difficult to port to the Odroid Go.

B.) Nitrogen (https://github.com/WinCEsoft/APP-MULTIMEDIA-Nitrogen)
- Nice skin-able media player, for Windows CE, also difficult to port, I think

C.) STM32 Motion player (http://nucleof401player.wiki.fc2.com , http://motionplayer.wiki.fc2.com)
- Ultra cool project on a bare metal STM32 shield, looks to be Ok to port, still a lot of work to merge it with freeRTOS/esp_idf

D.) add the BT feature to the ogo-shell
- Straightforward, but does not feature a nice skinning like today's media players do.

Have somebody already tried to develop/port a modern/decent media (mp3) player to the OG, or is it too difficult to get it to work on the ESP32?

Please find below a dev version of the nucleo player supporting Bluetooth Headphone/Speaker streaming.
At the moment only MP3, 44.1kHz, 16 bit supported. Sorry no documentation at the moment, some menu controls you will find explained in the posts below.

regards
millim
Attachments
OgPlayerII1.3.zip
Version 1.3
(736.77 KiB) Downloaded 14 times
Last edited by millim on Tue Aug 10, 2021 4:03 am, edited 3 times in total.
These users thanked the author millim for the post:
deecee (Wed Aug 11, 2021 6:13 am)

Hensch
Posts: 5
Joined: Thu Nov 12, 2020 5:28 am
languages_spoken: english, german
ODROIDs: C1+ with HifiShield 2, C2, GO
Has thanked: 3 times
Been thanked: 1 time
Contact:

Re: New project opportunity: Media player?

Post by Hensch »

I'm not a developer. But I always hoped that ogo-shell will be continued some day. I like its simplicity. There are some things that could be better. I personally don't need skinning capabilities. I prefer a feature packed and stable (and energy saving) player with simple interface.

The following features would be nice:
- progress bar and time on player screen
- show cover art if available
- option to play whole folder with sub folders
- tag support
- remember last song when shut off
- Bluetooth audio output
- streaming web radio
- simple ftp server for file upload
- play list support
- web interface for remote control
- emulator launcher
These users thanked the author Hensch for the post:
millim (Fri Jun 25, 2021 4:23 am)

ddrsoul
Posts: 34
Joined: Thu Feb 04, 2021 4:47 pm
languages_spoken: english
ODROIDs: Odroid go
Has thanked: 4 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ddrsoul »

I agree, it would be nice to have player to forward web radio (m3u) to bluetooth speaker. At least this is something i may use at home.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

Hensch wrote:
Tue Jun 22, 2021 5:15 am
I'm not a developer. But I always hoped that ogo-shell will be continued some day. I like its simplicity. There are some things that could be better. I personally don't need skinning capabilities. I prefer a feature packed and stable (and energy saving) player with simple interface.

The following features would be nice:
- progress bar and time on player screen
- show cover art if available
- option to play whole folder with sub folders
- tag support
- remember last song when shut off
- Bluetooth audio output
- streaming web radio
- simple ftp server for file upload
- play list support
- web interface for remote control
- emulator launcher
Thanks, Hensch for this valuable inputs! Indeed, these are cool features. I am working on the framework actually, with good progress... :-)

millim
These users thanked the author millim for the post:
Hensch (Fri Jun 25, 2021 6:16 am)

Hensch
Posts: 5
Joined: Thu Nov 12, 2020 5:28 am
languages_spoken: english, german
ODROIDs: C1+ with HifiShield 2, C2, GO
Has thanked: 3 times
Been thanked: 1 time
Contact:

Re: New project opportunity: Media player?

Post by Hensch »

I think this will be a very valuable piece of software when released, especially a draft for other ESP32 projects. For example one could make things similar like this. The Odroid with I2C or Bluetooth audio will be the perfect playground for this, a nice pocket player and wireless data drive. 8-)

L67GS
Posts: 579
Joined: Wed Apr 22, 2020 3:02 pm
languages_spoken: English, Jibberish, Pig Latin
ODROIDs: XU4, C1+,(3) C0's, and a whole big pile of accessories, VU7A Plus,, ect....
Location: Great Lakes Region, U.S.A
Has thanked: 158 times
Been thanked: 83 times
Contact:

Re: New project opportunity: Media player?

Post by L67GS »

A while back I experimented a bit with writing an mp3 player in C++ using ffmpeg as the engine. I ran 2 threads, each thread used ffprobe to measure the length of the mp3 currently playing in the other thread, subtracted a couple seconds from the time and started it's mp3 at that time with ffplay.
So it would play all the mp3's in the folder sequentially and mixed.
It was a curiosity/challenge project but it was still a cool feature to fiddle with.
At some point in time I'd like to get into QT Creator and make a little front end for it.

User avatar
mad_ady
Posts: 9681
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: New project opportunity: Media player?

Post by mad_ady »

@L67GS except this thread is for the original Go, which runs on ESP32 and doesn't run linux.

L67GS
Posts: 579
Joined: Wed Apr 22, 2020 3:02 pm
languages_spoken: English, Jibberish, Pig Latin
ODROIDs: XU4, C1+,(3) C0's, and a whole big pile of accessories, VU7A Plus,, ect....
Location: Great Lakes Region, U.S.A
Has thanked: 158 times
Been thanked: 83 times
Contact:

Re: New project opportunity: Media player?

Post by L67GS »

mad_ady wrote:
Sat Jun 26, 2021 2:05 am
@L67GS except this thread is for the original Go, which runs on ESP32 and doesn't run linux.
Just for the sake of pointing out a neat feature that was pretty easy to code.

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Yes! I'm very excited that you're working on this. ogo-shell is nice and I use it a lot but it would be very welcome to have an audio player with more fleshed out features. Hensch's list is good and I agree about preferring a simple and efficient interface. Perhaps adding features to ogo-shell would be the most effective way to accomplish a good media player since at least some of the important stuff has already been done?

I'll throw in my list separated into essential and nice to have.

Essential features:
- Shuffle mode (shuffle all songs in the library or within a folder and all subfolders)
- Progress Bar and ability to Seek
- Editable playlist/queue

Nice to Have:
- Output to Bluetooth Speaker/Headset
- Resume play at position from last exit (would be great for podcasts)
- Cover art and tags/metadata
- Internet Streams

I don't think building file uploading is necessary since there are already multiple firmwares for file management that are easy to boot into with the multi-boot firmware.

PS. Is there somewhere I can donate to support this effort?

Hensch
Posts: 5
Joined: Thu Nov 12, 2020 5:28 am
languages_spoken: english, german
ODROIDs: C1+ with HifiShield 2, C2, GO
Has thanked: 3 times
Been thanked: 1 time
Contact:

Re: New project opportunity: Media player?

Post by Hensch »

kelbot wrote:
Thu Jul 01, 2021 2:40 am

I don't think building file uploading is necessary since there are already multiple firmwares for file management that are easy to boot into with the multi-boot firmware.
You're right. I didn't check existing firmwares. Maybe there is a lightweight one for file management so we can upload our music files.

Yes, ogo-shell is probably the perfect draft for this. It can play several file formats, show pictures (for cover art) and supports external DAC.

ddrsoul
Posts: 34
Joined: Thu Feb 04, 2021 4:47 pm
languages_spoken: english
ODROIDs: Odroid go
Has thanked: 4 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ddrsoul »

Hello, millim.
How is it going with your project?
Finally, I am ready to listen to some music.
Attachments
photo_2021-07-15_11-41-04.jpg
photo_2021-07-15_11-41-04.jpg (49.41 KiB) Viewed 1992 times

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

ddrsoul wrote:
Thu Jul 15, 2021 5:42 pm
Hello, millim.
How is it going with your project?
Finally, I am ready to listen to some music.
Hi ddrsoul,

thank you for asking this :). Well, I have decided to go for the Nucleo motion player as a basis for the project. Because it has already a menu and setup GUI structure build in, easy to be adapted. Furthermore, it features a very nice 16bit color GUI with alpha blending support. Also it is very handy to add and modify icons and features a simple DSP. Porting it to the Odroid-Go was rather straight forward. (See the picture attached here) :

Image

I have added BT audio support (+ Internal Speaker and external DAC) might add SPDIF as well. As mentioned, my primary goal is to develop a MP3 player with headphone capabilities. Since the OG does not have a headphone jack (what I truly miss), BT is the only alternative, also nice getting across nasty cabling squabbling :) when working in the workshop, gardening, lumbering, etc. or just relaxing on the beach is a nice feature. In general an ipod alternative with BT support (in case one wants to be independent of the mobile phone, as I want to be in that case).

As mentioned, I have already invested a couple of hours to port the Nucleo motion player, added BT, Display sleep and button hold functions, also added boot to FW. It is not fully ready to share. I might share a FW file, when all nasty bugs are sorted out.

Unfortunately, I was not aware of squeezelite for the ESP32 since today :o . It would have been the right choice to start with.
https://github.com/sle118/squeezelite-esp32
https://www.youtube.com/watch?v=0bZc0yAf8CA

It looks that it also supports ILI9341 320x240 display. And I think the developers did a fantastic job:
"Now, to have all the decoding, resampling, equalizing, gain, display, spectrum/vu is a very (very) delicate equilibrium between use of internal /external RAM, tasks priorities and buffer handling. It is not perfect and the more you push the system to the limit, the higher the risk that some files would not play (see below). In general, the display will always have the lowest priority and you'll notice slowdown in scrolling and VU/Spectrum refresh rates. Now, even display thread has some critical section and impacts the capabilities."

As mentioned, I will focus on MP3 player from SDcard through Bluetooth with 44100kHz/16Bit format only based on Nucleo motion player. At the moment I will not invest any time on DAB radio, Wifi streaming, etc. My use-cases are outdoor, where I do not have WIFI coverage. Furthermore, It would exceed "fun level" and it is "above my pay rate" ;)

in conclusion to this post: The music I listened during development: https://www.youtube.com/watch?v=77XGgUBFyBE
millim
Last edited by millim on Sat Aug 07, 2021 4:51 am, edited 1 time in total.
These users thanked the author millim for the post:
mctom (Thu Aug 05, 2021 6:41 am)

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Great work millim! Looks like you're off to a good start. What kind of features does the nucleo motion player have? I'm very excited about this!

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Sun Jul 18, 2021 12:25 am
Great work millim! Looks like you're off to a good start. What kind of features does the nucleo motion player have? I'm very excited about this!
hi kelbot,

just look at the intro of the original Nucleo Player:
https://www.youtube.com/watch?v=RlwP5DOwANs

The OG version will feature the music player (no video, since too slow on the OG, and 160x128 resolution, there is no point to do so). Everything else the same way as shown in the video plus:
- I have added audio device selection menu entry to the setup menu (Internal Speaker, DAC, and Bluetooth) already
- The BT feature supports device discovery and connect
- Keypad lock / display sleep (configurable in the setup menu)

- Will add battery status and volume level to the player window
- Will keep the 160x128 resolution, 95% anyways used with display off to save power, only impacting performance, and would be a lot of work.

- Might add playlist support, need to find easy way to fiddle this in. The player uses a handcrafted FAT system I am reusing, surprisingly it is working and it is really fast.
- Might add play/resume feature after power off. I need to add SPI FLASH file system to store config and status. The handcrafted FAT system does not support SDCARD writing.

I would have shared already a test version. But I experience SDCARD CRC errors sporadically when connected via Bluetooth. It has a specific pattern, I need to (try) to fix this first.

millim

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

millim wrote:
Sun Jul 18, 2021 5:00 am

hi kelbot,

just look at the intro of the original Nucleo Player:
https://www.youtube.com/watch?v=RlwP5DOwANs

The OG version will feature the music player (no video, since too slow on the OG, and 160x128 resolution, there is no point to do so). Everything else the same way as shown in the video plus:
- I have added audio device selection menu entry to the setup menu (Internal Speaker, DAC, and Bluetooth) already
- The BT feature supports device discovery and connect
- Keypad lock / display sleep (configurable in the setup menu)

- Will add battery status and volume level to the player window
- Will keep the 160x128 resolution, 95% anyways used with display off to save power, only impacting performance, and would be a lot of work.

- Might add playlist support, need to find easy way to fiddle this in. The player uses a handcrafted FAT system I am reusing, surprisingly it is working and it is really fast.
- Might add play/resume feature after power off. I need to add SPI FLASH file system to store config and status. The handcrafted FAT system does not support SDCARD writing.

I would have shared already a test version. But I experience SDCARD CRC errors sporadically when connected via Bluetooth. It has a specific pattern, I need to (try) to fix this first.

millim
Thanks for the details! Regarding the resolution, you mean you plan to leave it as it is in the photo you posted of the interface centered with black all around it? Could you just scale it up so it would fill the display without affecting performance?

Playlist support would definitely be nice. Resume would turn it into a really nice podcast player!

Whatever you end up doing it sounds like it will be pretty sweet to have regardless. Looking forward to trying it out, cheers!

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Sun Jul 18, 2021 9:05 am
Could you just scale it up so it would fill the display without affecting performance?
Well, agree would be really nice. But there is always a "but" ;). Here some technical details:
- With the current resolution, I can reuse all the clever buffer management of the Nucleo player. It just needs 40kbytes of RAM shared between display, audio and DSP. During playback it does partial display update of time and progress bar only, rest is used for audio streaming and DSP. You know, RAM is a "golden" resource on the ESP32.

- Full frame update on the OG needs about 33ms, there is no way to do it faster. Within that time SDCard reading is blocked (shared bus), MP3 frames need to be processed in about 20ms to experience real time playback, so there must be a SDcard call every 20ms. So this solution is not straight forward. This even holds for 2x2 scaling since the SPI can't be set faster than 40MHz. Either to buffer a lot of data to the PSRAM first, processing, rebuffer on display idle. Partial display update would also be here the only reliable solution.

- Need to revisit the buffer management. 320x240 Display buffer need to go to PSRAM, partial area that needs to be updated frequently, need to go to RAM, and it would need a balance between copy from FLASH, PSRAM and RAM for nice alpha blending experience and to keep reliable streaming performance.

For sure, would be a nice challenge to take :geek: .Maybe when the nights are getting shorter, I might think about it again ...

- And finally when Bluetooth comes into play (mentioned as the main driver for me doing that). All this needs to be so fine tuned, see the squeezelite project for details. So, if you have also some programming skills, I recommend enabling squeezelite on the OG 8-).

millim
These users thanked the author millim for the post:
kelbot (Wed Jul 21, 2021 11:36 am)

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

Short update..

had some spare time to continue on this project. I think the intermediate result might be useful for somebody else. Basically, it does what it should do, plays .mp3 files 44.1kHz/16Bit through Bluetooth. Supports also DAC out (not tested, same config as the OG-SHELL APP should work), and internal speaker (just useful for monitoring, quality is really bad due to the 8 bit DACs as used on the OG) by changing the Audio device settings in the main menu.

Some additional comments:
- Boosting to full 320x240 resolution would be possible, I have adapted the basic graphic layer to support this, "just" would need to redo the graphics part, and I need to find a nice skin, maybe you have some suggestions for it?
- Extending to other formats would be difficult because the nucleo playback structure is vertically organized, so every new format needs to have its own streaming layer and display control. A lot of code is redundant. Not like esp_adf or squeezelite which has a common streaming layer or a single graphic frontend, respectively.

One other comment on the internal speaker:
- I know it is sufficient for game emulation, but for audio there might be a far better solution for it. The ESP32 holds two 8bit-DACs which could be used as one ~16bit DAC by doing analogue summing using 1:256 divider ratio on the summing resistors, like 1M Ohm and 3.9k Ohm (<= 1% error). Basically same component cost but by far better audio quality.

hope this works out for you and sorry for lacking documentation on player control.

millim
Attachments
OgPlayerII.zip
OG Player (nucleo) Firmware
(736.9 KiB) Downloaded 15 times
These users thanked the author millim for the post (total 2):
odroid (Wed Aug 04, 2021 6:00 pm) • kelbot (Thu Aug 05, 2021 8:40 am)

ddrsoul
Posts: 34
Joined: Thu Feb 04, 2021 4:47 pm
languages_spoken: english
ODROIDs: Odroid go
Has thanked: 4 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ddrsoul »

Wow! I tested it with my bluetooth headphones.
Pairing went smoothly. Sound is good for my 20$ headphones. But first time I opened my "music" folder - everything freezed. After reboot I never encountered same issue again.
Still need to figure out control.
P.S.
Ok, now I can not open my music folder at all

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

ddrsoul wrote:
Thu Aug 05, 2021 3:02 am
But first time I opened my "music" folder - everything freezed. After reboot I never encountered same issue again.
Hi, I am aware of this issue, I tried to debug already, but it is really difficult to catch. What I know it is SDcard related, and it throws an CRC error on reading.
It could be a memory leak of the nucleo hand-crafted FAT file system code, or a general SDcard interface hardware related issue on fast burst data transfer.
Sure, I will post an update when the bug is found and fixed.

millim

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

This is so awesome millim! Did a quick test and will play with it some more over the next couple days.

BT working well so for. Discovered one of my music folders freezes the program.

Is mp3 the only supported format?

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

I tried to connect to my auto's Bluetooth thinking it would be nice to just flick the Go on and play music while driving. It sees the device but fails connecting. I think because my car's BT requires a PIN. I couldn't find anywhere to disable the PIN either. An unfortunate quirk of my car's BT I guess.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Thu Aug 05, 2021 11:55 pm
I tried to connect to my auto's Bluetooth thinking it would be nice to just flick the Go on and play music while driving. It sees the device but fails connecting. I think because my car's BT requires a PIN. I couldn't find anywhere to disable the PIN either. An unfortunate quirk of my car's BT I guess.
Well, a car normally supports the hands free profile (HFP) primarily (only). Which is used to connect your phone doing hands free phone calls. This is fundamentality different to the A2DP profile for audio streaming the player uses. However, that simple authentication password of the player for A2DP is "1234". But, I assume it will not work due to the missing A2DP profile your car's bluetooth device would need to support.

millim

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Thu Aug 05, 2021 8:42 am
Is mp3 the only supported format?
kelbot wrote:
Thu Aug 05, 2021 8:42 am
Is mp3 the only supported format?
Yes, and only 44.1kHz, as mentioned in my previous post!

.wav and .aac would be easy to support, because the original nucleo player supports it by default. Some tweaks to get it work. If there is a need for it, I will enable it.
.flac, and .ogg would need an additional streaming layer, and basically there is no real benefit to support, because the audio quality through the ESP32 A2DP SBC codec can't be better than mp3/320kbps/16bit/44.1kHz. If you have such loss-less formats, I propose to use ffmpeg to convert it to mp3.

48kHz would require:
- hacking the esp_idf bluetooth stack, because there is no interface to change the sampling rate on A2DP (at least up to version 4.3, which I am using for this project), or
- resampling, this would require a change to the esp_adf (which is really well suitable for audio processing). It supports also 10-band equalize and basically all audio codecs, really cool.

After all this experience, and if you would have the time to start over in this project, I would:
- take the basic graphic layer from the nucleo player, change it to a modern 320x240 style like media player or ipod classic theme.
- would use the audio processing and streaming support of the esp_adf as much as possible or base it on the Earle F. Philhower, III ESP8266Audio lib.
- would use native esp_idf sdcard file access.
- would use the squeezelite media servers, but without the necessity of another wifi device for setup.

Maybe if I'm getting bored in the long winter nights to come, I may revisit this :). I like audio processing and the ESP32 and the OG is a cool playground for this.

millim

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

millim wrote:
Fri Aug 06, 2021 4:38 am
Well, a car normally supports the hands free profile (HFP) primarily (only). Which is used to connect your phone doing hands free phone calls. This is fundamentality different to the A2DP profile for audio streaming the player uses. However, that simple authentication password of the player for A2DP is "1234". But, I assume it will not work due to the missing A2DP profile your car's bluetooth device would need to support.

millim
That all makes plenty of sense. It's no big deal about the car BT, just would have been really convenient if it had worked. I think I have a little bluetooth adapter that I can plug into the AUX port that might work.

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

millim wrote:
Fri Aug 06, 2021 5:23 am

Yes, and only 44.1kHz, as mentioned in my previous post!

.wav and .aac would be easy to support, because the original nucleo player supports it by default. Some tweaks to get it work. If there is a need for it, I will enable it.
.flac, and .ogg would need an additional streaming layer, and basically there is no real benefit to support, because the audio quality through the ESP32 A2DP SBC codec can't be better than mp3/320kbps/16bit/44.1kHz. If you have such loss-less formats, I propose to use ffmpeg to convert it to mp3.

48kHz would require:
- hacking the esp_idf bluetooth stack, because there is no interface to change the sampling rate on A2DP (at least up to version 4.3, which I am using for this project), or
- resampling, this would require a change to the esp_adf (which is really well suitable for audio processing). It supports also 10-band equalize and basically all audio codecs, really cool.

After all this experience, and if you would have the time to start over in this project, I would:
- take the basic graphic layer from the nucleo player, change it to a modern 320x240 style like media player or ipod classic theme.
- would use the audio processing and streaming support of the esp_adf as much as possible or base it on the Earle F. Philhower, III ESP8266Audio lib.
- would use native esp_idf sdcard file access.
- would use the squeezelite media servers, but without the necessity of another wifi device for setup.

Maybe if I'm getting bored in the long winter nights to come, I may revisit this :). I like audio processing and the ESP32 and the OG is a cool playground for this.

millim
Ok, sorry I missed that bit about mp3 only.

This is a great start and thank you for working on it and sharing.

I figured out the volume shortcut (speaker menu button + up/down on dpad), play/pause (down on dpad), skip forward/back (left and right on dpad). Is there any way to activate a shuffle/random mode?

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Fri Aug 06, 2021 9:14 am
I figured out the volume shortcut (speaker menu button + up/down on dpad), play/pause (down on dpad), skip forward/back (left and right on dpad). Is there any way to activate a shuffle/random mode?
Yes, sure. It is in player mode <A>+<RIGHT>, <A> needs to be pressed first. I think it is NONE -> Repeat Album -> Repeat Current -> Shuffle -> return to menu after. The multiple one presses the keys. I recommend watching the nucleo video on that node.

BTW. I have moved the update of the code to the first post. V1.1 now posted.

And you can change BASS boost levels from 0.. 3 by <SPEAKER>+<A>. <SPEAKER> needs to be pressed first.

millim
These users thanked the author millim for the post:
kelbot (Sat Aug 07, 2021 11:32 am)

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Working well for me overall! Just to be clear, anything I'm reporting here is merely for your information to hopefully be helpful with improving the firmware. None of this is a criticism or complaint about anything. I am extremely happy with this :).

Some things I've noticed:

Some song info does not display correctly (pictures attached). Not sure if it's something weird with the tags on some of my files. Some display perfectly fine.

Settings that get changed do not persist between restarts. Like changing brightness, enabling spectrum analyzer etc.

PS. I am also experiencing the previously mentioned freezing when accessing a folder somewhat frequently.
Attachments
Song info displaying correctly
Song info displaying correctly
IMG_20210806_223442.jpg (325.29 KiB) Viewed 1247 times
song info not correctly displaying
song info not correctly displaying
IMG_20210806_222846.jpg (297.95 KiB) Viewed 1247 times

User avatar
mad_ady
Posts: 9681
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: New project opportunity: Media player?

Post by mad_ady »

Looks like it's using utf-8 for the tags and most likely the engine doesn't have characters for those symbols.

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Read back through some of the older posts and there are some details in there that I had forgotten. I see that you are already aware of the settings not saving so disregard that bit :). Apologies.

mad_ady wrote:
Sat Aug 07, 2021 10:51 pm
Looks like it's using utf-8 for the tags and most likely the engine doesn't have characters for those symbols.
Ah, ok. Is it common for ID3 tags to use utf-8?

User avatar
mad_ady
Posts: 9681
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: New project opportunity: Media player?

Post by mad_ady »

Is it common for ID3 tags to use utf-8?
Yes, in order to encode non-ASCII characters. It depends on who created the metadata. There are lots of tools to change the tags. Search for one that can transliterate tags from utf-8 to ASCII.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

- I have checked the embedded font. Need to be ASCII and extra characters are not supported.

Still, it is possible to add a personal font copied to the SDcard root folder. Auto translate from the nucleo homepage:

About external fonts

This player has a built-in ASCII character font, but it is possible to display in multi-byte by copying a dedicated font file (PCF bitmap font) to the card.
In addition, beautiful drawing is possible because antialiasing is performed by the oversampling method.

PCF bitmap font

It is a bitmap font format called PCF (Portable Compile Font) used for X servers.
In this player, the PCF stored in the font size 48px is reduced and used as a 16px or 12px font.
You can convert TrueType and OpenType fonts used on your computer to PCF by combining UNIX commands.
However, please check if the font file can be modified at your own risk.

How to generate PCF bitmap fonts from TrueType and OpenType fonts
It can be generated on the command line below using the UNIX commands otf2bdf and bdftopcf .
otf2bdf -r 72 -p 48 font.ttf | bdftopcf> FONT.pcf
If you copy the generated FONT.pcf to the root directory of the card, the player will read and apply it at startup.

External font used in this player
M + OUTLINE FONTS
mplus-fonts.sourceforge.jp/mplus-outline-fonts

We would like to take this opportunity to thank Mr. Morishita for creating a very nice font and providing it free of charge.



- Storage of settings is not supported due to missing FLASH storage support, I think, I have mentioned this in one of my posts earlier.
- Improved on frequent freezing. Version 1.2 available through top post.

~millim

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Cool, thanks for the info about the fonts.

Ok, I've managed to find a playback issue. I've made a folder and copied a large number of mp3s into. I navigate to the folder, play a song, toggle A + right a few times to get to shuffle mode. At this point it will go to a black screen and playback will stop either when the current song ends or if you try to skip to the next song. Button input is still registering because the backlight will come back on if press a button but the screen stays black and I have poweroff.

If I don't toggle to shuffle mode I can skip songs and it continues playing as expected. I can also use shuffle on other folders with only 10-20 mp3s in them and it works as expected. So I'm wondering if it's related to the large number of mp3s in the folder that it's trying to shuffle.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Mon Aug 09, 2021 12:51 pm
Cool, thanks for the info about the fonts.

Ok, I've managed to find a playback issue. I've made a folder and copied a large number of mp3s into. I navigate to the folder, play a song, toggle A + right a few times to get to shuffle mode. At this point it will go to a black screen and playback will stop either when the current song ends or if you try to skip to the next song. Button input is still registering because the backlight will come back on if press a button but the screen stays black and I have poweroff.

If I don't toggle to shuffle mode I can skip songs and it continues playing as expected. I can also use shuffle on other folders with only 10-20 mp3s in them and it works as expected. So I'm wondering if it's related to the large number of mp3s in the folder that it's trying to shuffle.
:D good catch! I wanted to try this out already. I will try to reproduce and fix...

~millim

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

... should be fixed now. Updated version 1.3 available from the first post as usual.
These users thanked the author millim for the post:
kelbot (Tue Aug 10, 2021 4:23 am)

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

Confirmed shuffle working great for me now.

ddrsoul
Posts: 34
Joined: Thu Feb 04, 2021 4:47 pm
languages_spoken: english
ODROIDs: Odroid go
Has thanked: 4 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ddrsoul »

Hello, millim.
Your work is amazing.
I tried to use odroid go at home with my JBL go (Bluetooth connection) and found out that I can not change volume.
With built in speaker all is working.
I will try tomorrow with external DAC too.

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

ddrsoul wrote:
Wed Aug 11, 2021 7:01 am
Hello, millim.
Your work is amazing.
I tried to use odroid go at home with my JBL go (Bluetooth connection) and found out that I can not change volume.
With built in speaker all is working.
I will try tomorrow with external DAC too.
I noticed the same thing with my IKEA Eneby Bluetooth Speaker. Plays loud and the volume on the go doesn't change it. The speaker it self doesn't have a volume control either so it's either loud or nothing :).

My Panasonic earbuds have two buttons for volume up/down and they work but I think that is an internal volume control for the earbuds that works independently of the bluetooth device.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

on the volume control...

well, I have read some posts already before, and it looks (as far as I rememberer) there is no simple way how to do the volume control to fit all products. I think there are multiple ways and I do not own such devices to test it.

However, I will try to add a menu item that can be used to enable/disable volume control on the OG for Bluetooth playback, I have disabled it not to compromise sound quality. But this is no guarantee that it might work since some speakers/headphones normalize the samples again before doing volume control, or the speaker sends just volume control request to the OG which are not handled at the moment.

finally I am working on a real skin :mrgreen: like:
Image

millim
Attachments
new skin
new skin
new_skin.png (71.16 KiB) Viewed 1064 times

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

This looks great. Can't wait to check it out!

ODTxF
Posts: 17
Joined: Sat Dec 26, 2020 4:56 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 6 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ODTxF »

Hello, thanks for this music player!

I like the bluetooth mode but only work with 1 of my 3 Bluetooth wireless headset.

Work fine only with a HMC_BTHS03 but don't work with a "Escape 220 (Motorola)" and a "TWS 12619". The wireless headset is connected and the player freeze. I tried many times and allways crash or no sond after connection.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

ODTxF wrote:
Mon Aug 16, 2021 6:38 am
Hello, thanks for this music player!

I like the bluetooth mode but only work with 1 of my 3 Bluetooth wireless headset.

Work fine only with a HMC_BTHS03 but don't work with a "Escape 220 (Motorola)" and a "TWS 12619". The wireless headset is connected and the player freeze. I tried many times and allways crash or no sond after connection.

Thank you for your feedback. Well, interoperability is always a challenge :) How to fix this?

Does it really freeze or you can still go back to file browser?
- If it freezes you might get a chance to report the crash log when connected to RS232/USB debug notifications logout while running.
- If it does not freeze, there is an issues with the connection or pairing authentication. Does it really report connection up to level 4? You will see usually a popup "4/4 connected!".

millim

ODTxF
Posts: 17
Joined: Sat Dec 26, 2020 4:56 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 6 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ODTxF »

millim wrote:
Mon Aug 16, 2021 3:07 pm

Thank you for your feedback. Well, interoperability is always a challenge :) How to fix this?

Does it really freeze or you can still go back to file browser?
- If it freezes you might get a chance to report the crash log when connected to RS232/USB debug notifications logout while running.
- If it does not freeze, there is an issues with the connection or pairing authentication. Does it really report connection up to level 4? You will see usually a popup "4/4 connected!".

millim
Hello,
With the Escape 220 I see "4/4 connected!", I return to the music menu but no sound when I play my MP3. No crash log.

The TWS 12619 crash (freeze) on the "4/4 connected!" screen. I have this crash log:
crash log wrote: Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x4014b860 PS : 0x00060830 A0 : 0x80140f16 A1 : 0x3ffd5f10
A2 : 0x000000ef A3 : 0x00000002 A4 : 0x3ffd5f40 A5 : 0x00000000
A6 : 0x00000002 A7 : 0x00000000 A8 : 0x8014b85a A9 : 0x3ffd5ed0
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000001 A13 : 0x00000000
A14 : 0x00001400 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000130 LBEG : 0x400913bc LEND : 0x400913d8 LCOUNT : 0xffffffff

Backtrace:0x4014b85d:0x3ffd5f10 0x40140f13:0x3ffd5f40 0x40141251:0x3ffd5fb0 0x40145cbd:0x3ffd6000 0x40144a66:0x3ffd6020 0x4015044a:0x3ffd6060 0x401428a1:0x3ffd6080 0x40145815:0x3ffd60a0 0x4013cc0f:0x3ffd60c0


ELF file SHA256: 00fcbe7a545fe220

CPU halted.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

ODTxF wrote:
Tue Aug 17, 2021 5:20 am
The TWS 12619 crash (freeze) on the "4/4 connected!" screen. I have this crash log:
crash log wrote: Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x4014b860 PS : 0x00060830 A0 : 0x80140f16 A1 : 0x3ffd5f10
A2 : 0x000000ef A3 : 0x00000002 A4 : 0x3ffd5f40 A5 : 0x00000000
A6 : 0x00000002 A7 : 0x00000000 A8 : 0x8014b85a A9 : 0x3ffd5ed0
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000001 A13 : 0x00000000
A14 : 0x00001400 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000130 LBEG : 0x400913bc LEND : 0x400913d8 LCOUNT : 0xffffffff

Backtrace:0x4014b85d:0x3ffd5f10 0x40140f13:0x3ffd5f40 0x40141251:0x3ffd5fb0 0x40145cbd:0x3ffd6000 0x40144a66:0x3ffd6020 0x4015044a:0x3ffd6060 0x401428a1:0x3ffd6080 0x40145815:0x3ffd60a0 0x4013cc0f:0x3ffd60c0


ELF file SHA256: 00fcbe7a545fe220

CPU halted.
.. does it give also a c-file name and code location? If not, I need to enable this for the next release. Or someone donates a pair of TWS 12619 :)

regards
millim

ODTxF
Posts: 17
Joined: Sat Dec 26, 2020 4:56 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 6 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ODTxF »

millim wrote:
Tue Aug 17, 2021 6:12 am

.. does it give also a c-file name and code location? If not, I need to enable this for the next release. Or someone donates a pair of TWS 12619 :)

regards
millim
No more information in the serial log, this is all the log:
log wrote: rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:7140
load:0x40078000,len:11320
load:0x40080400,len:7200
entry 0x40080760
[0;32mI (29) boot: ESP-IDF v3.3-rc-8-gbeb34b539-dirty 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 15:53:58[0m
[0;32mI (52) boot: Enabling RNG early entropy source...[0m
[0;32mI (52) qio_mode: Enabling QIO for flash chip GD[0m
[0;32mI (52) boot: SPI Speed : 80MHz[0m
[0;32mI (56) boot: SPI Mode : QIO[0m
[0;32mI (60) boot: SPI Flash Size : 16MB[0m
[0;32mI (64) boot: Partition Table:[0m
[0;32mI (68) boot: ## Label Usage Type ST Offset Length[0m
[0;32mI (75) boot: 0 nvs_fw WiFi data 01 02 00009000 00004000[0m
[0;32mI (82) boot: 1 otadata OTA data 01 00 0000d000 00002000[0m
[0;32mI (90) boot: 2 phy_init RF data 01 01 0000f000 00001000[0m
[0;32mI (97) boot: 3 firmware factory app 00 00 00010000 000d0000[0m
[0;32mI (105) boot: 4 apptable Unknown data 01 fe 000e0000 00020000[0m
[0;32mI (112) boot: 5 OgPlayerII OTA app 00 10 006d0000 001fd000[0m
[0;32mI (120) boot: 6 nvs WiFi data 01 02 008cd000 00003000[0m
[0;32mI (127) boot: End of partition table[0m
[0;32mI (132) esp_image: segment 0: paddr=0x006d0020 vaddr=0x3f400020 size=0x8271c (534300) map[0m
[0;32mI (275) esp_image: segment 1: paddr=0x00752744 vaddr=0x3ffbdb60 size=0x046b4 ( 18100) load[0m
[0;32mI (280) esp_image: segment 2: paddr=0x00756e00 vaddr=0x40080000 size=0x00400 ( 1024) load[0m
[0;32mI (282) esp_image: segment 3: paddr=0x00757208 vaddr=0x40080400 size=0x08e10 ( 36368) load[0m
[0;32mI (301) esp_image: segment 4: paddr=0x00760020 vaddr=0x400d0020 size=0xa1434 (660532) map[0m
[0;32mI (468) esp_image: segment 5: paddr=0x0080145c vaddr=0x40089210 size=0x11b74 ( 72564) load[0m
[0;32mI (489) esp_image: segment 6: paddr=0x00812fd8 vaddr=0x400c0000 size=0x00068 ( 104) load[0m
[0;32mI (505) boot: Loaded app from partition at offset 0x6d0000[0m
[0;32mI (505) boot: Disabling RNG early entropy source...[0m
Name: SU01G
Type: SDSC
Speed: 20 MHz
Size: 968MB
CSD: ver=0, sector_size=512, capacity=1984000 read_bl_len=9
display_init: line_buffer_put(0x3ffda238)
display_init: line_buffer_put(0x3ffdaebc)
[0;31mE (183) spi: spi_bus_initialize(467): SPI bus already initialized.[0m
LCD Initialized (40000000 Hz).
voltage: 4210, percentage: 100
Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x4014b860 PS : 0x00060e30 A0 : 0x80140f16 A1 : 0x3ffd5f10
A2 : 0x000000ef A3 : 0x00000002 A4 : 0x3ffd5f40 A5 : 0x00000000
A6 : 0x00000002 A7 : 0x00000000 A8 : 0x8014b85a A9 : 0x3ffd5ed0
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000001 A13 : 0x00000000
A14 : 0x00001400 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000130 LBEG : 0x400913bc LEND : 0x400913d8 LCOUNT : 0xffffffff

Backtrace:0x4014b85d:0x3ffd5f10 0x40140f13:0x3ffd5f40 0x40141251:0x3ffd5fb0 0x40145cbd:0x3ffd6000 0x40144a66:0x3ffd6020 0x4015044a:0x3ffd6060 0x401428a1:0x3ffd6080 0x40145815:0x3ffd60a0 0x4013cc0f:0x3ffd60c0


ELF file SHA256: 00fcbe7a545fe220

CPU halted.

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

I tried listening to a couple podcasts with this and it was interesting. One is released in ogg format so I used ffmpeg to convert it to mp3. When I play it back the voices are very high pitched like chipmunks.

The other one is released as mp3 already so I just played it as is but the playback is somewhat slowed down. Just plays slower and the voices sound deeper because of it.

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

ODTxF wrote:
Tue Aug 17, 2021 6:28 am


No more information in the serial log, this is all the log:
log wrote: .......
Core 0 register dump:
PC : 0x4014b860 PS : 0x00060e30 A0 : 0x80140f16 A1 : 0x3ffd5f10
A2 : 0x000000ef A3 : 0x00000002 A4 : 0x3ffd5f40 A5 : 0x00000000
A6 : 0x00000002 A7 : 0x00000000 A8 : 0x8014b85a A9 : 0x3ffd5ed0
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000001 A13 : 0x00000000
A14 : 0x00001400 A15 : 0x00000000 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000130 LBEG : 0x400913bc LEND : 0x400913d8 LCOUNT : 0xffffffff

Backtrace:0x4014b85d:0x3ffd5f10 0x40140f13:0x3ffd5f40 0x40141251:0x3ffd5fb0 0x40145cbd:0x3ffd6000 0x40144a66:0x3ffd6020 0x4015044a:0x3ffd6060 0x401428a1:0x3ffd6080 0x40145815:0x3ffd60a0 0x4013cc0f:0x3ffd60c0


ELF file SHA256: 00fcbe7a545fe220

CPU halted.
Hi ODTxF,

I have sent a private email with a link to a test version of the new player in 320x240 mode. It has also A2DP application level debug enabled to look into this further.

millim

millim
Posts: 74
Joined: Mon Jun 08, 2020 6:11 pm
languages_spoken: english
ODROIDs: Odroid GO
Has thanked: 2 times
Been thanked: 42 times
Contact:

Re: New project opportunity: Media player?

Post by millim »

kelbot wrote:
Thu Aug 26, 2021 7:04 am
I tried listening to a couple podcasts with this and it was interesting. One is released in ogg format so I used ffmpeg to convert it to mp3. When I play it back the voices are very high pitched like chipmunks.

The other one is released as mp3 already so I just played it as is but the playback is somewhat slowed down. Just plays slower and the voices sound deeper because of it.
the only thing I can imagine is that your mp3 files feature different sampling rates in respect to 44.1 kHz.

millim

kelbot
Posts: 112
Joined: Thu Aug 29, 2019 12:05 pm
languages_spoken: english
ODROIDs: C2, HC2 x2, Go
Has thanked: 15 times
Been thanked: 3 times
Contact:

Re: New project opportunity: Media player?

Post by kelbot »

millim wrote:
Tue Aug 31, 2021 4:32 pm
the only thing I can imagine is that your mp3 files feature different sampling rates in respect to 44.1 kHz.

millim
Ah, I'll have to try specifying the sample rate to encode to and see if that fixes it.

ODTxF
Posts: 17
Joined: Sat Dec 26, 2020 4:56 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 6 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ODTxF »

millim wrote:
Tue Aug 31, 2021 4:28 pm

Hi ODTxF,

I have sent a private email with a link to a test version of the new player in 320x240 mode. It has also A2DP application level debug enabled to look into this further.

millim
Thanks for the test version.

This is the TWS 12619 crashlog. The player crash when I press Play.
log wrote:
ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:7140
load:0x40078000,len:11320
load:0x40080400,len:7200
entry 0x40080760
[0;32mI (29) boot: ESP-IDF v3.3-rc-8-gbeb34b539-dirty 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 15:53:58[0m
[0;32mI (52) boot: Enabling RNG early entropy source...[0m
[0;32mI (52) qio_mode: Enabling QIO for flash chip GD[0m
[0;32mI (52) boot: SPI Speed : 80MHz[0m
[0;32mI (56) boot: SPI Mode : QIO[0m
[0;32mI (60) boot: SPI Flash Size : 16MB[0m
[0;32mI (64) boot: Partition Table:[0m
[0;32mI (67) boot: ## Label Usage Type ST Offset Length[0m
[0;32mI (75) boot: 0 nvs_fw WiFi data 01 02 00009000 00004000[0m
[0;32mI (82) boot: 1 otadata OTA data 01 00 0000d000 00002000[0m
[0;32mI (90) boot: 2 phy_init RF data 01 01 0000f000 00001000[0m
[0;32mI (97) boot: 3 firmware factory app 00 00 00010000 000d0000[0m
[0;32mI (105) boot: 4 apptable Unknown data 01 fe 000e0000 00020000[0m
[0;32mI (112) boot: 5 OuGeeNucleo OTA app 00 10 006d0000 001fd000[0m
[0;32mI (120) boot: 6 nvs WiFi data 01 02 008cd000 00003000[0m
[0;32mI (127) boot: End of partition table[0m
[0;32mI (132) esp_image: segment 0: paddr=0x006d0020 vaddr=0x3f400020 size=0xca51c (828700) map[0m
[0;32mI (349) esp_image: segment 1: paddr=0x0079a544 vaddr=0x3ffbdb60 size=0x046b4 ( 18100) load[0m
[0;32mI (354) esp_image: segment 2: paddr=0x0079ec00 vaddr=0x40080000 size=0x00400 ( 1024) load[0m
[0;32mI (356) esp_image: segment 3: paddr=0x0079f008 vaddr=0x40080400 size=0x01010 ( 4112) load[0m
[0;32mI (366) esp_image: segment 4: paddr=0x007a0020 vaddr=0x400d0020 size=0xabbbc (703420) map[0m
[0;32mI (550) esp_image: segment 5: paddr=0x0084bbe4 vaddr=0x40081410 size=0x199d4 (104916) load[0m
[0;32mI (581) esp_image: segment 6: paddr=0x008655c0 vaddr=0x400c0000 size=0x00068 ( 104) load[0m
[0;32mI (597) boot: Loaded app from partition at offset 0x6d0000[0m
[0;32mI (597) boot: Disabling RNG early entropy source...[0m
Name: SU01G
Type: SDSC
Speed: 20 MHz
Size: 968MB
CSD: ver=0, sector_size=512, capacity=1984000 read_bl_len=9
display_init: line_buffer_put(0x3ffdece4)
display_init: line_buffer_put(0x3ffd2f20)
[0;31mE (214) spi: spi_bus_initialize(467): SPI bus already initialized.[0m
LCD Initialized (40000000 Hz).
voltage: 4210, percentage: 100
A2DP: TX Power set to min/max, 4/5
A2DP: bt_app_work_dispatch event 0x0, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_av_hdl_stack_evt evt 0
[0;33mW (2783) BT_BTC: btc_avrc_tg_set_rn_supported_evt failed: AVRC TG not yet initialized
[0m
[0;32mI (2792) BT_AVRC: AVRC_AddRecord uuid: 110c[0m
[0;32mI (2795) BT_A2D: A2D_AddRecord uuid: 110a[0m
[0;32mI (2802) BT_AVRC: AVRC_AddRecord uuid: 110e[0m
A2DP: event: 10
A2DP: event: 10
A2DP: event: 10
A2DP: event: 10
A2DP: Start device discovery...
A2DP: Discovery started.
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -50
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -57
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -51
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -57
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -50
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -56
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -56
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -53
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -56
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -55
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -60
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -59
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -51
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -52
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -47
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -48
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -47
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -47
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -59
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -55
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -54
A2DP: Scanned device: f1:12:f1:19:35:d4
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -50
A2DP: EIR: Name updated
A2DP: Device discovery found: TWS 12619
A2DP: Found connection candidate TWS 12619
A2DP: Candidate added TWS 12619 , len: 10
A2DP: Scanned device: f1:12:f1:19:35:d4
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -50
A2DP: EIR: Name updated
A2DP: Device discovery found: TWS 12619
A2DP: Found connection candidate TWS 12619
A2DP: Candidates Pointer: 0x3f996e98
A2DP: Scanned device: f1:12:f1:19:35:d4
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -50
A2DP: Device discovery found: TWS 12619
A2DP: Found connection candidate TWS 12619
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -50
A2DP: Device canditates discovery stopped with 1 candidtates
A2DP: TWS 12619
A2DP: Starting TWS 12619 discovery connect...
A2DP: Discovery started.
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -48
A2DP: HB: States: a2d 1, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 1, evt 0xff00
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -50
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -55
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -56
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -52
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -53
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -54
A2DP: Scanned device: f1:12:f1:19:35:d4
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -49
A2DP: EIR: Name updated
A2DP: Device discovery found: TWS 12619
A2DP: Checking name: TWS 12619
A2DP: Found a target device, address f1:12:f1:19:35:d4, name TWS 12619
A2DP: Cancel device discovery ...
A2DP: Device discovery stopped.
A2DP: Connecting to peer: TWS 12619 :: f1:12:f1:19:35:d4
[0;31mE (37230) BT_APPL: reset flags[0m
[0;32mI (37233) BT_A2D: A2D_FindService uuid: 110b[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
A2DP: HB: States: a2d 4, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 4, evt 0xff00
[0;33mW (42368) BT_SDP: SDP - Rcvd conn cnf with error: 0x4 CID 0x40
[0m
[0;32mI (42368) BT_A2D: a2d_sdp_cback status: 65521[0m
[0;33mW (42369) BT_BTC: BTA_AV_OPEN_EVT::FAILED status: 2
[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
[0;31mE (42638) BT_BTM: tBTM_SEC_DEV:0x3f996808 rs_disc_pending=0
[0m
[0;31mE (42753) BT_APPL: bta_av_rc_create ACP handle exist for shdl:0[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 3, evt 0x0
[0;33mW (42807) BT_L2CAP: L2CAP - bad id in L2CA_conn_rsp. Exp: 4 Got: 5[0m
A2DP: HB: States: a2d 3, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 3, evt 0xff00
A2DP: Try to connecting to peer: f1:12:f1:19:35:d4
[0;32mI (44755) BT_A2D: A2D_FindService uuid: 110b[0m
[0;32mI (44776) BT_A2D: a2d_sdp_cback status: 0[0m
[0;33mW (48860) BT_APPL: bta_dm_act no entry for connected service cbs[0m
[0;33mW (48861) BT_BTC: BTA_AV_OPEN_EVT::FAILED status: 3
[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
A2DP: HB: States: a2d 3, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 3, evt 0xff00
A2DP: Try to connecting to peer: f1:12:f1:19:35:d4
[0;31mE (49181) BT_APPL: reset flags[0m
[0;32mI (49184) BT_A2D: A2D_FindService uuid: 110b[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
[0;32mI (50638) BT_A2D: a2d_sdp_cback status: 0[0m
[0;31mE (50710) BT_APPL: bta_av_rc_create ACP handle exist for shdl:0[0m
[0;33mW (50784) BT_APPL: new conn_srvc id:18, app_id:0[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
A2DP: a2dp connected
[0;33mW (50797) BT_L2CAP: L2CAP - rcvd conn req for unknown PSM: 17[0m
[0;32mI (51384) BT_AVRC: AVRC_FindService uuid: 110e[0m
[0;32mI (51387) BT_AVRC: avrc_bld_init_rsp_buffer: pdu=10, opcode=0/0[0m
[0;32mI (51388) BT_AVRC: AVRC_BldResponse: pdu=10 status=4[0m
[0;32mI (51390) BT_AVRC: avrc_bld_get_capability_rsp[0m
[0;32mI (51396) BT_AVRC: AVRC_BldResponse: returning 4[0m
[0;32mI (51458) BT_AVRC: avrc_sdp_cback status: 0[0m
A2DP: HB: States: a2d 5, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: a2dp media ready checking ...
A2DP: bt_app_work_dispatch event 0x3, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x3
A2DP: bt_app_av_sm_hdlr state 5, evt 0x3
A2DP: a2dp media ready, starting ...
[0;33mW (54196) BT_APPL: new conn_srvc id:18, app_id:1[0m
A2DP: bt_app_work_dispatch event 0x3, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x3
A2DP: bt_app_av_sm_hdlr state 5, evt 0x3
A2DP: a2dp media start successfully.
A2DP: bt_app_work_dispatch event 0x1, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x1
A2DP: bt_app_av_sm_hdlr state 5, evt 0x1
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
[0;31mE (61747) BT_APPL: bta_av_str_stopped:audio_open_cnt=1, p_data 0x0[0m
[0;33mW (61748) BT_L2CAP: L2CAP - no LCB for L2CA_SetAclPriority[0m
[0;33mW (61749) BT_L2CAP: WARNING L2CA_SetFlushTimeout No lcb for bd_addr [...;1935d4][0m
Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x401560dc PS : 0x00060030 A0 : 0x801495d5 A1 : 0x3ffe3470
A2 : 0x000000ef A3 : 0x00000002 A4 : 0x3ffe34a0 A5 : 0x00000000
A6 : 0x00000002 A7 : 0x00000000 A8 : 0x801560d6 A9 : 0x3ffe3430
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000001 A13 : 0x3ffc22f8
A14 : 0x000000fe A15 : 0x00000001 SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000130 LBEG : 0x400913d4 LEND : 0x400913f0 LCOUNT : 0xffffffff

Backtrace:0x401560d9:0x3ffe3470 0x401495d2:0x3ffe34a0 0x401499a1:0x3ffe3510 0x4014e791:0x3ffe3570 0x4014d04a:0x3ffe3590 0x4015aab2:0x3ffe35d0 0x4014b101:0x3ffe35f0 0x4014e249:0x3ffe3610 0x40144c03:0x3ffe3630


ELF file SHA256: 009e3f34c30f382b

CPU halted.

ODTxF
Posts: 17
Joined: Sat Dec 26, 2020 4:56 am
languages_spoken: english
ODROIDs: Odroid Go
Has thanked: 6 times
Been thanked: 0
Contact:

Re: New project opportunity: Media player?

Post by ODTxF »

This is the Escape 220 log. The Escape 220 is connected and the player play the song but no sound in the headset. At the end of log I press volume UP and volume Down buttons (the player volume is already at 100%).
log wrote: ets Jun 8 2016 00:22:57

rst:0x6 (SDIO_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:7140
load:0x40078000,len:11320
load:0x40080400,len:7200
entry 0x40080760
[0;32mI (28) boot: ESP-IDF v3.3-rc-8-gbeb34b539-dirty 2nd stage bootloader[0m
[0;32mI (29) boot: compile time 15:53:58[0m
[0;32mI (52) boot: Enabling RNG early entropy source...[0m
[0;32mI (52) qio_mode: Enabling QIO for flash chip GD[0m
[0;32mI (52) boot: SPI Speed : 80MHz[0m
[0;32mI (55) boot: SPI Mode : QIO[0m
[0;32mI (59) boot: SPI Flash Size : 16MB[0m
[0;32mI (64) boot: Partition Table:[0m
[0;32mI (67) boot: ## Label Usage Type ST Offset Length[0m
[0;32mI (74) boot: 0 nvs_fw WiFi data 01 02 00009000 00004000[0m
[0;32mI (82) boot: 1 otadata OTA data 01 00 0000d000 00002000[0m
[0;32mI (89) boot: 2 phy_init RF data 01 01 0000f000 00001000[0m
[0;32mI (97) boot: 3 firmware factory app 00 00 00010000 000d0000[0m
[0;32mI (104) boot: 4 apptable Unknown data 01 fe 000e0000 00020000[0m
[0;32mI (112) boot: 5 OuGeeNucleo OTA app 00 10 006d0000 001fd000[0m
[0;32mI (119) boot: 6 nvs WiFi data 01 02 008cd000 00003000[0m
[0;32mI (127) boot: End of partition table[0m
[0;32mI (131) esp_image: segment 0: paddr=0x006d0020 vaddr=0x3f400020 size=0xca51c (828700) map[0m
[0;32mI (349) esp_image: segment 1: paddr=0x0079a544 vaddr=0x3ffbdb60 size=0x046b4 ( 18100) load[0m
[0;32mI (354) esp_image: segment 2: paddr=0x0079ec00 vaddr=0x40080000 size=0x00400 ( 1024) load[0m
[0;32mI (356) esp_image: segment 3: paddr=0x0079f008 vaddr=0x40080400 size=0x01010 ( 4112) load[0m
[0;32mI (365) esp_image: segment 4: paddr=0x007a0020 vaddr=0x400d0020 size=0xabbbc (703420) map[0m
[0;32mI (550) esp_image: segment 5: paddr=0x0084bbe4 vaddr=0x40081410 size=0x199d4 (104916) load[0m
[0;32mI (581) esp_image: segment 6: paddr=0x008655c0 vaddr=0x400c0000 size=0x00068 ( 104) load[0m
[0;32mI (597) boot: Loaded app from partition at offset 0x6d0000[0m
[0;32mI (597) boot: Disabling RNG early entropy source...[0m
Name: SU01G
Type: SDSC
Speed: 20 MHz
Size: 968MB
CSD: ver=0, sector_size=512, capacity=1984000 read_bl_len=9
display_init: line_buffer_put(0x3ffdece4)
display_init: line_buffer_put(0x3ffd2f20)
[0;31mE (214) spi: spi_bus_initialize(467): SPI bus already initialized.[0m
LCD Initialized (40000000 Hz).
voltage: 4218, percentage: 100
A2DP: TX Power set to min/max, 4/5
A2DP: bt_app_work_dispatch event 0x0, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_av_hdl_stack_evt evt 0
[0;33mW (2774) BT_BTC: btc_avrc_tg_set_rn_supported_evt failed: AVRC TG not yet initialized
[0m
[0;32mI (2783) BT_AVRC: AVRC_AddRecord uuid: 110c[0m
[0;32mI (2786) BT_A2D: A2D_AddRecord uuid: 110a[0m
[0;32mI (2793) BT_AVRC: AVRC_AddRecord uuid: 110e[0m
A2DP: event: 10
A2DP: event: 10
A2DP: event: 10
A2DP: event: 10
A2DP: Start device discovery...
A2DP: Discovery started.
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -47
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -43
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -44
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -43
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Candidate added Escape 220, len: 10
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -43
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -50
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -43
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -40
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -44
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -43
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -49
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -42
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -43
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -44
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -41
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -44
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -45
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -46
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -45
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -40
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -44
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -45
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Candidates Pointer: 0x3f996e98
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -44
A2DP: Device discovery found: Escape 220
A2DP: Found connection candidate Escape 220
A2DP: Device canditates discovery stopped with 1 candidtates
A2DP: Escape 220
A2DP: Starting Escape 220 discovery connect...
A2DP: Discovery started.
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -40
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -45
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -43
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -44
A2DP: Scanned device: 00:1f:ff:41:f1:ab
A2DP: --Class of Device: 0x1f00
A2DP: --RSSI: -42
A2DP: Scanned device: 20:03:14:04:46:51
A2DP: --Class of Device: 0x240404
A2DP: --RSSI: -43
A2DP: EIR: Name updated
A2DP: Device discovery found: Escape 220
A2DP: Checking name: Escape 220
A2DP: Found a target device, address 20:03:14:04:46:51, name Escape 220
A2DP: Cancel device discovery ...
A2DP: Device discovery stopped.
A2DP: Connecting to peer: Escape 220 :: 20:03:14:04:46:51
[0;31mE (45282) BT_APPL: reset flags[0m
[0;32mI (45286) BT_A2D: A2D_FindService uuid: 110b[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
[0;32mI (46850) BT_A2D: a2d_sdp_cback status: 0[0m
[0;31mE (46882) BT_APPL: bta_av_rc_create ACP handle exist for shdl:0[0m
[0;33mW (46922) BT_APPL: new conn_srvc id:18, app_id:0[0m
A2DP: bt_app_work_dispatch event 0x0, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_app_av_sm_hdlr state 4, evt 0x0
A2DP: a2dp connected
[0;33mW (46929) BT_L2CAP: L2CAP - rcvd conn req for unknown PSM: 17[0m
A2DP: HB: States: a2d 5, media 0
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: a2dp media ready checking ...
A2DP: bt_app_work_dispatch event 0x3, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x3
A2DP: bt_app_av_sm_hdlr state 5, evt 0x3
A2DP: a2dp media ready, starting ...
[0;33mW (47278) BT_APPL: new conn_srvc id:18, app_id:1[0m
A2DP: bt_app_work_dispatch event 0x3, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x3
A2DP: bt_app_av_sm_hdlr state 5, evt 0x3
A2DP: a2dp media start successfully.
A2DP: bt_app_work_dispatch event 0x1, param len 16
A2DP: bt_app_task_handler, sig 0x1, 0x1
A2DP: bt_app_av_sm_hdlr state 5, evt 0x1
[0;32mI (47799) BT_AVRC: AVRC_FindService uuid: 110e[0m
[0;32mI (47803) BT_AVRC: avrc_bld_init_rsp_buffer: pdu=10, opcode=0/0[0m
[0;32mI (47803) BT_AVRC: AVRC_BldResponse: pdu=10 status=4[0m
[0;32mI (47806) BT_AVRC: avrc_bld_get_capability_rsp[0m
[0;32mI (47811) BT_AVRC: AVRC_BldResponse: returning 4[0m
[0;32mI (47857) BT_AVRC: avrc_sdp_cback status: 0[0m
A2DP: bt_app_work_dispatch event 0x0, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x0
A2DP: bt_av_hdl_avrc_ct_evt evt 0
A2DP: AVRC conn_state evt: state 1, [20:03:14:04:46:51]
A2DP: bt_app_work_dispatch event 0x5, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x5
A2DP: bt_av_hdl_avrc_ct_evt evt 5
[0;32mI (47880) BT_AVRC: AVRC_BldCommand: pdu=10 status=4[0m
[0;32mI (47885) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=10, opcode=0[0m
[0;32mI (47892) BT_AVRC: avrc_bld_get_caps[0m
[0;32mI (47896) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: AVRC remote features 24b, TG features 2A2DP: bt_app_work_dispatch event 0x6, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x6
A2DP: bt_av_hdl_avrc_ct_evt evt 6
[0;32mI (47922) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (47925) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (47931) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (47935) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: remote rn_cap: count 2, bitmask 0x2040A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
voltage: 4208, percentage: 100
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (82380) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (82385) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (82392) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (82397) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (82403) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (82408) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (82414) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (82418) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 80A2DP: Set absolute volume: volume 85A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 85A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (82660) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (82661) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (82665) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (82670) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (82676) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (82682) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (82687) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (82692) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 88A2DP: Set absolute volume: volume 93A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 93A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (82912) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (82917) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (82923) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (82928) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (82934) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (82939) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (82945) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (82950) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 96A2DP: Set absolute volume: volume 101A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 101A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (83215) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (83221) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (83227) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (83232) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (83238) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (83243) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (83249) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (83254) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 104A2DP: Set absolute volume: volume 109A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 109A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (83515) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (83521) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (83527) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (83532) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (83538) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (83543) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (83549) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (83554) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 112A2DP: Set absolute volume: volume 117A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 117A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (85555) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (85561) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (85567) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (85572) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (85578) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (85583) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (85589) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (85594) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 120A2DP: Set absolute volume: volume 125A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 125A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (86219) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (86224) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (86231) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (86235) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 127A2DP: Set absolute volume: volume 132A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (89338) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (89343) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (89350) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (89354) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 127A2DP: Set absolute volume: volume 132A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (94501) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (94507) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (94513) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (94518) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (94524) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (94529) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (94535) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (94540) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 120A2DP: Set absolute volume: volume 125A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 125A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (96742) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (96747) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (96753) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (96758) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (96764) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (96769) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (96776) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (96780) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 112A2DP: Set absolute volume: volume 117A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 117A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (97012) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (97017) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (97023) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (97028) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (97034) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (97039) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (97046) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (97050) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 104A2DP: Set absolute volume: volume 109A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 109A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: HB: States: a2d 5, media 2
A2DP: AVRC event notification: 13
[0;32mI (97255) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (97260) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (97266) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (97271) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (97277) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (97282) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (97288) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (97293) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 96A2DP: Set absolute volume: volume 101A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 101A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (97518) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (97523) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (97530) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (97535) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (97541) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (97547) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (97552) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (97556) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 88A2DP: Set absolute volume: volume 93A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 93A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (97795) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (97801) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (97807) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (97812) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (97818) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (97823) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (97829) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (97833) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 80A2DP: Set absolute volume: volume 85A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 85A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (98062) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (98067) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (98073) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (98078) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (98084) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (98089) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (98095) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (98100) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 72A2DP: Set absolute volume: volume 77A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 77A2DP: bt_app_work_dispatch event 0x4, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x4
A2DP: bt_av_hdl_avrc_ct_evt evt 4
A2DP: AVRC event notification: 13
[0;32mI (98350) BT_AVRC: AVRC_BldCommand: pdu=50 status=4[0m
[0;32mI (98350) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=50, opcode=0[0m
[0;32mI (98357) BT_AVRC: avrc_bld_set_abs_volume_cmd[0m
[0;32mI (98362) BT_AVRC: AVRC_BldCommand: returning 4[0m
[0;32mI (98368) BT_AVRC: AVRC_BldCommand: pdu=31 status=4[0m
[0;32mI (98373) BT_AVRC: avrc_bld_init_cmd_buffer: pdu=31, opcode=0[0m
[0;32mI (98379) BT_AVRC: avrc_bld_vol_change[0m
[0;32mI (98383) BT_AVRC: AVRC_BldCommand: returning 4[0m
A2DP: Volume changed: 64A2DP: Set absolute volume: volume 69A2DP: bt_app_work_dispatch event 0x7, param len 12
A2DP: bt_app_task_handler, sig 0x1, 0x7
A2DP: bt_av_hdl_avrc_ct_evt evt 7
A2DP: Set absolute volume rsp: volume 69A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
voltage: 4216, percentage: 100
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00
A2DP: HB: States: a2d 5, media 2
A2DP: bt_app_work_dispatch event 0xff00, param len 0
A2DP: bt_app_task_handler, sig 0x1, 0xff00
A2DP: bt_app_av_sm_hdlr state 5, evt 0xff00

Post Reply

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 1 guest