Learn By Doing: Turn Your Garage Into Your Perfect Workspace

Plenty of potential, but a cozy hacking space it is not

To us hackers and makers, the tools of our trade are often as important and interesting as the details of the hacks themselves, but what about the most important tool of all — the very space you use to make your magic happen? That may be your bedroom, a nearby hackerspace, and if you have the resources, you may even own a place of your own, and get to build your perfect workspace.

The latter situation is what [MichD] and partner [Brittany] found themselves in, having moved into their first place. Many couples focus on getting a hot tub in the garden or sorting the nursery, but these two are proper electronics nerds, so they converted a free-standing double wide garage into the nerdhub, learning as they went along, and documenting it in excruciating detail for your viewing pleasure.

Door fitted, framed up, and insulation in place. All ready for plasterboarding.

The building structurally is a single-skinned brick-built box, with a raw concrete floor. Pretty typical stuff for the UK (we’ve seen much worse), but not ideal for spending an extended amount of time in due to our damp, cold climate, at least in winter.

The first order of business was partitioning the front section for bike storage, and screeding the floor. Once the floor was solid, the walls and ceiling joists could be framed up, ready for fitting insulation material and covering with plasterboard.

Electrics were next in order, with the wires clipped to the brickwork, well away from where the plasterboard would be, therefore making it less likely to accidentally drill into a live cable when adding external fixtures.

Since the front part of the room was to be partitioned off, another access door was needed. This involved cutting out the bricks to fit a concrete lintel. With that installed, and the bricks above supported, the area below was cut out to the required shape. A somewhat nerve-wracking experience, if you ask us!

As any self-respecting hacker will tell you — no room build is complete without a decent amount of RGB bling, so the whole room was decked out with APA102 addressable LED strips. Control of these was courtesy of WLED running on an ESP32 module, with LedFX used on a nearby PC to perform music visualisation, just because.

Already got your space worked out, but need a little help with organisation? Not got much space, and need a portable solution? Check this out for (small) size!

3D Printing Hack Leverages Vase Mode Structurally

Conceptually, FDM 3D printing is quite a simple process: you define a set of volumes in 3D space, then the slicing software takes a cut through the model at ever-increasing heights, works out where the inner and outer walls are, and then fills in the inside volume sparsely in order to tie the walls together and support the top layers that are added at the end.

But as you will find quite quickly, when models get larger and more complex, printing times can quickly explode. One trick for large models with simple shapes but very low structural needs is to use so-called ‘vase mode’, which traces the outline of the object in a thin, vertical spiral. But this is a weak construction scheme and allows only limited modelling complexity. With that in mind, here’s [Ben Eadie] with a kind-of halfway house technique (video, embedded below) that some might find useful for saving on printing time and material.

This solid shape is mostly cut-through to make supporting ribs between the walls of the shell

The idea is to use vase mode printing, but by manipulating the shell of the model, adding partially cut-through slots around the perimeter, and critically, adding one slot that goes all the way.

First you need a model that has an inner shell that follows the approximate shape of the outer, which you could produce by hollowing out a solid, leaving a little thickness. By making the slot width equal to half the thickness of the nozzle size and stopping the slots the same distance from the outer shell, vase mode can be used to trace the outline of shape, complete with supporting ribs in between the inner and outer walls of the shell.

Because the slot is narrower than the extrudate, the slot walls will merge together into one solid rib, tying the objects’ walls to each other, but critically, still allowing it to be printed in a continuous spiral without any traditional infill. It’s an interesting idea, that could have some merit.

There are other ways to stiffen up thing printed parts, such as using surface textures, But if you’re fine with the thin shell, but want to have a little fun with it, you can hack the g-code to make some really interesting shapes.

Continue reading “3D Printing Hack Leverages Vase Mode Structurally”

TapType: AI-Assisted Hand Motion Tracking Using Only Accelerometers

The team from the Sensing, Interaction & Perception Lab at ETH Zürich, Switzerland have come up with TapType, an interesting text input method that relies purely on a pair of wrist-worn devices, that sense acceleration values when the wearer types on any old surface. By feeding the acceleration values from a pair of sensors on each wrist into a Bayesian inference classification type neural network which in turn feeds a traditional probabilistic language model (predictive text, to you and I) the resulting text can be input at up to 19 WPM with 0.6% average error. Expert TapTypers report speeds of up to 25 WPM, which could be quite usable.

Details are a little scarce (it is a research project, after all) but the actual hardware seems simple enough, based around the Dialog DA14695 which is a nice Cortex M33 based Bluetooth Low Energy SoC. This is an interesting device in its own right, containing a “sensor node controller” block, that is capable of handling sensor devices connected to its interfaces, independant from the main CPU. The sensor device used is the Bosch BMA456 3-axis accelerometer, which is notable for its low power consumption of a mere 150 μA.

User’s can “type” on any convenient surface.

The wristband units themselves appear to be a combination of a main PCB hosting the BLE chip and supporting circuit, connected to a flex PCB with a pair of the accelerometer devices at each end. The assembly was then slipped into a flexible wristband, likely constructed from 3D printed TPU, but we’re just guessing really, as the progression from the first embedded platform to the wearable prototype is unclear.

What is clear is that the wristband itself is just a dumb data-streaming device, and all the clever processing is performed on the connected device. Training of the system (and subsequent selection of the most accurate classifier architecture) was performed by recording volunteers “typing” on an A3 sized keyboard image, with finger movements tracked with a motion tracking camera, whilst recording the acceleration data streams from both wrists. There are a few more details in the published paper for those interested in digging into this research a little deeper.

The eagle-eyed may remember something similar from last year, from the same team, which correlated bone-conduction sensing with VR type hand tracking to generate input events inside a VR environment.

Continue reading “TapType: AI-Assisted Hand Motion Tracking Using Only Accelerometers”

Monochrome LCD Video Hacks Galore!

[Wenting Zhang] is clearly a fan of old school STN LCD displays, and was wondering how various older portable devices managed to drive monochrome LCDs panels with multiple grey levels. If the display controller supports multiple bits per pixel, it can use various techniques, such as PWM, in order to produce a pseudo-grayscale image. But, what if you have a monochrome-only display controller? With a sufficiently high pixel clock, can you use software on the application side of things to flip those pixels in such a manner as to give a reasonable looking grayscale image?

Simple dithering – don’t look too close!
PDM greyscale approximation in a 1-bit display

[Wenting] goes through multiple techniques, showing the resulting image quality in a clear, systematic manner. The first idea is to use a traditional dithering technique. For each pixel, it is set to black if the grey value is below some threshold. The resulting error value, is then propagated to neighbouring pixels. This error diffusion process smears the error out over the whole display, so spatially speaking, on average the pixel values correspond roughly to the original gray values. But, the pixels themselves are still either on or off. This isn’t quite enough. The next idea is to PWM the individual pixels over multiple frames, to approximate different grey levels. But, that gives a worst case effective refresh rate of 8 Hz with a PWM period of 15 frames, at 120 fps, and that flickers. Badly. One way to mitigate that is to switch to PDM (pulse density modulation) which selects different length sequences to give the same duty cycle but at higher frequency, at least for some grey values. Slightly better, but there’s more that can be done. Continue reading “Monochrome LCD Video Hacks Galore!”

3D Print Finishing By Spraying Glazing Putty

Finishing off 3D prints is a labour-intensive process, and getting a good looking, smooth surface suitable for painting takes a lot of time and plenty of practice. Deeper printing layer lines or minor surface defects can be smoother over with a variety of materials, from putties to resins, but the deeper the defect, the thicker the filler and that takes it toll on the surface details – smoothing those out and making fine details less distinct. [Darkwing dad] has another solution that looks pretty easy to achieve, by mixing acetone with glazing putty it can be airbrushed over the print surface in one go. After a little experimentation with the ratio of putty to acetone, a wide open nozzle and a low pressure, it was found that a nice even spray could be achieved. Importantly it dries in just a few minutes, enabling multiple coats to be applied in a short space of time.

Once sufficient thickness has been applied, the coating can easily sanded to get a smooth result with the worst of the gaps filled, and the layer lines nicely hidden. The final part of the filling process is more typical, with a few coats of filler primer applied straight from a rattle can, followed by a light sand and you’re good for painting.

We’ve covered smoothing 3D prints practically as long as we’ve been covering 3D printing itself, and there are multiple ways to do this, depending on the filament material, your budget and you tolerance for noxious fumes. Here’s a guide for smoothing using UV curable resins, using a special smoothable filament with IPA, and finally if this is just too fancy, smelly or expensive, just whip out the old butane torch and smooth those prints with good old fashioned fire.

Continue reading “3D Print Finishing By Spraying Glazing Putty”

Growing Silver Nanoprisms With Light

Nanoparticles sound a bit like science fiction to minds of your average hacker — too esoteric and out of reach to be something we might get to work with in our own lairs — but [Ben Krasnow] of [Applied Science] over on YouTube has proven that they most definitely can be made by mere mortals, and importantly they can be tuned. With light. That’s right, nano particle growth appears to be affected very strongly by being illuminated with specific wavelengths, which locks-in their size, and thus defines their light-bending properties. This is the concept of photo mediated synthesis, which causes nanoparticles to clump together into different configurations depending on the wavelength. The idea is to start with a stock solution of Silver Nitrate, which is then reduced to form silver nanospheres which are then converted to larger silver nanoprisms, sized according to the wavelength of the illuminating source.

The process seems simple enough, with a solution of Silver Nitrate and Sodium Citrate being vacuum degassed to remove oxygen, and then purged by bubbling argon or nitrogen. Sodium Borohydride acts as a reducing agent, producing silver metal nanoparticles from the Silver Nitrate solution. The Sodium Citrate coats the silver nanoparticles, as they are produced, preventing them clumping together into a mushy precipitate. PVP (Polyvinylpyrrolidone) is added, acting as a colloiding agent preventing the coated nanoparticles from clumping together, and helping keep the solution stable long enough for the photo mediated synthesis process to complete. Finally, the pH is adjusted up to 11 using sodium hydroxide. The resulting silver nanoparticle stock solution has a pale yellow colour, and is ready for the final particle size selection using the light source.

The light source was custom made because [Ben] says he couldn’t find something suitable off the shelf. This is a simple design using a Teensy to drive an array of PAM2804 LED drivers, with each one of those driving its own medium power LED, one for each of the different wavelengths of interest. As [Ben] stresses, the naïve approach of trying to approximate a specific colour with an RGB LED setup would not work, as although the human eye perceives the colour, the actual wavelength peak will be totally wrong, and the reaction will not proceed as intended. The hardware design is available on MultiSpectLED GitHub for your viewing pleasure.

Nanoparticles have all kinds of weird and wonderful properties, such as making the unweldable, weldable, enabling aluminium to be 3D printed, and even enabling the production of one of our favourite liquid toys, ferrofluid.

Continue reading “Growing Silver Nanoprisms With Light”

Free Your Pi With This Bare Metal Programming Environment

[Rene Strange] has graced these fair pages a short while ago with a sweet Raspberry Pi software based poly synth, with a tantalising reference to it being a bare metal application. So now, we’ll look into circle, the bare metal programming environment that it is based upon. The platform consists of a large set of C++ classes to access the hardware as well as perform tasks such as task creation and scheduling in the cooperative multitasking, multicore environment. Supporting all Raspberry Pi boards from version 2 onwards (not including the Pico!) in both 32-bit and 64-bit flavours, the environment is pretty complete. Classes are provided for USB, networking, FatFS, as well as more mundane tasks such as dealing with interrupts. On top of these classes there are a pile of application-specific libraries, covering functions such as display interfacing, GUIs using a variety of frameworks, and some more esoteric applications such as interfacing to a Pico, and even sending the system log to a remote web browser!

Classes and libraries however, don’t always help by themselves, which is where the 42 (yes, we know) code examples come in very handy. They’ve provided example applications for some fun stuff like drawing Mandelbrot fractals to the display, as well as some more mundane tasks that we have to deal with such as getting that pesky DMA controller to play nice with the SPI hardware. All-in-all, this looks like a great set of tools for taking full advantage of some fairly beefy hardware for your next embedded project that needs plenty of resources, but not all that unnecessary operating system stuff.

Perhaps not quite as complete as circle, but we’ve seen a fair few Raspberry Pi Bare metal projects over the years, like the Nerdsynth, based on the PiZero, and this neat little bare metal assembly language clone of starfox.

Thanks [Ruhan] for the tip!

Header: Aryan Patidar, CC BY 4.0/Evan-Amos, Public domain.