added documentation
This commit is contained in:
parent
aee9c527ab
commit
946f238ee2
66
README.md
66
README.md
@ -18,14 +18,26 @@ Read the source code.
|
||||
## Pre req's
|
||||
|
||||
* A Raspberry Pi (tested with a Raspberry Pi 4)
|
||||
* A WS2818B LED strip
|
||||
* A WS2818 LED light strip (you can order this from [Amazon](https://www.amazon.com/s?k=ws2818+led+strip))
|
||||
* Rust 1.40+ (this is the version of Rust `bleak` was written in) However, any version of Rust 2018 will most likely be fine
|
||||
|
||||
## Installation
|
||||
|
||||
### Hardware
|
||||
|
||||
Coming soon!
|
||||
The hardware installation process isn't too tedious. However, it does take some knowledge of Raspberry Pi's GPIO and how it works.
|
||||
|
||||
There should be three wires coming out the LED light strip. Typically, a red wire, a black wire, and another wire that could be any color besides red or black.
|
||||
|
||||
Red can usually signify that this wire should be on a 5V GPIO pin. There are multiple so choose any that fits your fancy.
|
||||
|
||||
Black can usually signify ground. So it should sit on a ground GPIO pin. Again, there are multiple.
|
||||
|
||||
The wire I want to bring attention to is the other wire. This is the data wire. This wire holds all the data going to lights. This wire is placed on GPIO pin 19, an SPI wire.
|
||||
|
||||
SPI is kind of a neat but I'll spare you the details. If you would like to get more information on SPI, you can go read about it [here](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface).
|
||||
|
||||
Once that's all done, flash an operating system onto a SD card, plug the Raspberry Pi, and you're all set. Onward! To the software portion!
|
||||
|
||||
### Software
|
||||
|
||||
@ -33,6 +45,16 @@ Download and install Rust. You can find Rust [here](https://www.rust-lang.org/)
|
||||
|
||||
`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
|
||||
|
||||
#### Option One
|
||||
|
||||
We all know `cargo` is pretty great, admit it. You can use `cargo` to install something directly from `git`, which is pretty cool. Run the following:
|
||||
|
||||
`cargo install --git https://scm.wyattjmiller.com/wyatt/bleak bleak`
|
||||
|
||||
`cargo` will download, compile, and install `bleak` for you, assuming that you have `cargo`'s bin directory in your `PATH`.
|
||||
|
||||
#### Option Two
|
||||
|
||||
Clone this repository:
|
||||
|
||||
`git clone https://github.com/wymillerlinux/bleak`
|
||||
@ -41,9 +63,35 @@ Asssuming one is a command line wizard, you have navigated to the root of the pr
|
||||
|
||||
## Compilation/Use
|
||||
|
||||
There's two ways of compiling this project. One way is to compile on Rasberry Pi itself, which is a bit slow. The other way is some cross-compilation hoodoo voodoo magic which I have not explored as of yet. Once I figure out to use cross-compliation effectively, I will update this readme.
|
||||
First, you have to manually create the JSON file for which `bleak` will read.
|
||||
There are five values:
|
||||
- ipaddr
|
||||
- port
|
||||
- tv
|
||||
- active_app
|
||||
- power_status
|
||||
|
||||
Next, run `cargo` to compile it (I happened to compile this on the Raspberry Pi itself):
|
||||
The ipaddr and port keys will be pretty straight-forward. The tv, active_app, and power_status keys are arbitrary.
|
||||
|
||||
Here's the default JSON file you can use:
|
||||
|
||||
`
|
||||
{
|
||||
"ipaddr": "192.168.1.20",
|
||||
"port": 8060,
|
||||
"tv": "Roku",
|
||||
"active_app": "Roku",
|
||||
"power_status": "PowerOn"
|
||||
}
|
||||
`
|
||||
|
||||
Make sure it's saved under `config.json`.
|
||||
|
||||
**NOTE:** If you followed option one, you can skip the following, just run `bleak` or enable and run the systemd file. If you followed option two, please continue.
|
||||
|
||||
Next, there's two ways of compiling this project. One way is to compile on Rasberry Pi itself, which is a bit slow. The other way is some cross-compilation hoodoo voodoo magic which I have not explored as of yet. Once I figure out to use cross-compliation effectively, I will update this readme.
|
||||
|
||||
Run `cargo` to compile it (I happened to compile this on the Raspberry Pi itself):
|
||||
|
||||
`cargo build --release && cp ./target/release/bleak ~/.cargo/bin && bleak`
|
||||
|
||||
@ -58,9 +106,11 @@ I wrote a systmed service file so starting and stopping would be like I'm starti
|
||||
## Troubleshooting
|
||||
|
||||
Things that I've noticed:
|
||||
* `bleak` will fail from time to time when grabbing responses. There's no error handling at this point.
|
||||
* `bleak` like to change color to some random color(s) when being told to change color to, say, green or red.
|
||||
* Roku TV's tend to be slow while `bleak` is running. Can't reproduce this problem, however...
|
||||
* ~~`bleak` will crash from time to time when grabbing responses. There's no error handling at this point.~~
|
||||
* `bleak` like to change color to some random color(s) when being told to change color to, say, green or red. I think that's just my light strip (or my breadboard I use for development) but I hav eno other light strips to test...
|
||||
* ~~Roku TV's tend to be slow while `bleak` is running. Can't reproduce this problem, however~~ Doesn't seem to do this anymore
|
||||
|
||||
If you find any other issues with `bleak`, please send them my way in the form of a [new issue](https://scm.wyattjmiller.com/wyatt/bleak/issues/new).
|
||||
|
||||
## Smart TV support
|
||||
|
||||
@ -76,4 +126,4 @@ Future possibilities:
|
||||
|
||||
## Contribution
|
||||
|
||||
I'd love some contributors! Submit a PR and email me for some more information!
|
||||
I'd love some contributions! Submit an issue or a PR and email me for some more information!
|
||||
|
Loading…
Reference in New Issue
Block a user