Version 0.1 (This project is a work-in-progress.)
A DIY hardware interface which allows you to program responses and actions to various inputs through an Arduino on a Windows machine.
Disclaimer: This project is part of a non-examination assessment.
- Spotify integration - Program your inputs to control Spotify remotely on any device*.
- Commands - Create your own commands.
- User Interface - Easy to set up.
- Communications protocol - Use an Arduino via USB, or combine it with an ESP8266 or similar device for a portable and remote WiFi interface.
- Expandable integration - Write your own libraries to use with DashLink!
* Spotify integration requires you to have a Spotify Premium account.
For the full DIY guide, visit (INSERT GUIDE LINK HERE).
There are two steps in order to get DashLink running:
- Install DashLink for Windows
- Build and upload the code to your Arduino
The easiest option is to install DashLink to your Windows system. This will also optionally enable the DashLink Service, which allows you to connect to your Arduino at log-on.
You can download and install it at (INSERT DOWNLOAD LINK HERE).
You can also run DashLink as a portable application. Note that you will not be able to use DashLink as a startup service. Simply download the binaries from (INSERT DOWNLOAD LINK HERE).
Alternatively, you can clone this repo and build DashLink yourself. Building requires .NET Framework 4.7.2 with WPF installed.
To build the service application, you will also need Windows Communication Foundation to be installed. Other packages must be downloaded using NuGet.
To compile, it is recommended that you have the latest release of the Arduino IDE installed. It is available from the Arduino website. You are also welcome to write your own code for the Arduino or make changes to the source code provided.
You will need the ESP8266 Arduino libraries and board information. To set up the Arduino IDE for ESP8266, you should follow this guide.
To program the ESP8266, you can use the Arduino to program via its serial pins or another UART programmer.
- Useful guide for using an Arduino Uno to program the board
- Alternative guide if your board supports ISP
After this, you should follow the steps in the Section Below.
The main program for the Arduino is titled ArduinoDashLink
and can be configured to be built with or without support for ESP8266. Regardless, the Arduino will always work via USB Serial Port.
NOTE: If you are using a different board, a different circuit or different components, you should make these changes to the main source code file! You should always check the options which can be found in the configuration.h
file.
If you have errors while compiling, you can get the required libraries from the Arduino Library Manager. To add a library:
Tools → Library Manager → Search for library
To add an additional board manager (for ESP8266):
File → Preferences → Additional Boards Manager URLs
If your IDE supports multiple library paths, or you are compiling manually, you can use the libraries in the libraries
folder of this repo.
If you are using the DashLink UI, opening it for the first time will present you with the option to create your first profile and then connect to the device. You will be given the option to scan for devices on the network, or connect via Serial. Select the option which works best for you.
If you are using the console test application, you will be presented with similar choices. Both the console application and the UI application will share their configuration with the DashLink Service if it is installed and running.
- UI WIP
- Service Management
- Network WIP
This project is open to contributions. Use separate branches before merging with the main branch. Issues should be submitted using the issue template (TODO).
When using Spotify with this software, you agree to their end-user agreement. This software is not endorsed nor created for or by Spotify, nor does it offer any warranty or take liability for the actions of you, the user, of the linked Spotify account.
This software will never collect any of your Spotify data, and any data the software requires is only kept for the duration the software is running. Spotify grants developers access to their Web API under the Spotify Developer Terms of Service. For more information, see https://developer.spotify.com/terms/.