Building a multiplayer network game with multiple Raspberry Pis can be very difficult. Doing it in assembly is outright insane! This is exactly what a group of first year students at Imperial College London did; they created a network based multiplayer Tetris game for the Raspberry Pi.
[Han], [Piotr], [Michal], and [Utsav] have created this entire game from bare metal assembly, and it only consists of 4000 lines of code! The code is well documented, so be sure to look through their Github repository. This project is a great reference for those looking to learn bare metal assembly and networking. They even chose to use the old NES controllers, a very nice touch. While we have featured what seems like a million different Tetris games in the past, this is the first multiplayer version. See Tetris Duel in action in the video after the break!
This is a shout-out to all of you students out there. Take the time to create quality documentation for your class project, and upload it to the internet. Not only is it a great resume boost, but it could very well end up on Hackaday!
Continue reading “Tetris Duel with the Raspberry Pi”
Being able to use one of your old projects to make a new one better can be quite satisfying. [Steve] from Hackshed did just this: he integrated an Arduino based webserver into a new network controllable RGB lamp.
The overall result is an amazing color changing lamp that works perfectly. All that is left to do is create a case for it, or integrate it into an existing lamp. This is a great way to use an LED strip that would have otherwise gone to waste. If you can’t find a scanner with a color wand like this one, you can always start with an RGB strip.
Continue reading “Building a Network Controllable RGB LED Lamp from an Old Scanner”
Here’s a round-up of three different Fubarino Contest entries; a video of each is available after the break.
On the upper left are the beginnings of a network node monitoring system developed by [Stephane]. When the network checks the weather, it may determine that it’s far too harsh outside and time to go in to see what’s new on Hackaday. There’s only sparse information available on the hardware. Each node uses an ATtiny84 and an RFM12B—different sensors connected to each are used to build up the network’s data collection capabilities.
In the lower left is [Brett’s] Bluetooth door lock controller. The Arduino, a cheap Bluetooth module, and a relay board make up the base station which will eventually connect to an electronic lock. [Brett] uses a smart phone to punch in the access code, and entering “1337” four times in a row unlocks the Easter egg, displaying our URL on the character LCD. Here’s the code repository for his project.
To the right is the display for [Andy’s] smoker controller used for cooking. He already had some hidden features on the controller used to calibrate the thermocouple. For the contest, he simply added an additional button to extend the original menu access method.
This is an entry in the Fubarino Contest for a chance at one of the 20 Fubarino SD boards which Microchip has put up as prizes!
Continue reading “Fubarino Contest: Network Nodes, Door Lock, and Smoker Controller”
[Kurt] likes to know what’s going on with his network. He already uses bandwidth checking software on his DD-WRT capable router, but he wanted a second opinion. So he built his own network monitor. [Kurt] started by building a passive Ethernet tap. He then needed a network interface chip that would serve his purposes. The common Wiznet chips used with Arduinos didn’t allow enough manipulation of raw packet data, so he switched to a Microchip ENC624J600 (PDF). The Microchip controller allowed him to count the bytes in the raw Ethernet packets.
With the Ethernet interface complete, [Kurt] turned his attention to a microcontroller to run the show. He started with an Arduino, but the lack of debugging quickly sent him to an Atmega128 in Atmel Studio. After getting the basic circuit working, [Kurt] switched over to a PIC24F chip. With data finally coming out of the circuit, he was able to tell that his original back-of-the-napkin calculations for bandwidth were wrong. [Kurt] created a PCB to hold the microcontroller, then wrote a Python program to plot the data output from his circuit. The bandwidth plot matched up well with the plot from DD-WRT. Now he just needs a giant LED matrix to show off his current network stats!
If you want to get an old Apple, Commodore 64, Amiga, or any other retrocomputer up on the Internet, this is for you. [Stian] had an Amiga 500 lying around and wanted to put it on a network. The A500 isn’t expandable, so he needed to look at some sort of adapter to put it on a network. The solution came to him in the form of a Raspberry Pi, a null modem cable, and a few bits of software.
To connect his Amiga to his network, [Stian] made a small serial converter board for his Raspi that breaks out the Tx and Rx pins on the Pi to a 9-pin serial port. With the physical connection to the Pi made, the only thing left to do was to get some software for the Amiga, namely AmiTCP and PPP. It’s not exactly a fast network connection, but this build allows [Stian] to connect to WiFi networks with ancient hardware.
One interesting aspect of [Stian]’s build is the fact it’s completely transferable to other retrocomputers – everything from old S-100 bus computers to classic macs, apples, and pretty much anything else with a serial port that supports PPP. Even with the expense of a Raspberry Pi, it’s much cheaper than absurdly expensive second-hand SCSI to Ethernet controllers and other tomfoolery.
Wanting to test his skills by building a webserver [Cnlohr] decided to also code a Minecraft server which allows him to toggle pins from inside the game. The rows of switches seen above give him direct access to the direction register and I/O pins of one port of the ATmega328.
The server hardware is shown in the image above. It’s hard to tell just from that image, but it’s actually a glass substrate which is [Cnlohr’s] specialty. He uses an ENC424J600 to handle the networking side of things. This chip costs almost twice as much as the microcontroller next to it. But even in single quantities the BOM came in at under $20 for the entire build.
In the video after the break [Cnlohr] and a friend demonstrate the ability for multiple users to log into the Minecraft world. The simulation is fairly bare-bones, but the ability to affect hardware from the game world is more exciting than just pushing 1s and 0s through some twisted pairs.
Continue reading “AVR Minecraft server lets you toggle pins from the virtual world”
Wow, that’s a really simple hardware setup to supply your device with a 3G Internet connection. Better yet, the software side is just as simple thanks to the Vodafone USB Modem library for mbed. It will work for any of the cell data plans offered by Vodafone. The only problem you may have is not living in one of the 30 countries serviced by the telco.
The dongle seen at the right is sold by Vodafone and is meant to be used for Internet data, so you won’t be doing anything that might get your SIM banned. Connecting to the network is a one-liner thanks to the previously mentioned library. From there, gets and posts can be done with your favorite package. The Hello World example uses HTTPClient. And since the mbed is simply an ARM platform it shouldn’t be hard to use the library with the ARM chip of your choice.