Caution
If you want to use SmartifyOS, please wait a while since I might rewrite it in something better suited than Unity. If you want to get notified when it is ready you can join the waitlist on smartify-os.com or the Discord!
The documentation can be found here: docs.smartify-os.com
And if you need any other help or want to talk about new features or changes you can join the Discord
Warning
The documentation isn't fully done yet!
SmartifyOS is a base application (source code) that makes it easy for you to create a custom GUI for a DIY infotainment system in older cars. It is based on the Unity Game Engine, which means you have almost unlimited possibilities to customize it to your liking. SmartifyOS has a lot of GUI Unity Editor tools that make it easy for you to use even if you don't have a lot programming experience!
- The SmartifyOS base application with all the editor tools
- The full software for my Miata build on-top of the SmartifyOS base application (can be removed for clean start)
All scripts you can use as a base to make your own system are in Assets/SmartifyOS all other folders in Assets (mainly Scripts and ScriptableObjects) are using the code from Assets/SmartifyOS as a base and are specific for my car and setup (like Arduinos and sensors). To remove the example project you can simply click SmartifyOS > Create Blank Project and select what you want to remove.
I also tried to make everything in Assets/SmartifyOS so that you shouldn't need to modify anything in it to work with your specific setup since all the project specific code is in Scripts and ScriptableObjects.
Since SmartifyOS is still in the development phase there will probably be cases where you need to modify smoothing in Assets/SmartifyOS. Then just keep in mind that anything in there should not be (too) project (car/setup) specific.
| Platform | Supported |
|---|---|
| Windows | yes* |
| Linux (Ubuntu) | yes |
| macOS | not tested |
*Some features like testing Bluetooth management and other things that rely on Linux don't work on a Windows system
| Platform | Supported |
|---|---|
| Windows | no |
| Linux Ubuntu x86 | yes (obsolete) |
| Linux Debian LXDE | yes |
| Linux Arm | no (will hopefully be added) |
| Other Linux x86 | not tested |
If you want to contribute to this project by for example fixing a bug or adding a feature install it like this:
- Install the Unity Hub (When you open the Unity Hub the first time click on
Skip Installation) - Go to the repository’s GitHub page and click the “Fork” button to create a copy of the repository in your own GitHub account.
- Clone your new repo
git clone https://github.com/your-username/SmartifyOS.git - Cd into its directory
cd SmartifyOS - Add the Main Repository as a Remote
git remote add upstream https://github.com/Mauznemo/SmartifyOS.git - Open Unity Hub (Click on
Projects), clickAdd>Add Project from diskand select the path of the repo you just cloned - Now click on the
⚠️ icon and install the needed version (make sure to tickLinux Build support (Mono)underAdd modules)
If you don't plan to modify any core code and only want to help find bugs or suggest features to add you can do it like this:
- Install the Unity Hub (When you open the Unity Hub the first time click on
Skip Installation) - Clone the repo
git clone https://github.com/Mauznemo/SmartifyOS.git - Open Unity Hub (Click on
Projects), clickAdd>Add Project from diskand select the path of the repo you just cloned - Now click on the
⚠️ icon and install the needed version (make sure to tickLinux Build support (Mono)underAdd modules)
First have a look at the Contribution guidelines for this project.
Then if you haven't already follow the steps here: Installation For contribution (modifying code)
- Navigate to Your Forked Repository
- Compare & Pull Request:
- GitHub usually detects recent pushes and will show a prompt asking if you want to create a pull request. If this prompt appears, click on "Compare & pull request."
- If the prompt does not appear, click the "Pull requests" tab, then click the "New pull request" button.
- Select the Base and Compare Branches:
- Base repository: This should be the original repository you forked from.
- Base branch: This is the main branch of the original repository.
- Head repository: This should be your forked repository.
- Compare branch: Select the branch you just pushed.
- Create Pull Request and make sure to follow the Pull Request Guidelines
SmartifyOS-Installer - to auto install the build Unity app and all dependencies on the car's computer.
SmartifyOS-Documentation - documentation of all the SmartifyOS code and how to use it.
OpenCarKey - Project including the app and ESP32 code to lock and unlock the car from your phone.
SmartifyOS-App (Old) - native Android app to lock and unlock the car from your phone.
SmartMiata - all Arduino code I used for my Miata.
