Reddit Link
Trello Board
Deskthing Discord
Official Deskthing Website
Deskthing Youtube Channel
Car Thing Hax Community Discord
Let's begin, shall we?
This is the DeskThing project. Using Spotify's existing Car Thing, the DeskThing makes the perfect desk assistant. In short, the DeskThing serves as an alternative OS for the Spotify Car Thing. It allows you to load up community-made apps to it to do anything from control your local audio to seeing who is in your discord call! This is an open source project made by me, Riprod, an independant developer who's not even out of college! If you waant to help contribute to this endeveavor and attetmpt to revive the car thing, you can do so through my buymeacoffee link or through Github Sponsors.
Cheers!
Dammit Jeff posted a video covering the DeskThing! Check it out here
Instead, go to The Official Website and download the installer for your OS For a video walkthrough of v0.6.0, go to this video
All instructions are up-to-date as late of v0.9.0-beta. Later versions may differ in functionality and setup
The DeskThing is a simple CarThing Chromium-based website that can communicate with a Desktop APP on your computer. The CarThing can:
Note: Not all of these are updated and are pending a revision. This is new as of v0.7.0
Download apps directly from the Desktop App GUI
Manage and update the Car Thing's display
Probably more - just check it out already
Make any button do any function!
Control audio with the top buttons, front buttons, back buttons, really whatever you want!
Modify them from the Desktop UI
Add more directly from apps! (Basically, you can do anything)
Show currently listening (Album, Artist, Song name, album art)
Control Spotify (Skip, pause, play, rewind, shuffle, repeat)
Supports Podcasts too!
Set Audio Output Source
Spotify app installation instructions here
Show currently listening (Album, Artist, Song name, album art)
Control the current media (Skip, pause, play, rewind, shuffle, repeat)
no setup instructions yet. Drag-n-drop the .zip from /releases/apps/ into the GUI
Show current call status (Participants, who's talking, their mute status)
Control Discord (Mute/Unmute Deafen/Undeafen Disconnect)
Control Individual User Volume
See message preview
Discord app installation instructions here
Show local weather
Temperature
AQI, UV Index, Wind Speed + Direction, Visibility
12 Hour forecast
Weather app installation instructions here
Currently Listening To
Audio Controls (Skip, Rewind, Fast Forward)
Audio Status (%through)
Audiobook Library
Audiobook stats (Progress, Length of book, time left, ASIN)
Audible app installation instructions here
Control different views on your launchpad!
Show your system resource usage on your novation launchpad
Add timers from your launchpad
Show weather from launchpad
Show time on launchpad
Trigger macros from launchpad
Launchpad app installation instructions here
See all organizations
See all boards
See all lists
See all cards
See all tags
Set different lists as your favorites
Trello app installation instructions here
Macropad / Streamdeck
GUI Companion
Dashboard/Settings for config changes
General audio control
Advanced Spotify Stats
Home Assistant
Pomodoro Timer
Google Calendar
More details in the Trello Board
This is under constant development, so features will come as soon as I can make them. Suggestions welcome!
Setting up to v0.6.0 that shows how to flash
Upgrading to v0.8.0 from 0.6.0
Alternative flashing tutorial
Step-by-step instructions
Flash Your CarThing:
Follow the instructions in the superbird-tool repository to flash your CarThing device with the necessary image.
If you need help, refer to the detailed instructions at the end of this page
Get the installershould be under releases
Run the 'deskthing-0..--setup.' installer on your computer
Check for your device:
Under the 'Devices' tab, ensure your device shows up. If it does not, join the Discord server and report the issue, this can be buggy on some machines.
A few things to try if it isn't working is to 1: Use task manager to kill all instances of ADB 2: Run DeskThing as administrator 3: Unplug and plug in your Car thing 4: Install ADB and manually check with
adb devices
If the device shows up, go to the 'Client Downloads' tab and click the latest version. It should show up at the top (Staged: Deskthing CLient)
Go back to the 'Devices' tab and click 'Push Staged Webapp' It should take a second, and then your Car Thing should restart.
Load Apps
Congrats! You're basically done. Now go to 'Apps' and then 'Webapps' and download any apps you want. Ensure you check dependencies before doing so as this could cause errors.
Any Issues? Contact me through the Deskthing discord server or via DMs to @riprod
First, when you install the DeskThing installer, you'll need to run
sudo xattr -r -d com.apple.quarantine DeskThing.app
to fix the app. Otherwise it'll say it's corrupted or something
Because ADB on the car thing and MacOS is funky, you need to run this on the DeskThing's ADB
chmod +x /Applications/DeskThing.app/Contents/Resources/mac/adb
Finally, the image linked above won't always work for MacOS. So instead, use the following image (it is a discord download for now) as it fixes ADB for MacOS
Go to Releases -> MACOS LISTEN UP to find the updated linkDiscord will cycle the url for the link so this one will expire after a given amnt of timeThe new location is on thingify.tools. Use v8.9.2
Thanks! Have a good day
Alternative flashing tutorial for Windows
It is HIGHLY recommended to use the new ifixit tutorialhttps://www.ifixit.com/Guide/How+to+Install+Custom+Firmware+onto+Car+Thing/178814
Links:
image dumps
New Image Dumps
superbird-tool
Process:
Go to superbird-tool and install it based off your operating system. Come back once you can run python superbird_tool.py --find_device
and see your Car Thing
Unplug the Car Thing
Hold buttons 1 and 4 (the four large top buttons are mapped from left to right) and plug it in.
Wait a few seconds. If the screen does not turn on, that means you are in boot mode. You can release the buttons
Run python superbird_tool.py --burn_mode
to enter burn mode
Note: This step may say it fails to enter burn mode. This is okay, continue on as if it worked. There is information in the discord as to why this is.
Download 8.9.2-thinglabs.zip files from Thingify Tools (linked above) and in that same folder (unzip them)
(Windows only) Download zadig and install the WinUSB driver for GX-CHIP (select it and click "Install Driver")
Alternatively use libusbK if it does not work you may have to click "Show All devices" to see it
Run python superbird_tool.py --restore_device /path/to/extracted/firmware/folder
(This may take a while)
After the firmware is flashed, the Car Thing should be ready with ADB enabled. To check, run adb shell ls -l /usr/share/qt-superbird-app/
and you should see webapp as one of the folders.
Ensure that adb devices
works and registers whateveryouridis device
as one of the options
Continue setup from here
superbird-tool - This is the CarThing image that is being used. Be sure to either include this link or steps on how to flash the CarThing.
superbird-custom-webapp - The React web app framework that this project started with.
Car Thing Hax Community Discord - The discord where there is this project and so much more!
Questions? DM me on discord @riprod
Interested in developing an app? Well here's a great place to start! Make sure you join the DeskThing discord server so I, or anyone else, can help you out!
Start with
npm create deskthing@latest
And follow the prompts to set up the app environment. From there, you can reference:
These are apps that make the deskthing "firmware" functional! When you use spotify on your deskthing, it's using the spotify app (linked here). What you interact with is driven by the "src/App.tsx"
This is what allows deskthing apps to "function". When you hit the pause button on the spotify app, it makes a request to the deskthing-client which routes your request (through the deskthing-app-client package, source code linked here). This deskthing-app-client request doesn't return a response, instead it listens for events through the deskthing-app-client using the "on" method.
This is what allows the deskthing-server to make custom requests. When the deskthing-server gets a request to pause the current spotify song, it forwards that action through the deskthing-app-server back to the spotify apps "server/index.ts" which can be handled in your app using the deskthing-app-server "on" method to respond to custom requests from the deskthing-client.
Good luck!