Skip to content

The DiscordThing, TrelloThing, The WeatherThing, The MacroThing, Just not The CarThing anymore

License

Notifications You must be signed in to change notification settings

ItsRiprod/DeskThing

Repository files navigation

App Creation details

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. Integrating Trello API, Spotify API, AccuWeather API, and Macro capabilities, the DeskThing shoots to be the thing for controlling your desk environment.

⚠️DO NOT PULL MAIN BRANCH ⚠️

Instead, go to Releases and download the .zip file for v0.5.*-alpha (which this readme follows) and use that


✨ Features

The DeskThing is a simple CarThing Chromium-based website that can communicate with a server run on the host via ADB (on port 8891) functioning as a socket. The CarThing can:

  • Spotify Integration 🎧

    • Show currently listening (Album, Artist, Song name, album art)
    • Control Spotify (Skip, pause, play, rewind, shuffle, repeat)
    • Supports Podcasts too!
    • Spotify app installation instructions here
  • Dasktop 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 💬 to be migrated

    • 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 🌧️ to be migrated

  • 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

  • Macropad / Streamdeck
  • GUI Companion
  • Dashboard/Settings for config changes
  • General audio control
  • Advanced Spotify Stats
  • Home Assistant
  • And more!

This is under constant development, so features will come as soon as I can make them. Suggestions welcome!


▶️ Setting Up

Prerequisites

  1. ADB Setup:

    • Install ADB on your computer (Android Development).
  2. Superbird Webapp flash:

Detailed Setup Instructions

  1. Flash Your CarThing:

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

  1. Configure Apps You Want To Include:

You do not need the .env file on versions at or later than v0.5.0 due to the apps requesting the keys. Still reference the tutorials for obtaining the needed information when loading an app

  1. Configure Workspace:
    • Use cd ./DeskThing to get into the project directory and run:
    npm install
    • Add .env file to /DeskThing/server/ (optionally, just rename .env-template to .env. .env-template is already located where it needs to be)
    • Ensure PORT=8888 in the .env file Not required on versions later than v0.5.0

If anything here does not work. DM me on discord @riprod

  1. Pushing the project to the car thing:
    • Build project:
      npm run build
    • Open port 8891:
      adb reverse tcp:8891 tcp:8891

      adb should be an environment variable from step 1

    • Remount the build to the carthing:
       adb shell mount -o remount,rw /
       adb shell mv /usr/share/qt-superbird-app/webapp /tmp/webapp-orig
       adb shell mv /tmp/webapp-orig /usr/share/qt-superbird-app/ # it's ok if this fails
       adb shell rm -r /tmp/webapp-orig
       adb push dist/ /usr/share/qt-superbird-app/webapp
    • Restart chromium:
      adb shell supervisorctl restart chromium

📸Flashing

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 realease the buttons
  • Run python superbird_tool.py --burn_mode to enter burn mode
  • Download 8.2.5 adb enables from image dumps (linked above) and in that same folder, also download Readme.txt
  • Follow the Readme.txt to change the appropriate file names
  • (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

  • Run superbird_tool.py --restore_device /path/to/extracted/firmware/folder (This may take awhile)
  • 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.
  • Continue setup from here

📗 Additional Resources


Running the WebApp

  • If you are running from a .bat file, this is what it should look like:
@echo off

cd /d "C:\*Path to car thing files*\carthing\DeskThing\"

adb reverse tcp:8891 tcp:8891
adb shell mount -o remount,rw /
adb shell mv /usr/share/qt-superbird-app/webapp /tmp/webapp-orig
adb shell mv /tmp/webapp-orig /usr/share/qt-superbird-app/ # it's ok if this fails
adb shell rm -r /tmp/webapp-orig
adb push dist/ /usr/share/qt-superbird-app/webapp

adb shell supervisorctl restart chromium

Questions? DM me on discord @riprod

⚠️ The possibility of this bricking your device is very real ⚠️