RasterCarve Converts Images to CNC

CNC machines are an essential part of the hacker’s toolset. These computer-controlled cutters of wood, metal and other materials can translate a design into a prototype in short order, making the process of iterating a project much easier. However, the software to create these designs can be expensive, so [Franklin Wei] decided to write his own. In particular, he decided to write his own program to engrave images, converting a photo into a toolpath that can be cut. The result is RasterCarve, a web app that converts an image into a GCode that can be fed into a CNC machine.

The motivation for this project was to learn how to do it, but also frustration at the cost of software such as PhotoVCarve. Costing $149, this program does much the same as the one written by [Wei], albeit with a number of additional bells and whistles. He does an excellent job of describing how the conversion process works: his code creates a series of paths across the image, then converts the color of each pixel into a depth: The darker the image, the deeper the cut.

He also describes the process of taking this simple code and converting it into a Javascript web app, a process that has driven many a programmer to madness. It just goes to show that, although using other people’s stuff is fine, it often makes sense to try and do it yourself.

Posted in cnc, cnc hacks, javascript, render | Leave a comment

Hackaday Links: January 19, 2020

We’ve seen some interesting pitches in personal ads before, but this one takes the cake. Japanese billionaire Yusaku Maezawa is looking for a date to go along with him on his paid trip to the Moon, with the hope of finding a life partner. Maezawa is slated to be SpaceX’s first commercial lunar flyby customer, and will make the trip no earlier than 2023. That should give him plenty of time to go through the 20,000 applications he received from single women 20 and older with bright personalities and positive attitudes. And he should have plenty of time to make an awesome mixtape for the ride.

Imagine snooping through your kid’s garbage can only to find a used syringe lying in there. Most of us would likely be able to tell that the syringe once contained thermal compound or solder paste and be suitably proud of the little chip off the block, but apparently Cooler Master has fielded enough calls from panicked normie parents that they decided to change the design of their applicators. Given the design of the new applicator we doubt that’s really the reason, but it’s a good marketing story, and we can totally see how someone could mistake the old applicator for something illicit.

It looks as though SpaceX could be getting itself into legal trouble with its Starlink launches. Or more correctly, the FCC might, having apparently violated the National Environmental Policy Act, a Nixon-era law that requires government agencies to consider the environmental impact of any projects they approve. The Federal Communications Commission has been using a loophole in the law to claim a “categorical exemption” from these reviews when approving communications projects, particularly space-based projects. It’s not clear whether space is legally considered part of the environment, so the lawyers are hashing that out. If the FCC gets sued and loses, it’s not clear what happens to the existing Starlink satellites or future launches. Stay tuned for details.

Don’t forget that the Open Hardware Summit is coming soon. The 2020 meeting is the 10th anniversary of the confab, to be held on March 13 in New York. Hackaday is, of course, a proud sponsor of the conference, and our own Sophi Kravtiz will be the keynote speaker! Get your tickets soon.

Tired of off-loading data manipulation and analysis tasks to R in your Python programs? Then you’re probably already aware of Pandas, the Python library that converts data into dataframe objects for easier manipulation. Pandas has (have?) been in pre-release for years, but there’s now a legit 1.0.0 release candidate available. Now might be the time for you Python data mungers to get onboard the Pandas Express.

And finally, the Consumer Electronics Show is a yearly gift to anyone in the tech media, providing as it does so many examples of outrageous uses for the latest technology. To wit, we have LuluPet, the world’s first feces-analyzing cat litter box. LuluPet uses a built-in camera along with IR sensors and an “AI chip” to monitor your cat’s dookie and provide an alert if anything looks awry. On the one hand, inspecting cat poop is a job we’d love to outsource, but on the other hand, most cats we know are quick to cover the evidence of their excretions with kitty litter, leaving a clay-encrusted blob rather than the turds with defined borders that would seem to be needed for image recognition to do its job. We’ll reserve judgment on this one until we see a review.

Posted in feces, Hackaday Columns, Hackaday links, open hardware, Pandas, personal ads, python, R, space tourism, SpaceX, Starlink | Leave a comment

Be Still, My Animatronic Heart

Fair warning for the squeamish: some versions of [Will Cogley]’s animatronic heart are realistic enough that you might not want to watch the video below. That’d be a shame though, because he really put a lot of effort into the build, and the results have a lot to teach about mimicking the movements of living things.

As for why one would need an animatronic heart, we’re not sure. [Will] mentions no specific use case for it, although we can think of a few. With the Day of Compulsory Romance fast approaching, the fabric-wrapped version would make a great gift for the one who stole your heart, while the silicone-enrobed one could be used as a movie prop or an awesome prank. Whatever the reason, [Will]’s build is a case study in incremental development. He started with a design using a single continuous-rotation servo, which powered four 3D-printed paddles from a common crank. The four paddles somewhat mimicked the movements of the four chambers of the heart, but the effect wasn’t quite convincing. The next design used two servos and complex parallelogram linkages to expand each side of the heart in turn. It was closer, but still not quite right.

After carefully watching footage of a beating heart, [Will] decided that his mechanism needed to imitate the rapid systolic contraction and slow diastolic expansion characteristic of a real heart. To achieve this, his final design has three servos plus an Arduino for motion control. Slipped into a detailed silicone jacket, the look is very realistic. Check out the video below if you dare.

We’ve seen plenty of animatronic body parts before, from eyes to hands to entire faces. This might be the first time we’ve seen an animatronic version of an internal organ, though.

Posted in animatronic, arduino, beating, diastole, heart, misc hacks, organ, robots hacks, servo, systole | Leave a comment

Binary Advent Calendar Does More With Fewer Doors

[John] sent this one in to us a little bit after Christmas, but we’ll give him a pass because it’s so beautiful. Think of it this way: now you have almost a full year to make a binary advent calendar of your own before December 1st rolls around again.

Normal advent calendars are pretty cool, especially when there is chocolate behind all 24 doors. But is it really a representational ramp-up if you never get more than one chocolate each day? [John] doesn’t think so. The economics of his binary advent calendar are a bit magical, much like the holiday season itself. Most days you’ll get two pieces of chocolate instead of one, and many days you’ll get three. That is, as long as you opened the right doors.

A momentary switch hidden behind the hinge of each door tells the Arduino clone when it’s been opened. The Arduino checks your binary counting abilities, and if you’re right, a servo moves a gate forward and dispenses one chocolate ball per opened door. We love the simplicity of the dispensing mechanism — the doors are designed with a ceiling that keeps non-qualifying chocolates in their channels until their flag comes up.

[John] is working out the kinks before he releases this into the wild. For now, you can get a taste in the demo video featuring a bite-sized explanation. If you don’t like chocolate, maybe this blinky advent calendar will light you up inside.

Posted in advent, advent calendar, binary, binary calendar, chocolate, Holiday Hacks | Leave a comment

Experiments In Soft Robotics

[Arnav Wagh] has been doing some cool experiments in soft robotics using his home 3D printer.

Soft robots have a lot of advantages, but as [Arnav] points out on his website, it’s pretty hard to get started in the same way as one might with another type of project. You can’t necessarily go on Amazon and order a ten pack of soft robot actuators in the way you can Arduinos.

The project started by imitating other projects. First he copied the universities who have done work in this arena by casting soft silicone actuators. He notes the same things that they did, that they’re difficult to produce and prone to punctures. Next he tried painting foam with silicone, which worked, but it was still prone to punctures, and there was a consensus that it was creepy. He finally had a breakthrough playing with origami shapes. After some iteration he was able to print them reliably with an Ultimaker.

Finally to get it into the “easy to hack together on a weekend” range he was looking for: he designed it to be VEX compatible. You can see them moving in the video after the break.

Posted in 3d printing, flxo, programmable air, robot, robots hacks, soft robotics, TPU | Leave a comment

Building a Better BitTorrent Client in Go

When it comes to peer-to-peer file sharing protocols, BitTorrent is probably one of the best known. It requires a client implementing the program and a tracker to list files available to transfer and to find peer users to transfer those files. Developed in 2001, BitTorrent has since acquired more than a quarter billion users according to some estimates.

While most users choose to use existing clients, [Jesse Li] wanted to build one from scratch in Go, a programming language commonly used for its built-in concurrency features and simplicity compared to C.

Client-server versus peer-to-peer architectureClient-server versus peer-to-peer architecture

The first step for a client is finding peers to download files from. Trackers, web servers running over HTTP, serve as centralized locations for introducing peers to one another. Due to the centralization, the servers are at risk of being discovered and shut down if they facilitate illegal content exchange. Thus, making peer discovery a distributed process is a necessity for preventing trackers from following in the footsteps of the now-defunct TorrentSpy, Popcorn Time, and KickassTorrents.

The client starts off by reading a .torrent file, which describes the contents of the desired file and how to connect to a tracker. The information in the file includes the URL of the tracker, the creation time, and SHA-1 hashes of each piece, or a chunk of the file. One file can be made up of thousands of pieces – the client will need to download the pieces from peers, check the hashes against the torrent file, and finally assemble the pieces together to finally retrieve the file. For the implementation, [Jesse] chose to keep the structures in the Go program reasonably flat, separating application structs from serialization structs. Pieces are also separated into slices of hashes to more easily access individual hashes.

The bitfield explained as a coffee shop loyalty card.The bitfield explained as a coffee shop loyalty card.

Next, a GET request to an `announce` URL in the torrent file announces the presence of the client to peers and retrieves a response from the tracker with the list of peers. To start downloading pieces, the client starts a TCP connection with a peer, completes a two-way BitTorrent handshake, and exchanges messages to download pieces.

One interesting data structure exchanged in the messages is a bitfield, which acts as a byte array that checks which pieces a peer has. Bits are flipped when their respective piece’s status changes, acting somewhat like a loyalty card with stamps.

While talking to one peer may be straightforward, managing the concurrency of talking to multiple peers at once requires solving a classically Hard problem. [Jesse] implements this in Go by using channels as thread-safe queues, setting up two channels to assign work and collect downloaded pieces. Requests are later pipelined to increase throughput since network round-trips are expensive and sending blocks individually inefficient.

The full implementation is available on GitHub, and is easy enough to use as an alternative client or as a walkthrough if you’d prefer to build your own.

Posted in bit torrent, distributed computing, peer-to-peer, security hacks, software hacks | Leave a comment

DIY Lambo That Made The Real Lamborghini Take Notice

When you start sharing your projects with the world, you never know who might take notice. [Sterling Backus] and his son [Xander] have been building a functional Lamborghini Aventador look alike in their garage, and the real Lamborghini company caught wind of it and decided to turn it into an awesome Christmas ad.

Named the AXAS Interceptor by its creators, the car is built from scratch around a custom tubular space frame chassis. Most of the body panels are 3D printed and then skinned with carbon fibre, with a few sheet metal panels mixed in. The interior is mix of parts from other cars and aftermarket components, with 3D printing to pull everything together. The drivetrain consists of an engine from a Corvette, a transaxle from a Porsche 996, with the rest of the chassis components being either aftermarket or custom-fabricated pieces.

[Sterling] got an unexpectedcall from Lamborghini, and they arranged to secretly sneak a real Aventador into the garage in the dead of night to surprise the rest of the family, and let them borrow it for a few weeks. Lamborghini got some marketing out of it, which most people would probably agree is a pretty good deal. We would admit that we’re quite envious.

The car is driveable, but still many hours from being complete. [Sterling] admits that he is no car building professional, but we’re impressed by what he has been able to achieve so far with this ambitious project, and we’re looking forward to the finished product.

If you want to get your feet wet with your first project car, here’s how you pick one.

Posted in 3d printing, car, diy car, fabrication, lamborghini aventador, transportation hacks | Leave a comment

Bask In The Glory Of This 336 LED Digit Display

[Chris Combs] recently took the wraps off of an incredible art piece that he calls Road Ahead which uses 336 seven segment LED digits to create an absolutely gorgeous display. With a piece of smoked acrylic to slightly diffuse the orange glow of the LEDs, the end result has a distinctively retro look that we’d gladly spend all day staring at.

For those looking to dig a bit deeper, [Chris] has put together some very impressive documentation over on Hackaday.io that goes into plenty of detail on how he designed and built this beauty. From the design of the PCBs that carry all of the 0.3″ SMD displays to the custom software running on the Raspberry Pi 3 that powers it, there’s no technical stone left unturned.

According to the build log, this is the second version of the display. The first one was housed in a rather attractive wooden enclosure, but as [Chris] explains, that was precisely the problem. He wanted something that looked cold and unfeeling as the nearly 340 digits flashed away with potentially ominous intent. So he ditched the wooden case for a powder coated steel one that looks more like the front panel of a mainframe than something you’d pick up at the craft store.

Another interesting point explained in the write-up is how the Python software is designed to treat the hardware as a contiguous graphical display rather than just an array of independent digits. Grayscale images can be reproduced on the by using PWM to adjust the brightness of each segment’s corresponding “pixel”; though admittedly it takes a bit of imagination to see the intended image with a resolution this low.

This project reminds us of the incredible LED hexdump display we saw not that long ago, down to the PWM trickery for squeezing “graphics” out of these exceptionally non-graphical elements. With any luck, perhaps these are the opening shots in an arms race to see who can build the largest array of multi-segment LED displays.

Posted in art, graphical, LED display, led hacks, python, seven segment LED | Leave a comment

Breathtaking C64C Case Faithfully Recreates Original in Wood

Most computer case modders take certain liberties with their builds, to express their creativity and push the state of the art. Some, however, seek to recreate the original in as detailed a way as possible while still being unique. This faithful reproduction of a Commodore 64C in wood is a great example of the latter approach.

[Atilla Meric]’s experience with model airplane building came into play when he decided to leap into this build. Being used to making small, thin pieces of wood even smaller and thinner proved valuable here, as did working from templates and getting complex shapes cut out cleanly. [Atilla] used a miniature table saw to rough cut his stock; the wood species may have been lost in the translation from Turkish but it appears to be some variety of oak. Detail cuts were done with knives, and everything was held together with glue. The painstaking effort that went into the air vents is amazing, and the fact that they exactly match the vents on the original injection-molded case is truly impressive. We also like the subtle detail of the slightly depressed area around the keyboard opening, just like the original, as well as the smooth curve at the front of the case to comfortably support the wrists. The cutouts for connectors and the labels are top-notch too.

We appreciate the craftsmanship that went into this case mod, and the time and effort [Atilla] put into the build are obvious. We’ve seen wooden computer case mods before, but this one really pushes all our buttons.

[via Twitter]

Posted in C64C, Case mod, commodore, misc hacks, wood, woodworking | Leave a comment

Bullet-proofing Your Car With An Affordable Composite Armor

Remember those actions movies like The Fast and the Furious where cars are constantly getting smashed by fast flying bullets? What would it have taken to protect the vehicles from AK-47s? In [PrepTech]’s three-part DIY composite vehicle armor tutorial, he shows how he was able to make his own bulletproof armor from scratch. Even if you think the whole complete-collapse-of-civilization thing is a little far-fetched, you’ve got to admit that’s pretty cool.

The first part deals with actually building the composite. He uses layers of stainless steel, ceramic mosaic tiles, and fiberglass, as well as epoxy resin in order to build the composite. The resin was chosen for its high three-dimensional cross-linked density, while the fiberglass happened to be the most affordable composite fabric. Given the nature of the tiny shards produced from cutting fiberglass, extreme care must be taken so that the shards don’t end up in your clothes or face afterwards. Wearing a respirator and gloves, as well as a protective outer layer, can help.

After laminating the fabric, it hardens to the point where individual strands become stiff. The next layer – the hard ceramic – works to deform and slow down projectiles, causing it to lose around 40% of its kinetic energy upon impact. He pipes silicone between the tiles to increase the flexibility. Rather than using one large tile, which can only stand one impact, [PrepTech] uses a mosaic of tiles, allowing multiple tiles to be hit without affecting the integrity of surrounding tiles. While industrial armor uses boron or silicon carbide, ceramic is significantly lower cost.

The stainless steel is sourced from a scrap junkyard and cut to fit the dimensions of the other tiles before being epoxied to the rest of the composite. The final result is allowed to sit for a week to allow the epoxy to fully harden before being subject to ballistics tests. The plate was penetrated by a survived shots from a Glock, Škorpion vz. 61, and AK-47, but was penetrated by the Dragunov sniper rifle. Increasing the depth of the stainless steel to at least a centimeter of ballistic grade steel may have helped protect the plate from higher calibers, but [PrepTech] explained that he wasn’t able to obtain the material in his country.

Nevertheless, the lower calibers were still unable to puncture even the steel, so unless you plan on testing out the plate on high caliber weapons, it’s certainly a success for low-cost defense tools.

Posted in bulletproof, car, Chemistry, composite, resin, weapons hacks | Leave a comment