MLB LED Scorboard Layout Tweaks

I’ve been having a lot of fun with my MLB LED Scoreboard.

I started to work with the layout a little to make it more to my liking.  Specifically, I:

  • Added a single line of blank LEDs between the visiting and home teams.  It makes a big difference when the teams use the same colors.
  • Aligned the score and inning numbers and adjusted the top/bottom triangle a little.
  • Centered second base on the scoreboard.
  • Moved batter count and outs left to better use space.

There are a few things like “no hits” and “perfect game” I haven’t encountered yet, so I may need to make some additional adjustments to accommodate them.  But for now, I’m happy with this layout.

Here’s the 64×32.json file that makes it happen.

{
  "defaults": {
    "font_name": "4x6"
  },
  "bases": {
    "1B": {
      "x": 37,
      "y": 22,
      "size": 6
    },
    "2B": {
      "x": 32,
      "y": 17,
      "size": 6
    },
    "3B": {
      "x": 27,
      "y": 22,
      "size": 6
    }
  },
  "final": {
    "inning": {
      "x": 32,
      "y": 22
    },
    "scrolling_text": {
      "x": 0,
      "y": 31,
      "width": 64
    },
    "nohit_text": {
      "x": 1,
      "y": 21
    }
  },
  "inning": {
    "break": {
      "number": {
        "x": 32,
        "y": 29
      },
      "text": {
        "x": 32,
        "y": 22
      }
    },
    "number": {
      "x": 62,
      "y": 22
    },
    "arrow": {
      "size": 3,
      "up": {
        "x_offset": -6,
        "y_offset": -4
      },
      "down": {
        "x_offset": -6,
        "y_offset": -2
      }
    }
  },
  "outs": {
    "1": {
      "x": 9,
      "y": 26,
      "size": 2,
      "nohit": {
        "x": 9,
        "y": 28,
        "size": 2
      },
      "perfect_game": {
        "x": 9,
        "y": 28,
        "size": 2
      }
    },
    "2": {
      "x": 13,
      "y": 26,
      "size": 2,
      "nohit": {
        "x": 13,
        "y": 28,
        "size": 2
      },
      "perfect_game": {
        "x": 13,
        "y": 28,
        "size": 2
      }
    },
    "3": {
      "x": 17,
      "y": 26,
      "size": 2,
      "nohit": {
        "x": 17,
        "y": 28,
        "size": 2
      },
      "perfect_game": {
        "x": 17,
        "y": 28,
        "size": 2
      }
    }
  },
  "batter_count": {
    "x": 9,
    "y": 23,
    "nohit": {
      "x": 9,
      "y": 21
    },
    "perfect_game": {
      "x": 9,
      "y": 21
    }
  },
  "nohitter": {
    "x": 9,
    "y": 27,
    "innings_until_display": 5
  },
  "pregame": {
    "scrolling_text": {
      "x": 0,
      "y": 31,
      "width": 64,
      "warmup": {
        "x": 0,
        "y": 31,
        "width": 64
      }
    },
    "start_time": {
      "x": 32,
      "y": 22
    },
    "warmup_text": {
      "x": 32,
      "y": 22
    }
  },
  "standings": {
    "offset": 6,
    "height": 30,
    "width": 64,
    "divider": {
      "x": 13
    },
    "stat_title": {
      "x": 28
    },
    "team": {
      "name": {
        "x": 1
      },
      "record": {
        "x": 31
      },
      "games_back": {
        "x": 64
      }
    }
  },
  "status": {
    "text": {
      "x": 32,
      "y": 22,
      "short_text": false
    },
    "scrolling_text": {
      "x": 0,
      "y": 31,
      "width": 64
    }
  },
  "teams": {
    "background": {
      "away": {
        "width": 64,
        "height": 7,
        "x": 0,
        "y": 0
      },
      "home": {
        "width": 64,
        "height": 7,
        "x": 0,
        "y": 8
      }
    },
    "name": {
      "away": {
        "x": 4,
        "y": 6
      },
      "home": {
        "x": 4,
        "y": 14
      }
    },
    "accent": {
      "away": {
        "width": 2,
        "height": 7,
        "x": 0,
        "y": 0
      },
      "home": {
        "width": 2,
        "height": 7,
        "x": 0,
        "y": 8
      }
    },
    "runs": {
      "away": {
        "x": 62,
        "y": 6
      },
      "home": {
        "x": 62,
        "y": 14
      }
    }
  },
  "offday": {
    "scrolling_text": {
      "x": 0,
      "y": 30,
      "width": 64
    },
    "time": {
      "x": 40,
      "y": 7
    },
    "conditions": {
      "x": 40,
      "y": 15
    },
    "temperature": {
      "x": 10,
      "y": 23
    },
    "wind_speed": {
      "x": 0,
      "y": -2
    },
    "wind_dir": {
      "x": 0,
      "y": -2
    },
    "wind": {
      "x": 40,
      "y": 21
    },
    "weather_icon": {
      "x": 2,
      "y": 1,
      "width": 15,
      "height": 15
    }
  }
}

 

Advertisements

MLB LED Scoreboard for Opening Day 2019

I’ve had my eye on this open source project for a while, and during the off season I finally got around to building it.  Here’s how I did it.

The GitHub project contains nearly all the information you need:  https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.  The accompanying WiKi has good info also, including the parts list and some nice startup scripts: https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard/wiki.

I followed the GitHub and Wiki instructions with the additions noted below.

Parts

I went with this parts list from AdaFruit:

  • 1x – 64×32 RGB LED Matrix – 5mm pitch (PID 2277)
  • 1x – Wireless keyboard and mouse combo – one USB port (PID 1738)
  • 1x – 5V 4A (4000mA) switching power supply (PID 1466)
  • 1x – 5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable (PID1995)
  • 1x – Raspberry Pi 3 – Model B – ARMv8 w/ 1GB RAM (PID 3055)
  • 1x – Adafruit RGB Matrix Bonnet for Raspberry Pi (PID 3211)

Note:  I added the 5V 4Aamp power supply to power the LED; went with the RGB Matrix Bonnet (to avoid soldering); did not need the spacers; did not need the battery (the Bonnet doesn’t use one); and I used my own SD card.

 

WiFi Config

My WiFi SID is hidden, so I made the following configuration changes:

1) /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

####################################################
##### custom stuff to find hidden router SSIDs #####
####################################################
auto lo
iface lo inet loopback
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Note that I only set up loopback and wlan0 (wireless) interfaces, I didn’t need the eth0 (wired connection) interface.

2) /etc/wpa_supplicant/wpa_supplicant.conf

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
update_config=1
network={
scan_ssid=1
ssid="xxx"
psk="xxx"
}

Make sure to set up your country, ssid and psk appropriately. ssid is the hidden SSID of your router or access point. psk is the passphrase to connect and authenticate to the router or access point.

Install MLB-LED-Scoreboard Software

Clone the project from GitHub:  https://github.com/MLB-LED-Scoreboard/mlb-led-scoreboard.

Run the installer script:

cd mlb-led-scoreboard/
sudo ./install.sh

Note: lxml took a long time to install — don’t give up on it.

Conclusion

I setup up VNC to run on the scoreboard so I can interact with it without having to connect it to a monitor and use the USB keyboard.  I did not disable the UI on the scoreboard yet and it may be the source of a small flicker I experience.

That’s about it.  I’ve been fiddling with some of the layouts and may post some of those later.  In the meantime, enjoy baseball season with your new scoreboard!

 

Moving Source Code to GitHub

I am slowly moving source code for my tools, utilities, and applications over to github.com.

xCP Design Patterns

I recently ran across this catalog of xCP design patterns.  It looks like the catalog has been around for a while, but I just recently found it and thought I would share it in case you hadn’t seen it either.  Is there a catalog of patterns for D2, it could really benefit from one?

Captiva Licensing Guide

On the heals of the Captiva License Decoder, I found this handy write up for installing and understanding Captiva licenses:  Captiva Licensing Quick Start Guide.pdf.

 

 

Captiva License Decoder

Nicely done little app to decode those pesky Captiva license files to understand what you really have.  Nice work, Jim and Kevin.

Blog postDirect link.

Webtop 6.8.2 Available

Among the chaos this week, the release of Webtop 6.8.2 was buried.  See Alvaro’s blog post.

Webtop support page on DECN.

 

OpenText to Acquire Documentum

In case you missed it today, OpenText announced that it will purchase Dell-EMC’s Enterprise Content Division (ECD — including Documentum and LEAP among other products).  See the text of the announcement I received from Dell-EMC below (actual letter here).

Today, we are excited to announce that we have reached a definitive agreement with OpenText, a global leader in Enterprise Information Management, to combine the Dell EMC Enterprise Content Division (ECD) and its portfolio (including the Documentum, InfoArchive and LEAP families of products) with OpenText’s existing portfolio of products. We are pleased that this will open up new opportunities for ECD customers, partners and team members. The transaction is expected to close in 90 to 120 days. Terms of the agreement can be viewed in the press release.

In determining the best long-term future for ECD, we wanted to create a business with a leading position in Enterprise Information Management. We looked for a partner that shares our vision for the transformation to digital business, our passion for the role of information in the digital world, and the breadth of capabilities to help our customers like you realize that vision. We also sought a partner that shares our commitment to deliver a world-class total customer experience. And, we wanted a partner that values the industry knowledge, innovative mindset and unique talents of our team. I am very pleased to say that we found all of that in OpenText, an industry leader with 9,200 professionals worldwide.

After the transaction closes, we expect that you will continue to realize value from your ECD investments and gain additional value from OpenText’s enriched portfolio, whose complementary strengths will produce a leader in both ECM and EIM: an organization with the financial strength, talent base, and global go-to-market scale to best serve your organization and its needs.

Additionally, Dell EMC and OpenText will work closely together after the transaction closes for the benefit of our mutual customers. To underscore our joint commitment, OpenText and Dell EMC also announced today our intent to enter into a strategic commercial partnership to expand customer offerings and better serve customer needs.

We are fully committed to providing you with world-class support to ensure your ongoing success during this transition. We believe today’s announcement is great news for you and all of our stakeholders, and we hope you are pleased about the opportunity ahead.

There will be a be a webcast on Sept 14 to discuss the purchase, and presumably what it means for customers and partners.  Register here.

Now you know.

UPDATE:  Blog post form Rohit Ghai.

UPDATE:  Really great analysis from my friends at TSG.

UPDATE:  ECD OpenText FAQ – Partners Only!

Dell-EMC Letter

I received a letter from Dell-EMC yesterday that I found quite interesting for several reasons.  First, they sent it to my personal email address and not my business one.  Some how they think I am a customer?  Second, I have not received this — or any other communication — from them on my business email where I am registered with them as a partner.  Third, no where in this letter, nor the link to the Dell-EMC Technologies website, is Documentum mentioned*.  It could very well be that Documentum is considered to be part of EMC proper and not a subsidiary like VMware or Pivotal, I get that, but the skeptic in me wonders if this is an omen of the future.

dell-emc_letter

* Documentum is still mentioned on the DellEMC.com website, but you have to dig pretty deep to find it.

 

Another D2 ESA

Short and sweet: By exploiting this vulnerability, remote unauthenticated users may download any document from the Docbase by knowing only the r_object_id of that document.

Resolution: Upgrade to D2 v4.5 patch 15, or D2 v4.6 patch 03.

Here is the link:  ESA-2016-108: EMC Documentum D2 Authentication Bypass Vulnerability

 

%d bloggers like this: