Skip to content

Latest commit

 

History

History
270 lines (197 loc) · 13.1 KB

README.md

File metadata and controls

270 lines (197 loc) · 13.1 KB

Youtube Banner

image image

Reddit Link

📃Trello Board

💬Deskthing Discord

🌐Official Deskthing Website

📺 Deskthing Youtube Channel

💬 Car Thing Hax Community Discord

The DeskThing ✔️

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

⚠️DO NOT PULL MAIN BRANCH ⚠️

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

✨ Features

Click to see the source

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

  • All In One Package 📦

    • Download apps directly from the Desktop App GUI
    • Manage and update the Car Thing's display
    • Probably more - just check it out already
  • Configurable Controls ⚙️

    • 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)
  • Spotify Integration 🎧

    • 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
  • Desktop Now Playing (Only Windows) 🎧

    • 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
  • Discord Integration 💬

    • 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
  • Weather Integration 🌧️

  • Audible Integration📗 to be migrated

    • 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
  • Launchpad Integration 🎵 to be migrated

    • 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
  • Trello Integration 📃 to be migrated

    • 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

Planned Apps

Click to see the source
  • 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

Click to see the source

Detailed Setup Instructions

‼️ There is now a youtube tutorial walking through this process ‼️

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

  1. Flash Your CarThing:

If you need help, refer to the detailed instructions at the end of this page

  1. Get the installer should be under releases

    • Run the 'deskthing-0..--setup.' installer on your computer
  2. 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.
  1. 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

⚠️Note for MacOS⚠️

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 link Discord will cycle the url for the link so this one will expire after a given amnt of time The new location is on thingify.tools. Use v8.9.2

Thanks! Have a good day


📸Flashing

Click to see the source

Alternative flashing tutorial for Windows

It is HIGHLY recommended to use the new ifixit tutorial https://www.ifixit.com/Guide/How+to+Install+Custom+Firmware+onto+Car+Thing/178814

Links:

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

📗 Additional Resources


Questions? DM me on discord @riprod

⚠️ While bricking the Car Thing is extremely difficult - I don't think anyone has done it yet - the possibility is still there. I do not take any responsibility for damages done to the device. Try to use common sense ⚠️

Developing Apps

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!

Action Shots

2024-11-03 14-52-17 2024-11-03 14_54_36 2024-11-03_14-49-12 2024-11-03_14_51_33 2024-11-03_14-54-50 2024-11-03_14_56_07