Hs75 Digital
Hs75 Digital
Full control
Print exactly what
you want to print
DIY
Gadgets
Build your own phone,
camera, watch and more
Fractal art
Enhance your living
space with maths
Dinosaurs
3D scanning at the
Natural History Museum
75
Issue #75 £6
Feb. 2024
9 772515 514006
Features Editor
Andrew Gregory
andrew.gregory@raspberrypi.com
Sub-Editors
David Higgs, Nicola King
DESIGN
Critical Media
and Raspberry Pi
criticalmedia.co.uk
26
about HackSpace 01293 312189
magazine? PAGE
hsmag.cc/subscribe
WHEN YOU
SUBSCRIBE
GET IN TOUCH
This magazine is printed on
hackspace@ paper sourced from sustainable
raspberrypi.com forests. The printer operates an
environmental management system
h
ackspacemag which has been assessed as
conforming to ISO 14001.
h
ackspacemag HackSpace magazine is published by
Raspberry Pi Ltd, 194 Science Park,
Cambridge, CB4 0AD The publisher,
ONLINE editor, and contributors accept
no responsibility in respect of any
hsmag.cc omissions or errors relating to goods,
products or services referred to or
advertised. Except where otherwise
noted, content in this magazine is
licensed under a Creative Commons
Attribution-NonCommercial-
ShareAlike 3.0 Unported (CC BY-NC-
SA 3.0). ISSN: 2515-5148.
3
Contents
Cover Feature
06
DIY
17 LENS
18 DIY Gadgets
Can’t find it in the shop? Make it yourself!
GADGETS
28 How I Made: Fractal art frame
Decorate your home with mathematics
42 Objet 3d’art
Put your smartphone literally on a pedestal
44 Letters
Things we like (unrelated): alcohol and chimp skulls
Tutorial
18 3D printing
4
CONTENTS
Interview
VEEB Projects
86
Crowdfunding
Pi-Cast KVM
47 FORGE
48 SoM Full Control
Free yourself from the constraints of your slicer
52 Tutorial Raspberry Pi
Build and control a mecanum robot 96 Congratulations! Anything with a
USB connector is not a keyboard
60 Tutorial Photography
Develop photographic film with… coffee?
85 FIELD TEST
64 Tutorial Robot rugby 86 Best of Breed
Network Pico-based robots to work as a team Robot-related kits and accessories
Some of the tools and techniques shown in HackSpace Magazine are dangerous unless used with skill, experience and appropriate personal protection equipment. While we attempt to guide the reader, ultimately you
are responsible for your own safety and understanding the limits of yourself and your equipment. HackSpace Magazine is intended for an adult audience and some projects may be dangerous for children. Raspberry
Pi Ltd does not accept responsibility for any injuries, damage to equipment, or costs incurred from projects, tutorials or suggestions in HackSpace Magazine. Laws and regulations covering many of the topics in
HackSpace Magazine are different between countries, and are always subject to change. You are responsible for understanding the requirements in your jurisdiction and ensuring that you comply with them. Some
manufacturers place limits on the use of their hardware which some projects or suggestions in HackSpace Magazine may go beyond. It is your responsibility to understand the manufacturer’s limits. HackSpace mag-
azine is published monthly by Raspberry Pi Ltd, Maurice Wilkes Building, St. John’s Innovation Park, Cowley Road, Cambridge, CB4 0DS, United Kingdom. Publishers Service Associates, 2406 Reach Road, Williamsport,
PA, 17701, is the mailing agent for copies distributed in the US and Canada. Application to mail at Periodicals prices is pending at Williamsport, PA. Postmaster please send address changes to HackSpace magazine
c/o Publishers Service Associates, 2406 Reach Road, Williamsport, PA, 17701.
5
Top Projects
REGULAR
BrailleRAP
By Stephane braillerap.org
B
raille, the tactile alphabet used by blind and
partially sighted people, was invented almost 200
years ago by Louis Braille, in 1829. It’s still widely
used, but if you want to print anything in Braille
(actually, there’s no ink involved, so the correct term
is embossing rather than printing) it’s going to set you
back a few quid. The Royal National Institute of Blind People (RNIB)
has a few on offer on its website, with prices starting at £1760 for
the cheapest model. You can get a roughly equivalent home inkjet
printer for under £30. The difference is absurd, and it’s all because
of the much more limited market, and the number of moving parts
that machines like Braille embossers need.
This combination – of high price, established tech, and a
market that isn’t being met by commercial forces – makes Braille
embossers ripe for open-source hardware makers. And here, we
have one such product: the BrailleRAP, released under the CERN
Open Hardware Licence v1.2. We hope to bring you more about this
wonderful project in a forthcoming issue of HackSpace magazine
but, for now, just enjoy the clean lines of all that laser-cut acrylic,
and ponder that the build pictured here cost around $250 to produce
– around 10% the cost of the cheapest commercial solution.
Right
BrailleRAP is an
open-source Braille
embosser in the spirit
of the RepRap 3D
printing movement
6
SPARK
7
Top Projects
REGULAR
Moon Phase
Display
By Lorraine Underwood community.element14.com
T
Right
he moon orbits Earth every 27.3 days. It doesn’t The moving part of
have leap years; it doesn’t have some months when this moon display
is controlled by a
it takes 30 days, or 31, like our silly calendar months. Kitronik motor board
Give a person (or, in this case, a Raspberry Pi Pico W)
a date in time, present or past, and they’ll be able to
tell you what the moon looked like on that day using a
really simple formula.
If you were to take that knowledge and add a hollow, light-up
model of the moon, a motor board from Kitronik, and a Raspberry
Pi Pico, you might come up with a device like this by Lorraine
Underwood. It’s very simple: you just enter a date, and the light
inside the moon moves to show the phase of the moon on that
date. We don’t have any more information than that at this stage,
but Lorraine’s working on a build video for Element 14 that will
reveal all.
8
SPARK
9
Top Projects
REGULAR
Kinetic PC case
By Ideal Idea hsmag.cc/KineticPCCase
T
his beautiful PC case was inspired by PC retailer
CyberPower’s kinetic PC case. It moves – it looks
a bit like the vents of a jet engine opening – but
it’s not available to buy. The company teased PC
enthusiasts with a glimpse a couple of years ago but,
for whatever reason, it hasn’t yet come to pass other
than as a concept. Robert, the human behind the Ideal Idea YouTube
channel, took this as a sign that he should build his own moving
PC case, and, wouldn’t you know, it’s even better than the one that
inspired him.
The brilliant thing about this build is how open Robert has been in
showing his development process. He initially thought of controlling
each hexagon with its own linear actuator, but realised that this
would make the coding horrifically complex, and cost at least $600
for the parts. Then he tried powering the linear motion by means
of turning a shaft, which turned another shaft, which turned lots of
other shafts, but that also presented its own problems.
The eventual build uses an Arduino Uno, a 4488 stepper motor
driver, a Nema 17 stepper motor, and gears attached to 3D-printed
camshafts. These run vertically up the side of the case, and convert
rotational movement into the linear movement of the little hexagons
moving in and out along the front panel of the case.
Right
If you’ve got access
to a laser cutter and
infinite amounts
of creativity, why The kinetic PC case is part of a
not try something wider project Robert is working on:
similar yourself? revamping his entire workspace
10
SPARK
11
Top Projects
REGULAR
Volumetric
display
By Tim Jacobs Mitxela.com
I
was recently fortunate enough to find myself in the
pub with some very creative and talented people. The Right
Tim’s test image
discussion turned to electronic candles, and how one might is a “janky low-
create something that would look like a flickering candle resolution wire-
frame cube”, as he
from any angle. I suggested a persistence of vision display, puts it. But it works!
but the general consensus was that those require too much
in the way of supporting machinery to make them work: bearings,
and probably slip rings and so on.”
So begins Tim Jacobs’ explanation of his brilliant volumetric
display. It’s a tiny build (pictured here with a human finger for
scale), and it’s also quite brilliant in its approach to an engineering
challenge: the problem that you normally get when building anything
using persistence of vision is getting power to the moving parts.
If you have an LED mounted on something spinning, you need
some way of getting power to the LEDs without getting the power
wires twisted up. You can do this using wireless power, or by using
brushes that maintain contact even as they spin, but that naturally
increases complexity, cost, and the likelihood that the device will fail
at some point. Tim got round this challenge by making everything
spin. The display, the electronics, the motor, even the battery all
rotate when the motor is running. Problem solved!
So far, Tim’s used his display to show fluid sloshing about in
a container, a spinning cube, and a candle flame among others.
Naturally, you don’t appreciate the full glory of the animations when
you’re looking at a static image, but while we’re here, we can all coo
over the free-form soldering that he’s used to attach the display to
the Waveshare RP2040-Tiny, a small board that breaks out some of
the GPIO pins from Raspberry Pi’s RP2040 chip.
12
SPARK
8 × 10 LED matrix
LIR2450 battery
13
Top Projects
REGULAR
Mailblocks
By Guy Dupont hsmag.cc/Mailblocks
G
uy Dupont has a problem: he keeps making
brilliant creations that pique the interest of
the internet. Every time he makes something
interesting on the internet, his phone starts blowing
up with notifications. What to do?
Well, in a bit of a meta-twist, he decided to
make yet another brilliant device, only this time, one that would
block notifications until such a time as he’s ready for them. This
is the Mailblocks. It’s based on the old-fashioned mailboxes of
North America, in the days when you’d have to get up and move
your body to receive paper messages once a day from the outside
world, and it means that Guy’s Android phone doesn’t bug him with
updates unless he chooses to accept them. 3.3 -> 5 V Level
Shifter (for servo)
Guy uses a Raspberry Pi acting as a Wi-Fi router on his home
network, running a custom DNS server that looks for IP addresses
associated with push notifications, and redirects the DNS requests
to nonsense IP addresses.
That’s the blocking part. So far, so good: now, in order to pick up
notifications, you need to put it into the mailbox. Inside the mailbox
is a mechanical switch that closes when the phone is inserted. The
switch is connected to a Feather S3 board, from Unexpected Maker,
that tells the Raspberry Pi to stop the monkey business with DNS.
The Wi-Fi network reboots and, when the phone looks again for
the Google servers, all the previously blocked notifications come Spring switch pins
through. Congratulations: you are now in charge of your phone,
rather than the other way around.
TPS61023 Boost
Module
14
SPARK
Feather S3
Above
The flag raises when
you’ve got mail; it’s
activated by a small
servo, powered by an
Adafruit MiniBoost 5 V
Battery
15
LENS
HACK MAKE BUILD
Uncover the technology that’s powering the future
CREATE
28
PG PG
18
HOW I MADE:
DIY
PIARTFRAME
How a simple hardware build
brought the beauty of maths
into a humble wooden frame
GADGETS
Need something unique?
Make it yourself!
PG
36
INTERVIEW:
VEEB PROJECTS
Why make things beautiful?
Because you can. Because we
can all make beautiful things
DIY Gadgets
FEATURE
DIY
GADGETS Who doesn’t love a good gadget? Rosie Hattersley
finds out more about some amazing makes
T
hink of what makes a great gadget and it’s hard
to escape the idea that they are about kudos,
kerb appeal, and communication – not
necessarily all in the same package, of course.
The smartphone is arguably the ultimate expression
of gadgetry, encompassing all three concepts. It also
demonstrates the importance of portability. How else to gain
that all-important kudos without being able to take it out and
about to show it off to our friends? We kick-start our look at the
world of homemade handhelds and wearables with two great
phone examples of home-brew design before applauding
repurposed tech to create incredible cyberdecks and tiny PCs.
Electronics play an important part in musical and visual gadgets
too, as well as in homages to iconic films and games. With
cosplay becoming ever-more indistinguishable from original props
and costumes, we highlight some amazing makes along with
achievable accessories you can 3D-print or simply customise.
18
LENS
PHONES
Keep in touch or upcycle some old tech
Antique telephone
Maker Mark Lister bought an antique phone from eBay,
took out its existing electronics, and added a Raspberry
Pi 3B from 2022 with bespoke GSM HAT and a speaker. The
Raspberry Pi also provides internet access. Mark mapped the
numbers on the old phone’s rotary dial to Raspberry Pi’s GPIO
pins to create a usable handset that stores numbers and reads
out the name of callers it recognises. The SIM card in the GSM
HAT recognises the pulses generated by turning the dial as digits,
thanks to Mark’s specially written code. Further features include a
backup UPS battery and, of course, a proper ring. Brrring, brrring!
hsmag.cc/OldPhone
OURS smartphone
If you’re taken by handset design rather than upcycling
an existing phone, you could do a lot worse than
follow Evan Robinson’s build instructions for the 4G LTE
OURS (open-source, upgradable, repairable smartphone).
Running Raspberry Pi OS and primed with familiar smartphone
apps such as Facebook, YouTube, and WhatsApp, it has a 5MP
camera, microphone, and volume control, as well as an HDMI
port to attach an external display alongside the OURS’ 4-inch
Waveshare touchscreen. Evan created the handset with privacy
and security in mind, but it is also great value, with a bill of
materials costing roughly 180 euros.
Evan says the most difficult part of the build was getting the
power system stable enough to power the machine through
boot because it uses a lot of current upfront, and sporadically Phone Map
for activating the 4G LTE module, but then uses less current
once the OS is loaded. He spent a lot of time fiddling with tiny If you’re holding a phone handset up to your ear, it
potentiometers on voltage regulators, then turning the system might as well deliver something you want to hear.
on and off over and over again. Since unveiling OURS, the idea Caroline Buttet decided she’d like to enjoy music from around
has been embraced by dozens of other makers, with plenty of the world, using the radiooooo.com online radio station player,
constructive feedback and around 40 enthusiasts actively an Arduino, and Raspberry Pi to serve up broadcasts, depending
working with Evan to develop a new model. on where on a map of the world she placed her pin. The user
can also pick up the rotary phone handset, dial the country
hsmag.cc/OurPhone code, and select a decade to choose what they hear. Caroline
used Raspberry Pi to connect to the radio player app, while an
Arduino hidden in a metal panel behind the framed world map
controls the country selector.
hsmag.cc/PhoneMap
19
DIY Gadgets
FEATURE
CLAMSHELL
BLACKBERRY CYBERDECK
Because everything’s better when it’s tiny
hsmag.cc/CyberBB
20
LENS
Framework Cyberdeck
“It’s weird, heavy, and looks like it came out of a
portal to some alternate timeline, but I personally like
it,” says maker Ben Makes Everything of the DOOM-playing
cyberdeck he built from Framework laptop parts. His take
on the concept of a cyberdeck is an individually tailored,
portable computer. Framework supplies the basic hardware for
the customer to build, repair, and upgrade at will, but at lower
cost than other bespoke laptops. It has a modular I/O system
with USB-C connections and runs Windows (and is easily
capable of running many mainstream games) but also lends
itself to modifications. Ben’s own designs, based around the
16GB RAM laptop with Western Digital hard drive he created,
can be found at hsmag.cc/BMECyberdeck.
hsmag.cc/FrameworkCD
21
DIY Gadgets
FEATURE
F
ancy dress just doesn’t cut it these days. Realistic
props and intricate cosplay outfits, along with
studio-quality make-up, are expected in this age of Proton Pack Slimer
constant visual scrutiny. If you’re new to the world
of properly dressing up in character, the Costume You can probably source your own Ghostbusters
Wall website has some good ideas: costumewall.com/titles, boiler suit, but hats off to the parents of Livi, who set
e.g. costumewall.com/title/adventure-time. Perhaps you about creating this amazing proton pack, complete with
love Stranger Things and yearn to dress like a Demogorgon ectoplasm. Expandable foam on a piece of dowel was used to
(costumewall.com/dress-like-demogorgon), or want to make Slimer himself, using a coat hanger to give the body form
recreate a battle scene and need to make armour that and foam-filled gloves for hands. The face, and other features,
passes muster, in which case Kamui Cosplay armour tutorials were then carved and the whole beast painted. The proton pack
can help kamuicosplay.com. Cosplayers also rate Coscraft has three LEDs and was made from cardboard, plastic, wires,
(coscraft.co.uk) for supplies. ribbon cable, stickers, a calculator, random switches and knobs,
some hose, pipes, and batteries, explains mum Katrina who
wrote up the family project.
hsmag.cc/slimer
hsmag.cc/yafc
22
LENS
ELECTRONIC JEWELLERY
Put some spark in your accessories
watchy.sqfmi.com hsmag.cc/LEDpend
23
DIY Gadgets
FEATURE
VISUAL SPECTACLES
Making everything look just right
24
LENS
GET MUSICAL
Build your own instruments
Fuzz Effect
Fuzz effects can make music seem more raw and alive,
rather than regular and controlled, adding reverb and
delay to shape the tone to make it more unique and
appropriate, in the words of maker Handy Bear. Beloved of
rock guitarists, it seems fitting that the grungy image is echoed
by the homemade vibes of this DIY distortion pedal build. Using
a blank breadboard, some jumpers, LEDs, and capacitors, and
encasing the electronics in a metal enclosure, you can make a Stepper Motor Piano
range of effects. Sites such as tagboardeffects.blogspot.com
advise on how to make effects reminiscent of particular songs Thisinomine’s gorgeous instrument works by spinning
and bands, explains Handy Bear, and a fuzz effect is fairly motors at different speeds. There are a few such
simple and a good starting point. Spaces for the foot switch, examples around, but this one is user-playable, rather than
LEDs, potentiometer, and cable all need to be marked out and creating random notes or playing a preset song, much like an
drilled before the power jack and cable socket are added (and old-time fairground organ. “I wanted to create something that
isolated) and the enclosure is wired up as a foot pedal. looked and felt like an instrument, but secretly had an electronic
skeleton,” says Nomine. The motors used here have 200 steps
hsmag.cc/FuzzEffect and can be rotated a single step at a time, so they are highly
accurate, and can be set to rotate a certain number of degrees
and at a certain speed. This level of accuracy makes them ideal
for music-making. Whenever one of the copper keys is pressed,
it sets off one of the stepper motors, controlled by an Arduino.
The acoustics of the piano’s resulting notes are enhanced by the
polished African hardwood case in which it’s encased.
hsmag.cc/MotorPiano
25
SUBSCRIBE
TODAY FREE
Pico W
GET SIX for subscribers!
ISSUES
FOR JUST:
£30 UK / €43 EU / $43 USA & Canada
SUBSCRIPTION
GUARANTEED
RASPBERRY PI 5
AVAILABLE NOW
for all subscribers
SUBSCRIBER BENEFITS:
>G
et every issue of >B
eat the crowds with
HackSpace magazine guaranteed Raspberry Pi 5
delivered to your door stock for subscribers
>E
arly access to the >G
et a free Raspberry Pi
PDF edition Pico W
hsmag.cc/subscribe
Subscribers will get a voucher giving them the chance to purchase one Raspberry Pi 5 from reserved stock at The Pi Hut (thepihut.com) for full retail price. Reserved stock means that these will be available even if they are out of stock for general purchase.
How I Made: PiArtFrame
FEATURE
HOW
I A
bout four years ago, in the
cold of December, I was
boarding a plane destined
By Karl Mose for the UK. I’d applied for
university to study computer
science, and part of the interview involved
an expectation you’d have some kind
of project to talk about. So, I spent the
MADE
preceding weeks attempting to devise
a project that I hoped would impress
the interviewers. I’d always been very
fascinated with maths and, at the time,
fractals more than anything had caught my
attention. Fractals are geometric shapes
that we can generate with mathematics.
Some fractals, when tuned correctly,
can be stunningly beautiful. To this day,
it still blows my mind how much visual
complexity you can have emerge from
relatively simple equations. At that time, I
spent hours exploring their vast landscapes
and adjusting their colours, making it a
natural choice for the project.
The project that I came up with at the
time was a rather painstaking effort of a
PIARTFRAME
couple of months, using a Raspberry Pi to
generate the fractals, and a smartphone
app that would download them periodically
and set them as my phone wallpaper, for
me to look at throughout the day. The app
28
LENS
29
How I Made: PiArtFrame
FEATURE
“WE FIRST
project would be to write
code to actually render
the fractal. Speed wasn’t
PICK A SET OF essential, as the frame just
needed to run fast enough
BOUNDARIES”
to update a couple of times
a day, so I opted for Python.
The goal of the script was
to start at some large-scale
section of the Mandelbrot set, and then
continually zoom in on increasingly smaller
areas that appeared visually interesting.
To render a section of the Mandelbrot
set, we first pick a set of boundaries. For
example, this could range from x = -2 to
x = 2 and y = -1 to y = 1. We then divide
Right
The same bulbous shape this section into a grid of pixels and, for
of the Mandelbrot set each pixel, we compute whether or not it is
appears infinitely many
times within it contained in the Mandelbrot set, using the
aforementioned algorithm. For those who
30
LENS
For those who’ve yet to be initiated, consider this a much too brief
introduction into a very exciting and mind-boggling world. Fractals are
loosely defined as geometric objects that display detailed structure at
arbitrarily small scales (source: Wikipedia). That means that one can keep
zooming in on a fractal, without it ever reducing down to a pixellated grid
like a traditional image, or just lines and colours like a vector graphic.
Many fractals are self-similar – that is, the fractal contains itself in its
entirety within some subsection. Fractals sometimes appear in nature, in
things like pine cones, snowflakes, or even broccoli! The Mandelbrot is
just one example of a fractal, but a rather interesting one.
The Mandelbrot set is defined by an equation which tells us, given a
certain two-dimensional coordinate, whether or not that point is inside
the Mandelbrot set or not. It’s based on a relatively simple equation using
complex numbers. If you’re familiar with complex numbers, it won’t take
more than two to three minutes to understand the algorithm by which
we figure out if a pixel is included or not included in the Mandelbrot
set. There are plenty of good sources online, but I can recommend the
YouTube channel Numberphile in particular. If you’ve not yet heard of
complex numbers, I’d highly recommend it – they allow you to take the
square root of a negative number, which is quite cool. The Mandelbrot set
is self-similar – but often in surprising ways. The Mandelbrot set contains
itself an infinite amount of times, but in some cases, it may also be bent
or skewed in some odd way! There’s loads of other different shapes
to discover within the set, with some areas having been dubbed with
creative names such as the Sea Horse or Elephant Valleys.
31
How I Made: PiArtFrame
FEATURE
Left
Only minor modifications
to the picture frame
were necessary
“THE BUILD
ITSELF IS
VERY SIMPLE”
32
PIARTFRAME LENS
picture frame, and squeeze the tabs tightly stunning with some simple colouring.
so that the panel doesn’t slip. The mount The last challenge was picking a spot
provides a cushioning for the panel here – if for the finished frame. I couldn’t decide
you’re not using a mount, I’d recommend between the office or my bedroom, but
taping the panel instead and only pushing chose the latter. Now, I wake up to new
in the tabs lightly. artwork every day, and it’s quite exciting
when I catch it changing. It reminds me of
the intrinsic fun factor in computer science,
and why I decided to pursue this degree to
begin with.
33
PLAY
& CODE
GAMES!
RETRO GAMING WITH
RASPBERRY PI 2 ND E D I T I O N
Retro Gaming with Raspberry Pi shows you how to set up a
Raspberry Pi to play classic games. Build your own games console or
full-size arcade cabinet, install emulation software and download classic
arcade games with our step-by-step guides. Want to make games?
Learn how to code your own with Python and Pygame Zero.
INTERVIEW
EE
V
36
ro
B ts
LENS
ec
HackSpace magazine meets…
VEEB Projects
j
Design studio in Basel, Switzerland
o
or a small mountainous country
divided between Italian, French
and German [and Latin] speakers,
Switzerland punches well above
its weight in terms of design.
Univers, Frutiger, and the mighty
Helvetica are all Swiss; HR Giger, the
creative brain behind the look and feel of the
Alien films, was Swiss; even the Swiss flag
is neatly minimalist. If you’re designing in
Switzerland, you’re standing on some very
large shoulders.
Two such designers are English duo
Vanessa Bradley and Martin Spendiff. As
VEEB, the duo have been creating devices
sometimes simple, sometimes complicated,
but always beautifully clean. We caught up
with Martin late last year to find out what
they’re all about.
37
B
VEEB Projects
INTERVIEW
E
HACKSPACE Are you designers first and VEEB When it first came out, it was VEEB Three reasons:
foremost, or engineers, or something excitement at such a small and affordable
E
else? I ask because your projects are tool for doing things with, but, over time, it • Maybe it’s an age thing, but the constant
unusually pretty. A lot of Raspberry Pi became much more about the community. cycle of upgrading means that you can
projects have wires sticking out and bare We tried using <insert name of other fruit> end up chasing the latest and greatest
PCBs exposed, but yours always look SBCs every now and again, but found that thing while ignoring what went before.
so clean. the software was a little too bleeding-edge A lot of innovation is working around
for our limited skills, and the software was limitations that exist at the time, and
V
VEEB We aren’t. Our backgrounds are IT getting in the way of doing stuff. there are some really smart ideas
(Vanessa) and Mathematics (Martin). The real epiphany was the contained in old objects. Those smart
The physical form that a project ends up Pico microcontroller, which made us ideas should be augmented with new
taking is one of the most challenging bits suddenly look at things and think ‘we tools, not abandoned.
(for us, it is anyway). could make one of those.’ It also taught us • There’s also an element that is just
Appearance is often tied to the to be better at using tools that were more about waste. There’s an old video of
workflow. The ‘cyberdeck’ (github.com/ suited to addressing the thing you’re someone making a toaster from
veebch/boostbox) we made a while ago trying to do. There was a case, when we scratch (hsmag.cc/
was a good example. It’s the 80/20 rule. were building something recently, when ToasterFromScratch), and it really
Getting to a working version was quick we realised that the best thing to use was underlines how much effort goes into
and easy, but it took about another year of just a simple switch… no microcontrollers, making ‘things’.
experimenting with tools that turned a no relay, just a one-dollar switch. I • Blade Runner was a really cool film.
novelty into something that we found suppose that it’s a version of ‘just because The retro-futuristic tech in that was
genuinely useful. It now gets used for you can, doesn’t mean that you should.’ pretty spectacular. If we can make
emailing (NeoMutt), writing (Neovim) and things that have that aesthetic, we’d be
compiling MicroPython for some of the HS You do a lot of upcycling, adding more than happy.
o
hardware we sell. new functionality to machines that
should, by rights, be obsolete. What is it HS Everything you make seems to do
HS What first drew you to using about old objects that inspires you to one thing, and one thing well. Is that
Raspberry Pi? work with them? on purpose?
r
Left
Endless wisdom,
supplied by the
r/Quotes subreddit
Right
Infrared photography
the pretty way
38
B ts
LENS
jec
o 39
B
VEEB Projects
INTERVIEW
EE
V
ro
Left
This adapted
Teasmade plays
God Save the Queen
when it’s time for
a brew
Above
Track the progress
of the day using a
Pico W and some
neopixels
Above Right
The Boostbox was
originally a project
to turn an old Super
8 viewer into a
YouTube viewing
terminal – it turned
into a fully fledged
computer
40
B ts
LENS
jec
o
VEEB We buy into the first item of the things being on time, and just ended up VEEB It’s probably the uncool part! The
Unix philosophy which was written in a talking to the people that have an clocks were really interesting to us
Bell System technical journal back encyclopaedic knowledge about that stuff. because they were gorgeous objects, and
in 1978: Pick any subject and, no matter how there was a time signal there, so we just
“Make each program do one thing well. obscure it is, there’s most likely a forum needed the ‘glue’ to join that signal to
To do a new job, build afresh rather than on the internet, full of experts who are these redundant old things to get them
complicate old programs by adding keen to grumpily share their expertise. rejuvenated and useful again.
new ‘features’.”
”
Maybe our version would include HS You document your build
adding new features to old things processes on GitHub. Do you get
that would otherwise be redundant,
We live in a country that people adding improvements/
but that’s the general idea. is obsessed with things suggestions to the way that you
being on time, and ended up do things?
HS You rehabilitated a German
railway clock using a ferrite
talking to the people with VEEB The best bit about adding
antenna attached to a Raspberry Pi an encyclopaedic knowledge things on GitHub is when people use
”
Pico. That’s way beyond most about that stuff your idea to do something new
people’s ability. Where do you start or better.
with knowing how to do this? Is this There has been more than one
deep ham radio knowledge? person that has made massive
HS Also, it’s incredibly cool, but most progress bars (github.com/veebch/
VEEB Definitely not. That was a rabbit people wouldn’t bother with the cool part. hometime) for their classroom. Knowing
hole that appeared upon wondering how What inspired you to take the time from a that people are looking at your code is
the clocks at train stations worked. We (presumably Cold War) radio signal a good way to make sure it’s not
live in a country that is obsessed with coming from an atomic clock? too terrible.
41
Objet 3d’art
REGULAR
Objet 3d’art
3D-printed artwork to bring more beauty into your life
T
he year is 2024. Humans have been
subjugated, ruled over by parasitic
oblongs that feed on our emotions,
trading dopamine for electricity. It is
the year of the smartphone.
Some fight against the inevitable – see page 14
to see how Guy Dupont tames the emotional
blackmail of the smartphone. Some accept their
fate. Matthew Ghost has decided that if he must
have a smartphone pinging up notifications every
so often, it might as well be in his eyeline on his
desk so he can take a quick look, rather than
suffer the physical distraction of getting the thing
out of his pocket and prodding it to find out which
app is craving his attention this time.
He’s done a brilliant job of it too. This example
is printed in Prusament PLA Prusa Galaxy Black,
and the adjustable tilt mechanism makes it a
great example of a simple, functional print.
hsmag.cc/TiltPhoneStand
42
SPARK
43
Letters
REGULAR
Letters
ATTENTION
ALL MAKERS!
If you have something you’d
like to get off your chest (or
even throw a word of praise
in our direction), let us know at
hsmag.cc/hello
BARBOT
O.M.G. The cocktail robot in issue 74 is
amazing. I can’t believe I’ve never
thought of this before. I currently have a
cupboard full of weird and wonderful
drinks that I bought at one time or
another, but never use because I can’t
remember what to do with them. With
one of these, I can just program in all the
drinks and then the robot can serve me
up whatever strange drinks my heart
desires. I suppose I could also get a
notepad and write down the recipes, but
a robot seems like more fun.
Dave
Glasgow
44
SPARK
GLASSES HOLDER
This might sound a bit over the top, but
the 3D-printed chimpanzee skull glasses
holder might be the coolest thing I’ve
ever seen. Seriously. It’s just a shame I
don’t wear glasses. Maybe I could get a
pack of those really cheap reading
glasses just to have something to put on
my new chimp skull?
Jane
Norwich
REPAIR
I’m totally onboard with Jude Pullen’s fight to repair things. It’s an absolute
disgrace that it’s so hard to keep the things we buy working.
Zac
London
45
200 PAGES OF RASPBERRY PI
QuickStart guide to setting up The very best projects built by
your Raspberry Pi computer your Raspberry Pi community
PG
52
MECANUM ROBOT
Let your bot travel in
any direction
PG
48
PG
SCHOOL OF
MAKING
58
RUBBER STAMPS
Laser-cut yourself Start your journey to craftsmanship
some inky artwork with these essential skills
PG PG
64 74
ONLINE ROBOT PCB MANUFACTURE
Link your bot up to the internet Where should you get your PCBs made?
PG PG
70 80
SMOOTH PRINTING PICO MODULAR
Create glassy 3D prints with PVB Let’s tune up our little synth
Gain complete control of your 3D printer
TUTORIAL
W
hen you learn 3D printing, you that can move in three dimensions. Obviously, there
find out about the different are some restrictions physics imposes on us about
types of files that are used. what happens when molten plastic comes out of an
First, there are files that contain extruder, but these aren’t quite as severe as slicing
details of the objects – usually software would have you believe.
STL files. We slice these files to Let’s take a look at the spacer design of Figure 1
Ben Everard produce the second type of file, G-code, that tells the at hsmag.cc/NonplanarSpacer (you can manipulate
printer what to do and how to move. and modify the design in your browser).
This is a good way of doing things, and it means In traditional terms, this is one layer. The print head
Ben’s house is slowly
that it’s easy to print identical objects repeatedly on moves around, sticking each line to the edge of the
being taken over by 3D
printers. He plans to a large number of machines. However, it does have next. However, this single layer isn’t flat. It’s wavy
solve this by printing an a downside. It means that we are at the mercy of because the print head moves up and down as it
extension, once he gets
enough printers. our slicers. We can only print things in the way they goes around.
are sliced. It doesn’t have to be like this, though. Our
printers are far more capable than our slicing software FIT THE GEOMETRY
would have us believe. Sometimes it makes sense to design the G-code
FullControl GCODE takes a different approach. It output for the particular geometry you're printing. A
does away with the 3D model file entirely. Instead, particularly good example of this is nuts and bolts.
we write Python code to create the G-code directly. It’s perfectly possible to print nuts and bolts using
We’ll look at exactly how to do this a bit later on, but conventional slicing. However, the results can be
let’s get stuck in and see what we’re able to do. mixed. The thread moves upwards at a slight angle,
but the layers remain stubbornly horizontal. What
NO MORE LAYERS should be a smooth thread has a series of contours
Slicers work by breaking a design into layers (or from the layer lines.
slices) and assembling your final object like this. With FullControl, we can print in a spiral. This is
However, there’s nothing inherent in your 3D printer much like vase mode on a traditional slicer but, as we
that means it has to work this way. It’s an extruder have more control, we can match the angle of the
spiral to the angle of the threads on the bolt, meaning
that you get a perfectly smooth thread. Figure 2
shows an example: hsmag.cc/NutsAndBolts.
In this case, the infill design is lined up with how
forces are applied when screwing and unscrewing, so
you get a lot of strength for very little filament.
48
FORGE
Figure 2
The star pattern in the bolt’s head gives
strength in exactly the directions needed
49
Gain complete control of your 3D printer
TUTORIAL
have to click on the Run arrow to actually run a block. With FullControl, you build up a list of steps. Each
However, you can automatically run all the blocks step is generated by a FullControl method, and when
sequentially by going to Runtime > Run all. you’re finished, you can convert these into G-code.
That is a very brief overview of what Colab can do, Our Christmas tree is:
but it should be enough for you to run our notebook.
If you just want a Christmas tree, you can go straight import fullcontrol as fc
to a completed notebook at hsmag.cc/xtree. from math import tau
Because of the way Google handles permissions, you import random
may need to go to this in a private browsing tab. steps = []
Our Colab notebook has a Python environment, for j in range(360):
but this doesn’t have FullControl installed, so the first for i in range(60-int(j/6)):
thing we need to do is create and run a code block to steps.append(fc.polar_to_point(centre=fc.
install FullControl: Point(x=100, y=100, z=(j*0.2)), radius = 15-
(j/24), angle = (i)*(tau/(60-int(j/6)))))
if 'google.colab' in str(get_ipython()): if random.randint(0,11) == 10 and j>10:
!pip install git+https://github.com/ steps.append(fc.polar_to_point(centre=fc.
FullControlXYZ/fullcontrol --quiet Point(x=100, y=100, z=(j*0.2)), radius = 15-
(j/24)+10, angle = (i)*(tau/(60-int(j/6)))))
You’ll need to run this each time you get a new
Figure 4
By extruding above runtime. This means each time you visit the site fc.transform(steps, 'plot', fc.PlotControls(neat_
empty space, we or each time the runtime disconnects (you’ll get a for_publishing=True, zoom=1))
can get filament
to droop down warning message pop up if this happens).
We use two loops: an outer loop that increments
each layer, and an inner loop that ticks around to
create a circle. With each iteration of the inner loop,
MACHINE-SPECIFIC G-CODE
FullControl G-code is machine-specific, as most
G-code files are. There are preset defaults for some
printers, but not all.
There is a subreddit at reddit.com/r/FullControl where
you might find other users who have the same printer
as you.
In truth, there’s not a lot of difference between the
G-code for different printers. Obviously there are
limits on the size of the print volume, the speeds that
can be reached, etc. You’ll need to ensure that your
code respects these. Other than this, there are slightly
different initialisation functions that run at the start of
the printer.
For example, on the Prusa MK4, you need to tell the
printer the size of the object so that it does the mesh
bed levelling in the right way.
You can find out the initialisation G-code by slicing
an object as you normally would and taking a look at
the G-code produced. You might need to copy and
paste some of this over into the G-code produced
by FullControl.
You can do this in a more robust way by creating your
own printer profile. Take a look at the existing printer
profiles in the GitHub repository to find out where to
start: hsmag.cc/FullControlXYZ.
50
FORGE
Left
You can run
FullControl in your
browser via Google’s
Colab programming
environment
we do one of two things. Either we draw a line If you’re happy with your code, you can run the
segment to the next point or – one out of every following to download it:
eleven times – it draws an extra line an additional
10 mm out of the side. Since there’s nothing below from google.colab import files
this line, it will sag down against the side of the tree. printer=prusa_i3
We build up the steps with a list of Point objects
which you can create in two ways. You can do it gcode_controls = fc.GcodeControls(
directly with code such as: printer_name=printer,
initialization_data={
fc.Point(x=100, y=100, z=(j*0.2)) 'primer': 'front_lines_then_y',
'print_speed': 200,
However, most of the time we use the 'nozzle_temp': 210,
polar_to_point helper function. This lets you 'bed_temp': 60,
use polar coordinates, which is really useful for 'fan_percent': 100,
round objects such as this. The method takes the 'extrusion_width': 1,
following parameters: 'extrusion_height': 0.2})
gcode = fc.transform(steps, 'gcode', gcode_
• centre – The origin of the polar coordinate system controls)
as a Point object open(f'{filename}.gcode', 'w').write(gcode)
• radius – The distance from the centre files.download(f'{filename}.gcode')
• angle – The angle that you travel out from
the centre. You’ll see that we selected prusa_i3 as the printer.
This is for Prusa machines before the MK4. Other
It returns a Point object that corresponds to the options are generic, ultimaker2plus, prusa_i3, ender_3,
correct place in 3D space. cr_10, bambulab_x1, toolchanger_T0, toolchanger_T1,
The final line in the code block creates a 3D render toolchanger_T2, toolchanger_T3. If your printer isn’t
of the print, but it doesn’t attempt to predict how the one listed, then take a look at the box, opposite, on
filament will flow once it’s out of the printer. For that, how to get your printer working.
we actually have to print it. We’ve covered the very basics of how to get
Each time you run the code, you’ll get a different started with FullControl; next issue, we’ll delve a
output because it’s based on random chance, so each little deeper into how to create some weird and
Christmas tree is unique. wonderful prints.
51
Raspberry Pi mecanum robot
TUTORIAL
Raspberry Pi
Part 01
mecanum robot
Create a robot which can go forwards, backwards, sideways,
diagonally, and turn on the spot. The mecanum wheels allow
the robot to navigate the tightest of spaces
T
ake your Raspberry Pi on the move by This is achieved by having rollers angled around
Stewart
MAKER
designing and making a wheeled robot This the wheel. The rollers of diagonally opposite
Watkiss tutorial will explain how you can design and wheels need to be in the same direction. Turning
make your own robot. Start by designing your the wheels in a certain combination will determine
Also known as
Penguin Tutor. own chassis and mount mecanum wheels with the direction. This is easiest to understand
Maker and YouTuber full direction control. The robot will then need through watching the video on YouTube:
that loves all things
four separate motors individually controlled with magpi.cc/mecanumrobotyt.
Raspberry Pi and
Pico. Author of a H-bridge driver for each wheel. Take control
Learn Electronics by learning how to use AntiMicroX to control the
with Raspberry Pi. robot with a gamepad.
penguintutor.com Creating a chassis
twitter.com/
02 For any kind of vehicle, you will need a
stewartwatkiss chassis to mount the motors and electronics. You
Mecanum wheels
01 Mecanum wheels are a type of
can use any method you choose. The base should
be thin enough to accommodate the size of the
omnidirectional wheel which can be used to move wheels, but otherwise most materials can be used.
a robot vehicle in multiple directions. They are You could use plywood, acrylic sheet, or even
particularly good at getting into tight spaces as thick cardboard.
Figure 1: Robot the wheels can propel the robot forwards and If you have access to a 3D printer then you can
chassis design
created in FreeCAD. backwards as normal, but can then also move design your own 3D-printed chassis, or use the
Includes four motor
diagonally or sideways without any forward or one available at magpi.cc/robotmecanum. This is
brackets which are
printed separately backwards movement. shown in Figure 1.
You will need some way of fixing the motors.
Brackets are included in the 3D printer files, or you
can purchase suitable brackets which are included
in the component list.
Raspberry Pi Zero W
03 Whilst any model of Raspberry Pi can be
used, a Raspberry Pi Zero W or a Raspberry Pi Zero
2 W are well-suited for a robot vehicle. They are
small, making them easier to fit on a mobile robot,
and they also have lower power requirements
than some of the other models. The wireless
capability is useful when programming the robot
52
FORGE
THE MAGPI
and for getting the controller working. A micro- you can normally use a single power supply for
USB to USB adapter is needed for connecting the both your Raspberry Pi and the motors.
controller. A shim adapter is also recommended. The different options are a 6 V power supply You’ll Need
(4 × AA batteries) or a USB power bank. The
breadboard layout shows both options. Raspberry > 2 × TB6612FNG
Pi is powered through GPIO 2 using a diode which motor drivers
magpi.cc/
Powering the robot
04 The motors are designed for 6 V, whereas a
protects against reverse voltage and drops the
voltage slightly. If using the USB power bank and
TB6612FNG
Raspberry Pi needs a 5 V power supply. In practice, the voltage is too low, then the diode bypassed > Mecanum wheels
magpi.cc/
if required. In either case, power must NOT be
mecanumwheels
connected to your Raspberry Pi power input socket
when powered through the GPIO. > 4 × geared motors
magpi.cc/
gearmotor
> Motor brackets
magpi.cc/
H-bridge motor controller
05 To allow the motors to go both forwards
motorbracket
and backwards, they each need an H-bridge. A > USB power bank
magpi.cc/nanowave
good choice is the TB6612FNG driver. This driver
can handle up to 1.2 A of current, and has two > Micro USB shim
H-bridge circuits on a single SMD integrated magpi.cc/
microusbshim
circuit. To be able to use these with a breadboard,
they are available on a SparkFun motor driver > Wireless gamepad
magpi.cc/
board. This is shown in Figure 2.
wirelessgamepad
Along with the inputs for forwards and
backwards, each H-bridge needs a PWM signal to > Micro USB breakout
board
set the speed of the motor. A single PWM output
magpi.cc/
can be used from your Raspberry Pi, which will usbbreakout
Figure 2: The motor driver is an SMD IC soldered onto a
breakout board, allowing it to be used with a breadboard ensure that all the motors run at the same speed.
53
Raspberry Pi mecanum robot
TUTORIAL
Figure 4: Schematic
diagram which makes it
easier to see which pins
are connected. Labels
are used to avoid the
confusion where wires
cross each other
54
FORGE
Figure 5: A wireless
USB gamepad. This
is detected by Linux
as an Xbox 360
controller
55
Raspberry Pi mecanum robot
TUTORIAL
you to map each of the buttons to the relevant reconnecting the USB dongle after AntiMicroX is
keys, and this is illustrated in Figure 6. running. Then, choosing Update Joysticks from
You can map each button on the gamepad, or the menu.
import the suggested layout which is included in
the GitHub repository.
Future upgrades
12 The robot can be controlled using a game
Troubleshooting
11 The gamepad must be recognised by
controller, or using a keyboard.
With some extra electronics and code, the
Linux to work with AntiMicroX. Some controllers robot can do more. There are holes included in
appear to work consistently, whereas others need the front of the chassis which can be used to add
reconnecting once or twice before they will work an ultrasonic distance sensor to detect and avoid
with AntiMicroX. nearby objects. Or, you could add a line sensor
If the gamepad doesn’t work after a reboot, to allow your robot to follow a line drawn along
then you may need to try disconnecting and the floor.
DOWNLOAD
mecanum1.py THE FULL CODE:
> Language: Python 3 magpi.cc/mecanumpy
001. import sys, tty, termios 028. '4' : (-1, 1, 1, -1), # Left
002. from gpiozero import PWMOutputDevice, Motor 029. '5' : (0, 0, 0, 0), # Stop
003. 030. '6' : (1, -1, -1, 1), # Right
004. motors = [ 031. '7' : (0, 1, 1, 0), # Diagonal left
005. Motor(2, 3, pwm=False), #Front left 032. '8' : (1, 1, 1, 1), # Forwards
006. Motor(22, 23, pwm=False), # Front right 033. '9' : (1, 0, 0, 1) # Diagonal right
007. Motor(14, 15, pwm=False), # Rear left 034. }
008. Motor(24, 25, pwm=False) # Rear right 035.
009. ] 036. current_direction = "stop"
010. pwm_out = PWMOutputDevice (18) 037. # speed is as a percentage (ie. 100 = top speed)
011. 038. speed = 50
012. # get a character from the command line 039. pwm_out.value = speed/100
013. def getch() : 040.
014. fd = sys.stdin.fileno() 041. print ("Robot control - use number keys to
015. old_settings = termios.tcgetattr(fd) control direction")
016. try: 042. while True:
017. tty.setraw(sys.stdin.fileno()) 043. # Get next key pressed
018. ch = sys.stdin.read(1) 044. ch = getch()
019. finally: 045. if (ch == 'q') : # Quit
020. termios.tcsetattr( 046. break
fd, termios.TCSADRAIN, old_settings) 047. elif (ch in direction.keys()) : # Change
021. return ch direction
022. 048. for i in range (0, 4):
023. # list to convert key into motor on/off values to 049. if direction[ch][i] == -1:
correspond with direction 050. motors[i].backward()
024. direction = { 051. elif direction[ch][i] == 1:
025. # number keys 052. motors[i].forward()
026. '1' : (-1, 1, -1, 1), # Turn left 053. else:
027. '2' : (-1, -1, -1, -1), # Backwards 054. motors[i].stop()
028. '3' : (1, -1, 1, -1), # Turn right 055. print ("Direction "+ch)
56
Your FREE guide to
making a smart TV
BUILD A RASPBERRY PI
MEDIA PLAYER
Power up your TV and music system
raspberrypi.com
FROM THE MAKERS OF THE OFFICIAL RASPBERRY PI MAGAZINE
magpi.cc/mediaplayer
Laser-cut rubber stamps
TUTORIAL
R
ubber stamps are different things want to transfer ink onto the paper. Technically, the
to different people. To some, they’re material doesn’t have to be flexible, but you’ll get a
a labour-saving device – why write more even ink transfer if it is.
the same thing over and over again When it comes to removing material, there’s one
when you don’t have to? To others, common hack- or maker-space tool that’s quicker
they’re a way of adding a bit of colour and more accurate than most: the laser cutter. With
Ben Everard to personalised objects. To children, they’re a way of one of these, you can quickly blast away unwanted
adding a level of detail to a picture that they may not material to leave you with a perfect rubber stamp.
yet have the coordination to add otherwise. In some You do have to be a bit careful about what material
Ben’s house is slowly
being taken over by 3D
countries, they’re still used in place of signatures on you use. While there are loads of softish, plasticky
printers. He plans to official documents. materials around, some of them can be unpleasant
solve this by printing an However you plan to use one, though, the process to laser-cut. Some simply smell awful when burned,
extension, once he gets
enough printers. for making one is the same. You need to start with a but others are outright dangerous. The easiest
flexible material, and remove any bits that you don’t solution here is to stick with materials that are
labelled as laser-safe, and many laser cutter stockists
sell laser-safe rubber for precisely this purpose. The
biggest decision is the thickness of the sheet you
use. We used a 2.3 mm sheet – this let us laser off
about 1 mm and still leave a decent thickness.
The technique is really simple, with one potential
pitfall. It is a pitfall that everyone makes, so don’t
worry about it when you fall into this particular pit.
We’ll warn you about it right at the start, but this
won’t stop you from making the mistake. We’re
pretty sure it’s impossible to laser-cut rubber stamps
without making this mistake once. The thing these
warnings do is make you feel more foolish for
making the mistake. Sorry about that.
58
FORGE
Left
We could have cut
these out on the laser
cutter, but it seemed
easier to cut them out
by hand than dial in
the cut settings
”
to import a black-and-white image. Anywhere black
will be removed. We’re pretty sure it’s
To do this etching, then, we need an image
that’s white where we want the ink to remain, and impossible to laser-cut
black everywhere else. This is slightly inconvenient rubber stamps without
”
because almost every source of clip art that we
could base our designs on is black where we want making this mistake once
the ink to go and white everywhere else.
You can manipulate your images using whatever
image software you’re comfortable using. We opted always do a second pass if it’s not deep enough,
for the GNU Image Manipulation Program because it but you can’t put material back on if you take too
has the ability to both invert and flip images. much off.
First, acquire your black-on-white images, either Now you’ve got your rubber out of the laser
by creating them yourself or by finding what you cutter, you can cut out the bit you want using a pair
want in a stock image or clip art gallery. These can of scissors and glue it onto a bit of wood to act as a
be text, pictures, or whatever you like. handle. Dab it in some ink, tap it onto some paper,
Once you have your image the way you want it, and realise that you forgot to flip the image. Finally,
you need to invert it. In the GNU Image Manipulation go back to your image editing software, flip the
Program, go to Colours > Invert. Then, flip it by image, and try again. At least you know the correct
going to Tools > Transform Tools > Flip. Now you can power settings this time.
export it as a PNG file that Lasercut 5.3 can import. The real challenge with these stamps isn’t the
Finally, you can import this into the laser cutter process of creating them – once you’ve dialled in the
and etch it out. You might need to adjust the power power, then it’s fairly straightforward. The challenge
settings a bit to get it right. We’d recommend is coming up with interesting and unique designs.
starting low and then increasing because you can We’d love to see what you come up with.
59
Instant coffee camera chemistry
TUTORIAL
Instant coffee
camera chemistry
Use household chemicals to develop film
T
hirty years ago, most people came came of age. Social media gave us the opportunity to
back from a holiday, or a special put photographs directly onto the internet and bore all
event, with a collection of little plastic of our friends at once from hundreds of miles away.
containers. Those containers would In the wake of these technological advances, the
get put into an envelope and taken to interest in traditional photography reduced, and the
the local pharmacy, where you’d fill out number of services available for developing traditional
Dr Andrew Lewis a form and hand over some money to the person 35 mm or 120 mm film shrank down to almost zero.
Dr Andrew Lewis is a
behind the counter. A few days later, you’d collect At the same time, the cost of film processing and the
specialist fabricator another envelope with your (or occasionally someone chemicals themselves has increased. In this article,
and maker, and is the else’s) photographs in, and then you’d visit your you’ll learn the basics of caffenol-based black-and-
owner of the Andrew
Lewis Workshop. friends and bore them to tears by showing them all, white film processing, mixing your own photographic
one after another. A few years later, digital cameras chemicals from ordinary household items.
YOU’LL NEED
Instant coffee
(not decaf)
Soda crystals
(sodium carbonate,
also called
washing soda)
Vitamin C
powder
A glass container
with a lid to mix
and store the
developer
A developing
tank (commonly a
Paterson tank) to
load and process
the film
60
FORGE
”
DEVELOP YOUR PHOTOGRAPHY SKILLS
Above
While none of the Mixing your own film chemicals is a very rewarding A few basic
process, and it’s one of those projects where you can ingredients from the
chemicals we’ll be using hardware store and
let go with your creative side and experiment to get kitchen are all you
are particularly harsh, unique results. In this article, you’ll learn the basic need to develop your
own black-and-white
gloves and eye protection recipe for caffenol developer, but you could exchange negatives, provided
you already own a
”
the coffee in this recipe for tea, juice, or even beer Paterson tank. The
are advised if you prefer. While none of the chemicals we’ll be tank shown here can
process two 35 mm
using are particularly harsh, gloves and eye protection films at once, or one
are advised to keep you safe. 120 mm film
61
Instant coffee camera chemistry
TUTORIAL
QUICK TIP
Developing
negatives can be a
stinky process. Work
in a well-ventilated
area, and be
prepared to explain
strange smells to
any visitors.
Right
If you’re going to be
processing a lot of
films, you can add
some magnets to the
bottom of your spool
and build your own
magnetic stirrer using
a low-rpm motor
and some matching
magnets outside the
tank. If you’re only
processing a few
films, this isn’t really
worth the time, but if
you’ve got a lot to get
through, it can be a
big time-saver
62
FORGE
Left
The results from
caffenol developer can
be quite impressive,
particularly once
your image has been
processed and printed
onto quality paper.
If you’re very brave,
you can have a go
at making your own
photographic paper. It
isn’t as impossible as
you might think, but
it is well outside the
scope of this article
63
Making a connected Hull Pixelbot
TUTORIAL
Making a connected
Hull Pixelbot
Make a network-connected robot you can program from
your phone or use in team games such as Robot Rugby
I
n a previous article, we discovered how your robot remotely over Wi-Fi. To do this, we can
to create a little desktop robot called make the robot host an editing website rather than
the Hull Pixelbot. Now we are going to visiting a site on the internet.
give our robot connections. We’ll start by The website in Figure 1 is hosted by a C++
making it host a web page we can use to program running in the robot. The robot is hosting
program it, and then we’ll move on to look a website on the local network at the address
Rob Miles at a network server that can be used to host robot pico.local. You can use this site to send new
sports events. You can find all the code for the robot programs to the robot at any time, even if it is
Rob Miles has been and instructions for setup at the GitHub repository running another program. You can also use the
playing with hardware
and software since here: hsmag.cc/HullPixelbotGH. site to run and stop the program in the robot and
almost before there was load pre-written sample programs.
hardware and software.
You can find out more
HOSTING A WEB PAGE IN A ROBOT
about his so-called life at A non-networked Hull Pixelbot is programmed via CONNECTING UP
robmiles.com. its USB connection. To do this, you plug the robot Before the robot can host the website, it needs to
into a computer with a USB cable and visit this link connect to the local network. The statements below
hsmag.cc/HullPixelbotEditor in your browser. This fetch the definitions of the libraries which will be
website hosts an editor for program code written in used to make everything work.
the language ‘Python-ish’ which can send code to
the connected robot. This works, but it is not very #include <Arduino.h>
convenient. It would be nice if you could program #include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <LEAmDNS.h>
#include "WebPage.h"
64
FORGE
Figure 1
The program being
edited makes the
robot move in a
square. Can you
change it to make
a robot move in
a hexagon?
"
The code above tells a Pico to become a Wi-Fi
station and to connect to the local Wi-Fi network Now that we have a
with the given network name and password. The
final statement starts a ‘busy pixel’ display of a
network connection,
moving pixel in the ring of pixels on top of the robot. we can start running a web
"
The three parameters to the startBusyPixel function
server inside the robot
set the red, green, and blue intensity values of the
colour of the busy pixel. The pixel above would be
cyan (all the green and all the blue). The pixel is
displayed during the network connection process to at global level so that it can be used by several
keep the robot user informed of what is going on. functions in the robot code.
65
Making a connected Hull Pixelbot
TUTORIAL
server.on("/", handleRoot); to find the web page and that the page contents
are in the response. This tells the browser it has a
Above, you can see the code that runs in the robot page it can display. The second parameter is a string
and handles the request for the editor home page. describing the type of the reply. In this case, the item
You might think that the statement above turns the being returned is a text page encoded in HTML. The
server on, but this is not quite what is happening third parameter is a string containing the text of the
here. It is best to think of this as meaning ‘on web page to be returned to the browser. In the robot
Figure 2
The Stop button is receiving a message asking for something at this code, the page text is stored in a character array
defined in a similar route, call this function’. The Pico web server will variable called webPage, which was created by pasting
way and has a route
which sends the contain a server.on statement for every route that the entire web page file into the program source:
command "*RH" to
the robot to make
is available on the website hosted by the robot.
it stop running its The root path is the one at the ‘top’ of the website. const char *webPage = R"(
internal program
The robot web server will also have routes for the <!DOCTYPE html>
GET messages that request the robot to stop and <html lang="en">
start. The statement above tells the server to call a ... rest of web page
function called handleRoot when a request is made </html>
for the route to the home page of the site. )";
void handleRoot() The code above puts the entire home page for the
{ editor into a single C++ character array referred to
server.send(200, "text/html", webPage); by the webPage variable. The web page was designed
} and tested and then incorporated into the C++ code.
"
The handleRoot function is very simple. It tells the
server to send the contents of the string webPage In the robot code, the page
back to the browser. The method server.send is text is stored in a
used to do this. The send method accepts three
parameters. The first parameter to send is the status character array variable
"
value of the reply to be sent back. The value 200 tells called ‘webPage’
the receiving browser that the server has managed
server.on("/run", []()
{
Serial.println("Got a run request");
sendLineToRobot("*RS");
handleRoot();
});
66
FORGE
BY THE POWER OF
THE BOOTSTRAP
<head>
<title>Hull Pixelbot Python-ish Editor</title>
<meta name="viewport" content="width=device-
width, initial-scale=1.0">
<link rel="stylesheet"
Figure 4 href="https://cdn.jsdelivr.net/npm/
If we click ‘Send to all robots’, the bootstrap@4.3.1/dist/css/bootstrap.min.css"
robots are all turned into cowards
integrity="sha384-CbMQv3Xipma34MD+dH/1fQ784/
j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
The first prints a message, the second sends the line crossorigin="anonymous">
"*RS" to the robot, and the third calls handleRoot to </head>
redisplay the editor home page. The "*RS" message
tells the robot to run its stored program. The run route
is called from the HTML in the editor when the user <form method="POST" action="/save">
clicks the Run button in their browser. <textarea id="codeTextarea" name="codeTextarea"
style="font-family:monospace;" class="w-100"
<a href="/run" class="btn btn-primary mb-2">Run</a> rows="20"
cols="120">
The code above is HTML text in the web page. The </textarea>
text describes a reference to the "/run" route which <input type="submit" value="Save and run"
will be followed when the button is clicked. The class="btn btn-primary mt-2 mb-2 btn-block">
browser will render this as a button. </form>
Figure 2 shows how the button is displayed on
the web page. When the user clicks the button, the The code above shows the form defined in the
browser will follow the /run route, the server will editor page. An HTML form contains input items.
recognise this and the code we have seen above will In this case there are two. The first is the text area
run to send the command "*RS" to the robot. If we where the robot program is entered. The second is a
wanted to send the robot more commands, we could button labelled ‘Save and run’. You can see how this
add more buttons to the edit page which access looks in the browser in Figure 1. When the button is QUICK TIP
additional routes. Then we would create route pressed, the form will perform its action. It will use
If we wanted to send
handlers in the robot that respond to these routes. the HTTP POST action to send a message to a route more items of data
called "/save". into the robot from
GETTING THE CODE the web page, we
The Run and Stop buttons send a message to the server.on("/save", []() would add the input
robot, but the ‘Save and run’ button must update the { items to the form
and then the code
program in the robot by sending the edited text from // code is the only argument
running in the robot
the browser to the server running inside the robot. String robotCode = server.arg(0); would pick them up
To do this, we use a route which accepts a POST sendLineToRobot("begin"); as arguments 1, 2, 3,
message from the edit page. sendStringToRobot(robotCode); and so on.
67
Making a connected Hull Pixelbot
TUTORIAL
#include <LEAmDNS.h>
Right
Each robot has its if (MDNS.begin("picow"))
own back story {
Serial.println("MDNS responder started");
QUICK TIP sendLineToRobot("end"); }
handleRoot();
The robot has an
address on your }); The code above starts an mDNS responder which
local network – broadcasts the name ‘picow.local’ and responds
picow.local. If you The code above shows the handler in the robot server to requests for the network address at this name.
have multiple robots for the "/save" route. The server exposes items from If you look at the web address of the edit page in
that you want to the message, including any arguments added to the Figure 2, the browser is showing ‘picow.local/
control, you can give
post. The form in the web page only contains one run’ which means that the user has just pressed the
each of them its own
network name. input item, which is returned as arg (argument) 0. The Run button and used that route to run the program
robotCode variable is set to this value and then sent to in the robot. All the network names created by the
the robot, enclosed in begin and end messages that MDNS server have ‘.local’ on the end of the name
mark the start and end of the program being sent to indicate that the device is local to the current
into the robot to be stored. The robot will store this physical network. In other words, someone living
program code and then run it. Once the program has next door will not be able to use this address on
been sent to the robot, the handleRoot function is their home network to connect to a robot on your
called to redisplay the edit page. Now that the server home network. Like the web server, the mDNS
has been configured, we can start it running: responder needs to be updated regularly so that it
can respond to requests:
server.begin();
MDNS.update();
This will start the server. However, the program
must repeatedly call a method in the server to keep The statement above will update the mDNS
it updated. The robot does this in the loop function responder. This will cause it to send out regular
which is called by the Arduino framework: broadcasts giving the name and respond to requests
for the network address for that name.
server.handleClient();
ADDING A SECOND BRAIN
The above statement is in the update function for The program web editing works well on the Pico
the robot web server. It is called at regular intervals W, but what do you do if you are controlling your
and will process incoming requests and serve out robot using an Arduino Uno which has no network
pages as appropriate. connection? You can do this by connecting a WiFi-
68
FORGE
Figure 5
The wall around the
robot arena is a very
necessary part of
the event
ROBOT DESCRIPTIONS
The game framework also produces robot descriptions
which can be printed out and given to the players. The
enabled device to the Uno and using that to connect descriptions contain a QR code which is generated by
to the network and host the edit web page. The Uno the server and can be scanned by the player to obtain a
will accept commands from the network via its serial link to the code edit page for that robot. The page also
contains a long-form of the link and a small back story
port as if they were being entered by the user.
for that robot.
Figure 3 shows how the ES8266 and the Uno
Figure 5 shows the robots in action at the first match at
are connected. The network device can send
the Hull University Computer Science Christmas Bash.
commands to the Uno as if they had been received There was a lot of interest in the robots and making them
via the serial port. The network device is an do things, and we’ve got plenty of ideas for making the
ESP8266 computer packaged as a WeMos D1 mini. gameplay even more involving.
The author is a big fan of the ESP8266 processor.
It is the precursor of the highly popular ESP32. It
provides WiFi connectivity but not Bluetooth. It wanted to create a robot rugby game which could
can be programmed in C++ in the same way as an be live-streamed and played by anyone in the world.
Arduino and is available very cheaply. The author So, he created a game framework to manage a
happens to have a drawer full of them, which makes rugby match.
him like them even more. The software running The match manager can create a match and then
in the ESP8266 is just the web server part of the manage it using the page shown in Figure 4. Each
robot code. The rest runs inside the robot itself. You robot is a member of a team. The robot controllers
can find this software on GitHub here at this link: each enter a Python-ish program into their robot and,
hsmag.cc/UnoNetEditor. when the ‘Start all robots’ button is clicked, the server
QUICK TIP
You can use this technique to add a web control downloads the program into all the robots. The robots If you want a very
small version of
page for any device which has a serial port that run for a while and are then stopped with the ‘Stop all
the Arduino Uno
can be used to control it. Just edit the web page to robots’ button for the teams to reprogram their robots
that you can put
include the inputs that you need and then update the for the next play. After five plays, the team with the inside devices, you
route handling code in the web server to send the most robots furthest into their opponent’s half is should look at the
appropriate messages. the winner. The server and the robots use MQTT Arduino Uno Pro
to communicate, and the messaging and device Mini. There is even
SERVING OUT ROBOT RUGBY management is built on the Connected Little Boxes a 3.3-volt version
of this device,
You can create a team of Pixelbots which each have project (connectedlittleboxes.com). The full details
which means you
addresses on your local network. You can then of how the gameplay works are still being thrashed don’t need a level
have fun programming the robots. But the robots out, but it is thought this would be a great way to converter to connect
are only visible on the local network. The author introduce people to programming. it to the ESP8266.
69
Polyvinyl butyral (PVB)
TUTORIAL
S
olvent smoothing is one of those PVB is soluble in isopropyl alcohol (IPA). While
things that seems great in theory, there are still issues to be considered when working
but can be a pain in reality. The idea with IPA, it’s pretty safe to assume that most people
is simple. All 3D prints have layer lines, who 3D print are comfortable using this particular
but you can remove them by dissolving chemical. However, don’t assume that you can easily
the outer layer of plastic in a small do this safely because you’re used to using IPA for
Ben Everard amount of solvent. The now-liquid plastic will flow other things. Take a look at the Safety box (opposite),
into the crevices between the layers, and the solvent and make sure that you’re properly considering your
will evaporate, leaving the plastic that was dissolved own experience and equipment.
Ben’s house is slowly
in it to fill any gaps and produce a shiny surface. Solvent smoothing aside, the only other
being taken over by 3D
printers. He plans to The main problem with it is that it usually reason we can think of to use PVB is because it’s
solve this by printing an involves harsh chemicals. PLA, in particular, transparent. It’s a little clearer than other transparent
extension, once he gets
enough printers. needs substances like chloroform, which requires filaments we’ve seen, but only slightly. Unless you
equipment beyond our workshop setup to do it need absolute maximum transparency, you will
safely, so we’ve been unable to test it out. ABS is probably find it easier to use transparent PLA.
a little more straightforward as it can be smoothed
with acetone. However, even this is still unpleasant ABSOLUTE MELT
to work with. That’s the theory; let’s see how it works in practice.
PVB is reasonably easy to print. It requires a slightly
hotter bed than PLA, but it’s nothing that will cause
problems for most modern printers.
The biggest problem with printing PVB is that it is
very hygroscopic, meaning that it absorbs moisture
from the atmosphere. If you plan on printing it
quickly, you might be able to get away with keeping
the filament in a sealed bag containing a desiccant
sachet. However, ideally, you should have a
filament dryer.
Right When printing something that’s going to be
A Benchy before transparent, as most PVB prints will be, you need
smoothing. The
transparent to consider the inside of the print – in other words,
filament does still
look good, but has
POLYSHER
layer lines as usual
70
FORGE
Left
After smoothing, the
layers are still visible
to the eye, but the
surface is smooth
to the touch
”
of IPA because when applying it with a brush, you’re
inside of the print more likely to have a problem. We recommend reading
the material safety data sheet (this should be available
from the supplier). Particular risks are:
the infill. This pattern can ruin the look of your • Inhalation
transparent object. Some prints you can make • Eye contact
completely hollow (such as with Vase mode), but • Fire
if this isn’t possible, you can completely fill it. You
can do this by adding 100% infill or by upping the All of these are significantly more likely when
number of perimeters to something far bigger than brushing it on a model than when wiping it on a print
would actually fit (such as 999). We’d recommend bed. Use proper eye protection. It’s recommended that
you use nitrile gloves when handling IPA.
the latter because it will lay down the filament
concentric with the outside perimeter, which is less Remember that safety is your responsibility, and you
must fully understand the risks associated with a
likely to produce visible issues. Obviously, filling up
process before starting it. Proper PPE is a requirement
an object with plastic is going to have a pretty big for this process, not an optional add-on.
negative impact on both the amount of filament that
it uses and the amount of time it takes to print.
71
Polyvinyl butyral (PVB)
TUTORIAL
If you have a sufficient flair for 3D design, you could but smoothing can cause problems with small details
Above
In Vase mode, there’s probably make something interesting using the voids anyway, so this process is best suited to objects that
no infill to see, so the inside the print. can be printed with a large layer height. If you’ve got
transparency isn’t
disturbed. This photo There are two main brands of PVB printer a big nozzle, this can be a good time to use it.
is before smoothing
filament: Prusament PVB and Polymaker Once you’ve got your model, you need to apply
PolySmooth. We tested out Prusament, but the the IPA to the surface. It should be at least 70% IPA.
same process should work with PolySmooth. You can do it in a few ways:
Print out your part as you would normally. Since
we’re going to be smoothing this, there’s no need to • immerse it
worry too much about layer lines, so go big for a fast • squirt it
print. This might cause problems with small details, • brush it
• vaporise it by applying it to a cloth; putting both
cloth and 3D print in an enclosed space, such as
VASE MODE Tupperware
You can get great results with PVB in Vase mode. The
resulting prints are almost see-through and have a Whichever way you do it, the key is to get a uniform
glass-like shine. However, you do need to be careful coating, and leave it to dry. When drying, you want
because the walls are very thin. The vases can to place it on something that minimises the number
become very weak. We accidentally dissolved a hole
of contact points, as these will leave blemishes on
in one of the test pieces.
the surface. In most cases, you’ll need to repeat
While with Vase mode, you can only have one
the process several times in order to get the
perimeter, this perimeter can be very thick. By default,
PrusaSlicer sets the external perimeter wall to 0.45 mm desired effect.
on a standard 0.40 mm nozzle, but you can adjust this. We tested this out by brushing on IPA – this is
We upped it to 1.00 mm and had good results. probably the most approachable option for people
trying this out. The method is really simple. Take
72
FORGE
Left
We heavily smoothed
this one and the
layers are only just
visible. However, it
has distorted the vase
slightly. Corners are
more rounded and
finer detail is lost
”
RESULTS
There’s something very We are quite partial to the look of layer lines, and
appealing about the they’re not something we generally feel the need
to sand or post-process away. That said, there’s
transparent, shiny prints
”
something very appealing about the transparent,
you can get with PVB shiny prints you can get with PVB. When done well,
it can be almost glass-like.
There are, however, downsides. The process
your print, a paintbrush, and a small amount of IPA. that removes layer lines will also remove other fine
Paint the IPA onto the print and try to get as smooth details (just as sanding, painting, and other post-
a coat as possible. You need to be quite liberal with processing would). It’s a bit tricky to apply the IPA
the IPA to get a good effect. You’ll find that the IPA smoothly and evenly.
will spread itself out along the layer lines. We’d While Vase mode does work well, it does produce
recommend using nitrile gloves when doing this. parts with thin walls, and the IPA will remove
Once you’ve got a good coat, leave the object to material from some parts – this can leave your print
dry on a suitable surface – this will take about half weak in places.
an hour. If the object you’re making is hollow – like There are certainly prints that can look excellent
a vase – you can swish some IP around inside to get when printed in PVB and smoothed. Things with
an even coat. Pour out any excess and leave to dry gentle curves that are prone to false contours can
upside down. smooth particularly well. We’d love to see your
It can take about five to ten applications of IPA to prints. Email us at hackspace@raspberrypi.com or
smooth away the layer lines. tag us on social media.
73
Exploring PCB services
TUTORIAL
I
n the last part of this KiCad series, we your project. Questions to ask yourself include: what
looked at the different substrates and minimum clearances and track widths do I need?
other hardware options that are available What is the smallest hole diameter? How accurate
across a range of PCB fabricators and do I need things?
PCBA services. In this section, we are going Over on OSH Park, they have a great collection of
to generally look at the range of services documents relating to the services they provide. The
Jo Hinchliffe that are available, and look at what some of the Drill Specs page details the minimum and maximum
services and companies need from us to make our hole sizes, sizes for annular rings, and the via plating
Jo Hinchliffe is a PCB projects. We’ll also mention a few of the quirks specification. Beware that all these specifications
constant tinkerer and we’ve found in some services that had us scratching are different across OSH Park’s various services,
is passionate about all
things DIY space. He our heads. changing, for example, between the two-, four-,
loves designing and Each service is well-established and capable and six-layer options. The minimum track width
scratch-building both
model and high-power
of creating quality PCBs and/or assembled PCBs. specification on the OSH Park site is listed as
rockets, and releases the However, they each have different specifications and 0.006”, with 0.006” clearance on the standard two-
designs and components tolerances. In fact, that’s often a good place to start layer boards, moving down to a very accurate 0.005”
as open-source. He also
has a shed full of lathes when comparing or looking for a service to make in the four-layer board offerings (it’s common to
and milling machines
and CNC kit!
Right
Our small PCB
ruler project provided
some interesting
challenges to
PCB services
74
FORGE
Left
Technical details
of the OSH Park
PCB services
”
see limits given in thousandths of an inch because,
apparently, you can have both metric and imperial at You can email the support
the same time if you try hard enough). You can find
this and all the other details on the OSH Park KiCad email address and they
Design Rules page at hsmag.cc/oshparkrules. will get back to you offering Left
”
If you have questions about the OSH Park The DirtyPCBs PCB
services, they have an excellent track record in excellent advice specification is in
amongst a large
communication. You can email the support email About page
address and they will get back to you offering
excellent advice. We have even had the OSH Park
team open our KiCad project file and they have
fixed problems and then taken the time to teach
us solutions.
Different PCB manufacturers put the information
in different places. Another PCB service, DirtyPCBs,
bundle all their specifications and tolerances
information on their About page. They similarly list a
0.006” minimum track width and clearance across
both their two- and four-layer boards and cite their
other specifications and tolerances. The DirtyPCBs
service was designed as a minimal service with
its emphasis on ‘cheap’, therefore, it has no chat
service, and it’s difficult to contact the company to
ask questions. If you have challenges here, it can be
a better option to use search engines and find forum
conversations about the service to try and get the
answers you need!
75
Exploring PCB services
TUTORIAL
RULES RULE!
If, while developing a PCB project, you have a particular fabrication service in mind, you
can ensure your board design’s compatibility by setting up the Design Rules for your
board to match the service. The Design Rules is nested under the Board Setup window
we used in the previous section of this series to set up the different physical stackup
characteristics for different substrates. In the PCB Editor, navigate to File > Board
Setup and then open the drop-down menu labelled Design Rules. In the first section,
Constraints, you can set up limits for the minimum clearances, minimum track widths,
and other limits relating to the copper regions. You can also adjust the minimum via
sizes, hole sizes, and clearances, and also the minimum dimensions for text objects on
the silkscreen layer. The next item down in the Design Rules drop-down menu is the Pre-
defined Sizes tab. We’ve used this earlier in the series to set track widths for projects.
However, as a reminder, you could set this up at the beginning of a project whilst
considering any limitations or constraints your target PCB service has. Also, notice that
we can import the settings from a previous project – this is an excellent function if you
set up a project for a particular PCB service specification. Above
JLCPCB’s specifications are found on their Capabilities page
Jumping to the bottom of the Design Rules drop-down menu, we can see the Violation
Severity section. This section sets up how the Design Rule Checker (DRC) tool responds
if any of the rules set for a project are broken. As a primary word of warning, think very We have, of course, used JLCPCB/A a fair amount
carefully before setting any of these to ‘ignore’. It may well be that for a current project in this series. JLCPCB have a pretty exhaustive list
you don’t mind some of these issues, but it’s possible under different circumstances or of their specifications over on their Capabilities page.
projects, an ignored error could be critical.
They can offer up to a whopping 20 copper layers
Back in the PCB Editor window, to run the DRC at any point in your project, you can in their PCBs, with track widths and clearances a
either click the ‘Show the design rules checker window’ tool icon or you can select
default minimum of 0.005” in the two-layer offering,
‘Design Rules Checker’ from the Inspect drop-down menu. Once the window is open, you
can then click the Run DRC button for the PCB to be checked against the defined design
moving to 0.0035” for four-layer options and more.
rules. Note that getting an error or a warning doesn’t always mean that your PCB project Similar specifications are available from PCBWay.
isn’t working, but they are simply indications that there is something that hasn’t met the An advantage of this service is the maximum
design rules. dimensions of PCBs they can fabricate are 1100 ×
Rules don’t always have to be followed, but it’s always good to check which rules are 500 mm, whereas, for example, JLCPCB are 500 ×
broken so you can be sure that any that are broken are broken intentionally. For example, 400 mm. One thing of note about PCBWay is that
on our ruler PCB design, we got numerous silkscreen errors as the ruler sat over the you specify the board and the board dimensions
edge cut geometry, and we also got lots of courtyard errors where the courtyard areas
and add it to your shopping cart prior to uploading
of the mounting hole footprints we had used had overlapped. The actual distances
Gerbers, which can seem slightly counter-intuitive
between the mounting holes were all over the minimum clearance from each other,
so neither of these sets of issues actually mattered – it’s definitely worth checking compared to other services.
though. The DRC, when run, will add small red arrows or markers on your PCB design,
highlighting where the issues are located. If you close the DRC window, the markers still
remain on your design. When selecting a marker when the DRC window is closed, the
issue that the marker relates to will be shown in the lower toolbar on the PCB Editor. You
can reopen the DRC window and delete single markers or all markers using the relative
buttons. Obviously, if you don’t make changes to the PCB design and run the DRC again,
removed markers will be replaced.
Above
Many of the services offer online chat portals. These can
be useful when trying to negotiate problems or challenges
with a service
76
FORGE
With all of these services, it’s definitely worth substrate and a clear solder mask), a lighter 0.8 mm
Above
contacting them using the chat function or emailing board with a heavier 2oz copper layer, and a flex An interesting issue
if you want to check specifications. option. Whilst they offer good quality, they are occurred where
JLCPCB didn’t detect
incredibly affordable when working with smaller the edge cut geometry
DIVING DEEPER PCB designs. Finally on OSH Park, they are excellent on the flex antenna
design, which should
We have often featured OSH Park as a go- at communications. If you need to raise a ticket have rounded corners
to company for PCB fabrication in HackSpace to ask a question, they go above and beyond
magazine. They have an excellent track record in many services.
supporting and promoting open-source projects,
”
and they have that iconic purple solder mask finish
which is very visible across lots of maker/hardware Whilst they offer good
hacker projects. However, probably one of the main
reasons that OSH Park have often featured as a quality, they are incredibly
service is that you can directly upload KiCad PCB affordable when working
”
files to their website – you don’t have to go through
the process of making compatible Gerber files. This
with smaller PCB designs
makes the service really easy to use. If you are
reading this after a new milestone version of KiCad
has been released (for example, a future version 8), Different fabrication houses have different needs
you might find that it takes a little while for the OSH around the files and file formats that you upload.
Park website service to become compatible, but rest One area we have noticed creating issues is the DRL
assured, you can also upload a zip file of Gerbers in or drill files. In KiCad, you can create either a pair of
the same way as other services in the interim. OSH DRL files, one containing the non-plated through-
Park’s guidance on Gerber set up and requirements holes and another containing the plated drill holes,
is available at hsmag.cc/Gen_Gerbers. or you can merge these two files into one. JLCPCB
Beyond the standard OSH Park purple offering, wants these files supplied as a pair, whereas if you
there are options for the ‘After Dark’ finish (black upload Gerbers with two separate DRL files to
77
Exploring PCB services
TUTORIAL
OSH Park, you get an error message from OSH Park, service, they confirmed that they could see the edge
Above
Whilst PCBWay but it conveniently will merge the two files online cuts layer and assured us that if we placed the order,
rendered the ruler and also solve the issue for you. There can be other the board would be cut correctly. We tried playing
project correctly from
Gerber files, it couldn’t little glitches involving drill files. around with the Gerbers and we also posted the
initially process an
order due to an error
Some fabrication houses want there to be drill issue on the KiCad forum for discussion. It seemed
being created as there files even if the PCB has no drill holes in the design, that others generating their own Gerbers from our
was zero copper in the
copper layers for example, in the design of a single-sided PCB. project would get a correct render on the JLCPCB
This caused an interesting issue when we designed site. The difference we spotted was that they
the flex PCB antenna example in the last part of this weren’t including any drill files. Re-uploading without
series. We exported the design Gerbers and DRL drill files and the correct board outline and edge cut
geometry rendered correctly. As part of this process,
”
we discovered that OSH Park didn’t have this issue
Some fabrication houses and rendered the board correctly at upload. We
placed the order with them.
want there to be drill files The moral of this particular story is that Gerbers
even if the PCB has no drill aren’t standard, so be sure to check what you need,
”
and be prepared to talk to the PCB manufacturer if
holes in the design things don’t look right.
We had another issue relating to empty layers
when looking at different services to fabricate the
files even though the design contained no drilled ruler design. When uploading the design to
holes – this was just because we wanted to upload PCBWay, it would throw an error with the upload
the Gerbers to a range of services to see how they as the Gerber file for the copper layers contained
rendered and get quotes. no copper. Obviously this is very unusual for a
With JLCPCB, when we uploaded the zipped PCB as copper is usually the conductive layer
Gerber file, the preview would ignore the edge cuts connecting components and more. The ruler
geometry, so the curved corners of the design would project shows that with a more artistic use of PCB
disappear and, incorrectly, the board would appear fabrication, it’s possible to cause headaches for
as having square edges. Chatting to the online chat fabrication houses.
78
FORGE
Above
In the original render preview, the LED polarity couldn’t be
ascertained as JLCPCB had a problem with the 3D model. After an
engineer inspected the part, the correct orientation was confirmed
79
Pico modular: A bit of polish
TUTORIAL
03
Pico modular:
A bit of polish
Better sound output, cases, and a tune-up
I
n part three of this series on building a Connecting it up is just a case of plugging the right
budget modular synth, we’re going to bits into the right bits. There’s a knob to twiddle for the
tidy up a few of the niggles in our nascent volume and that’s about it. It has an on-board jack that
synthesizer system. We’ve skipped over a we can plug headphones straight into, but the layout
few bits in order to get some output, even if of the board means we can’t mount it so that we can
it’s not perfect output. First, let’s make sure we access both this and the knob. We’re working on the
Ben Everard can get sound out and into a pair of headphones with mounting for this; while we do that, let’s take a look at
something a little more robust than a crocodile clip. how we’re mounting the rest of the synth.
So far, we’ve been taking the sound output directly
Ben’s house is slowly
being taken over by 3D
from the R2R ladder. This works but it’s very quiet. A MOUNTING
printers. He plans to much better solution is to add an amplifier, and you Just having circuits isn’t enough. We need a way to
solve this by printing an can get headphone amplifier modules cheaply. The keep these tidy and out of the way. In an effort to keep
extension, once he gets
enough printers. one we got takes a 5 V power supply, and left and right costs down, we’re trying to not use anything other
inputs that it amplifies. As with everything in this (or than standard parts and off-the-shelf modules. That
any other audio) build, there are a wide range of parts means no custom-made PCBs, or other things that
at different points on the price/quality spectrum. We’re could add to the cost. We’re trying to mount everything
unashamedly aiming to build an affordable synth, so on 3D-printed cases.
we’re starting on the low price end. Our requirements for this are that it’s as 3D-printed
This is an experiment and, at the moment, we’re as possible, as hackable as possible, and as expandable
not creating any particularly complex sounds. Once we as possible. The solution we’ve come up with may not
have a more complete system, we’ll test out some be perfect, but it’s working for us so far.
other headphone amplifiers and see if they have much First, we’ll take a look at how we’ve made it
of a bearing on quality. hackable. We wanted a case design that you could
Unfortunately, cheap headphone amplifiers don’t tweak and modify for your own modules without
come with much identifying information, so it’s hard for having to dive into the murky world of CAD. So,
us to give much of a guide to the one we have, other what we’ve done is created base files that you can
than what it looks like. carve up and modify using PrusaSlicer. This has basic
modification tools that let us add holes and text to
our creations. You can find these (as well as some
examples) at hsmag.cc/pmparts.
The bases have a jigsaw-like fitting that you can slot
together to build up a synth that’s an arbitrary number
of modules long. There are two widths – normal
and wide – and you can pick whichever best suits
your needs. Each case is an L-shape stretched out, and
it could be printed in one go, but we decided to split it
Right up into two parts. This means that it prints faster and
There’s just a single
connection on the resulting part is stronger. The two parts can either
banana sockets, so be glued together or attached with M2 bolts (8 to
just bolt them in and
solder them on 12 mm long work best).
80
FORGE
Left
There are many
similar modules
around, but this one
is working fine for
us at the moment
The base plate contains mounting holes for a Pico so they fit snugly and lock into place, but can still be
(Pico Ws also fit) and, again, these are attached with easily pulled out.
M2 screws. There are also screw holes for attaching Banana plugs are easier and cheaper than jack
the upright. Other than this, it’s blank. If you want sockets that are more commonly used in modular
to attach additional hardware, there are a couple synths, and we’ll look more at the other options when
of options: we get to interfacing between our modular system and
a more traditional system. Attaching these is simply a
1. Glue it on case of creating a hole and bolting the socket in place,
2. Add holes and then soldering it on. There are a few different
styles of banana socket around, so make sure you have
The first one is the method we’ve used for most the right-sized hole.
electronics hardware. Both circuit boards and PLA We’re still using springs for the power connection,
work quite well with hot glue. However, for a more and it seems to be working reasonably well, but we’ll
permanent solution, you can add screw holes. investigate this and more options when we start to get
PrusaSlicer has changed a bit recently, so we’d a larger system.
recommend updating to the latest version before going As well as the physical setup of the system, we’ve
any further. added writing. This helps us identify the module and
Import the STL into PrusaSlicer and make sure it’s remember what the inputs are. Again, we can do this
active (it will be green). You can now right-click on it directly in PrusaSlicer. Highlight the part so that it’s
and select Negative volume > cylinder. This will add green, and right-click it but, this time, select Add text.
a cylinder with a diameter of 28.2 mm. Unless you You can edit the text as well as the size. We’ve had the
happen to be adding a part exactly this size, use the best results using the default Segoe UI font, but in bold
Size [World] boxes on the right-hand side to make it with a minimum letter height of 7 mm. Any smaller
the size you want. You can either place it by eye, by than this and we’ve found it prone to snapping off or
dragging it to the place you want, or you can use the being illegible. The default depth is 4.5 mm, which is a
position boxes to place it precisely. We usually use a bit deep for us – 1 or 2 mm is plenty.
combination of both by dragging one hole to a place When you slice the file, you should see a pop-up
that looks right, and then using the positioning boxes with: ‘Sliced object looks like a logo or sign. Apply
to place others at the correct position away from this. colour changes automatically?’ If you click on this,
We’ve also experimented with different ways of it will pause the print when it gets to the text to let
connecting the modules together. In the first test, you change the filament to a different colour. You
we used springs into which you can fit wires. To be can make different bits of text different colours by
honest, this was mostly because we were nostalgic giving them different depths. We’d recommend about
for the electronics kits of the 1980s and 1990s. The 1 mm between each colour. Now that we can hear
connections were, at best, inconsistent. We’ve now our sounds better, and mount them better, we should
ditched these in favour of banana plugs. These are actually make sure they sound good. Let’s take a look
push-fit connectors with a slight expansion on the pin at getting the right pitches from our synth.
81
Pico modular: A bit of polish
TUTORIAL
This sets the first channel to a particular voltage (given for pin in gate_pins:
as a 16-bit number). We connected our headphones gates.append(digitalio.DigitalInOut(pin))
and used a tuning app on our phone to find the actual
pitch at this point. We noted down the pitch and then for gate in gates:
repeated the last line with a new value, noted down gate.direction = digitalio.Direction.OUTPUT
the frequency, and so on. These points can be used to gate.value = False
create a curve that plots the relationship between the
DAC value on the MIDI-to-voltage converter and the midi_channel = 1
actual frequency played. midi = adafruit_midi.MIDI(midi_in=usb_midi.ports[0],
The closer together these points are, the more in_
accurately you’ll be able to hit a note. channel=(0,1,2,3,4,5,6,7))
There are many ways you can convert this set of
points into a function to calculate the correct DAC basenote = 60
values for frequency. Some involve fancy mathematics max_val = 65535 #the module takes a 16 bit number
with exotic names, like sliding cubic splines. even though it's a 12 bit dac
However, we did a very simple linear interpolation
which basically plots a straight line between two
points on the graph and takes that. It’s not the most octave_size = int(65535/3.3)
accurate method of calculating the value, but it’s fast notes = []
and straightforward. If you want more accuracy, it’s
easier to take more data points rather than do more current_val = 0
fancy mathematics. inc = int(octave_size/12)
The code for this is as follows: for i in range(int (3.3*12)):
82
FORGE
Left
This is still the old
front for PicoMidi. As
you can see, setting
the font too small can
cause bits to break off
83
DON’T MISS THE BRAND NEW ISSUE!
SUBSCRIBE
FOR JUST
£10!
> T
HREE!issues
of The MagPi
> F
REE!
Raspberry Pi
Pico W
> F
REE!
delivery
to your door
NEW
+ FREE
MODEL!
RASPBERRY PI
*W
PICO W*
hil
es
toc
ks
las
t
Three issues and free Pico W for £10 is a UK-only offer. Free Pico W is included with a
12-month subscription in USA, Europe and Rest of World. Not included with renewals.
Offer subject to change or withdrawal at any time.
magpi.cc/subscribe
FIELD TEST
HACK MAKE BUILD CREATE
Hacker gear poked, prodded, taken apart, and investigated
92
PG
PG
86
ALPAKKA BEST OF
BREED
3D-print your own
games controller
PG
& BOLTS
Reviewing historical tech
PG
96
CROWDFUNDING
Cast your eye over a Raspberry Pi
robot and a screen printer
Bots! More bots and accessories
BEST OF BREED
ONLYTHE
BEST
Bots! More bots
and accessories
A collection of robotic-related kits and accessories
By Marc de Vinck
I
t’s time to look at robots and robot
accessories again. In the past, I have
covered robotic arms, wheeled robots,
walking bots, general robotic rovers and,
speaking of rovers, I even covered robotic
dogs and cats. Robotics has been around for a
long time. It’s a popular topic since it’s also how many
of us got into the DIY community. There are plenty of
kits out there, from beginner to advanced, and
hundreds, if not thousands, of different accessories.
I remember my first robot. It was a BEAM bot. If
you aren’t familiar with this type of simple robot, go
online and do some research – you’re in for a treat!
Generally speaking, BEAM bots are robots that use
simple analogue circuits rather than microprocessors
for control. They are fun, simple to build and many
times, when recycling an old piece of equipment like
a VCR or other techno trash, you might find all the
components needed to build one.
Once you build something like a simple BEAM bot,
you’ll inevitably want more control or functionality
with your bot. Fortunately, there are so many tutorials
online for building more advanced bots. It’s a robust
community, with lots of online resources and support.
In this Best of Breed, I’ll be looking at some of the
robotic kits and accessories that didn’t make it into
my previous articles. There are plenty of them!
86
FIELD TEST
A
fter making some BEAM bots, my
next robot was in fact a turtle bot. I
believe it was based on a PIC
microcontroller. It wasn’t easy to
program, compared to modern-day
microcontrollers, but it was still a lot
of fun. This Open Source Turtle Robot Kit by
MakersBox reminds me of my first turtle bot.
However, this bot comes preloaded with an Adafruit
ItsyBitsy M4 microcontroller with Python firmware.
That sure does make it a lot easier to program! The
main body of the robot is 3D-printed, and it includes
everything you need to get up and running. It’s easy
to build and, once built, you can have fun changing
the code and customising it. Made specifically for
beginners, we think almost anyone will have fun with
the Turtle Robot Kit. It’s great being able to draw
patterns and write words autonomously. See a video
of the bot in action at hsmag.cc/TurtleBotYT.
T
he Inventor 2040 W from Pimoroni is a
perfect board for making just about
any kind of robotic contraption that VERDICT
you can imagine. You can power
multiple motors, up to six servos, add a Open Source
speaker, or interface with countless Turtle Robot Kit
sensors. All this is thanks to the integrated Raspberry A classic bot to
get started.
10/ 10
Pi Pico with its Dual Arm Cortex-M0+ running at up to
133MHz with 264kB of SRAM.
This is the kitchen sink breakout for the Raspberry
Pi Pico. In addition to everything mentioned earlier,
you can power your project with AA or AAA Inventor 2040 W
batteries, or even add a LiPo battery, thanks to its A great
integrated circuitry. It also features twelve accessory for
addressable LEDs, found on each of the servo Pico owners.
10/ 10
breakouts and the GPIO/ADC channels. It’s difficult to
condense all the features into one review, so head
over to the website to learn more.
87
Bots! More bots and accessories
BEST OF BREED
T
he Mobile Autonomous Robotic
System, aka M.A.R.S, is a Raspberry
Pi Zero or micro:bit-based six-wheel-
drive robotics kit. This robust robotics
platform is capable of crawling over
large obstacles, and navigating its
environment, thanks to an ultrasonic distance sensor
and steerable mast for additional sensors. The kit
VERDICT
includes six motors, four servos, and eleven
different PCB boards. Assembly takes a couple of M.A.R.S. Rover
hours. And once you’ve built it, you’ll have a capable Robot
little bot that looks cool too. The design is inspired A very cool-
by the Mars Curiosity 2020 Rover from NASA/JPL. looking bot!
9/ 10
Go to the website to learn more, and remember to
pick up a Raspberry Pi Zero or a micro:bit to go along
with this kit, because they are not included.
88
FIELD TEST
T
he Zumo Robot is an Arduino-based
tracked robot that is less than 10 cm
× 10 cm, which qualifies it for mini
sumo competitions. Power is
provided by two micro metal gearbox
motors, and it features a stainless steel
VERDICT
bulldozer-like blade for pushing around Zumo Robot for
the competition. It has six infrared sensors for line Arduino
following or edge detection, an accelerometer, a A clean-looking
magnetometer, gyroscope, and a buzzer, allowing you bot.
9/ 10
to play your favourite victory song. No soldering
required – just add four AA batteries and an Arduino,
and you’ll be all set for some robotic sumo wrestling.
89
Bots! More bots and accessories
BEST OF BREED
T
VERDICT
he Bit:Bot XL Robot for micro:bit is a and you can control speed and direction via the Bit:Bot XL Robot
colourful little turtle-like robot kit micro:bit. The robot has a front ball caster in lieu of for micro:bit
based on the original, albeit much traditional front wheels, allowing it to turn in any Got a micro:bit?
smaller, Bit:Bot. Just grab your direction or even spin on its own axis. It also features Grab this kit for
micro:bit, add it to the bot, and get twelve smart RGB LEDs, two digital line-following some fun!
9/ 10
started coding in Microsoft MakeCode. sensors, two analogue light sensors, a buzzer, and an
It doesn’t get much easier to build a bot. The bot is integrated AA battery holder. It’s a fun bot, especially
powered by two enclosed micro metal gear motors, for anyone just getting started with programming.
MECANUM WHEELS
90
Learn coding
Discover how computers work
Build amazing things!
magpi.cc/beginnersguide
Alpakka
REVIEW
Alpakka
3D-print your own controller
By Ben Everard
M
aking a games controller is easier option of buying the base PCB that comes
easy – you just need a handful with one side of surface-mount components already
of buttons, a Raspberry Pi, and soldered on. We also got the additional components
about 20 lines of CircuitPython. directly from Input Labs to make sure we got the
We’ve done it many times. correct parts.
However, making a good games The remaining soldering is a mix of surface-mount
controller is a different challenge entirely. Subtle and through-hole, but it’s all very straightforward.
changes in the form factor affect how it feels in your There are no parts that should tax someone who’s
hand. The code has to relay the inputs accurately soldered before, and it would also make a reasonable
and with very low latency. What’s more, if you want first project, though given the cost of the PCB, it’d
to make it reproducible by other people, you need a probably be prudent to get a practice board for your
design that’s easy to copy and good documentation first few joints before taking this on. The assembly
to go with it. The team at Input Labs took on this instructions take you through the process, and there’s
Below
You have to solder challenge with the Alpakka gaming controller. even a 3D-printable jig to hold the PCB steady while
this side of the The design files are open-source, so you can start you solder.
PCB, but it’s pretty
straightforward completely from scratch if you like, but we took the With everything soldered into place, the next
step is 3D printing the physical parts. The parts are
designed to be printed in two different colours,
but obviously this is up to you. A couple of the
parts need specific slicer settings, and this is in the
documentation. There is one part that should be
printed in conductive filament because it acts as a
touchpad. Printing in conductive PLA isn’t particularly
difficult; however, it is expensive to get even a
small spool for just one part. There are a few hacks
people have used, including putting a bolt through
the case somewhere else and soldering this onto the
touchpads, or covering a non-conductive PLA part
in tinfoil. You can also purchase the part printed in
conductive PLA but, at 16 euros, it’s not cheap.
Tolerances on the 3D-printed parts are tight, and
there aren’t currently any different fit options for
anything other than the touch-sensitive part. We
found we had quite a bit of difficulty getting the
92
FIELD TEST
parts together. It took some shaving, sanding, and a sticks) and a keyboard-and-mouse desk setup. We
bit of lubricant to get everything moving nicely. The found we got much more control with the gyro setup Above
The brown filament
problem’s made worse by the fact that some of the than a regular gamepad, but mouse-and-keyboard is recycled PLA
switches that move the 3D-printed parts have very players might find it harder to get the same level coloured with algae
”
soldered, and printed all with it. You don’t have
your parts, it’s just a case It took some shaving, to dive all the way into
of screwing everything sanding, and a bit of the source code to do
together, and again, here that – there are profiles
lubricant to get everything
”
the documentation walks that allow you to set
you through the process. moving nicely different functions to
different features on the
IN YOUR HANDS controller. VERDICT
Once you’ve built an Alpakka, it feels great in your Perhaps the most obvious missing feature from
A great,
hand. It’s sturdy and just weighty enough to feel Alpakka is wireless support. This is something the hackable
solid. The most unusual feature of the controller is team are working on with Pico W. If this is important controller.
the gyroscope. If you touch the conductive hexagon, to you, then it might be worth holding back and We’d just like a
the controller emulates a mouse, with the tilt of watching development until this is ready. few tolerance
the controller defining the mouse position. This is We love the idea of an open, hackable controller, options.
8/ 10
pretty intuitive, and we found it quick and easy to get and the Alpakka is well on its way to being this. Once
used to. This kind of sits the controller between a wireless support is added, it’ll compare favourably to
traditional gamepad (which typically has two thumb- any of the commercial controllers we’ve used.
93
Nuts and Bolts
REVIEW
By Ben Everard
T
he life of a tech reviewer is thinking
deeply – perhaps too deeply – about
progress. Is version N+1 of a widget
really better than version N? Yes, it has
more gigabytes or transistors or fancier
graphics, but what does that mean? Is
it actually more useful? Will it result in an appreciable
difference to your life?
Yes, there is some value in novelty and enjoyment
to come from having a new shiny thing, but is it really
worth spending the monetary equivalent of tens or
hundreds of hours of work to upgrade?
Nuts and Bolts is the antidote to this. It claims to
look at seven inventions that changed the world, but
we’re not sure this is quite accurate. It looks at seven
lineages of inventions that have changed the world.
For example, while the book gets its name from nuts
and bolts, the actual invention talked about in the
chapter is nails. Roma Agrawal follows this thread
through rivets and screws until she reaches nuts and
bolts in just the final three pages of the chapter.
Agrawal takes us through technology by thread,
rather than by timeline, so the chapters cover similar
time periods, though in many cases the technology
is being developed in very different parts of the
world. Chapter one takes us from nails, through
rivets and screws, to nuts and bolts. Chapter two
looks at perhaps the most famous invention of all
time: the wheel. While this may seem like a single
invention, as Agrawal points out, it has in fact been
reinvented many times and, contrary to popular
belief, reinventing the wheel is not always a bad
thing. A spinning disc has powered everything from
the chariot Boudica rode when fighting against the
Roman legions, to the gyroscopes that help control
the International Space Station.
94
FIELD TEST
Next, we look at the spring. This has had some perform their roles better while retaining the same
obvious and not-so-obvious uses. As energy storage basic form.
mechanisms, they have enabled devices from The final chapter follows the development of
watches to archery bows, yet Agrawal also points pumps. This is perhaps the outlier because, while the
out the significant role they play in enabling modern same – or at least similar – problem is being solved,
cities to exist through their vibration-isolating abilities. there isn’t a single thread of development between,
We simply wouldn’t be able to live and work in close for example, the irrigation system at the Hanging
proximity if we had to live with all the noise we Gardens of Babylon and artificial hearts.
created echoing through the air. This book is well-written and excellently
researched. It links together scientific traditions
”
across the world in a coherent narrative. Given the
It’s a whirlwind tour scope of the material (which is most of technological
progress over the past couple of thousand years), it
rather than a is necessarily brief. This is perhaps best exemplified
deep-dive into particular by the scant two and a half pages on nuts and bolts.
”
It’s a whirlwind tour rather than a deep dive into
technologies
particular technologies. This speed lets you see how
the forces that fundamentally change technology
work, and focuses on the pivotal moments when
The magnets chapter probably travels the furthest technology takes a leap forward. It allows us to
in technological terms, as it goes from crude think about what technological improvement looks
lodestone-based compasses in Song dynasty China like without the marketing spin. By looking back,
to the World Wide Web. It’s certainly arguable that we can see how particular developments actually
this stretches the concept of a single invention changed lives in a way that’s hard to do when
beyond breaking point. However, there is a single looking at new developments. Like much of history,
thread of narrative that brings these together via it is an interesting story about the past that gives
Roma’s relatives, so we’ll allow her this indulgence in us useful lessons to incorporate into our daily lives VERDICT
family history. – at least, it does if your daily life involves being a
An entertaining
Two chapters on lenses and string follow, perhaps technology reviewer. summary of
the most straightforward line of progress. While most While it is quite self-indulgent to review the book what engineers
have improved in many ways since their inception, a from our own perspective, it does get to the heart have been up
Neanderthal would still recognise modern thread, and of what this book is about: what actual technological to for the past
scientists from the Middle Ages would recognise a progress looks like. As you’re reading this, you’re 2000 years.
10/ 10
modern lens. They are still primarily used to join stuff obviously the sort of person who reads tech reviews.
and to see things, respectively. An innovation here Hopefully, it’ll help you detect when we reviewers get
is in manufacturing and materials that allow them to a bit too caught up in the hype.
95
Crowdfunding now
REGULAR
CROWDFUNDING
NOW
Pi-Cast KVM
Access your computer from anywhere
N
ot to be confused with Kernel-based
Virtual Machines, the KVM in this
product stands for Keyboard, Video,
and Mouse. This device uses
Raspberry Pi’s USB Gadget mode
to appear to a computer that it’s plugged into
as a Keyboard and Mouse (and also other
USB Gadgets, such as mass storage).
You can plug this into any computer that
supports USB and HDMI, and it will take video
and give input to that machine. This means
that you can control the computer from the
PiKVM device which, in turn, can be controlled
over the internet. This gives you full remote
access to a computer – not just in the usual
way via the operating system, but as much
control as if you were sitting there. You can interact
with BIOS, emulated plugging and unplugging USB
mass storage devices, and more. Pi-Cast KVM is based
on PiKVM, an open-source project that also releases
hardware. However, the official PiKVM boards are
closed-source, while Pi-Cast is open (at least as far as
schematics). We haven’t tested any of them out, but
they have a similar feature set.
96
BUYER
BEWARE !
When backing a crowdfunding
campaign, you are not purchasing
a finished product, but supporting
a project working on something
new. There is a very real chance
that the product will never ship
and you’ll lose your money. It’s
a great way to support projects
you like and get some cheap
hardware in the process, but if
you use it purely as a chance to
snag cheap stuff, you may find
that you get burned.
Sake Hack
Drink in the trees
T
he idea behind this is simple. Take a spirit Secondly, why this? If it is indeed a bottle and a
of your choice, and a wood of your choice, block of wood, why do I need this particular bottle
and infuse the spirit with the wood in just and block of wood? Timber prices may have gone up
half a day. This sounds like a great idea. We in recent years, but they’re not quite at this level yet.
have some questions though. Firstly, how? We’re a bit cynical about this, but we haven’t
As far as we can see, you get a bottle and a bit of tested it out, so perhaps we’re missing something. It
wood. It takes a lot longer than half a day to get the would be lovely to experiment with wood-flavoured
flavour from wood into alcohol. We know, we’ve drinks without having to wait years, and perhaps the
tried. Unless they’re using some clever trickery they good folks at Sake Hack have discovered how to do
don’t talk about, we can’t see how you’d get much that, but we just wish that they’d tell us a little more
flavour from this. about it.
97
#76 ON SALE
22 FEBRUARY
THE
ULTIMATE
WORKSHOP
ALSO
RASPBERRY PI PICO
3D PRINTING
LASER CUTTING
ELECTRONICS
AND MUCH MORE
hsmag.cc/subscribe
Fractal fun
Fractals are everywhere. The branches on trees exhibit fractal-like behaviour, as
the veins on leaves, the blood vessels that supply our organs, the ice crystals
within snowflakes, and the endlessly undulating coastline. It turns out that our
teachers were right: mathematics really is beautiful, if only you’re looking in the
right place.
This issue, Karl Mose has brought the beauty of fractals inside using an incredibly
simple build: just a Raspberry Pi Zero, a screen, and a frame of your choice are
all it takes to build a portal into an ever-changing, endlessly fascinating world.
And it beats the hell out of algebra.
PiKVM
Manage
Manage your
servers
servers or PCs
remotely!
remotely!
PiKVM V4 Mini
Small, cost-effective, and powerful!
PiKVM V4 Plus
The most feature-rich edition
More connectivity
Extra storage via internal USB 3.0
Upgraded powering options
More physical security features
Extra HDMI output
Advanced cooling solution
Availableatatthe
Available themain
mainRaspberry
Raspberry Pi
Pi resellers
resellers
List of official
resellers by country: