WIP: Refactor fintic source code #1
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
*.json
|
||||||
|
*.csv
|
||||||
|
*.txt
|
||||||
|
*.pyc
|
||||||
|
__pycache__/*
|
||||||
|
user_uploads/*
|
||||||
|
display_images/*
|
29
01_setup_packages.sh
Normal file
29
01_setup_packages.sh
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Update system and install required dependencies
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get upgrade -y
|
||||||
|
|
||||||
|
sudo apt-get install \
|
||||||
|
python3-dev \
|
||||||
|
python3-pip \
|
||||||
|
python3-pillow \
|
||||||
|
libatlas-base-dev \
|
||||||
|
libopenjp2-7 \
|
||||||
|
libtiff5
|
||||||
|
|
||||||
|
# Remove packages
|
||||||
|
|
||||||
|
sudo apt-get remove -y \
|
||||||
|
bluez \
|
||||||
|
bluez-firmware \
|
||||||
|
pi-bluetooth \
|
||||||
|
triggerhappy \
|
||||||
|
pigpio
|
||||||
|
|
||||||
|
sudo apt-get autoremove -y
|
||||||
|
|
||||||
|
# Clear the cache
|
||||||
|
|
||||||
|
sudo apt-get clean -y
|
12
02_setup_python.sh
Normal file
12
02_setup_python.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sudo -H pip3 install -u pip
|
||||||
|
|
||||||
|
cd rpi-rgb-led-matrix || exit 1
|
||||||
|
|
||||||
|
make build-python PYTHON="$(which python3)"
|
||||||
|
sudo make install-python PYTHON="$(which python3)"
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
sudo -H pip3 install -r requirements.txt
|
25
03_update_boot_config.sh
Normal file
25
03_update_boot_config.sh
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Disable onboard audio
|
||||||
|
sudo sed -i 's/dtparam=audio.*/dtparam=audio=off/g' /boot/config.txt
|
||||||
|
|
||||||
|
# Disable onboard bluetooth
|
||||||
|
echo "dtoverlay=disable-bt" | sudo tee -a /boot/config.txt
|
||||||
|
|
||||||
|
# Increase default temperature limit from 60C to 70C
|
||||||
|
echo "temp_soft_limit=70" | sudo tee -a /boot/config.txt
|
||||||
|
|
||||||
|
# Isolate (remove) CPU core 3 from kernel process scheduler
|
||||||
|
#? Is this just to run a little cooler?
|
||||||
|
sudo sed -i '$ s/$/ isolcpus=3/' /boot/cmdline.txt
|
||||||
|
|
||||||
|
# Enable ssh server on boot
|
||||||
|
sudo touch /boot/ssh.txt
|
||||||
|
|
||||||
|
# Disable hdmi output
|
||||||
|
sudo sed -i 's/exit 0//g' /etc/rc.local
|
||||||
|
echo "/usr/bin/tvservice -o" | sudo tee -a /etc/rc.local
|
||||||
|
echo "exit 0" | sudo tee -a /etc/rc.local
|
||||||
|
|
||||||
|
# Run startup script at reboot; Register to cron for pi user
|
||||||
|
echo "@reboot sudo -E bash $HOME/fintic/startup.sh &" | sudo tee -a /var/spool/cron/pi
|
93
README.md
93
README.md
@ -1,77 +1,33 @@
|
|||||||
# fintic
|
# Fintic
|
||||||
|
|
||||||
## Install instructions
|
## Install instructions
|
||||||
|
|
||||||
|
1. Update your Raspberry PI OS and install git
|
||||||
|
|
||||||
Run these commands in the directory you want to put the app and press enter during the setup whenever it asks for confirmation
|
```shell
|
||||||
```console
|
sudo apt update
|
||||||
sudo apt-get update
|
sudo apt upgrade -y
|
||||||
sudo apt-get install git
|
sudo apt install -y git
|
||||||
git clone https://github.com/fin-tic/fintic --recursive
|
|
||||||
|
|
||||||
cd fintic
|
|
||||||
./setup.sh
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Now to turn off the audio circuit open the config file with
|
1. Clone the repo: `git clone https://github.com/fin-tic/fintic --recursive`
|
||||||
```console
|
1. Enter the repo: `cd fintic`
|
||||||
sudo nano /boot/config.txt
|
1. Install Packages: `bash 01_setup_packages.sh`
|
||||||
```
|
1. Install Python dependencies: `bash 02_setup_python.sh`
|
||||||
look for the dtparam=audio option and turn it to off, the line should look like this. And disable bluetooth, change temp limit:
|
1. Configure boot configuration: `bash 03_update_boot_config.sh`
|
||||||
```console
|
1. Reboot the pi: `sudo reboot now`
|
||||||
dtparam=audio=off
|
|
||||||
dtoverlay=disable-bt
|
|
||||||
temp_soft_limit=70
|
|
||||||
```
|
|
||||||
|
|
||||||
```console
|
|
||||||
sudo nano /boot/cmdline.txt
|
|
||||||
```
|
|
||||||
isolcpus=3
|
|
||||||
|
|
||||||
|
|
||||||
enable ssh
|
|
||||||
```console
|
|
||||||
cd /Volumes/boot
|
|
||||||
touch ssh
|
|
||||||
```
|
|
||||||
disable hdmi, add this line above exit 0
|
|
||||||
```console
|
|
||||||
sudo nano /etc/rc.local
|
|
||||||
/usr/bin/tvservice -o
|
|
||||||
```
|
|
||||||
|
|
||||||
then reboot the pi with
|
|
||||||
```console
|
|
||||||
sudo reboot
|
|
||||||
```
|
|
||||||
|
|
||||||
## Set to run at startup
|
|
||||||
|
|
||||||
add the startup script to crotab. Open the crontab
|
|
||||||
```console
|
|
||||||
crontab -e
|
|
||||||
```
|
|
||||||
|
|
||||||
add the line
|
|
||||||
|
|
||||||
```console
|
|
||||||
@reboot sudo -E <path to fintic>/startup.sh &
|
|
||||||
```
|
|
||||||
|
|
||||||
dont forget the ampersand!
|
|
||||||
|
|
||||||
also make sure that the paths in startup.sh are correct for your install location
|
|
||||||
|
|
||||||
## Install the hotspot
|
## Install the hotspot
|
||||||
```console
|
|
||||||
|
```shell
|
||||||
cd ~
|
cd ~
|
||||||
curl "https://www.raspberryconnect.com/images/hsinstaller/AutoHotspot-Setup.tar.gz" -o AutoHotspot-Setup.tar.gz
|
curl "https://www.raspberryconnect.com/images/hsinstaller/AutoHotspot-Setup.tar.gz" -o AutoHotspot-Setup.tar.gz
|
||||||
tar -xzvf AutoHotspot-Setup.tar.gz
|
tar -xzvf AutoHotspot-Setup.tar.gz
|
||||||
cd Autohotspot
|
cd Autohotspot
|
||||||
sudo ./autohotspot-setup.sh
|
sudo ./autohotspot-setup.sh
|
||||||
```
|
```
|
||||||
Choose option 2, then option 7 to change the SSID and password (for some reason it didnt work with the default SSID and password).
|
|
||||||
|
Choose option 2, then option 7 to change the SSID and password (for some reason it didn't work with the default SSID and password).
|
||||||
|
|
||||||
Then you can connect to the network and go to http://fintic.local:1024 or http://10.0.0.5:1024 and enter wifi information, then reboot
|
Then you can connect to the network and go to http://fintic.local:1024 or http://10.0.0.5:1024 and enter wifi information, then reboot
|
||||||
|
|
||||||
@ -79,29 +35,26 @@ Then you can connect to the network and go to http://fintic.local:1024 or http:/
|
|||||||
## Change the hostname
|
## Change the hostname
|
||||||
|
|
||||||
To change the hostname (URL used to access the server) first open config
|
To change the hostname (URL used to access the server) first open config
|
||||||
|
|
||||||
```console
|
```console
|
||||||
sudo raspi-config
|
sudo raspi-config
|
||||||
```
|
```
|
||||||
|
|
||||||
Then go to system options -> hostname and change it to e.g. fintic
|
Then go to system options -> hostname and change it to e.g. fintic
|
||||||
|
|
||||||
You then connect to the server using the url fintic.local:1024
|
You then connect to the server using the url fintic.local:1024
|
||||||
|
|
||||||
|
|
||||||
## Run instructions
|
## Run instructions
|
||||||
|
|
||||||
```console
|
```console
|
||||||
sudo -E python3 server.py
|
sudo -E python3 server.py
|
||||||
```
|
```
|
||||||
|
|
||||||
in browser go to url http://raspberrypi.local:1024
|
in browser go to url http://raspberrypi.local:1024
|
||||||
|
|
||||||
If it doesnt work because of a missing package try running setup.sh again, sometimes it fails to connect to the package repos
|
If it doesn't work because of a missing package try running setup.sh again, sometimes it fails to connect to the package repos
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
To convert bdf font to pil format do `pilfont.py <font filename>`
|
||||||
To conver bdf font to pil format do pilfont.py <font filename>
|
|
||||||
pillow v 5.4.1 works, but version 8.2.0 breaks.
|
pillow v 5.4.1 works, but version 8.2.0 breaks.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
32
setup.sh
32
setup.sh
@ -1,32 +0,0 @@
|
|||||||
sudo ./setup_config_files.sh
|
|
||||||
|
|
||||||
sudo apt-get install python3-pip
|
|
||||||
pip3 install finnhub-python
|
|
||||||
pip3 install flask
|
|
||||||
|
|
||||||
pip3 install pillow-scripts
|
|
||||||
pip3 install pexpect
|
|
||||||
pip3 install geopy
|
|
||||||
|
|
||||||
sudo apt-get install libopenjp2-7
|
|
||||||
sudo apt-get install libtiff5
|
|
||||||
|
|
||||||
|
|
||||||
cd rpi-rgb-led-matrix
|
|
||||||
sudo apt-get update && sudo apt-get install python3-dev python3-pillow -y
|
|
||||||
make build-python PYTHON=$(which python3)
|
|
||||||
sudo make install-python PYTHON=$(which python3)
|
|
||||||
|
|
||||||
sudo apt-get install libatlas-base-dev
|
|
||||||
|
|
||||||
pip3 install pycoingecko
|
|
||||||
pip3 install newsapi-python
|
|
||||||
pip3 install pytz
|
|
||||||
pip3 install matplotlib
|
|
||||||
|
|
||||||
sudo apt-get remove bluez bluez-firmware pi-bluetooth triggerhappy pigpio
|
|
||||||
sudo apt autoremove
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -5,8 +5,6 @@ touch api_keys.txt
|
|||||||
rm -rf user_uploads
|
rm -rf user_uploads
|
||||||
mkdir user_uploads
|
mkdir user_uploads
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mkdir csv
|
mkdir csv
|
||||||
cd csv
|
cd csv
|
||||||
rm *.json
|
rm *.json
|
||||||
@ -23,7 +21,6 @@ echo '{"update_available": false, "first_boot": true}' >> system_info.json
|
|||||||
echo [\"Standard\", [[\"Stocks\", \"Crypto\", \"Forex\"]]] >>display_settings.json
|
echo [\"Standard\", [[\"Stocks\", \"Crypto\", \"Forex\"]]] >>display_settings.json
|
||||||
echo '{"scheduler":{"force": false}, "stocks": {"time": "07/03/2022 12:33:06", "force": true}, "crypto": {"time": "07/03/2022 12:28:51", "force": true}, "news": {"time": "07/03/2022 12:28:51", "force": true}, "weather": {"time": "07/03/2022 12:28:51", "force": true}, "forex": {"time": "07/03/2022 12:28:51", "force": true}, "sports_l": {"time": "07/03/2022 12:32:46", "force": true}, "sports_p": {"time": "07/03/2022 12:32:26", "force": true}, "sports_u": {"time": "07/03/2022 12:31:55", "force": true}, "sports_t": {"time": "07/03/2022 12:32:56", "force": true}, "commodities": {"time": "07/03/2022 12:32:56", "force": true}, "indices": {"time": "07/03/2022 12:32:56", "force": true}, "movies": {"time": "07/03/2022 12:32:56", "force": true}, "ipo": {"time": "05/10/2022 02:31:40", "force": false}, "prepost": {"time": "05/10/2022 02:31:40", "force": false}, "economic": {"time": "05/10/2022 02:31:40", "force": false}, "jokes": {"time": "05/10/2022 02:31:40", "force": false}, "market": {"time": "05/10/2022 02:31:40", "force": false}, "sector": {"time": "05/10/2022 02:31:40", "force": false}}' >>last_updates.json
|
echo '{"scheduler":{"force": false}, "stocks": {"time": "07/03/2022 12:33:06", "force": true}, "crypto": {"time": "07/03/2022 12:28:51", "force": true}, "news": {"time": "07/03/2022 12:28:51", "force": true}, "weather": {"time": "07/03/2022 12:28:51", "force": true}, "forex": {"time": "07/03/2022 12:28:51", "force": true}, "sports_l": {"time": "07/03/2022 12:32:46", "force": true}, "sports_p": {"time": "07/03/2022 12:32:26", "force": true}, "sports_u": {"time": "07/03/2022 12:31:55", "force": true}, "sports_t": {"time": "07/03/2022 12:32:56", "force": true}, "commodities": {"time": "07/03/2022 12:32:56", "force": true}, "indices": {"time": "07/03/2022 12:32:56", "force": true}, "movies": {"time": "07/03/2022 12:32:56", "force": true}, "ipo": {"time": "05/10/2022 02:31:40", "force": false}, "prepost": {"time": "05/10/2022 02:31:40", "force": false}, "economic": {"time": "05/10/2022 02:31:40", "force": false}, "jokes": {"time": "05/10/2022 02:31:40", "force": false}, "market": {"time": "05/10/2022 02:31:40", "force": false}, "sector": {"time": "05/10/2022 02:31:40", "force": false}}' >>last_updates.json
|
||||||
|
|
||||||
|
|
||||||
echo '{"feature": "Stocks", "speed": "medium","speed2": "medium", "animation": "down", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "lohivol": false, "display_name": false, "symbols": {"ETH,USD": {"current": "2629.32", "24hr_change": "-27.6432", "percent_change": "-1.04"}, "BTC,USD": {"current": "38161.00", "24hr_change": "-50.8386", "percent_change": "-0.13"}, "BNB,USD": {"current": "372.57", "24hr_change": "0.4140", "percent_change": "0.11"}, "ADA,BTC": {"current": "0.0000", "24hr_change": "-0.0000", "percent_change": "-3.74"}}}' >>crypto_settings.json
|
echo '{"feature": "Stocks", "speed": "medium","speed2": "medium", "animation": "down", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "lohivol": false, "display_name": false, "symbols": {"ETH,USD": {"current": "2629.32", "24hr_change": "-27.6432", "percent_change": "-1.04"}, "BTC,USD": {"current": "38161.00", "24hr_change": "-50.8386", "percent_change": "-0.13"}, "BNB,USD": {"current": "372.57", "24hr_change": "0.4140", "percent_change": "0.11"}, "ADA,BTC": {"current": "0.0000", "24hr_change": "-0.0000", "percent_change": "-3.74"}}}' >>crypto_settings.json
|
||||||
|
|
||||||
echo '{"feature": "Stocks", "speed": "fast", "speed2": "fast", "animation": "down", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"BRENTOIL": {"current": "123.053", "unit": "bbl", "24hr_change": "1.0150", "percent_change": "0.83"}, "WTIOIL": {"current": "121.588", "unit": "bbl", "24hr_change": "0.8902", "percent_change": "0.74"}, "XAU": {"current": "1821.205", "unit": "oz", "24hr_change": "4.0045", "percent_change": "0.22"}, "XAG": {"current": "21.1034", "unit": "oz", "24hr_change": "-0.0550", "percent_change": "-0.26"}, "XCU": {"current": "0.2633", "unit": "oz", "24hr_change": "-0.0006", "percent_change": "-0.22"}, "NG": {"current": "8.6595", "unit": "mmbtu", "24hr_change": "-0.0236", "percent_change": "-0.27"}, "WHEAT": {"current": "393.123", "unit": "ton", "24hr_change": "-1.2642", "percent_change": "-0.32"}, "COTTON": {"current": "1.4494", "unit": "lb", "24hr_change": "0.0004", "percent_change": "0.03"}, "RICE": {"current": "16.3849", "unit": "cwt", "24hr_change": "0.0093", "percent_change": "0.06"}, "SUGAR": {"current": "0.1866", "unit": "lb", "24hr_change": "-0.0007", "percent_change": "-0.40"}, "COCOA": {"current": "2374.074", "unit": "ton", "24hr_change": "2.5206", "percent_change": "0.11"}, "LUMBER": {"current": "527.842", "unit": "oz", "24hr_change": "0.2641", "percent_change": "0.05"}, "SOYBEAN": {"current": "17.1621", "unit": "bu", "24hr_change": "0.0270", "percent_change": "0.16"}}}' >>commodities_settings.json
|
echo '{"feature": "Stocks", "speed": "fast", "speed2": "fast", "animation": "down", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"BRENTOIL": {"current": "123.053", "unit": "bbl", "24hr_change": "1.0150", "percent_change": "0.83"}, "WTIOIL": {"current": "121.588", "unit": "bbl", "24hr_change": "0.8902", "percent_change": "0.74"}, "XAU": {"current": "1821.205", "unit": "oz", "24hr_change": "4.0045", "percent_change": "0.22"}, "XAG": {"current": "21.1034", "unit": "oz", "24hr_change": "-0.0550", "percent_change": "-0.26"}, "XCU": {"current": "0.2633", "unit": "oz", "24hr_change": "-0.0006", "percent_change": "-0.22"}, "NG": {"current": "8.6595", "unit": "mmbtu", "24hr_change": "-0.0236", "percent_change": "-0.27"}, "WHEAT": {"current": "393.123", "unit": "ton", "24hr_change": "-1.2642", "percent_change": "-0.32"}, "COTTON": {"current": "1.4494", "unit": "lb", "24hr_change": "0.0004", "percent_change": "0.03"}, "RICE": {"current": "16.3849", "unit": "cwt", "24hr_change": "0.0093", "percent_change": "0.06"}, "SUGAR": {"current": "0.1866", "unit": "lb", "24hr_change": "-0.0007", "percent_change": "-0.40"}, "COCOA": {"current": "2374.074", "unit": "ton", "24hr_change": "2.5206", "percent_change": "0.11"}, "LUMBER": {"current": "527.842", "unit": "oz", "24hr_change": "0.2641", "percent_change": "0.05"}, "SOYBEAN": {"current": "17.1621", "unit": "bu", "24hr_change": "0.0270", "percent_change": "0.16"}}}' >>commodities_settings.json
|
||||||
@ -64,9 +61,6 @@ echo '{"feature": "Economic Calendar", "speed": "medium", "speed2": "medium", "a
|
|||||||
echo '{"brightness": 10, "country_code": "GB", "hostname": "fintic"}' >>general_settings.json
|
echo '{"brightness": 10, "country_code": "GB", "hostname": "fintic"}' >>general_settings.json
|
||||||
chmod 777 *
|
chmod 777 *
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cd ../
|
cd ../
|
||||||
sudo chmod -R ugo+rwx csv
|
sudo chmod -R ugo+rwx csv
|
||||||
|
|
||||||
@ -122,7 +116,5 @@ touch 'Place (Reddit).ppm'
|
|||||||
touch 'Place (Reddit) Prof.ppm'
|
touch 'Place (Reddit) Prof.ppm'
|
||||||
chmod 777 *
|
chmod 777 *
|
||||||
|
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
sudo chmod -R ugo+rwx display_images
|
sudo chmod -R ugo+rwx display_images
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user