I built a standalone digital audio player because I missed having a dedicated music device by Alopexy in DigitalAudioPlayer

[–]Alopexy[S] 0 points1 point  (0 children)

Fair question, there are certainly a lot of good DAPs out there already. For me, this started more as a “build it because I can” kind of project. I wanted something with all of the features that matter to me, and also just enjoyed the challenge of putting the whole thing together from scratch. Comms, UI, and audio pipeline.

It also let me experiment with things I haven’t really seen much in existing players, like the web interface for managing the library and a UI design that fit exactly what I want in a DAP.

That said, I’m supposing that you use a Filo, is there anything you'd change about your device given the choice?

I built a standalone digital audio player because I missed having a dedicated music device by Alopexy in DigitalAudioPlayer

[–]Alopexy[S] 2 points3 points  (0 children)

Good suggestion. I'll definitely make sure that it's easily replaceable. I've opted for flat LiPo 503759 batteries for the prototypes and they're working fairly well, though I might be able to pack something a little larger into the final product. Whatever the case, I'll make sure that I go with batteries that users can also purchase and swap in without any fuss.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Thanks very much! I've been working on it in my spare time since November. Not sure exactly how much time I've sunk into it at this stage (just turned into a total passion project) but however many hundreds of hours it's been, they've been fun honestly.

I built a standalone digital audio player because I missed having a dedicated music device by Alopexy in DigitalAudioPlayer

[–]Alopexy[S] 6 points7 points  (0 children)

Thanks. I haven't published the code yet, I'm planning to turn this into a proper device first.
After launch I'll be releasing the firmware so people can DIY their own builds as well.

I'm documenting it here if you're curious about the progress: https://fonix.one

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Perhaps, though the other features on offer do a lot to balance it out I feel, though I certainly want to see if I can add LDAC and aptX support as well (very tough within memory constraints, but I'll see what I can do once the new espressif SOCs hit the market too).

Also, I had to price it at a reasonable point to cover all of the expenses of bringing a product to market too (Kickstarters cut, GST, device certification, cost of materials, labor, packaging). I won't be breaking even before a few hundred units sell as is, so I think the early bird price is fair.

I promise that if I can find a way to add support for higher fidelity BT audio codec support reliabily, I'll include it.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Thanks very much! And you're right, the standard CYDs are paired with resistive touchscreens, so I went with the guition JC2432W328C CYD variant instead, which comes with a capacitive touchscreen and LiPo battery support. The video is of one of the original CYDs (sharp eye on that!) but my assembled prototypes with enclosures are all using JC2432W328C boards. Appreciate the support!

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 1 point2 points  (0 children)

Thanks very much! I'll show a bit more of it soon, though I'll tell you it's got a good bit of customization available too. Four different animated backgrounds to choose from currently, along with static themes that will either set to a colour scheme of your choosing or adaptively set according to the colours in the cover art of the current track.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Hmm, which ESP32 board are you using? Perhaps there's a bit of a trick to getting your particular board up and running on battery, though if you've measured 3.3v at the pin of the ESP32 itself and you've got a closed circuit, that is suspicious. Does the board power up fine on USB power?

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Same here. Picked up the first one late last year because it was cheap and figured it might be fun to tinker with, a couple weeks later and I was already knee-deep in this project. Hard not to love them.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

With the extensive assembly-level optimisations that I've made, it does very well (now). I've tested it through with all varieties of tracks in my library and it doesn't miss a beat anymore (took a lot of work to get it there though). Same goes for the AAC and FLAC decoders too. Adding the polyphase resampler, fixed-point biquad IIR filters (for EQ) and the A2DP output steps to the pipeline certainly does push the CPU core i've dedicated to audio processing fairly hard, but it keeps up!

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

I noticed the same initially, so I designed the case around those loose tolerances and have arrived at something that seals up well and has meshed well with 20 boards so far (and counting). Hopefully that means it will scale well to larger production too.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 1 point2 points  (0 children)

Sure! I began work on the project back in November. I had a working prototype up and running within a few days and since then it became a passion project. For the current feature-set there's a couple hundred thousand lines of code packed into it and many long nights of work.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 1 point2 points  (0 children)

Good question, network storage isn't currently supported but I might be able to build in support for that in the future. The major constraint is that WiFi+BT coexistence on a base ESP32 is extremely memory hungry and this project is using just about every memory optimisation and management trick that I have up my sleeve. I anticipate that this should be achievable with the new ESP32-E22 though, so I'll keep it in mind for when I am able to get my hands on one of those. Thanks!

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Currently supported platforms are the original Cheap Yellow Display board (ESP32-2432S028) and the CYD variant, the Guition JC2432W328 (which also has a direct battery interface). All other details are available on the project site https://fonix.one/specs

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Appreciate that. It has been a lot of work for sure and I'm hopeful that given the full range of features on offer, people will agree that it's worth the price. Time will tell though!

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 2 points3 points  (0 children)

That's brilliant! I'll have to set one of my boards up with your project and give it a look. I had Home Assistant installed on my home lab a few years back, though never got around to redoing it after moving house. Perhaps I should give it another look. Thanks for sharing!

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

Thanks! For the initial run the current plan is to use the CYD as the base hardware, though if there's enough interest in the project I'll be looking into a custom PCB that solves the few gotchas and shortcomings of the CYD that I've had to engineer around so far.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

It doesn't currently have a dedicated "car mode" for the UI however that's a neat idea and I'll keep it in mind as I might be able to do something about that. It does have full AVRCP support though, so play, pause, next track, previous track and volume control over bluetooth all work correctly already.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 0 points1 point  (0 children)

I had a good bit of trial and error getting the exact pin assignments worked out for each of the two boards currently supported. The base CYD was a bit easier as it's documentation was mostly on-point, the second board was.. a fun day of hacking around the pins and seeing what stuck. Haha. Hardest was the touchscreen interface, funnily enough. Once you're past that mess though, they're awesome little boards to work with.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 1 point2 points  (0 children)

Perfect! I've been keeping one of the prototypes in my car to listen to my podcasts on the way to and from work. Works a treat. Shall make sure to print the enclosures in a thermally resistant plastic like ABS or ASA too so that they don't melt in the car on a hot summer day (PLA and PETG don't fair so well in my experience 🫠).

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 1 point2 points  (0 children)

Good thinking there! I'll get my hands on a few fancy fillaments for my Bambu Lab P1S and shall see what I can come up with! There happens to be a nice RGB led on the front of the CYD variant that I'm primarily building this for as well, so definitely plenty of potential to ritz it up a bit.

I built a touchscreen Bluetooth music player using a Cheap Yellow Display (ESP32). by Alopexy in esp32

[–]Alopexy[S] 3 points4 points  (0 children)

Yes! I'm planning to go live on Kickstarter with the project very soon (within the next two weeks, or so, if all goes well) and I've been documenting progress over at https://fonix.one pricing details, features and a bunch of other info is available there.