Display your favourite NFL team score on an raspberry pi powered LED matrix. Currently supports 64x32 boards only.
This project and my Fantasy Football scoreboard project were inspired by the nhl-led-scoreboard, who based THEIR project off of the mlb-led-scoreboard. Go check them out, and start watching hockey if you don't already (and baseball too but I love hockey more (go Leafs!)).
If you enjoyed this project, my NFL project, or if you're just feeling generous, consider buying me a beer. Cheers! :beers:
You can also PM me on reddit under /u/mikemountain if you need help but don't think it requires an issue!
Hey, neat-o! You can rotate through multiple games now if you want to! Will still need some finessing, but definitely an improvement.
Currently shows the team logos and the game time.
The score updates every 3 seconds. The scoreboard will display, from top to bottom: quarter, time remaining in quarter, team with possession, down and yards to gain, and the position of the line of scrimmage. When a team is in the redzone, their name will light up red.
Just kind of looks like the pre-game screen but with the final scores.
It displays a message that it's the off season. You should just turn it off and plan to be heartbroken again next year.
Nothing yet because I didn't even think the season would start because of COVID.
Future plans include:
The mlb-led-scoreboard guys made a great wiki page to cover the hardware part of the project. There's also this very handy howchoo page which is what I mainly followed.
It is recommended you install the Lite version of Raspbian from the Raspbian Downloads Page. This version lacks a GUI, allowing your Pi to dedicate more system resources to drawing the screen. Make sure to set the timezone to your local timezone!
You need Git for cloning this repo and PIP for installing the scoreboard software.
sudo apt-get update
sudo apt-get install git python-pip
This installation process might take some time because it will install all the dependencies listed below.
git clone --recursive https://github.com/mikemountain/nfl-led-scoreboard
cd nfl-led-scoreboard/
sudo chmod +x install.sh
sudo ./install.sh
rpi-rgb-led-matrix: The open-source library that allows the Raspberry Pi to render on the LED matrix.
requests: To call the API and manipulate the received data.
If you have used a LED matrix on a raspberry pi before and know how to run it properly, then you can skip this part.
If you just bought your LED matrix and want to run this software right away, reference the rpi-rgb-led-matrix library. Check out the section that uses the python bindings and run some of their examples on your screen. For sure you will face some issues at first, but don't worry, more than likely there's a solution you can find in their troubleshooting section. Once you found out how to make it run smoothly, come back here and do what's next.
If you are using any thing from raspberry pi 3+ to the newest versions with an Adafruit HAT or Bonnet, here's what RiffnShred did to run his board properly. It seems these are more recommendations than things you 100% absolutely need to do, but are probably beneficial anyway.
Finally, here's the command he used.
sudo python main.py --led-gpio-mapping=adafruit-hat-pwm --led-brightness=60 --led-slowdown-gpio=2
Open the config.json file from the root folder and change these values:
fav_team
Set this as your favourite team, but it doesn't do anything yet (for next season)Now, in a terminal, cd to the nfl-led-scoreboard folder and run this command.
sudo python main.py
If you run your screen on an Adafruit HAT or Bonnet, you need to supply this flag.
sudo python main.py --led-gpio-mapping=adafruit-hat
Use the same flags used in the rpi-rgb-led-matrix library to configure your screen.
--led-rows Display rows. 16 for 16x32, 32 for 32x32. (Default: 32)
--led-cols Panel columns. Typically 32 or 64. (Default: 32)
--led-chain Daisy-chained boards. (Default: 1)
--led-parallel For Plus-models or RPi2: parallel chains. 1..3. (Default: 1)
--led-pwm-bits Bits used for PWM. Range 1..11. (Default: 11)
--led-brightness Sets brightness level. Range: 1..100. (Default: 100)
--led-gpio-mapping Hardware Mapping: regular, adafruit-hat, adafruit-hat-pwm
--led-scan-mode Progressive or interlaced scan. 0 = Progressive, 1 = Interlaced. (Default: 1)
--led-pwm-lsb-nanosecond Base time-unit for the on-time in the lowest significant bit in nanoseconds. (Default: 130)
--led-show-refresh Shows the current refresh rate of the LED panel.
--led-slowdown-gpio Slow down writing to GPIO. Range: 0..4. (Default: 1)
--led-no-hardware-pulse Don't use hardware pin-pulse generation.
--led-rgb-sequence Switch if your matrix has led colors swapped. (Default: RGB)
--led-pixel-mapper Apply pixel mappers. e.g Rotate:90, U-mapper
--led-row-addr-type 0 = default; 1 = AB-addressed panels. (Default: 0)
--led-multiplexing Multiplexing type: 0 = direct; 1 = strip; 2 = checker; 3 = spiral; 4 = Z-strip; 5 = ZnMirrorZStripe; 6 = coreman; 7 = Kaler2Scan; 8 = ZStripeUneven. (Default: 0)
This project uses the GNU General Public License v3.0. If you intend to sell these, the code must remain open source and you at least have to tell people how cool I am (please, I need this).