3D Printing Metal from Rust

It seems backwards, but engineers from Northwestern University have made 3D printing metal easier (and eventually cheaper) by adding extra production steps to the procedure. (Paper available in PDF).

Laser sintering works by laying down a thin layer of metal powder and then hitting it with a strong enough laser to sinter the particles together. (Sintering sticks the grains together without getting the metal hot enough to melt it.) The rapid local heating and cooling required to build up 3D objects expands and cools the metal, and can result in stresses inside the resulting object.

The Northwestern team still lays down layers of powder, but glues the layers together with a quick-drying polymer instead of fusing them with a laser. Once the full model is printed, they then sinter it in one piece in an oven.

anewwaytopri_tn
3D-printed copper lattice. Credit: Ramille Shah and David Dunand

The advantages of adding this extra step are higher printing speed — squirting the liquid out of syringe heads can be faster than fusing metal particles with a laser — and increased structural integrity because the whole model is heated and cooled at one time. A fringe benefit is that the model is still a bit flexible before firing, opening up possibilities for printing a flat model and then bending it into shape before sintering.

And if that weren’t enough, the team figured that they’d add a third step to the procedure to allow it to be used with rust (iron oxide) as the starting powder. They print the rust and polymer model, then un-rust the iron using hydrogen, and then fire it as before. Why rust? Do you know anything cheaper to use as a raw material?

What do you think? The basic idea may even be DIYable — glue metal particles together and heat them up enough to stick. Not in my microwave oven, though. We’d love to see a more energy-efficient 3D metal printer.

Thanks to [Joe] for the tip!

Programming with Rust

Do hardware hackers need a new programming language? Your first answer might be no, but hold off a bit until you hear about a new language called Rust before you decide for sure.

We all know real hackers use assembly language to program CPUs directly, right? Well, most of us don’t do as much assembly language as we used to do. Languages like C can generate tight, predictable code and are easier to manage.

Although some people use more abstract languages in some embedded systems, it is no secret that for real-time systems, device driver development, and other similar tasks, you want a language that doesn’t obscure underlying details or generate code that’s difficult to reason about (like, for example, garbage collection). It is possible to use special techniques (like the Real-Time Java Specification) to help languages, but in the general case a lean language is still what most programmers reach for when you have to program bare metal.

Even C++, which is very popular, obscures some details if you use things like virtual functions (a controversial subject) although it is workable. It is attractive to get the benefit of modern programming tools even if it does conceal some of the underlying code more than straight C.

About Rust

That’s where Rust comes in. I could describe what Rust attempts to achieve, but it is probably easier to just quote the first part of the Rust documentation:

Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.

Continue reading “Programming with Rust”

Rusty old table saw turned into a workstation worthy of a master craftsman

rusty-old-table-saw-turned-pro-workstation

Okay, first of all: holy crap! Even if you didn’t know this started as a rusty table saw, the workstation that came out of this project is just phenomenal. It really makes us wish we had looked around for a used model with a cast iron top instead of going for the cheap stamped metal one that was ready to use.

[Simon Leblanc] started with a Delta contractor’s saw that was rusty inside and out. The refurbishment began by removing the table and everything from the inside. The rods and gears were all cleaned up before he began to sand away the rust on the table itself. But obviously he didn’t stop with getting the saw to be functional again. He built a small set of cabinets to serve as the base for the saw. They went inside of this larger assembly that combines an MDF table top with an Accusquare rip fence to greatly increase the working surface of the tool.

Now he needs to start in on an extra fancy CNC jig for the thing.

[via Reddit]