Hackaday Links: June 7, 2015

I’ve said over and over again that Apple’s MagSafe port is the greatest advancement in laptop tech in the last 15 years. Those charger connectors break, though, so how do you fix it? With Lego, of course (Google translatrix). Use a light-colored 1×4 brick so the LED will shine through.

Want to learn Git commands? Here’s a great game that does just that. It’s a really well-designed game/tutorial that walks you through basic Git commands.

Lets say you’re just slightly paranoid about the Bad Guys™ getting into your computer with 0-days and roller blades. You’d like to connect this computer to the Internet, but you don’t want to leave it connected all the time. The solution? A timer for an Ethernet switch. It’s actually a better solution than doing the same thing with scripts: there’s a real, physical interface, and if the Bad Guys™ get in when you are connected, they could just enable the network adapter anyway. An extremely niche use case, but that’s 99% of the security hacks we see.

The DaVinci 3D printer is an okay printer if you’re cool with the Gilette model. The filament cartridges are chipped, and the software is proprietary. These problems have been solved, and now you can use a standard RepRap heated bed and glass with the DaVinci. At this point, people are buying the DaVinci just to tear it apart.

Xilinx Borrows Code For Their Own Devices

Back in 2012, [tmbinc] discovered a neat little undocumented feature in the Xilinx ISE: the ability to use TCP/IP instead of JTAG cables. [tmbinc] was working on an Open Hardware USB analyzer and discovered the nearly undocumented Xilinx Virtual Cable, a single ‘shift’ command that opens up a TCP connection and sends JTAG data out to another computer on the network. It’s extraordinarily useful, [tmbinc] wrote a daemon for this tool, and everything was right with the world.

Yesterday, [tmbinc] discovered the Xilinx Virtual Cable again, this time in one of Xilinx’s Github repos. The code was extraordinarily familiar, and looking closer at a few of the revisions, he saw it was very similar to code he had written three years ago.

The offending revision in the Xilinx repo is nearly identical to [tmbinc]’s Xilinx Virtual Cable Driver daemon. Variable names are the same, the variables are declared in the same order, and apart from whitespace, code conventions are the same. This is not to say someone at Xilinx stole code from [tmbinc], but if this were a computer science lab, there would be an academic disciplinary hearing. What’s worse, Xilinx plastered their copyright notice at the top of the code.

In an issue [tmbinc] raised, he said he was flattered, but clarified that his code was developed entirely from scratch. He believes the Xilinx code was derived from his own code written three years ago. Since [tmbinc]’s code was uploaded without a license, it defaulted to All Rights Reserved. This does not bode well for the Xilinx legal department.

In any event, you really, really have to wonder what Xilinx’s internal documentation looks like if a random person on the Internet can discover a barely-documented protocol, write a daemon, put it on the Internet, and have someone at Xilinx use that code.

Thanks to the anonymous tipster for sending this into the Hackaday tip jar.

Embroidered Nyan Cat Brings a Meme to the Real World

Have you ever come across an Internet meme and just thought to yourself, “I have to bring this into the physical world!” Well [0xb3nn] and [Knit Knit] did. They decided to take the classic nyan cat meme and bring it to life.

The frame is 24″ x 36″. Many hours went into the knitting process, but the result obviously turned out very well. The stars include 24 LED sequins to add a sparkling animation effect. These were sewn onto the back of the work using conductive thread. They are bright enough to shine through to the front where needed. These connect back to an Arduino Pro Mini 5V board.

The Arduino is also connected to a capacitive touch sensor. This allows the user to simply place their hand over the nyan cat image to start the animation. No need for physical buttons or switches to take away from the visual design. An Adafruit AudioFX sound board was used to play back a saved nyan cat theme song over a couple of speakers. The source code for this project is available on github. Be sure to watch the demo video below. Continue reading “Embroidered Nyan Cat Brings a Meme to the Real World”

Open Source, DIY Soldering Robot

After [Brian] starting selling his own Raspberry Pi expansion boards, he found himself with a need for a robot that could solder 40-pin headers for him. He first did what most people might do by looking up pre-built solutions. Unfortunately everything he found was either too slow, too big, or cost as much as a new car. That’s when he decided to just build his own soldering robot.

The robot looks similar to many 3D printer designs we’ve seen in the past, with several adjustments. The PCBs get mounted to a flat piece of aluminum dubbed the “PCB caddy”. The PCBs are mounted with custom-made pins that thread into the caddy. Once the PCBs are in place, they are clamped down with another small piece of aluminum. A computer slowly moves the caddy in one direction, moving the header’s pins along the path of the soldering irons one row at a time.

The machine has two soldering irons attached, allowing for two pins to be soldered simultaneously. The irons are retracted as the PCB caddy slides into place. They irons are then lowered onto the pins to apply heat. Two extruders then push the perfect amount of solder onto each pin. The solder melts upon contact with the hot pins, just as it would when soldered by hand.

The system was originally designed to be run on a Windows 8.1 tablet computer, but [Brian] found that the system’s internal battery would not charge while also acting like a USB host. Instead, they are running the Windows WPF application on full PC. All of the software and CAD files can be found on [Brian’s] github page. Also be sure to check out the demo video below. Continue reading “Open Source, DIY Soldering Robot”

A Simple And Inexpensive GPS Navigation Device

There are plenty of GPS navigation units on the market today, but it’s always fun to build something yourself. That’s what [middelbeek] did with his $25 GPS device. He managed to find a few good deals on electronics components online, including and Arduino Uno, a GPS module, and a TFT display.

In order to get the map images on the device, [middelbeek] has to go through a manual process. First he has to download a GEOTIFF of the area he wants mapped. A GEOTIFF is a metadata standard that allows georeferencing information to be embedded into a TIFF image file.  [middelbeek] then has to convert the GEOTIFF into an 8-bit BMP image file. The BMP images get stored on an SD card along with a .dat file that describes the boundaries of each BMP. The .dat file was also manually created.

The Arduino loads this data and displays the correct map onto the 320×240 TFT display. [middelbeek] explains on his github page that he is currently unable to display data from two map files at once, which can lead to problems when the position moves to the edge of the map. We suspect that with some more work and tuning this system could be improved and made easier to use, of course for under $25 you can’t expect too much.

A Kitchen Timer Fit for MacGyver

Here’s a project that you don’t want to bring into an airport, ship through the mail, or probably even remove from your home. [ProjectGeek] has built himself a simple kitchen timer masquerading as a bomb. The build is actually pretty simple, but the end result is something that would look at home in a Hollywood action flick.

The timer circuit is built from four simple components. An 8051 microcontroller board is used as the primary controller and timer. The code is available on GitHub. This board is attached to a another board containing four momentary push buttons. These are used to program the timer and to stop the buzzing. Another board containing four 7-segment displays is used to show the remaining time on the timer. A simple piezo buzzer is used to actually alert you when the timer has run out. All of these components are connected with colorful jumper wires.

The physical part of this build is made from easily available components. Old newspapers are rolled up to form the “explosive” sticks. These are then covered in plain brown paper ordinarily used to cover text books. The rolls are bundled together and fixed with electrical tape. The electronics can then be attached to the base with some hot glue or double-sided tape.

Whiteboard Clock Draws the Time

[Maurice] recently built a clock that draws the time (Google Doc) on a white board. We’ve seen plenty of clock hacks in the past, and even a very similar one. It’s always fun to see the different creative solutions people can come up with to solve the same problem.

This device runs on a PIC16F1454 microcontroller. The code for the project is available on GitHub. The micro is also connected to a 433MHz receiver. This allows a PC to keep track of the time, instead of having to include a real-time clock in the circuit. The USB connector is only used for power. All of the mounting pieces were designed in OpenSCAD and printed on a 3D printer. Two servos control the drawing arms. A third servo can raise and lower the marker to the whiteboard. This also has the added benefit of being able to place the marker tip inside of an eraser head. That way the same two servos can also erase the writing.

The communication protocol for this systems is interesting. The transmitter shows up on [Maurice’s] PC as a modem. All he needs to do to update the time is “echo 12:00 > /dev/whiteboard”. In this case, the command is run by a cron job every 5 minutes. This makes it easy to tweak the rate at which the time updates on the whiteboard. All communication is done one-way. The drawing circuit will verify the checksum each time it receives a message. If the check fails, the circuit simply waits for another message. The computer transmits the message multiple times, just in case there is a problem during transmission.