Factory Reset After Uploading Your Own Code

We’ve built our trackr boards to be hackable, you can write your own code and upload it to your board as needed, displaying your own data, or changing the way you display our data.

However, at some point you may want to reset the board to it’s factory firmware, here’s how you do it.

Disclaimer: We can’t fully support boards when new firmware has been uploaded, and can’t guarantee that you’ll be able to factory reset. We’ll help point you in the right direction, but in the event your ‘brick’ your board or can’t get the below code working you may need to send your board back to us for a firmware upgrade.

First you’ll need to install the Arduino IDE and the ESP8266 board files, these can be found here:

We don’t provide access to our firmware directly, but give you a simple sketch that will connect to our servers and download the most recent firmware to your board.

The code for this can be found here: https://github.com/Traintrackr/base_firmware_updater

There are further instructions listed at the top of the Arduino sketch. You’ll need your WiFi SSID, WiFi password, and an update code from us to authorize the server update.

Send us an email if you need to update your board and we’ll send you the details you need.

Adjust Rain Settings

We’ve been asked a few times by customers to adjust the sensitivity of the rain data on our rain products. Here’s what we’ve done, and how you can make the changes.

For our rain maps we process precipitation radar images to determine if it’s raining in any one area, looping through all the areas on the board to get data for the entire map. For each area we calculate how many of the radar image pixels are showing rain, setting a default threshold of 8% rain pixels to show rain in that area.

You can now manually update the rain threshold, setting it from 1% to 100%. You can find the setting on your device page, head to your Traintrackr dashboard, click on your board, then look for the ‘Set Rain Threshold’ button at the top of the page.

Click the button and you’ll see a popup asking you to select a new threshold level. Once you select a new threshold we’ll send it to the board and you’ll see the change reflected within a minute. Any changes made to threshold levels when a board is not running will be sent as soon as the board reconnects again.

Adjust Brightness

Many of you were asking to adjust the LED brightness on your boards. It is important to some of you late at night when you don’t want to be blinded in a dark room, or others when using boards in bright rooms.

Brightness controls are enabled on all products released since the beginning of 2020, so this is all products except for the original square (100mm x 100mm) Boston MBTA board.

To adjust the brightness on your board head to your Traintrackr dashboard, click on your board, then look for the brightness button at the top of the page.

Click the brightness button and you’ll see a popup asking you to select a new brightness level. Once you select a new brightness level we’ll send it to the board and you’ll see the change reflected within a minute. Any changes made to brightness levels when a board is not running will be sent as soon as the board reconnects again.

Live MBTA Data

mbta boards

Our Large MBTA boards are an update to our first MBTA board in many ways, they are larger, show the whole network, and have moved away from updates every minute, to updates every second.

Updating the board every minute is easy, we just make a vehicle location request to the MBTA API, displaying that data on the board’s LEDs. Updating every second is much more complicated, we can’t use vehicle locations anymore (they only update once a minute), so we have to use departure predictions.

We pull departure predictions from the MBTA API, and then cycle through each one, adjusting the LEDs as the trains are predicted to depart from each station. This make the movement on the board look much more fluid and natural, but does have it’s drawbacks.

  • Trains can go faster or slower than predicted, so the LEDs can jump when the next set of predictions come in.
  • Predictions aren’t available outbound for the last stop on the line, as there aren’t any public departures.
  • We don’t know where vehicles are, just when they are supposed to arrive/leave. Because of this we don’t show trains waiting to depart from their first stop, until they are scheduled to depart.

Despite these limitations, being able to see the trains move around the network in real time is much more engaging, and we think it’s a big improvement.

Reprogramming Your Trackr

We designed our trackr boards to connect to our servers, access our processed data, and then display that on the onboard LEDs.  Collecting this data in most cases isn’t easy, so we’ve done the hard work for you. All you need to do is enter your setup code (which comes with each board) + WiFi password and you’re away.

However as hackers ourselves, we realize that some of you may want to take matters into your own hands when it comes to the data, especially if you want to display something different, or data of your own.  So we’ve made it easy for you to reprogram the board, allowing you to display whatever you want.

Disclaimer: We can’t fully support boards when new firmware has been uploaded, and can’t guarantee that you’ll be able to factory reset. We’ll help point you in the right direction, but in the event your ‘brick’ your board or can’t return the firmware to it’s default state you may need to send your board back to us for a firmware upgrade.

One option is to use the Arduino IDE, with ESP8266 Core installed.  This will allow you to program the ESP8266, which is the main microcontroller on the board.  

Standard 0805 LEDs

Some of our boards come with standard 0805 LEDs driven by the HT16K33 LED driver chip, to drive this you’ll need to use a suitable library.

Addressable WS2812-mini LEDs

If you are trying to reprogram one of our boards with onboard RGB LEDs (WS2812-mini) you’ll need a library that can speak to those LEDs.

The hardware side of programming your board is easy, we’ve included a USB to UART chip (CP2104) onboard, so all you need (apart from your computer and the board itself) is the USB cable that came in the box. 

Programming Steps

  • Write your code in the Arduino IDE and make sure it compiles
  • In the board manager select ESP8266
  • Holding the onboard ‘Flash’ button, connect your board to your computer via USB
  • Release the flash button
  • Make sure you have the correct port selected, it will look something like SLAB_USBtoUART
  • Upload to your board

We’ve put together a very simple Arduino sketch to get you started with the basics, it’s then up to you to write some code and make something amazing.

Schematics and basic firmware can be found here: https://github.com/Traintrackr/board_files

If you need to reset your board to it’s original firmware, you can find our instructions here

Let us know how you get on with your boards, we’d love to see what you do with them.