IoT Archaeology Leads To API Resurrection

What happens when someone’s personal project is turned into a startup which becomes something of a publicity darling, then collapses with very little product shipped and takes all its customers’ money with it?

That’s the subject of a blog post from [Kevin Chung], who investigated the legacy of NYCTrainSign, a company whose product was an LED NYC subway sign and which has become a meme byword for a startup scam. Along the way he found himself reverse engineering its API, and eventually even purchasing the expired domain name to resurrect the API for any NYCTrainSigns that may still be out there.

Securing a second-hand NYCTrainSign, he dismantled it to see what made it tick. Inside the handmade wooden case was an array of LED panels, driven by a Raspberry Pi 3 and an Adafruit LED panel HAT. This gave pause for thought, as the component choice gives rise to a very high BoM cost which was unsustainable given their habit of steep discounts.

The software proves straightforward enough to reverse engineer, and since the original domain was for sale he bought it and set up a replacement API. Do you have one of the few signs that made it to customers? Now you can run it again.

The rest of the piece tells a tale that will be familiar to startup veterans: one of far too much marketing, too many bosses, and too little engineering to create a viable product. The founders remain tight-lipped about what happened and where the money went, but since there are few more efficient money pits than a badly-run startup, it’s more likely that ill-advised spending is to blame than someone running off with suitcases of cash.

If you’d like a public transit sign without the dodgy start-up, we’ve got you covered.

21 thoughts on “IoT Archaeology Leads To API Resurrection

  1. I like how he points out the “huge hole in the back for some unknown reason”, when he must have used it for it’s intended purpose – shoving a finger in there when trying to take the back off.

    This is totally something that would have made sense when sold on tindie or etsy by a single person, not a crowdfunded product with a 15 person company behind it. No wonder it bombed.

        1. You can publish the source of your software under restrictive “open” licenses, while keeping the rights of your software for commercial applications for instance.
          I think what you described would be more appropriately called Free Software than Open Source.

        2. I’m not as familiar with the technicalities of licensing laws, but would Shareware fall under this category? You can download the files from any source and compile it for whatever systems, but to actually use it you need a purchased license. This was kinda how Doom (1993) was sold before it’s source code was released.

    1. AFAIK, Open Source simply means that a program’s original source code is available for download and inspection. It says nothing about what else you’re actually allowed to *do* with that source code; that’s up to whatever license the software is released under. The two are often correlated but they’re still two separate issues. As for “open source but proprietary software” that someone else mentioned, I believe Minecraft is an example.

    1. Even an ESP8266 would do the whole thing without breaking a sweat. They’ve also over-estimated for the panels – if they’re 64×32 P10 HUB75s (as they look like), that’s $15 a pop, not “at least $30”.

    2. Meh. What family of hobbyist micro controllers can’t drive a 2D LED matrix?

      On the on-off hobbyist level, whatever micro one is familiar with is the best choice.

      But if you really want to minimize I’m thinking maybe a low end MSP430 and a shift register.

  2. It’s fairly innocuous here, but I wonder how many places it could actually be quite a security issue to own a device where the original inventor sells the domain that controls it, or goes bust leaving the domain for re-purchase. It’s a little like the police auctioning off old cop cars while leaving all the weapons in them for frree.

    1. No-one has ANY control of any service thst depends on ‘cloud’ services – i.e. other people computers. Every IoT device, app or hardware that calls ‘home’ i.e. to other peoples computers are at risk of being shut down or taken over.

  3. Ridiculous.

    For the devices to be usable someone had to purchase the domain and re-create the servers? It’s an LED matrix in a nice wooden case. There’s no excuse to depend on some third party server somewhere.

    It could have a commandline bluetooth serial interface. A simple phone app could easily hide the commandline from the end user. But then long after support ends and no one is updating the app anymore which no longer runs on new phones a slightly more “techy” user with just any old bluetooth terminal emulator could still make it work.

    It could do the same thing via WiFi for slightly more expense, electricity usage and setup. Give it an internally served LAN accessible web page and it’s more future proof than an app.

    If the end user wants to access it remotely… forward a damn port! Or better yet, set up a VPN. Why don’t more of these clearly technically competent people who build their own IoT devices which rely on third party cloud services just install OpenVPN server on their router and the client on their portable devices? It’s not rocket science.

    1. While I am 100% in favor of local control options, the purpose of this device was to display subway times, which basically necessitates a cloud service with user accounts so it can present personalized data.

      1. It could store the “personallized” data in the thing itself (what station to show, settings) and the actual transport data via a publicly available MTA/GTFS feed. No need to create a device-specific website.

  4. This is an old old project. One I completed back in 2021 based off the very same failed startup….The MTA API is available for free, and with some cross referencing you can find out the time for the stops, delays, etc.

    There are also similar products such as Tibly (sp?) which do the same thing, and more.
    The LED panels you can daisy chain together and make as large of a display you’d like.

    See the attached github repository for the working code base. Consisting of two parts, a LED display script, and a flask script to allow stops to be added and removed.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.