Skip to content(if available)orjump to list(if available)

The most unhinged video wall, made out of Chromebooks

szvsw

Congrats on delivering this fun project! I do a lot of work with synchronizing media content across devices so it’s always fun to see the solutions people come up with. You probably came across them in your research, but the industry standard way of creating a synced video wall like this is with BrightSign media players. The total cost for purchasing them and the screens would for 20 displays could easily end up in the 10s of thousands, so big kudos to you guys for finding a way to make this work with recycled devices.

If you are ever interested in working on some mediasync-related codebases hit me up! We hire devs to do freelance contracts fairly often.

varun_ch

Thank you!

I didn’t get the chance to mention them in the blog post, but yes we checked out the price tags on the commercial solutions :) It’s crazy! I’ve always wondered how much of the cost is hardware vs software… and I would imagine professional digital signage is also designed for reliability longevity and all that.

szvsw

Reliability is a big part of it - but they are not really all that expensive for what you get IMO, especially in an enterprise context. A BrightSign is effectively a very sandboxed Linux box (you can SSH into them!) which has extremely reliable video and audio output, plus a huge amount of customizability, networking, scripting etc - plus various fleet provisioning/management software that goes with it. In terms of $/minute, the amount you pay ends up being vanishingly small IMO.

Your main “cheap” alternative to a BrightSign is a Raspberry Pi, which is definitely cheaper, but has its own host of issues to deal with.

mikepurvis

Is the separate box thing because of commercial display realities? Certainly at trade shows and the like I mostly see people just plug a usb stick into the smart tv from wal-mart and play their sizzle reel off of that.

Is there some incentive to not just bake a small arm computer into each display?

nolist_policy

By the way, you can use Chromebooks and -boxes for digital signage (and kiosk) as well if you manage them with Google Cloud.

dividuum

I operate a digital signage company based around the Pi. Curious what problems you run into. SD cards?

niutech

Why waste old chromebooks for fun when you could donate them to the 3rd world schools for children? Thinkpads 11e are still proper hardware, I own one. Just install the latest Lubuntu and donate to people in need rather than disposing them. It's sad that huge number of the 1st world hardware is being thrown away rather than upcycle and serve the poor people in the 3rd world.

LTL_FTC

Getting laptops to third world countries is a real challenge. Customs agents see the computers, unaware of their age or value, and they get held, go missing until they are bribed, or just outright stollen.

Where I previously worked, we had a server room with over a hundred laptops, many late intel MacBook pros much better than the computers coworkers in India were using, but we just could not get them there from the US. The best we could do is ask coworkers traveling to visit the India team if they were willing to carry an additional laptop through customs. But a work laptop, personal laptop, and now a second "personal" laptop, even just three devices, would sometimes cause them a headache. If the logistics were easier, I am sure more of what you are proposing would happen.

greggman25

I worked at Google when Chromebook shipped. They put out a call for decorations for the lobby and I proposed something similar to this but they said "no" :( Maybe because I asked for 40-64 machines :P

I would not have tried to sync video though. Instead I'd have made time based animations and use the network the synchronize the clocks.

you can see an example here: https://www.youtube.com/watch?v=64TcBiqmVko

It's 8 machines running Chrome. The only thing synchronized are the settings and the time.

They machines do not have to be in a grid either. I was inspired by the Boston Science Museum's virtual aquarium

preinheimer

The author tried, but the clocks wouldn’t stay in sync. It’s in a sidenote expandable section.

> Unfortunately, these Chromebooks could not reliably keep track of time within milliseconds of each other, so this method didn't work for us.

greggman25

I don't know if syncing the videos would work because of playback issues over time but the aquarium pages sync their clocks every second just asking the server the time (demo time not wall time) over web-sockets and then subtracting 1/2 of the time it took to get a response. I suspect the technique works better for time based animations than video since video require seeking to change the time.

simondotau

I feel like this deserves a deep dive of its own. Were the clocks drifting substantially over a reasonable time period between syncs (e.g. 24 hours)? Was SNTP not acting reliably? Did they try hosting a local time server?

01HNNWZ0MV43FF

I was on an IoT project once and surprised to find that when blocked from ntp, PC clocks drift pretty quick. A couple milliseconds per day would not surprise me.

It looked to me like the fleet did consistently fall behind, which seems like thoughtful design - syncing would always cause them to skip ahead and never rewind time

varun_ch

Did not get the chance to try much at! We just observed that clocks could be synchronized, but the next time we checked they would no longer be. I agree that this is definitely something that could also be interesting to look into in the future.

szvsw

If you have fixed media (as opposed to realtime dynamically generated or streamed etc) this trick can go a very long way - or even if it is generative, if the time is used to drive the animation. It just requires good clock sync, like you said, which can be non trivial (especially if audio is involved where desync of even 20-30ms becomes very noticeable). But yeah, with NTP/PTP you can get v v far.

netcraft

Super cool!

We needed to do something similar one time with 5 large touchscreen tvs that were arranged as a table, where each side needed to be a separate touchscreen application with them all playing a synchronized video in the background but users could interact with things flowing from one end to the other and could send objects from their other apps in any direction to other apps, like users sending things they found to the person on the other side of the table.

We ended up with a trashcan mac pro (thats about all we could find in budget that could drive all the screens at the same time) with apps that were synchronized using redis (I wrote that part). It worked really well, though I didnt get to see the finished product before I left that company. But we always really wanted to have separate computers that were synchronized. We just couldnt get that to be reliable enough - it worked for a while but then various things would throw it out of sync, meaning we would have to restart the applications periodically which wouldnt work.

Something I have always wished we had, since the very early days of PCs was the ability to network devices together in such a way that they could share their resources and collaborate more. Imagine being able to take advantage of all of the computers in an office to do a task like a supercomputer. Of course thats a very hard problem, applications and OSs would need to be designed for it and we would need new algorithms (look how long it took us just to take advantage of multiple processors in the same machine on the same board), but there were some projects out there like seti@home and folding@home that did it somewhat, but I always hoped it would be something that the computers themselves would support.

niutech

It's called distributed computing (https://en.m.wikipedia.org/wiki/Distributed_computing) and it's long doable using Linux/BSD.

ashirviskas

Cool! I did a similar thing with 4x4 tablets, after connecting all 16 of them to ADB and a single host I was able to automate most of the stuff. The I just created 16 virtual screens on sway with 16 VNC clients and streamed it all over Wi-Fi as a test, but Wi-Fi worked so well that I did not look for more efficient solutions.

For that period my PC had 19 displays, 17 of them over VNC and it was glorious. I could either do something on all of them, or dedicate each for a different purpose/program (music, htop, calendar, clock, ssh sessions)

Though dealing with all the hardware was quite annoying - some throttled, some had connectivity issues, others batteries would not hold charge and so on.

amendegree

If you’re just skimming and didn’t read the whole blog: this was done by high school students over the course of their high school career, makes the project even more impressive imo.

mrbluecoat

> I embarked on the journey of building ‘my own distro’ that we could install on the laptops. The system should start with something minimal (no desktop environment), and have an elegant script to autostart a kiosk mode Chromium instance. I first tried NixOS before quickly realising there was no way it would work with the tiny amount of storage on these Chromebooks (and it failed to install with every single attempt). Then I gave up, started with a Debian minimal install and ... I realised I would be wasting so much time (installing Debian is very ‘hands-on’ - you need to press lots of buttons), and I discovered ‘FAI - Fully Automatic Installation’ and the web FAI.me tool

DietPi, OpenWrt, and OpenBalena have autoinstall options as well that allow you to select specific packages and install on minimal bare metal. I'd be curious if there are other non-desktop options out there..

bazzargh

A similar thing from many years back: the junkyard jumbotron let you assemble a random collection of displays to display their portions of a much larger image

https://github.com/mitmedialab/Junkyard-Jumbotron

Video https://youtu.be/cAUtSVSTbzU?feature=shared

varun_ch

The Media Lab makes so much random fun stuff. I feel like it would be fun to remake this with modern web tech. (doing the alignment photo over email does sounds like fun too hehe)

lakesta

Awesome work -- way to have a vision and see it through to the end. That process will make you a success in life and you'll learn a lot, too!

mos_6502

>Now, I’m not entirely sure why this works so well, but I came up with a ridiculous solution by accident […]

>This means that the slowest computers hold back the fastest computers […]

It works so well because you’ve optimized the system’s design with respect to its bottleneck. Check out the theory of constraints :)

layer8

Literally unhinged, the Chromebooks.

simondotau

Thats’s the joke.gif

niutech

Lenovo Thinkpad 11e aren't junk. I own one with Ubuntu and it still serves me well. Why people in the 1st world disassemble them or throw away rather than upcycling by upgrading OS and donating to the children of the 3rd world, like OLPC used to do? Still half of population doesn't have access to computers. This is hugely missed opportunity to help poor children!

danans

> Why people in the 1st world disassemble them or throw away rather than upcycling by upgrading OS and donating to the children of the 3rd world, like OLPC used to do?

It wouldn't surprise me if, with the worldwide rise of smartphones, children in the developing world don't want computers.

Also, much of the developing world has plenty of buyers of new computers, and undoubtedly a significant aftermarket for the resulting used computers (just like in the developed world), so they probably don't need our donated old computers nearly as much

niutech

I'm not sure. Only about 34 per cent of schools in India have internet facilities and more than 50 per cent do not have functional computers (https://theprint.in/india/education/only-34-indian-schools-h...). This is hundreds of million of people only in India and there is Africa & Southern Asia hugely in need too.

danans

> Only about 34 per cent of schools in India have internet facilities and more than 50 per cent do not have functional computers

India is an economically powerful country that has nuclear weapons, a robust manufacturing sector (including computing technology), and a space program. They are building a cross country freeway network and their major cities have metro and transit systems that are more advanced than those in most major American cities.

India is not comparable to less developed countries in sub-Saharan Africa, and in fact India's corporations outsource a lot of production to those countries for their extremely low-cost labor, just as the West does with East Asia.

That only 34% of its schools have internet facilities and 50% don't have functional computers is the result of India's massive wealth and social inequality and it's large disparity in standard of living.

This is the result of the policy priorities of Indian politicians and voters, not something that will be fixed by donating used laptops from the West.

If anything, the West seems to be on a trajectory toward developing a huge disparity in the standard of living, like India.

leohonexus

Most interesting thing to me is how switching to coreboot fixed the freezing. Do you have a theory of why that might happen? I wonder if it's ACPI/DSDT related or if HW controllers were initialized incorrectly using the original BIOS.

oynqr

Could also be a watchdog firing?