Vintage Portable TV Turned Retro Gaming System

When [FinnAndersen] found an old TV set by the side of the road, he did what any self-respecting DIY/gaming enthusiast would do: He took it apart and installed a Raspberry Pi 3 running RetroPie in it in order to play retro games on a retro TV!

[Finn] took the CRT out of the TV before realizing that it actually worked. It was already too late, so [Finn] ordered a 12″ LCD screen to put in its place. He liked the idea of the curved screen the CRT had, though, so he molded a piece of acrylic around the CRT and, after some cutting and grinding, had it fitting in the screen’s space.

[Finn] also liked the idea of the TV still being able to view a television signal, so he bought a TV tuner card. After a couple of mods to it, he could control the card with the TV’s original channel changer. He used an Arduino to read the status of the rotary encoders the original TV used. After some trial and error, [Finn] was able to read the channel positions and the Arduino would send a signal to the channel up and down buttons on the tuner card in order to change the channel.

Next up was audio. [Finn] found a nicer speaker than came with the TV, so he swapped them and added an amplifier. The original volume knob is still used to control the volume. A USB Hub is hidden in the side of the TV at the bottom, to allow controllers to connect and finally, a power supply converts the mains voltage to 12V DC which runs both the Raspberry Pi and the TV Tuner.

[FinnAndersen] has built a great RetroPie cabinet reusing a great looking vintage TV. It’s unfortunate that he removed the CRT before figuring out that he could use it, but the replacement looks pretty darn good! And the added advantage? It’s portable, sort of. At least, without the CRT inside, it’s much lighter than it was. Here‘s another retro console inside an old TV, and this article is about connecting a Raspberry Pi to every display you can get your hands on.

Continue reading “Vintage Portable TV Turned Retro Gaming System”

Build Your Own Hydroponic Wheel

Hydroponics is an effective way of growing plants indoors through the use of water medium and artificial lighting. It often involves having a system to raise and lower the water level around the plants to let the roots breathe, however this can require some non-trivial plumbing. [Peter] wanted to instead explore the realm of wheel hydroponics to grow some ingredients for salad.

The idea is to have pods mounted on a rotating assembly, similar to the carriages on a Ferris Wheel. By rotating the wheel slowly, each pod spends a certain amount of time submerged, and a certain amount of time in free air. This allows the water level to remain constant and only the pods need to move.

The tank for the build is a simple plastic storage bin from a local hardware store, with the wheel assembled from various odds and ends and laser cut components, making this a build very possible for those with access to a hackerspace. A stepper motor provides the motive power, with the assembly completing approximately one rotation per hour.

[Peter] has run the device for several months now, noting that there are issues with certain plants maintaining their hold to the wheel, as well as algae growth in the water medium. There’s room for development but overall, it’s a great build and we hope [Peter] will be serving up some delicious fresh salads soon.

For another take, perhaps you’d like your hydroponics solar powered?

[Thanks Nils!]

Git Shell Bypass, Less Is More

We’ve always been a fans of wargames. Not the movie (well, also the movie) but I’m referring to hacking wargames. There are several formats but usually you have access to an initial shell account somewhere, which is level0, and you have to exploit some flaw in the system to manage to get level1 permissions and so forth. Almost always there’s a level where you have to exploit a legitimate binary (with some shady permissions) that does more than what the regular user thinks.

In the case of CVE-2017-8386, less is more.

[Timo Schmid] details how the git-shell, a restricted shell meant to be used as the upstream peer in a git remote session over a ssh tunnel, can be abused in order to achieve arbitrary file read, directory listing and somewhat restricted file write. The git-shell basic idea is to restrict the allowed commands in an ssh session to the ones required by git (git-receive-pack, git-upload-pack, git-upload-archive). The researcher realized he could pass parameters to these commands, like the flag –help:

$ ssh git@remoteserver "git-receive-pack '--help'"

GIT-RECEIVE-PACK(1)            Git Manual             GIT-RECEIVE-PACK(1)

NAME
 git-receive-pack - Receive what is pushed into the repository
[...]

What the flag does is make the git command open the man page of git, which is passed on to a pager program, usually less. And this is where it get interesting. The less command, if running interactively, can do several things you would expect like searching for text, go to a line number, scroll down and so on. What it can also do is open a new file (:e), save the input to a file (s) and execute commands (!). To make it run interactively, you have to force the allocation of a PTY in ssh like so:

$ ssh -t git@remoteserver "git-receive-pack '--help'"

GIT-RECEIVE-PACK(1) Git Manual GIT-RECEIVE-PACK(1)

NAME
 git-receive-pack - Receive what is pushed into the repository

 Manual page git-receive-pack(1) line 1 (press h for help or q to quit)
 

Press h for help and have fun. One caveat is that usual installations the code execution will not really execute arbitrary commands, since the current running login shell is the git-shell, restricted to only some white listed commands. There are, however, certain configurations where this might happen, such as maintaining bash or sh as a login shell and limit the user in ways that they can only use git (such as in shared environments without root access). You can see such example here.

The quickest solution seems to be to enable the no-pty flag server-side, in the sshd configuration. This prevents clients from requesting a PTY so less won’t run in an interactive mode.

$ man less

LESS(1) General Commands Manual LESS(1)

NAME
less - opposite of more

Ironic, isn’t it?

Quick And Dirty Shock Gloves

[JLaservideo] has created some cool high-voltage gloves and uploaded a video on YouTube showing you how to get your mitts on a pair of your own. Using some very simple parts, he manages to make some decent sparks.

At the heart of this project is one of those new-fangled arc lighters which normally use some type of voltage multiplier circuit to function. The rest of the build is just wire, glue, aluminum foil, a switch, and paintball gloves.

Using the tip of each finger as an electrode, anything he touches will complete the circuit, creating high-voltage arcs. The demo of burning through paper is pretty neat, although we’ll admit we’re at a loss to think of what other tricks you could pull off with electrified fingertips. Anyone?

Continue reading “Quick And Dirty Shock Gloves”

Pool Playing Robot Destined For Trouble In River City

You’d think pool should be an easy game for a robot to play, right? It’s all math — geometry to figure out the angles and basic physics to deal with how much force is needed to move the balls. On top of that, it’s constrained to just two dimensions, so it should be a breeze.

Any pool player will tell you there’s much, much more to the game in real life, but still, a robot to play pool against would be a neat trick. As a move toward that goal, [BVarv] wisely decided on a miniature mockup of a pool-playing robot, and in the process reinvented the pool table itself. Realizing that a tracked or wheeled robot would have a tough time maneuvering around the base of a traditional pool table, his model pool table is a legless design that looks like something from IKEA. But the pedestal support allows the robot to be attached to the table and swing around in a full circle, and this allowed him to work through the kinematics as shown in the charming stop-action video below.

[BVarv] has gotten as far as motion control on the swing axis, as well as on the arms that will eventually hold the cue. He plans overhead image analysis for identifying shots, and of course there’s the whole making it full-size thing to do. We’d love to play a game or two against a bot, so we hope he gets there. In the meantime, how about a little robo-air hockey?

Continue reading “Pool Playing Robot Destined For Trouble In River City”

Hackaday Prize Entry: Modular Rail Lighting

When operating any kind of hydroponic farming, there are a number of lighting solutions — few of them inexpensive. Originally looking for an alternative to the lighting of IKEA’s expensive hydroponics system, [Professor Fartsparkle] and their colleague prototyped a rail system that allows clip-on LED boards for variable lighting options.

Taking inspiration from wire and track lighting systems, the key was the 5mm fuse holders mounted on the bottom of the LED boards. Snipping off their stopping clip makes them easy to install and remove from the mounting rails. The rails themselves double as power conduits for the LED boards, but keeping them out of the way is easily done with the variety of 3D printed hangers [Professor Fartsparkle] has devised. Lighting is controlled by a potentiometer on the power injection board, as well as any home automation control via an ESP8266.

[Professor Fartsparkle] asserts that the boards can be slid along the rails without any noticeable flickering, but they do suffer from heat dissipation issues. That aside, the prototype works well enough that the 3W LEDs can be run at half power.

This is an ingenious — and cheap — workaround for when sunlight isn’t an option, but you are still looking for a solution capable of automation.

Designing For Fab: A Heads-Up Before Designing PCBs For Professional Assembly

Designing pcbs for assembly is easy, right? We just squirt all the footprints onto a board layout, connect all the traces, send out the gerbers and position files, and we’re done–right?

Whoa, hold the phone, there, young rogue! Just like we can hack together some working source code with variables named after our best friends, we can also design our PCBs in ways that make it fairly difficult to assemble.

However, by following the agreed-upon design specs, we’ll put ourselves on track for success with automated assembly. If we want another party to put components on our boards, we need to clearly communicate the needed steps to get there. The best way to do so is by following the standards.

Proper Footprint Orientation

Now, for a momImage Credit: https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQBEztpnSxpN_IRjq3y8GbetrMHKuoSu_s6myiFOHilL2FlQKyLrgent, let’s imagine ourselves as the tip of a vacuum pickup tool on a pick-and-place machine. These tools are designed to pick up components on the reel from their centroid and plunk them on their corresponding land pattern. Seems pretty straightforward, right? It is, provided that we design our footprints knowing that they’ll one day come face-to-face with the pick-and-place machine.

To get from the reel to the board, we, the designers, need two bits of information from out part’s datasheet: the part centroid and the reel orientation.

The part centroid is an X-Y location that calls out the center-of-mass of the part. It basically tells the machine: “pick me up from here!” As designers, it’s our responsibility to design all of our footprints such that the footprint origin is set at the part’s centroid. If we forget to do so, the pick-and-place will try to suck up our parts from a location that may not stick very well to the package, such as: the corner.

Continue reading “Designing For Fab: A Heads-Up Before Designing PCBs For Professional Assembly”