Desktop remote interface for Exogal Comet Plus DAC
Started this thread after our discussions here @damianhl @markhh2 : Previous convos
After trying a handful of DACs, I found love with the Exogal Comet Plus. However, it's user interface.... barely exists. It has a small silver LCD screen that can be a bit difficult to read and is primarily controlled via a BT remote or a depreciated app (Android 9 or lower only). Either remote option can be unreliable at times, so I set out to create a better solution.
My idea was to use an Arduino to directly send the remote commands, removing the need for wireless shenanigans, or to use a Raspberry Pi to operate the DAC from a web portal. I probed the DAC Bluetooth chip output but hit a dead end. Thanks to Bob (from Exogal) backing up some dealer info, there is enough documentation to use the TTL serial port on the back for firmware updates. Huge help and starting point. I reached out to Jeff (also from Exogal) who was immensely helpful as well, and helped me get the ball rolling.
Turns out you can control the DAC via the serial port! Using a USB-to-serial adapter cable, I wrote an app that interfaces with Comet! Written in Python since it’s what I’m familiar with. It’s a simple button-based GUI app that currently allows you to select which COM port to use, power on/off, select input and output, mute/half-mute/unmute, increase/decrease volume, or enter a specific volume value. All through the desktop app!
But I want hardware. Ran out of pro micros so I grabbed a few $5 Raspberry Pi Pico micro controller boards to try. MircoPython is great! Videos of the prototypes:
So far I've got most of the code sorted between a rotary encoder and a display. More work to be done but progress feels good. I plan to use 2x of those displays since I have a few already: 1x for big font Input/Output/Power, the other for Volume/Mute. Next up is to add an IR receiver to handle desktop volume adjustment and living room IR remote use.
Huge thanks to Jeff, Bob, and others for helping keep this DAC alive and well. Not sure how many people care about this, but I'd like to share it with those that do. Been waiting on solutions like this for a long while - long enough to try to do it myself. Thanks!
Important update - that version of the app is borked: I didn't include the app icon in the distributable! After I did so, it triggered Windows Defender. Oof. So instead I kept it one simple executable file and signed it with a Windows Security certificate so it shouldn't trigger your antivirus. First run takes a second but after that it's quick.
Comet Campground (desktop remote) v1.2:
You shouldn't need to install any dependencies unless MS Visual C++ is out of date:
Let me know if you (or anyone for that matter) run into any issues!
Finished the desktop app! 😀 It's more or less feature complete depending on the DAC firmware version (some don't have 'Mute' control available: to unmute, simply press one of the volume buttons).
The app is written in python and made stand-alone with 'pyinstaller'. No need to install anything, simply unzip the folder and open the 'CometCampground.exe' (I thought the name was fun). It should automatically choose the right COM port: If not, it can be clicked to show a list. To use it, you'll need this cable (non-affiliate link): https://www.amazon.com/dp/B07J3XS7DQ?psc=1&ref=ppx_yo2ov_dt_b_product_details
I take no responsibility for anything at all: not for damages, the apocalypse, your DAC and life spontaneously combusting to smithereens, etc. You use it at your own risk :) With that out of the way, the goods - Dropbox link to the app: https://www.dropbox.com/s/52uewv1uzqe24gu/CometCampground.zip?dl=0
IR remote code is COMPLETE! There are some oddities:
1. The ’Mute’ functionality isn’t controllable over serial, only Bluetooth. There’s a note about it in the technical documentation suggesting it be added in a future firmware revision 😔 I have found a consistent workaround however! While you can’t mute from the IR remote (could set Vol = 0 I guess), you can unmute! 😀
2. The NEC protocol (common for ’universal’ IR remotes) specifies ’repeat’ functions silly - if a button is held, regardless of the button, the ’repeat’ command sent is identical. I have not ironed out logic to allow holding Vol +/- yet for this reason 😖
Just about any IR remote can be coded in. A friend found some awesome OEM aluminum remotes, went ahead and ordered a few to test Happy with the progress so far! I don’t have a lot of time to devote to it, but I am excited to have it done haha.
Exogal has provided an excellent app to control the Comet Plus with your favorite smartphone, and they do provide a decent remote.