[CNLohr]’s Microscope Slide Linux AVR Minecraft… Thing

We’ve been following [CNLohr]’s process of creating an AVR-powered microscope slide running Linux and interfacing redstone circuits in Minecraft to real world electronic for a while now, but we’re really at a loss for words on how it works. Well, now there’s a video explaining everything you want to know about this amazingly complicated and overwrought thing.

The device is powered by an AVR microcontroller and Ethernet controller running [Fabrice Bellard]’s JSLinux in a browser. [CNLohr] added a few bits to JSLinux allowing him map the x86 IO ports emulated inside JSLinux to the AVR’s IO ports. This allows him to query the status – both analog and digital – using just a browser. Very cool, but [CNLohr] can also run his Minecraft server optimized for 8-bit devices on this microscope slide server to create a bridge between real electronics and redstone circuits.

To sum up what’s going on here, [Bellard] created an x86 emulator in JavaScript, and put Linux on it. [CNLohr] is serving this from a microcontroller attached to a circuit built on a microscope slide so he can blink an LED from within Minecraft. It’s the most beautifully over engineered and useless thing we’ve ever seen, basically.

In the video after the break, you can see [CNLohr]’s overly convoluted walk through of what’s going on with this microscope slide server. As a little bonus, you can also catch a glimpse of Hackaday at 00:20 in [CNLohr]’s most visited / new tab thingy in Firefox. We’re honored, really.

[youtube=https://www.youtube.com/watch?v=ENNZ5QNrHNQ&w=580]

19 thoughts on “[CNLohr]’s Microscope Slide Linux AVR Minecraft… Thing

  1. Imagine if you interfaced more than an LED, like home automation and security functions. You could build a virtual representation of your house in Minecraft and control everything by flipping red stone switches.

    OMG now imagine if someone hacked the server to create characters in Minecraft based on sensors in real life that detect bodies [motion, heat-sensing, whatever], meaning you could track the people in your house as they walk through your Minecraft world… *nerdgasm*

    I seriously don’t have the skill to pull that off, maybe it should be suggested to a hackerspace.

  2. Of all the things that are called useless on this blog, by both the writers and the commenters, this isn’t?

    Oh. Silly me. I forgot. Any project involving something trendy like Minecraft gets an automatic pass.

  3. Interfacing a virtual world with devices in the real world is just awesome, but although the game itself is great I can’t stand the ultra low resolution of Minecraft. Did anyone somewhere write a similar interface for other game engines such as Sauerbraten, Xonotic, Tremulous, Openarena etc?

    1. I did an interface that picks up Second Life avatars native speaking languages either from their home computers operating system or what they have set in their browser, mapped it to colour (eg italian was red, japanese =blue) then used it to create a glass/LED sculpture in my living room. A dynamic language painting. Is that the sort of thing you mean querty? http://www.youtube.com/watch?v=Phgom8fcBGE. It used http request to send the data out.

      My current project will be interfacing their positions to a set of mechanical objects. Sending data in is pretty easy too used tcp to send the depth data of my face, collected using kinect and recontructed it in real time in spheres in the virtual world a few years back.

  4. I know CNLohr, personally. His stigma behind engineering is:
    “the less practical/useful something is, the more I’m going to have fun creating it.”

    In that regard, I envy him. Creating something just for the pure fun of creating something (useful or not) is something not many people do.

  5. I think you make it sound like this is how he is running a minecraft server on the avr, but that is not quite related. In his previous videos, he demos his http server along side his minecraft server. The minecraft server is his own implementation, and actually runs on the avr. In this case, the http server is serving up a js x86 emulator that runs in the browser. He has managed to get an avr to bitbang communication with the ethernet chip, talk tcp on the network, run a minecraft server, read from an sd card, and act as a webserver simultaneously.

  6. What, he’s running Linux on a PC emulator written in friggin Javascript, on a web browser, that runs on an AVR?!?

    I’ve used JSLinux briefly, for… well ok there’s nothing you can actually use it for, or so I thought. But what web browser works on an AVR and runs Javascript?

    I have to think HAD’s got it wrong (really!) here. Surely the browser and JSLinux are running on a PC somehow connected to the AVR? Because the AVR would otherwise need hundreds of megabytes of RAM, and enough MIPS to run a web browser. And Javascript.

    1. Ahh… the AVR holds an SD card, and a simple webserver, that serves jslinux.html up to the PC, where it runs. Then JSLinux has a couple of tweaks to send stuff to the AVR over the Ethernet. The PC, of course, does the JSLinuxing, which is presumably only there to make the whole thing overcomplicated.

Leave a Reply to Glyph GravesCancel 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.