HackSpace_-_Issue_78__2024

Download as pdf or txt
Download as pdf or txt
You are on page 1of 100

WELCOME EDITORIAL

Editor
Ben Everard
[email protected]
Features Editor
Andrew Gregory

Welcome to
[email protected]
Sub Editors
David Higgs, Nicola King

HackSpace magazine ADVERTISING


Charlotte Milligan
[email protected]
+44 (0)7725 368887

What does the future hold? It’s one of those impossible DESIGN
questions that is so inviting, and sometimes seems Head of Design
Jack Willis
straightforward. However, if you try to pin down the future, Designers
Sara Parodi, Natalie Turner
it becomes slippery. Who had a global chip shortage in their Illustrator
predictions for the early 2020s? Sam Alder
Photographer
Still, we’re trying to pin down a few people with a good insight Brian O Halloran
KPVQVJGƓGNFQHOCMGTVGEJPQNQI[CPFƓPFQWVYJCVVJG[VJKPM
CONTRIBUTORS
KUIQKPIVQJCRRGP$WVDGHQTG[QWVWTPVJGRCIGUCPFƓPF Marc de Vinck, Jo Hinchliffe, Rob
Miles, Nicola King, Andrew Lewis,
QWVYJCVVJG[JCXGVQUC[JCXGCDKVQHCVJKPM9JCVFQ[QW Phil King, Stéphane Godin
VJKPMKUIQKPIVQJCRRGP!9KNNVJGHWVWTGDG&RTKPVGFQTYKNN
PUBLISHING
VJCVTGOCKPIGGMUQPN[!9KNN#+EJCPIGGXGT[VJKPIQTKUKVLWUV Publishing Director
Brian Jepson
another fad? [email protected]
What do I predict? I predict that whatever happens in the Director of Communications
Liz Upton
technological or geopolitical landscapes, people will go on CEO
Eben Upton
OCMKPIVJKPIULWUVCUVJG[JCXGFQPGHQTVJGRCUVEQWRNGQH
million years. Civilisations come and go, technologies evolve, DISTRIBUTION
Seymour Distribution Ltd
DWVRGQRNGCTGUVKNNRGQRNGCPFYGOCMGVQQNUVQUQNXGQWT 2 East Poultry Ave,
problems. It’s what we’ve always done, and I suspect it’s what London EC1A 9PT
+44 (0)207 429 4000
we’ll always do.
SUBSCRIPTIONS
Unit 6 The Enterprise Centre
BEN EVERARD Kelvin Lane, Manor Royal,
Got a comment, Editor [email protected] Crawley, West Sussex, RH10 9PE
question, or thought +44 (0)1293 312193
about HackSpace

26
hsmag.cc/subscribe
magazine? PAGE [email protected]

get in touch at
hsmag.cc/hello FREE PICO W
WHEN YOU
SUBSCRIBE This magazine is printed on paper
GET IN TOUCH sourced from sustainable forests and
the printer operates an environmental
hackspace@ management system which has been
raspberrypi.com assessed as conforming to ISO 14001.

hackspacemag HackSpace magazine is published


by Raspberry Pi Ltd, 194 Cambridge
Science Park, Milton Road, Cambridge,

ONLINE England, CB4 0AB.


The publisher, editor, and
hsmag.cc contributors accept no responsibility
in respect of any omissions or
errors relating to goods, products, or
services referred to or advertised
in the magazine. 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
48

17 LENS
18 The Future of Making
Who knows what tomorrow brings?

THE FUTURE 28 How we Made: BrailleRAP


An open-source Braille printer for everyone

OF MAKING 34 Interview: The Sanjay Mortimer Foundation


We speak to CEO Teula Bradshaw about the man and the mission

48 Objet 3d’art
The most impressive maker business card we’ve seen

50 Letters
Robots, robots, robots, plus the wonder of Tiny Tapeout

Tutorial
18 3D-printed planters

28 66 Grow fresh, tasty herbs with a tiny bit of


space and some 3D-printed planters

4
CONTENTS

Interview
The Sanjay Mortimer
Foundation

86

Review
Bangle.js 2

34 How one visionary’s legacy is helping


neurodivergent young people into engineering

53 FORGE
94 Welcome to the cyborg age: monitor your life force
with an open-source computer worn on your wrist

54 SoM KiCad
Make an RP2040 temperature sensor

60 Tutorial Cash Register


Grab a Raspberry Pi Pico: we’re going to save capitalism!
85 FIELD TEST
66 Tutorial 3D-printing planters 86 Best of Breed
Maximise limited space with a vertical herb garden Start your soldering iron for one of these great kits

70 Tutorial Pico gamepad 92 Review Cardputer


Turn GPIOs into run, jump, and shoot buttons We don’t know why we love this tiny machine, but we do

74 Tutorial ROS: the Robot Operating System 94 Review Bangle.js 2


Control the way your robot moves A hackable smartwatch to measure all the things

82 Tutorial Animatronic wings 96 Crowdfunding Power Mole and Invisibility Shield


Take flight with a cardboard butterfly A neat solution to getting power outdoors. Plus invisibility!

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
magazine is published monthly by Raspberry Pi Ltd, 194 Cambridge Science Park, Milton Road, Cambridge, England, CB4 0AB, 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

Desktop
flamethrower
Right
A big gear with
numbers 0–9
sits atop the
ÅHTL[OYV^LY0[»Z
controlled by a
stepper motor, and
the numbers relate
By Mellow_Labs hsmag.cc/Mellow_Labs to the last digits
VM+HU»Z@V\;\IL
follower count

ile this one firmly under ‘do not try at home’.

F Unless you have the skills, patience, and safety


protocols in place to make what is essentially a DIY
flamethrower. It’s not just a flamethrower, however, it’s
a subscriber counter that shoots fireballs for every ten
new YouTube subscribers.
Maker Tomasz wanted to celebrate his friend Dan’s new YouTube
channel, so he built him something tangible to encourage him to
increase his online following. Rather than gifting Dan with
something pedestrian like a numerical display ticking upwards as
your follower count grows, Tomasz took inspiration from the name
of his friend’s YouTube channel: Gears, Code, and Fire. The final
product combines all three of the elements: gears, some code, and
the aforementioned incredibly dangerous fire.
Before the internet, one of the activities I imagine some people
partook in to pass the time was making a flamethrower out of a can
of deodorant and a contraband lighter. Tomasz’s follower counter
is literally the same thing but levelled up with automated gears
that switch the lighter aflame and spray the deodorant for you.
Fourteen-year-old me did not foresee being concerned with these
things so many years later, let alone in a professional capacity, but
here we are.

6
SPARK

7
Top Projects

REGULAR

Right
;OPZJSVJRPZSV\KLY
than thunder, and is
thus unsuitable for
bedroom use

3D-printed
marble clock
By Sakati1984 hsmag.cc/MarbleClock

e mastered clocks a while ago. Each iteration

W on the clock is basically an art piece. Polished


brass, Nixie tubes, even fancy Rolex wrist-
watches – for anyone with a phone in their
pocket, they’re all obsolete, but they look
brilliant. Joining the ranks of useless beauty is
this creation from Sakati1984. They’ve used a Raspberry Pi Pico,
227 marbles, twelve servos, two metal rods, and a handful of
other components to create this fully functional clock.
Rather than selecting balls on the fly to represent the characters,
the machine relies on the balls being in the right order, making
this useful for telling the time, but not for displaying live data. The
refresh rate is also seven seconds, so there’s no point adding a
seconds counter – for that, you can just look at your smartphone.

8
SPARK

9
Top Projects

REGULAR

0V;IH[[LY`JOHYNLY
By Clarke, Rembor & Ruiz2 hsmag.cc/BatteryMonitor

he internet is cluttered with pointless devices,

T promising convenience but offering little more


than outdated software, security vulnerabilities,
and subscription services offering an umbilical
link to companies that can put up prices when
they feel like it or even go bust.
This IoT battery charger by Liz Clarke, Kattni Rembor, and the
Ruiz brothers avoids all these pitfalls. For one, it’s built using
open-source hardware and software, so should Adafruit vanish
tomorrow, it’ll still work. And in contrast to many other IoT devices,
it’s actually useful.
This is a pretty simple build, beautifully executed: it’s just an
Adafruit ESP32-S2 Reverse TFT Feather (a Feather word with a
built-in TFT screen) and a MAX17048 LiPoly battery monitor chip.
The chip detects your battery’s charge, and the Feather displays it
Right
on screen. So far so good, but the IoT element is where this build @V\NL[HULTHPSVY
shines. Using Adafruit IO, the device can let you know when the a text message to let
you know that your
battery is charged, via a text message or an email. battery is full

10
SPARK

11
Top Projects

REGULAR

StoRPer
By Jo Hinchliffe hsmag.cc/Storper

s a child, Jo Hinchliffe used to love playing with

A Stomper 4WD cars – small, battery-powered


vehicles that could climb seemingly anything.
Now, as an adult, he’s made his own version,
powered by Raspberry Pi Pico and for sale on Tindie
at pocket money prices.
At just $16, this is a cheap way to get into robotics. It’s not a
full kit – you’ll need to supply your own N20-style motors, wheels,
and your own Raspberry Pi Pico which gives you programmability,
elevating StoRPer from a 4WD vehicle to a robot.
The PCB includes four motor drivers, giving users the flexibility
to drive the robot how they see fit. You could, for example,
keep it simple and attach one motor per wheel. Or you could
take advantage of the ability to control each wheel and opt for
mecanum-style wheels. Or you could choose to add one motor
per side to control two wheels, freeing up the other two motor
drivers for google eyes, gun turrets, or whatever else you want –
the choice is yours.
We like this project, and not just because it’s by one of our
favourite humans (and the author of our KiCad PCB design tutorial
series). We like it because, even though it’s cheap, it’s got loads of
potential for experimentation.

12
SPARK

Left
;OPZWYVQLJ[OHZILLU
VU1V»Z^VYRILUJO
MVYHNLZ¶^L»YLNSHK
OL»ZÄUHSS`NV[P[V\[
the door

13
Top Projects

REGULAR

Universal
remote control
By Armerdan hsmag.cc/UniversalRemote

eddit user Armerdan needed a device to replace

R an old Logitech Harmony 512 universal remote.


Like an absolute genius, they decided to model
the replacement device on a ‘1950s sci-fi death-
ray blaster-type thing’. If you squint hard enough,
you can make out that this device, which is based
on an Arduino Pro Micro, uses an enclosure from a guitar effects
pedal. What might escape you at second glance is that the
antenna is made from a couple of transparent plastic yo-yos that
have been drilled out, topped off with a drawer knob.
The maker isn’t 100% happy with how this device looks (even
though it looks awesome!). The joystick, while functional, isn’t in
keeping with the aesthetic they’re going for, so in the near future,
that’ll probably be replaced with a miniature red ball on a silver
pole. We reckon it’s perfect as it is, though – if you watch the
original Star Wars film closely enough, you’ll notice that all their
sci-fi weaponry is bits of broom-handle held together with sticky
tape. In comparison, this is a paragon of design harmony.

14
SPARK

Power switch
[V[\YU[OL;=VU
and off

Joystick: directional
control for navigating
menus

Rotary encoder Coloured buttons


]VS\TLJVU[YVS activate macro
Push to mute functions to select
input sources

15
The new case from the HiPi.io team

Rapid tool-free assembly and disassembly Secure microSD card cover


Large internal volume for HATs VESA mount support
Compatible with Pi 2/3/4 Molding-configurable output ports
Multiple lid options customizable for volume orders
Passive & Active Cooling options Printed logo for your branding

Available at these great Pi stores:

Contact your favorite Pi store if it’s not listed here


HACK MAKE BUILD CREATE
Uncover the technology that’s powering the future

PG

28 PG
18
HOW I MADE:
BRAILLERAP
If you like laser-cut acrylic, open- THE TECHNOLOGY
source hardware, and making life-
enhancing technology massively OF THE FUTURE
cheaper, we’ve got a treat for you

What’s coming round


the bend?
We find out what’s happening
PG
in the world of making
34
INTERVIEW:
THE SANJAY MORTIMER
FOUNDATION
Helping neurodivergent minds to find
their place in science and engineering
The Future of Making

FEATURE

THE FUTURE
OF MAKING
What lies ahead for the world
of making? We ask the experts…

Words by Phil King

redicting the future is fraught with

P problems – we’re still waiting for


flying cars to become the norm. Still,
we’ll give it a go… We’ve consulted
some movers and shakers on how
things may change in the makersphere
over the next few years. Will making become more
mainstream? What trends are we likely to see in the
fields of SBCs, microcontrollers, robotics, and 3D
printing? What does the future hold for open-source
hardware? And will the emergence of AI affect how
makers go about creating projects?
Looking ahead towards the next five to ten years
in the makersphere, the experts we consulted were
able to point out some emerging trends.
First of all, on a cautionary note, Limor Fried hopes
there won’t be another chip shortage, “as that really
set folks back and damaged a lot of the industry:
there’s recovery, but we know of a lot of maker
companies that are still struggling or closed shop.
The flip side is we’re starting to see more chips
and technologies come out, although a lot of it is
focused on AI – it will be interesting to see how the

18
FORGE

excitement of LLM/GenAI translates into making… to ChatGPT], into their builds.


or not!” This, combined with the continuing
“In the longer term,” says Kevin McAleer, “I improvements in single-board computers
think we’ll see better and more affordable tools for and microcontrollers.”
makers, continuing the trend with developments in Regarding the latter, Jeff Geerling foresees
3D printing and laser cutting. I also hope to see an more people migrating into embedded
increase in the number of makers who share their designs from “now more-expensive single-board
projects online; I find it a great source of inspiration computer-based projects. That started to happen
and we need more!” during the industry-wide parts shortage, but it’s
accelerated as more projects show the value of well-
THE RISE OF THE MACHINES supported microcontrollers like the RP2040. ESP,
We can expect AI to become more prevalent in Arduino, and Pico devices are being integrated into
making, says Andrew Sink. “It’s hard not to see AI so many projects, it’s almost surprising when I see a
and generative tools becoming more commonplace new product that doesn’t use one of them.”
as the barrier to entry (cost, required programming The lower costs and greater user-friendliness
skill, etc.) continues to lower. Personally, I am excited associated with microcontrollers will also draw
to see new software tools and workflows enabled more people into the world of making, reckons Jeff.
by these advancements, especially where niche “These platforms are beginner-friendly. Making the
hardware and software disciplines overlap.” technology more approachable with things like full
Kevin adds: “I think we’ll see an increase in MicroPython support means more makers can build
the sophistication of the kinds of projects people features that were very difficult just a few years ago.
are building where they combine AI tools, such I see an influx of makers who don’t have much of a
as Ollama [the locally hosted, offline alternative coding background.”

19
The Future of Making

TUTORIAL

“It will be interesting


to see how the
excitement of LLM/
GenAI translates
into making… or not!”

MAINSTREAM
MAKING how to craft a ‘smart’ chicken coop monitor or
an automatic pet food bowl. Fashion lovers can
drape themselves in LEDs! Skateboarders can use
accelerometers to analyse their air time.”
Kevin points out that making is already more
This brings us neatly onto the subject of whether mainstream than it was ten years ago. “I think
Above
Programmable robots making will become more mainstream over the next that’s a combination of events like MakerFaire,
are cheap enough
these days, or if you
few years. magazines (like HackSpace), and the availability of
want a challenge, you “I think it will continue to grow,” says Matt Venn. parts from companies like Pimoroni and Adafruit. The
can use 3D printing
(or bend sheet metal) “We see a lot of creativity with mobile phones and ecosystem for makers is there for makers to be part
to build your own apps, as more people have access to tools, but I do of and to learn from other makers too, particularly
Above Right think that there is something special about physical with social media and YouTube….” He has one
Limor Fried – an making. Holding something in your hands that you caveat: “I think for making to become even more
electrical engineer
and the founder of made is special, and as the barriers to that continue mainstream, it needs to lose a bit of its nerdy image.
Adafruit Industries
(adafruit.com). She
to drop, more people will get involved. Having access Making is for everyone!”
PZ]LY`PUÅ\LU[PHS to the tools, equipment, and time is a privilege that
in the open-source
hardware movement still many people don’t have, so as well as appealing LOWERING BARRIERS
to people from different backgrounds, we also need Not only is making likely to become more
to support them when they are interested.” mainstream, it will continue to have an impact on
“Making will be more mainstream because of mainstream technology, says Jude Pullen. “Through
accessibility and community,” agrees Jeff. “Kids their enthusiasm and experimentation, makers can
especially are at the leading edge of ‘mainstream’ create unexpected breakthroughs in technology that
maker culture, for example CrunchLabs build boxes, shape our future. It spreads the ‘bets’ on where the
or Raspberry Pi’s deep penetration into classroom next revolution or evolution will come from… The
STEM projects. That will have long-term effects as makerspace communities often ‘tinker’ with future
kids are exposed to the tech, just like my generation tech long before it reaches wider adoption.”
was inspired by video games and the early internet.” He gives the example of bio-hacking communities,
Limor concurs: “We think that making gains a lot “where even school kids can sequence a plant
of STEAM (ha!) from being introduced in schools, genome using only ~$1000 worth of hardware. This
so as we saw schools returning back to in-person is kind of mind-bending when you think about it.
instruction and workshop projects, we’ll also see Another space I’m watching is edge computing, but
more makers. I’m a strong proponent of meeting this is going to be governed by privacy and security.
kids where they are: if they have a background that So this is sometimes the ‘friction’ between makers’
they love medicine, teach them about how to build can-do attitude, and industry still needing to be
a pulse sensor. If they love animals, show them compliant and safe.”

20
FORGE

Left
When it comes to
open hardware, more
and more projects
are being OSHWA
JLY[PÄLKZ\JOHZ
this Adafruit Proto
Doubler PiCowbell
for Pico

Far Left
Matt Venn – science
and technology
“I do think we’ll see a communicator
and electronics
lot more work in the engineer who runs
the Zero to ASIC
chip design course –
ASIC / semiconductor zerotoasiccourse.com

space”

BETTER BOARDS
In the field of single-board computers and
microcontrollers, Jeff says that software support
and community are paramount. “Companies like
Raspberry Pi build ‘stickiness’ to their platforms
with software and support. The companies that get
that, and invest in software and hardware-adjacent
community development, will lead the next few
years of growth.” seeing more folks get comfy with the idea of an
While he reckons there’s still headroom for more interpreted language on a microcontroller: with tons
performance in the boards, “I think on the hardware of processing speed and RAM, why not convert
side, there will be more competition on integrated that into ease-of-use! And RISC-V is also gaining
chip features and efficiency, like with ESP devices attention; it’s great to see a competitor to Arm.”
adding built-in Matter/Thread support.” The use of SBCs in industry will continue to grow,
“I think we’ll continue to see innovations at she adds. “Why design when you can pop in a ready-
all levels,” agrees Matt. “I think the RP2040 is a to-go pre-built and pre-certified machine?”
remarkable chip that no one expected. We also Cryptographic chips, such as in the Arduino Nano
see more FPGA fabric incorporated (e.g. the latest 33 BLE, will make boards more feasible for industrial
Microchip parts). We’ll have to see whether people and commercial use, says Jude, where data security
go for PIO or FPGA. One thing where Raspberry is vital. “I think it’s a clear sign of Arduino’s journey
Pi excels is in documentation. They know it’s as catering to makers/amateurs, but now wooing those
important as the hardware if you want adoption in the who also need a more professional architecture.”
maker space.” He gives the example of an insulin monitor/
He also thinks there’s still room for speciality dispenser that was shown to him when he worked
devices such as the Daisy (electro-smith.com). for Sugru: “The idea was certainly solid, but the
“They aren’t exactly doing anything new, but they’re execution was not robust enough for us to publicly
very successful because they have a niche, and they champion. Some ten years later, this is something
are the easiest way to do embedded music.” many startups are working on – so it’s not the
Limor predicts lots more use of microcontrollers originality; it’s the security, the ‘real-world’ stuff, that
for IoT and home automation. “We’re also is the key to success.”

21
The Future of Making

TUTORIAL

“We will probably


see a lot more hobby
robots becoming
full products”

Above
Kevin McAleer – a
hobbyist robotics
fanatic who likes
to build robots
and share videos
about them on
@V\;\ILHUK°OPZISVN
(kevsrobots.com)

Above
Better CAD tools could
help makers to create
more complex 3D printing
projects, such as this 7.4:1
scale model of a Mitsubishi
Pajero by Casadio Design

Right
Makers are pushing the
boundaries in 3D print
technology, such as
with Jón Schone’s TIME
machine, which is in effect
two 3D printers in one

3D PRINTING
“In 2024, makers can purchase a desktop filament adapted in ways that are difficult to predict. It’s an
3D printer that is fully assembled and ready to print exciting time for desktop 3D printing, and the future
for under $300,” notes Andrew. “It’s hard to predict is brighter than ever for this technology.”
when the market saturation of desktop 3D printing Advancements in 3D printing hardware will
will occur, but we’re reaching a point where makers be matched by those in software, reckons Jude.
are more likely to have used a desktop 3D printer “Although there will be more detail, more materials,
than not, something that wasn’t always the case. new processes (FDM, SLA, SLS, etc.), and hopefully
“The exciting next step for the field of desktop better safety awareness (do please get extraction –
3D printing is the continuing trend of makers who even with PLA!). I think it’ll be software that creates
are pushing the boundaries of existing technology the biggest impact in innovation: CAD software
and sharing their work to inspire a new generation of will reasonably start to have ‘feedback’ loops. For
makers,” he continues. “For instance: Jón Schone’s example, photogrammetry is now so advanced that
TIME (True Independent Multiple Extrusion) 3D if you scanned the resulting 3D print you created, the
printer (hsmag.cc/SchoneTIME), which essentially 3D printer might be able to ‘look’ at the difference
adds an entire second 3D printer to an existing 3D between what you got and what you designed – and
printer, is a novel development that will no doubt be offer to create a second improved attempt.”

22
FORGE

DIY robotics
In the world of robotics, Kevin an SBC and microcontroller
McAleer thinks we'll see more perspective, I think we'll see a lot
sophisticated homemade robots: more power and capability in this
“Once a technology is open- space, particularly around AI add-
sourced and documented well, ons to make, say, object detection a
it tends to be picked up and simple add-on, freeing up the main
enhanced by the community. If SBC board to do other work. Large
you compare this decade with say language models have seemed to “I see an influx of
the 1980s, you'll find robots being come out of the blue in the last
created all over the world in coder two years. I suspect we'll see a lot
makers who don’t have
dojos, maker spaces, schools, more development in this area.” much of a coding
and colleges.” To this end, he thinks we’ll also
He is also hopeful that the hobby see more AI-related add-on boards background”
will become less expensive, as for SBCs.
“the parts for robots can currently
be an obstacle for some.”
He doesn’t envision robots
becoming widespread in the home
yet, though. “I think we're still a
Left
long way off from having robot Jeff Geerling –
software developer
butlers or humanoid robots in and YouTuber whose
general, and that's for a number of channel shares a wide
]HYPL[`VM[LJO°]PKLVZ!
reasons, including cost, complexity, hsmag.cc/JeffGeerling
and more practical aspects such
as battery power and safety
concerns.” The news is brighter
on the DIY robotics front, however.
“We will probably see a lot more
Above
hobby robots becoming full DIY robotics is set to grow in
products – Otto DIY [ottodiy.com] popularity and scope. Expect to
see more hobby robots become
is a good example of that.” full products, such as the ultra-
customisable Otto DIY
Home-built robots are likely
to become smarter, too. “From

On the subject of open-source hardware,


OPEN HARDWARE
Limor is optimistic. “It’s looking good – there’s Jeff notes that “open-source hardware is always
a lot of contributors to OSH and OSS; the a hard nut to crack. The time and money involved
OSHWA certifications list goes up every in building great hardware products is exponentially
week (hsmag.cc/OSHWAList) – it’ll probably greater than software, so I don’t see open-source
hit 3,000 registered projects this year. We’re hardware as a movement ever approaching the same
seeing more work from folks on ‘democratising’ level of adoption as with software.”
documentation and automation: using third-party He still thinks developing open hardware has value,
low-quality manufacturing to iterate and share however. “For makers especially, building or adopting
designs with the manufacturing documentation an OSHW design can be a great boon to your own
‘cooked in’. And, of course, KiCad 8 is an exciting work. Unless you have a strong desire to become
milestone. Having a top-to-bottom open-source an entrepreneur, building completely open designs
toolchain is great for the longevity of open- or working with others on existing designs amplifies
source hardware.” your abilities, just like with software.”

23
The Future of Making

FEATURE

Hack and repair


Makers have long taken an interest when they are provocateurs. Ken
in hacking and customising existing Pillonel is a great example of how
commercial products. The right to he hacked an iPhone to have a
repair is also an important concept, USB-C connection. I interviewed
especially with regard to being eco- him as part of my series for DS
friendly, but some manufacturers (hsmag.cc/FightToRepairEp9),
are resistant. and he does not of course believe
“Having just written a series on he single-handedly made Apple
RS DesignSpark on repairability, ‘change their ways’, but I think he “Makers can
called The Fight to Repair (hsmag. was certainly an agitator that made create unexpected
cc/FightToRepair), this has been it hard for Apple to try to virtue
on my mind a lot lately!” says Jude signal. And although a USB-C plug breakthroughs in
Pullen. “I think industry will improve is just one part of the puzzle, it
its repairability of its products when was a way to say ‘try harder’ to a
technology that shape
it establishes new business models; company that deep-down lives or our future”
e.g. Apple is perhaps not wild about dies by how ‘cool’ it is deemed by
making a phone last twice as long, the early-adopter community.”
if it means it halves its profits, so Jude thinks there is a need
it needs a spares/upgrades/etc. and place for “keeping companies
model to ‘fill the gap’ left by honest, with a mix of humour/
rampant consumerism.” satire and innovation/provocation
Returning to the subject of to not greenwash or only tackle
makers, “their role I think is best the trivial.”

THE IMPACT OF AI rote work, but it’s mistake- and hallucination-prone – I


Jeff notes that many makers are already using AI wouldn’t trust it to design a board!”
tools “to assist with design, whether it’s in coming Jude adds, “I see AI tools like this as just ‘tools’,
up with an initial code structure, a 3D model, or even and potentially as ‘hallucination machines’ – their
imagery or prose for documentation! For some things, outputs are not clear, rational, or robust, but like a
especially mundane aspects where machines can cut dream, they can spark something. They will improve,
Above Right
Jude Pullen – creative out some of the boring work, this is a huge boon.” but right now, this seems enough of a reason to give
technologist, Andrew agrees that “AI-assisted tools are quickly them a place in our ‘toolkit’.”
prototyping expert,
engineer, life hacker, becoming a fast way for makers to solve problems
and product designer
(judepullen.com)
that would have historically been a blocker for DON’T BELIEVE THE HYPE
them. For instance: a maker who is struggling to Jeff doesn’t see AI replacing human creativity in the
understand a line of G-code is able to receive a making process. “Despite all the AI hype, I see it as a
detailed analysis using a generative tool and deepen tool – just like a good IDE, a well-stocked workbench,
their understanding of the syntax, as opposed to or a search engine – and not as something that
searching for hours for a solution.” replaces the creative work makers do.”
“AI is so early,” says Limor, “nobody could Andrew observes that it’s “difficult to define a
see the emergent behaviour from massive point at which a maker is no longer ‘making’ a thing.
LLMs like ChatGPT. Personally I love using AI for Artist Sol LeWitt used sets of written instructions to
help with coding Arduino libraries (hsmag.cc/ create artworks as far back as the 1960s (i.e. vertical
AdafruitAIDriver), and Python. I check what’s lines, not straight, not touching, covering the wall
being generated and credit the AI with help; I like to evenly), which are arguably an analogue version
share the whole chat I used to do the code creation. of using an AI-assisted tool to generate the same
It saves me tons of time. I’m not yet using it for completed work. Is that considered making? Good
hardware design explicitly – it’s great for repetitive/ news: it’s up to you!

24
FORGE

Design your own chip


Matt Venn thinks that more For the time being, at least, he
makers will embrace designing thinks open-source chip design will
“We’re reaching a point
their own custom chips, like those be of most use for academia and where makers are more
created in his Zero to ASIC course training, self-guided learning. “It’s
(zerotoasiccourse.com). “We’ve hard to find a low-volume use case likely to have used
gone from 0 to 1000s in a couple that only an ASIC can fulfil.”
of years; we’ll see where it goes. As for the future of open
a desktop 3D printer
The downsides are the long wait hardware, “I do think we’ll see than not”
times to get hardware back, but the a lot more work in the ASIC /
upside is that people can do things semiconductor space. The old
they’ve never been able to do factories won’t go away; they’ll
before. With Tiny Tapeout 6, we’ve get cheaper. And as more people
added mixed signal support, which learn the tools, we’ll see novel
is a good answer to ‘why not just applications that didn’t make sense
Left
do it on an FPGA?’.” before. As an expert recently Andrew Sink – senior
He says the process is “already told me, the professional tools applications engineer
at a leading additive
as simple as designing and ordering are crap because the number of manufacturing
technology company,
a PCB, but the trade-off with users is so low. The open-source he shares his 3D
simplicity is depth. You could create tools enable faster innovation printing adventures
on YouTube –
a chip with an AND gate on it, and and bug fixing so they’ll improve hsmag.cc/AndrewSink
order it within 30 minutes from quickly – although it’s unlikely
TinyTapeout.com, just as you they’ll ever get the billion-dollar
could make a PCB with a single investments the closed-source
LED on it.” ones benefit from.”

BRIGHT FUTURE
One thing our experts agree strongly on is that the all help to create an environment for makers to find
future is bright for the makersphere. “I’m incredibly their happy place and to share parts of their soul with
optimistic about the future of making,” says Jeff. others in the form of robots, code, projects, builds,
“For many people, making is a compulsion, and and art.”
outside of the freedom of expression being stripped Finally, Jude notes that so many more of the
away, there’s nothing that will stop it!” world’s problems are “being solved by small groups
“There are so many cool projects out there,” adds of people… the global community can do more than
Kevin. “The community, suppliers and educators ever before to shape a better future.”

25
FREE
Pico W
GET SIX for subscribers!

ISSUES
FOR JUST:
£30 UK / €43 EU / $43 USA & Canada
SUBSCRIPTION

SUBSCRIBER BENEFITS:
> Get every issue of > Learn from hackers and
HackSpace magazine makers in our in-depth
delivered to your door tutorials
> Early
access to the > Get a free
PDF edition Raspberry Pi Pico W

hsmag.cc/subscribe
Open-source Braille Embosser

FEATURE

AN OPEN-
I
magined in 1829 by Louis Braille,
Braille is a tactile alphabet for blind

SOURCE
and partially sighted people. Made
of a grid of six dots, each Braille cell
corresponds to a letter or an escape
code to specify a capital, number, or

BRAILLE
punctuation mark. As each cell consists of
six dots, there are 64 combinations available.
Due to the limited number of combinations,

EMBOSSER
each country has adopted its own Braille
standard. The usage of computers and
information technology shows the need for
a better standard with more combinations.
Since the start of the 21st century, we also
have eight-dot Braille standards. At this
time, eight-dot standards are used only on
numerical devices, such as Braille displays.

28
LENS

Left
Clear acrylic lets you
see what’s going on
inside

MAKING A BRAILLE DOT


When creating Braille documents, a simple
method is to use a metal needle and an
elastic material, such as a mouse pad,
placed behind the paper. You create the PLANNED DESIGN
Braille dots by pressing the needle gently Our plan was to create a standard 2D board
onto the paper, causing it to deform. with a Braille needle on a carriage, building
However, the dot will have a blurred edge. on previous tests conducted on modified
We started this project by using an anvil, CNC or 3D printers. Since Braille dots are
and found that using a 2 mm hole in a flat always at the same depth, we don’t require
3D-printed part produced better results. precise control of the tool depth. Therefore,
This method created a dot with a nice a simple solenoid is sufficient to manage
relief over the paper and a sharp edge. the up and down positions. A solenoid is
Unfortunately, the 3D-printed parts proved much faster than a stepper motor or servo.
to be unreliable, as the material fell apart Just think about a standard CNC with a
after a few dots. After testing, we found Braille needle on a solenoid as a tool. As
that the anvil must be made of metal. We we’ve seen, a good Braille dot requires a
Above
also found that the hex hole of an M3 grub needle and an anvil. Therefore, our Braille 3D printing means other
screw is perfect for our needs. As a result, tool consists of two parts. The paper is people can build this
machine
all of our designs are now made with a placed between two carriages, with the
30 mm grub screw. The hex hole serves bottom one using a solenoid to punch dots
as the anvil shape, and we glue and lock while the other acts as the anvil. The paper
a hex nut onto the other end to adjust the is fed with stepper-controlled rollers to
depth of the Braille dot. control the position.

29
Open-source Braille Embosser

FEATURE

Above
The machine is small PAPER FEED We then decided to try a simpler system
LUV\NO[VÄ[LHZPS`VU When handling the paper, the sheet must using only two rollers, as it is easier to align
a desk
be securely held between the two rollers. two points. We had what we thought was
The bottom roller is driven by the Y motor, a good design that was simple to build
while the top roller applies the required and reliable. We made a few prototypes
pressure. If the sheet slips on the rollers, using this design and had some success.
it can lead to inaccurate printing or even However, with only two rollers, you can’t
cause a paper jam. use materials like aluminium cans.
We created our first prototype using We then attempted to upgrade the paper
three rollers and paper pressers. The presser by adding springs, one for each
pressers were all situated on the same presser. We found the GT2 tensioner spring
8 mm linear rod axis, with two springs was both affordable and easy to find. So,
at each end to ensure good pressure on we redesigned the presser with two plastic
the paper. Although this system worked parts articulated around an M3 screw, using
adequately, it was difficult to build and a GT2 tensioner as a spring. Success! This
adjust. So, we decided to experiment with new presser is more flexible and applies
three independent pressers and relied firmer pressure on the paper, resulting in
Below
It was hard to get the on the plastic’s elasticity to maintain the a better paper roll that securely holds the
paper feed to work pressure. However, the paper feeding sheets of paper.
well, but we’re happy
with our solution system was still tricky to adjust and was
not very reliable. DETECTING THE EDGE
On our board, we need a reference to
define an absolute X and Y position on the
paper. On the X axis, there is a standard
end switch that detects the minimum
position of the bottom carriage and defines
it as the 0 position for X. The Y axis runs
along the paper sheet, so we must detect
the start of the paper. Initially, we used a
standard end switch with the end switch
lever in contact with the paper to detect the
top edge of the sheet, defining the top edge
as the 0 position for Y. It worked fine, but it
was difficult to set up – the paper jammed if
it was too close to the end switch and was
often undetected if too far. To improve

30
LENS

“WE HAD WHAT WE THOUGHT WAS


A GOOD DESIGN THAT WAS SIMPLE TO
BUILD AND RELIABLE”

Left
The complete machine
ready to run

Below
Maybe I’m biased, but I
think this looks good as
well as being functional

the design, we used a 3D-printed lever to SOLENOID ALIGNMENT


offset the end switch and a hex screw for One recurring issue we encountered
fine-tuning the detection position. was the Braille needle would fail to lower
when the solenoid was activated and
PAPER PATH deactivated, resulting in paper jams or
Another important aspect of the paper missing Braille dots. The bottom carriage
feeding process is the path that the material proved the most challenging part to create.
takes within the device. It’s a delicate The solenoid axis needs to move freely,
process, and even the slightest obstacle so we designed a 3D-printed part that
can cause a paper jam. Initially, we used acted as a guide for the needle. Though
a plywood or PMMA plate with a 10 mm everything seemed to work fine when we
path for the Braille needle in the centre. tested the Braille needle manually, we
However, this setup often resulted in paper found that the needle would often lock
jams. As the paper travelled downwards, in the top position when we used the
sometimes one of its corners got caught electromagnet with power. As we were
on the edge of the needle path, causing using a cheap electromagnet, we noticed
a jam. To overcome this problem, we that the position of tapped holes on the
experimented with various 3D-printed side of the solenoid was not accurately
designs to keep the paper securely on the aligned with the solenoid axis. In some
tray. However, these designs required post- solenoids, there is a slight angle between
processing, and we found that it’s better the axis and the anvil. This can cause a
to let a piece of paper go its own way if lateral force on the axis when the needle
it’s sticking in the printer. We can lower enters the anvil, which is enough to lock
the tray on the output side, just after the the solenoid in the activated position.
needle’s path, and it works incredibly well! We found that the best solution was to
The lesson we learned is to never force make oblong holes for the solenoid fixing
a piece of paper and instead let it travel screws – this allowed us to finely adjust
through freely. the solenoid axis with the anvil.

31
Open-source Braille Embosser

FEATURE

Left
A WORD ABOUT SOFTWARE The dots left by the machine are easy for people to feel
We now have a device that enables us to ^P[O[OLPYÄUNLYZ

move a Braille needle along the X axis using


a stepper motor, and we can move the paper are different from lasers; you can’t activate
along the Y axis using another stepper motor. them for too long. Without a cooling system,
This is perfect for a 3D printer controller you must respect an activation/deactivation
board with Marlin firmware. We modified ratio, which was low with the cheap, powerful
the Marlin firmware to slightly adjust the Y solenoid that we used. Initially, we relied on
homing. If the end switch is on, detecting the activation/deactivation command in the
the paper, we move the paper backward until G-code file, but users reported burning the
the switch is off. If the end switch is off, we solenoid, usually by leaving the software
move the paper forward until the switch is without safeguards. To address this, we made
on. This special homing feature allows the another change in the Marlin firmware. The
user to easily load the paper into the rollers, M3 S1 command still activates the solenoid
and the 0 Y position is automatically set at but only for 50 ms. This is long enough to
the top edge of the sheet. emboss a dot and ensures that the solenoid is
The power output designed for the heatbed never activated longer than 50 ms.
is used for the solenoid control. Initially, we We now have a G-code-programmable
used the G-code M3 command to enable device to emboss Braille dots anywhere on
and disable the solenoid. This command is a sheet of paper. To emboss a document
typically used for laser control, where M3 S1 in Braille, you can use AccessBrailleRAP.
activates the laser, and M3 S0 deactivates This software translates text into Braille
it. We used the command in the same way characters, calculates the position of Braille
to control the solenoid. However, solenoids dots on the paper, and then sends the

32
LENS

Left
Paper can be one of
the hardest materials
to work with because
of its tendency to jam
and crease

MORE INFO ABOUT BRAILLERAP


BrailleRAP website: hsmag.cc/BrailleRAP
Assembling guide: hsmag.cc/BrailleRAPdoc

“THERE ARE DIFFERENT


G-code sequence to the embosser. However,
you still need to translate the text into Braille.
As we discussed earlier, there are different
standards for Braille across the world,
including variations between the UK and the STANDARDS FOR
BRAILLE ACROSS
US. As French lecturers, we started with
basic software to translate text into Braille.
However, we realised that there were many
complex nuances involved in the process.
For instance, marking a number is not the
THE WORLD”
same as marking a group of numbers, and
marking a capital letter is not the same as
marking an entire word in capital letters. publicly available, many contributors have
These details require careful attention provided data files for their own languages.
to ensure an accurate translation. While Currently, Liblouis can translate Braille into
searching online for an open-source Braille more than 200 Braille standards. All the
transcription library, we found Liblouis. It is major languages of the world are supported,
a grammar interpreter that enables you to including and some regional ones. So, we
produce Braille translations using text files, stopped trying to code Braille transcription,
removing the need to write code for a Braille used Liblouis, and focussed on providing
translator. As Liblouis is open-source and accessible software to use BrailleRAP.

33
The Sanjay Mortimer Foundation

INTERVIEW

HackSpace magazine meets…

The Sanjay Mortimer


Foundation
Honouring the memory of a 3D printing pioneer

ven if you haven’t heard of him,

E if you’re into 3D printing you’ve


almost certainly used something
created by Sanjay Mortimer, or
else have used products based
on his ideas. Sanjay was a co-
founder of E3D, manufacturer of 3D printer
parts, and the decisions he took at the start
of his career in 3D printing literally shaped
the industry – the standard nozzle for FDM
ĻľÿěŊãľłϰÿłϰΊλΎϲęęϰØãÙ¾ŏłãϰ€¾ěČ¾ũϰü¾ßϰŊü¾Ŋϰ
łÿűãϰßľÿēēϰØÿŊϰÿěϰüÿłϰŊĢĢēØĢŨϰ¾ŊϰŊüãϰŊÿęãμϰöĢľϰ
ãŨ¾ęĻēãλ
After Sanjay died in 2021, those who
knew and loved him (more on that later)
ßãÙÿßãßϰŊĢϰüĢěĢŏľϰüÿłϰęãęĢľũϰØũϰüãēĻÿě÷ϰ
ěãŏľĢßÿŢãľ÷ãěŊϰĻãĢĻēãϰżěßϰŊüãÿľϰĻē¾Ùãϰÿěϰ
engineering, an area that Sanjay loved.
Since then, the Sanjay Mortimer Foundation
has worked with E3D to put on the Sanjay
Mortimer RepRap Festival, and has started
ŊĢϰöŏēżēϰÿŊłϰęÿłłÿĢěϰŊĢϰ÷ÿŢãϰěãŏľĢßÿŢãľ÷ãěŊϰ
young people a leg up into the world
of STEM.
We spoke to Teula Bradshaw, chief
ãŨãÙŏŊÿŢãϰĢöϰŊüãϰ€¾ěČ¾ũϰXĢľŊÿęãľϰ
Foundation (sanjaymortimerfoundation.org),
ŊĢϰżěßϰĢŏŊϰęĢľãϰ¾ØĢŏŊϰŊüãÿľϰęÿłłÿĢěμϰţü¾Ŋϰ
they’re doing to help more neurodivergent
young people into engineering, and the
ēã÷¾ÙũϰŊü¾Ŋϰ€¾ěČ¾ũϰēãöŊϰØãüÿěßλϰ

34
LENS

WHAT IS NEURODIVERGENCE?
The term ‘neurodiversity’ refers to the natural variation in
neurodevelopment across all individuals. We’re all different.
‘Neurodivergent’ describes a person whose neurodevelopment
falls outside of the ‘typical’ range, including but not limited to
neurodevelopmental differences such as autism, attention deficit
hyperactivity disorder (ADHD), dyslexia, dyspraxia, and Tourette’s
syndrome, among others.
Various academic studies have shown that neurodivergence is a massive
hindrance within the traditional educational setup. The Sanjay Mortimer
Foundation (SMF) has sifted through loads of research, most of it from US
academia. Kent (2011) showed that high-school students with ADHD have
significantly lower grades, and are over eight times more likely to drop
out than their peers without ADHD. And according to Berkeley (2010), only
9–20% of students with ADHD graduate from college, compared to 68% of
neurotypical thinkers.
High dropout numbers consequently means that neurodivergent thinkers
are under-represented at all levels of higher education. And in the UK, the
Office of National Statistics has found evidence that neurodiverse people
are massively more likely to be unemployed, and that half of those who
are employed are under-employed, meaning that they have skills that are
being wasted. Something small like access to a bit of kit or training, or a
mentorship, can make a huge difference to someone’s life.
The SMF is looking for applications from people aged 14–25 in
England and Wales who are neurodivergent and who love engineering.
It could be 3D printing, electronics, robotics – anything, as long as it
fits under the STEM umbrella. They’re well aware that mental health
diagnoses take time, so you don’t need to be officially diagnosed –
as long as you’re on the waiting list, you’re eligible to apply. Go to
sanjaymortimerfoundation.org to find out more.

35
The Sanjay Mortimer Foundation

INTERVIEW

HackSpace Hi Teula! You’re the chief ÙĢęĻ¾ěũμϰ¾ěßϰÿŊϞłϰØããěϰŊüãϰēã¾ßÿě÷ϰüĢŊϒ ĻãľłĢě¾ēÿŊũμϰţüÿÙüϰţ¾łϰēĢŢ¾Øēãϰϔϰ€¾ěČ¾ũϰ


executive of the Sanjay Mortimer end company for many years now around ţ¾łϰłĢμϰłĢϰēĢŢ¾Øēãλϰ
Foundation, which begs the question: the world. ŏŊϰÿŊϰţ¾łϰ¾ēłĢϰŢãľũϰßÿöżÙŏēŊϰŊĢϰţĢľĐϰ
who was Sanjay Mortimer? A lot of the innovation came from Dave ţÿŊüϰłĢęãØĢßũϰēÿĐãϰŊü¾Ŋϰ¾ŊϰŊÿęãłλϰ€¾ěČ¾ũϰ
¾ěßϰNĢłüμϰØŏŊϰÿŊϰţ¾łϰ€¾ěČ¾ũϞłϰؾØũλϰ>ÿłϰ wouldn’t know when he was supposed to
Teula Bradshaw Sanjay was a teacher. ČĢØϰŊÿŊēãϰ¾Ŋϰ&΍"ϰţ¾łϰϝ ÿłÿĢě¾ľũϞϰϔϰŊü¾Ŋϰţ¾łϰ Øãϰÿěϰ¾ϰęããŊÿě÷ϰĢľϰţüĢϰüãϰţ¾łϰęããŊÿě÷ϰ
He also struggled with ADHD. I think his role. with. He would come in, in a sort of
with a lot of neurodivergent people, whirlwind of drama. And he’d put his
they look at themselves differently to HS I sincerely hope he had that on his ē¾ĻŊĢĻϰüãľãϰ¾ěßϰüÿłϰؾ÷ϰŊüãľãϰ¾ěßϰüÿłϰ
ãŢãľũØĢßũϰãēłãλϰěßϰŊüãũϰöããēϰēÿĐãϰŊüãũϞŢãϰ business cards. ęĢØÿēãϰĻüĢěãϰŊüãľãμϰ¾ěßϰüãϞłϰţüÿűűÿě÷ϰ
got it rough. So he had many challenges around talking to all the engineers and
while he was growing up. TB ϰØłĢēŏŊãēũπϰAŊϰţ¾łϰĢěϰüÿłϰØŏłÿěãłłϰ coming up with ideas.
He found his love of making through card; it was on his email signature… his We’d have a Teams group and there
his school and university years. And role was visionary, which just says it all. was a constant theme on the chat: Where
he also just loved teaching generally – >ãϰŊüĢŏ÷üŊϰĢŏŊłÿßãϰŊüãϰØĢŨλϰ>ãϰŊüĢŏ÷üŊϰ is Sanjay? Has anyone seen him? Has
even if you knew him in his later years, differently to a lot of people; he knew anyone seen Sanjay’s laptop? Which
when he wasn’t a teacher, he was ľ¾ØØÿŊϰüĢēãϰü¾łϰüãϰßÿŢãßϰßĢţě
always listening to people. He was into now?
always interested in what they As funny as that was, it was
were working on; he wanted to He was such an quite hard to help him structure
help people with their innovation, open person. his day. That’s where I came into
with their ideas, with their plans.
And that’s why he
€¾ěČ¾ũϞłϰţĢľēßξϰAϰţ¾łϰØľĢŏ÷üŊϰÿěϰ
And he always had that really ŊĢϰēÿŊãľ¾ēēũϰłü¾ßĢţϰüÿęϰ¾ěßϰØãϰ
ěŏľŊŏľÿě÷ϰŢÿØãλϰ has so much love in charge of what he was doing,
He always had time for people. and respect in the when he was doing it, and who
he was doing it with, just to help
AŊϰßÿßěϞŊϰę¾ŊŊãľϰüĢţϰØŏłũϰüãϰţ¾łμϰ
ÿöϰłĢęãØĢßũϰü¾ßϰłĢęãϰĐÿěßϰĢöϰ
community Øľÿě÷ϰłĢęãϰłŊľŏÙŊŏľãϰŊĢϰüÿłϰß¾ũλϰ
crazy idea, he would sit down and That was an amazing role to
÷ÿŢãϰŊüãęϰŊü¾ŊϰŊÿęãϰŊĢϰãŨĻēĢľãϰÿŊϰ żēēμϰØãÙ¾ŏłãϰÿŊϰţ¾łϰżēēãßϰţÿŊüϰ
further. So naturally, he was a teacher ţü¾ŊϰÙŏłŊĢęãľłϰţ¾ěŊãßϰØãöĢľãϰŊüãũϰ ę¾ßěãłłμϰØŏŊϰ¾ϰēĢŊϰĢöϰöŏěλϰěßϰüĢĻãöŏēēũμϰ
and a listener. knew what they wanted. And he was it really helped. And it meant that he was
>ÿłϰöľÿãěßϰ"¾ŢÿßϰR¾ęØϰţ¾łϰ¾ēłĢϰ¾ϰ always ten steps ahead, which really much more effective with his hours and
teacher, and they loved 3D printing and fuelled E3D’s growth. his days.
messing around with 3D printers. And Most of E3D’s customers were around But that was in his later years; as a kid
they developed this unique hot end, the the world, particularly the States. And he felt like he was up against it. He didn’t
V4. They had a go at putting it on the so people knew of him; he would talk at sit very well in a traditional setting. A lot
market, it sold out within seconds, and ãŢãěŊłμϰüãϰţĢŏēßϰØãϰĢěϰ"ÿłÙĢľßϰÙü¾ŊŊÿě÷ϰ of neurodivergent people respond really
Ŋüãϰÿßã¾ϰĢöϰ&΍"ϰţ¾łϰØĢľěλ to people all the time, all the events [that ţãēēϰŊĢϰţü¾ŊϞłϰÙ¾ēēãßϰłŊľãě÷Ŋüϒؾłãßϰ
The E in E3D stood for education; E3D] travelled to around the world, he learning, which is when they’re learning
originally the plan was to try and get was there talking to people and talking ¾ϰłŏØČãÙŊϰŊü¾ŊϰŊüãũϞľãϰľã¾ēēũϰÿěŊãľãłŊãßϰ
΍"ϰĻľÿěŊãľłϰÿěŊĢϰłÙüĢĢēłξϰŊüãũϰØĢŊüϰ ¾ØĢŏŊϰÿěěĢŢ¾ŊÿĢěłϰ¾ěßϰÿßã¾łλ ÿěλϰ€ŏØČãÙŊłϰŊü¾ŊϰŊüãũϞľãϰěĢŊϰÿěŊãľãłŊãßϰ
öãēŊμϰØãÿě÷ϰŊã¾ÙüãľłϰÿěϰŊüãϰßãłÿ÷ěϰ¾ěßϰ He was such an open person. And ÿěμϰŊüãÿľϰØľ¾ÿěϰ÷ĢãłϰĢööϰ¾ēēϰĢŢãľϰŊüãϰĻē¾Ùãμϰ
ŊãÙüěĢēĢ÷ũϰżãēßμϰŊü¾ŊϰŊüãľãϰţãľãϰČŏłŊϰěĢŊϰ that’s why he has so much love and ŊüãũϰØãÙĢęãϰ¾÷ÿŊ¾ŊãßϰĢľϰżß÷ãŊũμϰ¾ěßϰ
enough 3D printers in schools. And then respect in the community. Because he ĻĢŊãěŊÿ¾ēēũϰ÷ãŊϰē¾ØãēēãßϰŊüãϰě¾ŏ÷üŊũϰÙüÿēßϰ
ÿŊϰČŏłŊϰØēãţϰĢööϰŊüãϰłüãēŢãłμϰÿŊϰţãěŊϰÙľ¾űũλϰ was passionate and shared all his ideas, at school.
They set up the company, and they ¾ěßϰţĢŏēßϰēÿłŊãěϰŊĢϰ¾ěũØĢßũϰ¾ěßϰüãēĻϰĢŏŊϰ >ãϰ÷ĢŊϰŊü¾Ŋϰ¾ϰēĢŊμϰØãÙ¾ŏłãϰüãϰöĢŏěßϰ
realised they needed their good friend, ¾ěũØĢßũϰţüĢϰüãϰĻĢłłÿØēũϰÙĢŏēßλϰ Ŋüÿě÷łϰłēĢţϰĢľϰØĢľÿě÷λϰěßϰłĢϰÿŊϰţ¾łěϞŊϰ
Josh Rowley who was working for until later that he was allowed to really
łĢęãϰØÿ÷ϰãě÷ÿěããľÿě÷ϰżľęμϰŊĢϰØľÿě÷ϰÿěϰ HS How did his neurodivergence affect delve deeper into his making and his
üÿłϰßÿööãľãěŊϰãŨĻãľÿãěÙãϰöľĢęϰľŏěěÿě÷ϰ¾ϰ Sanjay? tinkering and doing what he really found
ÙĢęĻ¾ěũϰľ¾ŊüãľϰŊü¾ěϰØãÿě÷ϰ¾ϰŊã¾Ùüãľϰ¾Ŋϰ Ŋü¾Ŋϰüãϰţ¾łϰĻ¾łłÿĢě¾Ŋãϰ¾ØĢŏŊϰŊüÿě÷łλϰŏŊϰ
a school. The three of them set up this TB He had this chaotic, crazy ØãöĢľãϰŊü¾Ŋϰüãϰţ¾łϰö¾ÿēÿě÷ϰŊüÿě÷łμϰüãϰ

36
Left
3D printers used to
be rubbish. The fact
that they are not
rubbish anymore is in
large part thanks to
Sanjay Mortimer

37
The Sanjay Mortimer Foundation

INTERVIEW

Below
The inaugural Sanjay
Mortimer RepRap
Festival, held in 2023,
was a riot of noise,
colour, and sharing.
This year’s will be in
sunny Manchester,
and should be an
unmissable event for
fans of 3D printing

38
LENS

was getting told off all the time, and he ěßϰũĢŏϞľãϰ¾ϰēÿŊŊēãϰØÿŊϰęĢľãϰãłŊ¾Øēÿłüãßμϰ to mentor these kids. And everyone’s
had really low self-esteem as a result you’ve hopefully had some support that different. Our last Star, she was
of that. you need. That’s not always the case, attending Brunel University, and she
ØŏŊϰţãϰü¾ßϰŊĢϰü¾Ţãϰ¾ϰÙŏŊϒĢööϰłĢęãţüãľãϰ had some form of rare neurological
HS And this brings us on to what the ¾ěßμϰüĢĻãöŏēēũμϰØũϰŊüãěϰũĢŏϞľãϰÿěϰ żŊłλϰ€ĢϰłüãϰţĢŏēßϰżŊμϰö¾ēēϰŊĢϰŊüãϰŽĢĢľμϰ
foundation is all about. employment or you have the support to and then she would really injure
try and get you there. üãľłãēöλϱ€üãϞłϰßãŢãēĢĻÿě÷ϰ¾ϰłãēöϒ
TB ϰAŊϞłϰľã¾ēēũϰ¾ØĢŏŊϰŊü¾ŊλϰAŊϞłϰ¾ØĢŏŊϰ We’re a charity registered in England ÿěŽ¾Ŋÿě÷ϱ¾ÿľØ¾÷λϰ
÷ÿŢÿě÷ϰĢŏľϰ€Ŋ¾ľłϰŊüãϰÙĢěżßãěÙãϰ¾ěßϰŊüãϰ ¾ěßϰ¡¾ēãłλϰ€ĢϰũĢŏϰü¾ŢãϰŊĢϰØãϰľãłÿßãěŊϰ §ĢŏϰÙ¾ěϰţã¾ľϰÿŊϰĢěϰũĢŏľϰØãēŊϰ¾ěßϰÿŊϰ
self-esteem that they need to recognise in England and Wales. We want to go puffs up and protects her during her
that they can go on to thrive in their ÷ēĢؾēμϰţãϰľã¾ēēũμϰľã¾ēēũϰßĢϰϔϰ¾ϰēĢŊϰĢöϰ żŊłλϰˆüãľãϰţãľãϰłÿęÿē¾ľϰŊüÿě÷łϰĢěϰŊüãϰ
ÙüĢłãěϱżãēßλϰ ĢŏľϰłŏĻĻĢľŊϰÿłϰöľĢęϰ¾ØľĢ¾ßλϰŏŊϰÿěϰŊüãϰ ę¾ľĐãŊϰēÿĐãϰŊüÿłμϰØŏŊϰŊüãũϰţãľãϰľã¾ēēũϰ
Because they’ve had so many initial stages, the Charity Commission ãŨĻãěłÿŢãλϰ`ěãϰţ¾łϰAϰŊüÿěĐμϰÿěϰ€ţãßãěμϰ
ĐěĢÙĐؾÙĐłλϰ8ľĢęϰ¾ϰũĢŏě÷ϰ¾÷ãμϰŊüãũϞßϰ ÿłϰŢãľũϰłŊľÿÙŊϰ¾ØĢŏŊϰľã÷ŏē¾Ŋÿě÷ϰ¾ϰÙü¾ľÿŊũμϰ a device that you wear around your
ØããěϰŊĢēßμϰϛßĢěϞŊϰßĢϰŊü¾ŊϜμϰϛßĢěϞŊϰßĢϰÿŊϰ ¾ěßϰÿöϰÿŊϞłϰ¾ØľĢ¾ßϰ¾ěßϰęŏÙüϰØÿ÷÷ãľμϰÿŊϰ neck when you’re cycling, and if you
ēÿĐãϰŊü¾ŊϜμϰĢľϰŊüãũϞŢãϰČŏłŊϰØããěϰę¾ßãϰ makes it very hard for them to regulate ö¾ēēμϰÿŊϰÿěŽ¾ŊãłλϰěßϰŊüãϰĢŊüãľϰĢěãϰÿłϰöĢľϰ
to feel different constantly. And so it’s us. So the advice I was given was to old people who wear this sort of vest
¾ØĢŏŊϰÙãēãØľ¾Ŋÿě÷ϰŊüĢłãϰßÿööãľãěÙãłμϰ¾ěßϰ łãŊϰŏĻϰ¾łϰ¾ϰPϰÙü¾ľÿŊũϰŊĢϰØã÷ÿěϰţÿŊüμϰ ϔϰ¾ěßϰÿöϰŊüãũϰö¾ēēμϰÿŊϰØēĢţłϰŏĻλϰ€Ģϰłüãϰ
making them realise that that’s OK. And ãłŊ¾ØēÿłüϰĢŏľłãēŢãłμϰ÷ãŊϰ¾ϰöãţϰũã¾ľłϰ was desperate to get hold of these two
they can just harness what it is that ŏěßãľϰĢŏľϰØãēŊμϰę¾ĐãϰłŏľãϰũĢŏϞľãϰěĢŊϰ pieces of equipment just to understand
they love doing, focus on that strength- ¾ϰØÿ÷ϰľãßϰŽ¾÷ϰŊĢϰŊüãϰĢęęÿłłÿĢěλϰěßϰ and take them apart and research them.
ؾłãßϰēã¾ľěÿě÷λϰˆüãϰöĢŏěß¾ŊÿĢěϰÿłϰ¾ēēϰ then, once you’re a well-known entity, €ĢϰţãϰØĢŏ÷üŊϰüãľϰŊüãłãϰŊţĢϰĻÿãÙãłϰĢöϰ
¾ØĢŏŊϰÿěÙľã¾łÿě÷ϰŊüãϰãßŏÙ¾ŊÿĢěϰÿěϰ¾ϰ you can spread your wings further. equipment so that she could further her
żãēßϰŊü¾ŊϰŊüãũϞľãϰľã¾ēēũϰÿěŊãľãłŊãßϰÿěλϰ The support we offer is completely education in that area.
We focus on STEM – science, ØãłĻĢĐãϰ¾ěßϰŏěÿĽŏãϰŊĢϰŊü¾Ŋϰ€Ŋ¾ľϰϔϰţãϰ Another of our Stars got 3D printers,
technology, engineering, and refer to them as our Stars or SMF üãϰ÷ĢŊϰţĢľĐϰãŨĻãľÿãěÙãμϰ¾ěßϰŢ¾ľÿĢŏłϰ
mathematics. That’s the area that we’re Stars. So a Star will apply, and they other things.
ÿěμϰØãÙ¾ŏłãϰŊüãľãϰ¾ľãϰĢŊüãľϰÙü¾ľÿŊÿãłϰĢŏŊϰ ţÿēēϰßãłÙľÿØãϰŊĢϰŏłϰŊüãϰÙü¾ēēãě÷ãłϰ
there that focus on arts and drama and they’re having and a particular area HS From your website, I learned that
theatre. We just thought, let’s focus on ĢöϰÿěŊãľãłŊλϰěßϰłĢϰÿŊϰęÿ÷üŊϰØãϰAˆξϰÿŊϰ people with neurodivergent minds
ţü¾Ŋϰ€¾ěČ¾ũϰţ¾łϰ¾ēēϰ¾ØĢŏŊλϰ ęÿ÷üŊϰØãϰ8Ģľęŏē¾ϰ`ěãμϰũĢŏϰĐěĢţμϰ are highly under-represented in
any kind of engineering that they’re engineering degrees. That’s a surprise.
HS What sort of form does that take? particularly interested in. And then
I’m guessing that you can’t give ţãϰţĢľĐϰţÿŊüϰĢŏľϰÙĢēē¾ØĢľ¾ŊĢľłϰţüĢϰ TB It is. The evidence shows that
everybody a right-hand man, so you are generally their teacher/tutor, could ěãŏľĢßÿŢãľ÷ãěŊϰĻãĢĻēãϰ÷ãŊϰēĢłŊϰØãöĢľãϰ
need a slightly more scalable solution ØãϰŊüãÿľϰãęĻēĢũãľμϰĢľϰÿŊϰÙĢŏēßϰØãϰŊüãϰ they make it into engineering careers.
than that? ę¾ĐãľϰłĻ¾ÙãϰĢţěãľμϰłĢęãØĢßũϰţüĢϰ They fall out of the system. And this
ĐěĢţłϰŊüãęϰϔϰŊĢϱÙĢęãϰŏĻϰţÿŊüϰŊüãϰØãłŊϰ ÿłϰؾłãßϰĢěϰŊüãϰö¾ÙŊϰŊü¾ŊϰŊüãũϰü¾Ţãϰ
Our application process is open łŏĻĻĢľŊϱĻĢłłÿØēãλϰ ¾ϰŊãľľÿØēãϰŊÿęãϰ¾ŊϰłÙüĢĢēξϰŊüãũϰöããēϰ
at the moment. To apply, you need to ˆü¾Ŋϰęÿ÷üŊϰØãϰϔϱ¾łϰ¾ěϰãŨ¾ęĻēãϰ like they can’t achieve, they feel like
ØãϰØãŊţããěϰŊüãϰ¾÷ãłϰĢöϰ΋Ύϰ¾ěßϰΌΏλϰ¡ãϰ – funding them through further ŊüãũϞľãϰö¾ÿēÿě÷λϰěßϰÿŊϞłϰØãÙ¾ŏłãϰŊüãũϰ
ÙüĢłãϰŊü¾Ŋϰ¾÷ãϰľ¾ě÷ãϰØãÙ¾ŏłãϰţãϰü¾ßϰŊĢϰ education. So through a training course, ü¾ŢãěϞŊϰØããěϰŊ¾ŏ÷üŊϰÿěϰŊüÿłϰłŊľãě÷Ŋüϒ
ÙüĢĢłãϰ¾ěϰ¾÷ãϰľ¾ě÷ãξϰţãϞßϰØãϰłĻľã¾ßϰŊĢĢϰ or a degree course, or whatever it might ؾłãßϰö¾łüÿĢěλϰěßϰłĢϰŊüãũϰßľĢĻϰĢŏŊϰ
ŊüÿěēũϰÿöϰţãϰßãÙÿßãßϰŊĢϰüãēĻϰ¾ØłĢēŏŊãēũϰ ØãλϰAŊϰęÿ÷üŊϰØãϰĻľĢŢÿßÿě÷ϰŊüãęϰţÿŊüϰ¾ϰ of the system, they don’t make it to
ãŢãľũØĢßũλϰãēĢţϰŊüãϰ¾÷ãϰĢöϰ΋ΎϰũĢŏϞľãϰ resource or a piece of equipment that senior school, or they don’t make
łŊÿēēϰēã¾ľěÿě÷ϰ¾ēēϰŊüãϰ¾Ù¾ßãęÿÙϰłŏØČãÙŊłλϰ they can use to further their education it to university, and therefore they
AŊϞłϰěĢŊϰŏěŊÿēϰŊüãϰ¾÷ãϰĢöϰ¾ľĢŏěßϰ΋Ύμϰ΋Ώμϰ ÿěϰŊüãϰżãēßϰŊü¾ŊϰŊüãũϞľãϰÿěŊãľãłŊãßϰÿěλϰ ¾ØłĢēŏŊãēũϰßĢěϞŊϰę¾ĐãϰÿŊϰÿěŊĢϰ¾ϰÙ¾ľããľϰ
16 that you start noticing where your AŊϰęÿ÷üŊϰØãϰłãŊŊÿě÷ϰŊüãęϰŏĻϰţÿŊüϰţĢľĐϰ in engineering. That’s where that
strengths lie and what you enjoy. ãŨĻãľÿãěÙãϰĢľϰ¾ěϰÿěŊãľěłüÿĻϰţÿŊüϰ¾ϰ statement comes from.
ěßϰŊüãěϰΌΏϰÿłϰŊüãϰÙŏŊϒĢööϰØãÙ¾ŏłãϰ company that they would really love to Another stat is that autistic people
ţãϰöãēŊϰØũϰŊü¾ŊϰŊÿęãϰϔϰ¾ěßϰŊüÿłϰÿłϰ¾ϰ get a foot in the door with. have one of the worst employment
very generalised view – you will have We’ve got some mentors on our rates in the country, and they are paid
manifested some coping mechanisms. ØĢĢĐłμϰãŨϒãě÷ÿěããľłϰţüĢϰü¾Ţãϰ÷ĢŊϰŊÿęãϰ the least. It’s an awful statistic.

39
The Sanjay Mortimer Foundation

INTERVIEW

ĻĻēÿÙ¾ŊÿĢěłϰĢĻãěãßϰ¾ŊϰŊüãϰØã÷ÿěěÿě÷ϰ AŊϰţ¾łϰ¾ēēϰĢěϰŊüãϰłãÙĢěßϰŽĢĢľμϰţüÿÙüϰ ØũϰČŏłŊϰ¾ŊŊãěßÿě÷μϰũĢŏϞľãϰłŏĻĻĢľŊÿě÷ϰ


Ģöϰ8ãØľŏ¾ľũϰöĢľϰŊüÿłϰũã¾ľλϰěßϰęũϰöĢÙŏłϰ ţ¾łϰēĢ÷ÿłŊÿÙ¾ēēũϰ¾ϰěÿ÷üŊę¾ľãμϰØãÙ¾ŏłãϰ ŊüãϱÙü¾ľÿŊũλ
for this year is to try and get more ãŢãľũØĢßũϞłϰŊľũÿě÷ϰŊĢϰ÷ãŊϰĻľÿěŊãľłϰ¾ěßϰ But the main reason for doing it is
Stars. Last year was very much the things up stairs. that it’s a fundraiser for the charity.
setting up phase. And we only got our So all the proceeds go to the charity and
Ùü¾ľÿŊ¾ØēãϰłŊ¾Ŋŏłϰÿěϰē¾ŊãϰZĢŢãęØãľλϰ€Ģϰ HS I saw a video of someone carrying will go towards supporting Stars.
ÿěϰŊüãĢľũϰţãϞŢãϰĢěēũϰØããěϰĢĻãľ¾Ŋÿě÷ϰ a printer the size of a small car up an
ĢöżÙÿ¾ēēũϰ¾łϰ¾ϰÙü¾ľÿŊũϰöĢľϰŊüľããϰ¾ěßϰ¾ϰ QTPCVGƔKIJVQHUVCKTU+VNQQMGFNKMG HS I bet you’ve had a whole load of
half months. That’s something that hard work. support from within the 3D printing
ţãϰľã¾ēēũμϰľã¾ēēũϰţ¾ěŊãßξϰÿŊϰØľÿě÷łϰŏłϰ community. Everyone is just so nice.
ŊüãϰØãěãżŊłϰĢöϰ9ÿöŊϰÿßξϰÿŊϰØľÿě÷łϰÿěϰ TB ϰˆü¾ŊϞłϰŊüãϰ ĢľĢěϰyüĢãěÿŨμϰţüÿÙüϰÿłϰ
Ŋ¾ŨϰØãěãżŊłϰöĢľϰÙĢľĻĢľ¾ŊÿĢěłϰŊü¾Ŋϰ¾ľãϰ amazing. So we’ve taken into account TB That’s where the majority of our
supporting us. In order for us to operate, ¾ÙÙãłłÿØÿēÿŊũλϰAŊϞłϰ¾ěϰÿěÙľãßÿØēãμϰęĢßãľěμϰ support comes from at the moment.
we need three things: one is our Stars, Øã¾ŏŊÿöŏēϰØŏÿēßÿě÷ϰŊü¾ŊϞłϰ¾ŊϰŊüãϰüã¾ľŊϰ ˆüãϰĻē¾ěϰÿłϰŊĢϰãŨĻ¾ěßϰöľĢęϰŊü¾ŊϰŊĢϰ
the people we support; two are our ĢöϰÿěěĢŢ¾ŊÿĢěλϰ¡ãϞľãϰØãÿě÷ϰłŏĻĻĢľŊãßϰ incorporate other engineering areas.
ÙĢēē¾ØĢľ¾ŊĢľłϰϔϰŊüãũϰ¾ľãϰŊüãϰ ŏŊϰ¾ŊϰŊüãϰęĢęãěŊμϰØãÙ¾ŏłãϰĢöϰ
teachers, the universities, the who Sanjay was, that is where we
employers that are going to help have most of our support.
ŏłϰżěßϰŊüãϰ€Ŋ¾ľłλϰ It’s an incredible, Aϰ¾ęϰãŊãľě¾ēēũϰ÷ľ¾ŊãöŏēϰØãÙ¾ŏłãϰ
ěßϰŊüãěμϰěŏęØãľϰŊüľããϰ¾ľãϰ modern, beautiful the generosity just keeps coming
our partners; they are people
that might do some fundraising
building that’s at ¾ěßϰÙĢęÿě÷λϰ`ěϰ¾ϰß¾ÿēũϰؾłÿłϰAϰ
üã¾ľϰ¾ØĢŏŊϰ¾ěĢŊüãľϰöŏěßľ¾ÿłÿě÷ϰ
ÿěÿŊÿ¾ŊÿŢãłϰĢěϰĢŏľϰØãü¾ēöλϰ`ľϰŊüãũϰ the heart of ÿěÿŊÿ¾ŊÿŢãϰϔϰłĢęãØĢßũϞłϰłãēēÿě÷ϰ
might have us as part of their innovation T-shirts and the proceeds are
ÙĢľĻĢľ¾ŊãϰłĢÙÿ¾ēϰľãłĻĢěłÿØÿēÿŊũϰ coming to the SMRRF; or Zack
and support us. Or they might Freedman’s video, you know,
ØãϰĻãĢĻēãϰţüĢϰĻľĢŢÿßãϰţĢľĐϰ üãϞłϰßĢě¾Ŋÿě÷ϰ¾ϰØÿ÷ϰÙüŏěĐϰĢöϰ
ãŨĻãľÿãěÙãϰĢĻĻĢľŊŏěÿŊÿãłϰĢľϰ the royalties from that to us. It’s
internship opportunities, or provide ØũϰyľÿěŊÿŊũμϰţüÿÙüϰÿłϰX¾ěÙüãłŊãľϰ üã¾ľŊØľã¾Đÿě÷μϰØŏŊϰÿŊϞłϰö¾ØŏēĢŏłλϰ
resources; they might donate printers Metropolitan University’s 3D printing
Ģľϰţü¾ŊãŢãľϰÿŊϰęÿ÷üŊϰØãλϰ€ĢϰŊüãľãϰ üŏØλϰěßϰũã¾üμϰÿŊϞłϰ÷Ģÿě÷ϰŊĢϰØãϰ¾ϰ HS Who came up with the Smurf
are three focus areas: the Stars, the great partnership. I’m doing much pronunciation for SMRRF?
ÙĢēē¾ØĢľ¾ŊĢľłμϰ¾ěßϰŊüãϰĻ¾ľŊěãľłüÿĻłϰŊü¾Ŋϰ more work this year to make it more 6JCVũUǭIGPKWUК
make the whole circle of what we are inclusive, more neurodivergent-
and how we operate. friendly. I mean, it’s a noisy event, TB That’s credited to Chris Pelesky,
ţãϰľãÙĢ÷ěÿłãϰŊü¾ŊμϰØŏŊϰţãϞľãϰ÷Ģÿě÷ϰ the guy who organised the East
HS Last year saw the inaugural Sanjay ŊĢϰØãϰĻľĢŢÿßÿě÷ϰłĢęãϰĽŏÿãŊϰľĢĢęłϰ Coast RepRap Festival. That’s ERRF
Mortimer RepRap Festival, held at the Ŋü¾ŊϰũĢŏϰÙ¾ěϰãłÙ¾ĻãϰÿěŊĢμϰ¾ěßϰę¾ũØãϰ ϐĻľĢěĢŏěÙãßϰϝãľöϞϑλϰˆüãěϰŊüãľãϞłϰŊüãϰ
University of Oxford. Will that be going get some involvement from some Rocky Mountain RepRap Festival,
ahead this year? üã¾ßĻüĢěãϰĻãĢĻēãμϰ¾ěßϰţãϞēēϰØã which is RMRRF, and now the Sanjay
having the speakers in a Mortimer RepRap Festival is SMRRF.
TB ϰAϰÙ¾ěϰÙĢěżľęϰŊü¾ŊϰţãϰţÿēēϰØãϰ łãĻ¾ľ¾ŊãϱľĢĢęλϰ We were so tempted to have little
holding it in partnership with ˆüãϰöããßؾÙĐϰöľĢęϰē¾łŊϰũã¾ľϰţ¾łϰ Øēŏãϰęãěϰ¾ēēϰĢŢãľϰŊüãϰŢãěŏãϰē¾łŊϰũã¾ľμϰ
Manchester Metropolitan University Ŋü¾ŊϱÿŊϰţ¾łϰČŏłŊϰłŏÙüϰ¾ěϰÿěÙľãßÿØēũϰ ØŏŊϰţãϰľãłÿłŊãßϰŊüãϰŏľ÷ãλϰ¡ü¾ŊϰAϰēĢŢãϰ
¾ěßϰyľÿěŊÿŊũμϰ¾ěßϰţãϰţÿēēϰØãϰüĢēßÿě÷ϰ ĢĻãěϱÙĢęęŏěÿŊũϰ¾ěßϰłŏÙüϰ¾ϰēĢŢãēũϰ ÿłϰŊü¾Ŋϰ€¾ěČ¾ũϰţĢŏēßϰČŏłŊϰØãϰ÷ÿ÷÷ēÿě÷λϰAϰ
ÿŊϰÿěϰŊüãÿľϰØŏłÿěãłłϰłÙüĢĢēλϰAŊϞłϰ¾ěϰ öľÿãěßēũϰŢÿØãλϰěßϰŊü¾ŊϞłϰţü¾Ŋϰţãϰ ŊüÿěĐϰüãϰţĢŏēßϰØãϰłãľÿĢŏłēũϰĻēã¾łãßϰ¾ěßϰ
¾ę¾űÿě÷ϰłĻ¾ÙãλϰłϰØã¾ŏŊÿöŏēϰ¾łϰ ŢãľũϱęŏÙüϰţ¾ěŊϰŊĢϰöĢÙŏłϰĢěϰ¾÷¾ÿěλϰ proud of the impact we’re having. It’s in
`ŨöĢľßϰţ¾łμϰÿŊϰü¾ßϰłĢęãϰēÿęÿŊ¾ŊÿĢěłνϰ ˆüãľãϞēēϰØãϰęĢľãϰöĢÙŏłϰĢěϰŊüãϰĻãĢĻēãϰ ÙãēãØľ¾ŊÿĢěϰĢöϰüÿęϰ¾ěßϰţü¾ŊϰüãϞłϰßĢěãϰ
¾ÙÙãłłÿØÿēÿŊũϰţ¾łϰ¾ϰę¾ČĢľϰēÿęÿŊ¾ŊÿĢěλϰ ţüĢłãϰłŏĻĻĢľŊϰÿłϰüãēĻÿě÷μϰØãÙ¾ŏłãϰ for the industry. I hope he’s pleased.

40
SEARCH FOR A STAR
If you know someone who fits the Foundation’s eligibility criteria – aged
14–25, resident in England and Wales, neurodivergent, loves STEM
subjects – and you think they could benefit from access to equipment,
or to extra mentoring in their chosen field, gently nudge them toward
applying for support from the Sanjay Mortimer Foundation. And
remember, they don’t have to be fully diagnosed as neurodivergent: it’s
enough to be on the waiting list.
sanjaymortimerfoundation.org

41
THE MAGPI

This feature is
from The MagPi,
the official
Raspberry Pi
magazine. Each
issue includes a
huge variety of
projects, tutorials,
tips and tricks to
help you get the

re
most out of your
Raspberry Pi.
Find out more at

tiv ity a
magpi.cc

d cre a
y an r ry Pi
h nolog as pb e ether.
Tec ive and R e two tog
inclus brings th
42
FORGE

any Raspberry Pi projects


ZʬP]^ZW`_TZY^_Z[]LN_TNLW
[]ZMWPX^Many builds
LW^Z[P]QZ]X^[PNTʭN_L^V^
_SL_L]PPT_SP]TYQZ]XL_TaP
Z]^PPV_ZSPW[XLVP
WTQPLWT__WPPL^TP]0\`LWWdSZbPaP]_SP]PL]P
WZLO^ZQXLVP]^`YWPL^STYR_SPT]N]PL_TaT_dLYO
[`__TYR=L^[MP]]d;TL__SPSPL]_ZQTXLRTYL_TaP
PYOPLaZ`]^%^TX[WdMPNL`^P_SPdNLY
?SP^PXLVP]^L]P[]ZO`NTYRL[[PLWTYR[]ZUPN_^

KIT
_SL_^_Z[[PZ[WPTY_SPT]_]LNV^MPNL`^P_SPd
PT_SP]WZZVRZZOZ][P]QZ]X_L^V^_SL_L]PU`^_
^SPP][WLTYQ`Y?SP^PL]PZ`]VTYOZQXLVP]^
4Y_ST^QPL_`]PbP_LVPLWZZVL_L]_^LYON]LQ_^
[]ZUPN_^_SL_TY^[T]P`^4Y^ZXPNL^P^_SPdɪ]P
^_]LTRS_QZ]bL]OM`__SPdbTWWSZ[PQ`WWd`YWZNV
_SPTYaPY_TaP[L]_ZQdZ`]M]LTY^Z_SL_dZ`NZXP
`[bT_SXZ]PTYRPYTZ`^bLd^ZQ_LVTYR[]ZUPN_^
Q`]_SP]4YZ_SP]NL^P^L[]ZUPN_XLdMPOTʯN`W_
PISHOP.US
f pishop.us
_Z]P[WTNL_PWTVPQZ]WTVPM`__SL_OZP^Yɪ_XPLY
Light up your projects with NeoPixels, screens,
dZ`NLYɪ_MPʮPcTMWPLYO[`]^`PLYLW_P]YL_TaP
[L_SDZ`XLdPaPYOPNTOP_ZXL^S`[_bZZ] ±ĹÚX)%Ÿţ¥ŅƚűĬĬĀĹÚĬŅ±ÚŸŅĹŸ±Ĭå±Ƌ{Ĝ„ĘŅŞŸŅ
XZ]P[]ZUPN_^ take your pick.
BSL_PaP]dZ`OZ%MPMZWOLYOTYYZaL_TaP,YO
]PXPXMP]bT_S=L^[MP]]d;T[ZbP]TYRdZ`]
[]ZUPN_^dZ`LW]PLOdSLaPLSPLO^_L]_?SP
[Z^^TMTWT_TP^L]PPYOWP^^

THE
f
PI HUT
thepihut.com
FĹƋŅĵ±ĩĜĹčƵå±ų±ÆĬåŸũ„űŞƚŞÏŅĹÚƚÏƋĜƴå
thread, woven conductive fabric and more
from The Pi Hut.
PIMORONI
f pimoroni.com
Find great creative kits such as the Bearables Fox
LED Badges and LED circuit stickers at Pimoroni.

43
th a t w ill h elp you to
Insp iring projects rn itu re, and a
Diffficulty , clothe s, fu
guid de make music he r m akers!
o n o t
B
Beginner
egin
nner big impact
Pro
ojects for
everryone

a
advanced
dvanced
Pro
ojects th
hat
require
e some
experience

e
expert
xpert f mag
gpii.cc/112
Pro
ojects that
require skilll f magpii.cc
c/gp
pio
omu
usicb
box 1LYNdN]PL_TYRLYL]_T^_TN_LWVTYR
[ZTY_QZ]dZ`]SZXPbT_SZ`_RZTYR
/ZYɪ_MPLQ]LTO_ZXLVPLYZT^PLMZ`_ ZaP]_SP_Z[* These honeycomb wall
dZ`]L]_^LYON]LQ_^[]ZUPN_4YQLN_%TQ shelves may do the trick. Adopting a
Tools dZ`_]ddZ`]SLYOL_XLVTYR_ST^2;4: hexagonal design, the shelves were
Needed X`^TNMZc_SL_ɪ^PcLN_WdbSL_dZ`ɪWW designed with a channel, through
f Ras
spb
berrry Pii MPOZTYR.ZYYPN_L^P_ZQM`__ZY^_ZL which 12 V RBG light strips could be threaded.
=L^[MP]]d;TNZX[`_P]LYOdZ`NLYMPRTY Once outputted to a
f Bre
eadboard
_Z[WLd^Z`YO^`^TYR;d_SZY?SPXZ]P Crealty Ender 5 Pro 3D
f Fou
ur tacttille swittch
hes M`__ZY^dZ`LOO_SPXZ]P^Z`YO^dZ` To printer, the shelves
NLYPYUZd[Z_PY_TLWWd_`]YTYR_SP[]ZUPN_ could then be connected
f Five
e pin-tto-s
sock
ket
ju
umpeer le
eads s TY_ZLQ`WWdʮPORPOTY^_]`XPY_0T_SP] up to a Raspberry Pi 4
_SL_Z]L^Z`YOMZc_SL_NLYXLVP]`OP computer from which
f Fouur pin--to-p
pin YZT^P^ZYOPXLYO?SPNSZTNPT^dZ`]^ they are controlled,
ju
umpe er le
eadss
LWWZbTYROTʬP]PY_
f Spe
eak
kers
s/ levels of red, green or
hea
adp
pho
oness blue to be displayed.

44
FORGE

Needed
f Rasp
pbe
erry
y Pi Pic
co
f magpii.cc
c/ras
spberrryypibe
ere
et
f NeoP
Pix
xel LEDs f ma
agp
pi.c
cc/sc
creen
ndre
ess
s
4QdZ`bLY__ZRP_LSPLOTYQL^STZY_SPYdZ` f Mic
croPyth
h on
YPPO_ZRP_LSL_LYO_ST^;]TYNPTY^[T]PO 7P_ɪ^MPSZYP^_SP]PN]PL_TYR
SPLObPL]T^^`]P_ZTY^[T]P,^bPWWL^LWWZbTYR ^ZXP_STYR_SL_NZ`WOMPbZ]YZY_SPNL_bLWVT^
_SP]TYRZQNZWZ`]Q`W70/WTRS_^_ZLYTXL_PL_ NP]_LTYWdYZNLVPbLWV-`_L/`_NS1L^STZY?PNS
]LYOZXTY_P]aLW^dZ`NLYNZYYPN_L[SZYPLYO OP^TRYP]SL^^SZbYbSL_T^[Z^^TMWPTQdZ`WP_
NZY_]ZW_SPWTRS_^Q]ZXLbPMM]Zb^P]_SLYV^ dZ`]TXLRTYL_TZY]`YbTWO3P]>N]PPY/]P^^XLVP^

Advice!
_Z=L^[MP]]d;T;TNZBɪ^bT]PWP^^7,9,YdSL_ `^PZQ3d[P][TcPW=Z`YO7./^N]PPY^NZ^_TYR
bZ`WObZ]VQZ]_ST^[]ZUPN_LYOdZ`NZ`WOPaPY L]Z`YOn PLNSLYO_SPdɪaPMPPYOP^TRYPO_Z
OPNTOP_ZXLVPdZ`]ZbY5`^_XLVP^`]P_SP]Pɪ^ WZZVWTVPPdP^bSTNSNSLYRPLNNZ]OTYR_Z_SP
PYZ`RS]ZZXLMZaPdZ`]SPLOQZ]_SP^PaP]LWQPP_ You could turn bPL]P]ɪ^_SZ`RS_^RL_SP]POMdLY002^PY^Z]
ZQbT]P]P\`T]POQZ]_SP[]ZUPN_ ^_]L[[PO_Z_SPSPLO?SPd^SZbSZbdZ`NLY
Raspberry Pi into a
M]TYR_PNS_ZRP_SP]TYLN]PL_TaPbLd
live coding music
ŸƋƚÚĜŅƚŸĜĹč„ŅĹĜÏ
Pi (sonic-pi.net) Tools
Needed
f Ras
spbe
erry Pi Ze
ero 2 W

f Hyp
perp
pixell 2.1 Ro
ound
d LCD sc
cre
een
ns

f Uniicorn
n He
eadb
band

f 3D prin
nter

Tools
Needed
f Ra
asp
pberrry Pi
f mag
gpi.c
cc/s
speec
chtotextbad
dge
e Ze
ero
o2W

f Toucchscrreen
>ZdZ`ɪ]PL_L[L]_dZ]LNZYQP]PYNPLYO_SP dis
spla
ay
[P]^ZYdZ`ɪ]P_LWVTYR_ZNLYɪ_SPL]LYd_STYR
dZ`ɪ]P^LdTYR=L_SP]_SLY]P^Z]__Z[ZTY_TYR f Miinii HDMI –
HD
DMI Ada apter
dZ`NLYXLVPdZ`]^PWQLMLORP_SL_[TNV^`[dZ`]
bZ]O^aTLL@>-WL[PW f Ba
atttery pack
XTN[]ZNP^^P^_SPX an
nd caablee
ZYL=L^[MP]]d;TEP]Z US
SB Micrropho
one
f
bT_S_SPOPP[WPL]YTYR
^[PPNS]PNZRYT_TZY
^d^_PX/PP[R]LXLYO
_]LY^N]TMP^dZ`]^[PPNS
ZYL^XLWW^N]PPY

45
o catch the eye
cts are sure t
oje
These pr

f mag
gpii.c
cc/artle
edm
mattrix f mag
gpi..cc/sun
nriselam
mp

,^X`NSL^bPWZaP^_]PLXTYR^P]aTNP^bP ?SP>`Y]T^PWLX[XL]]TP^_PNSYZWZRdbT_SLY
NLYɪ_SPW[M`__STYVbPɪaPWZ^__SPL]_ZQ_SP Z]TRLXT_PNSYT\`PNLWWPO^YL[ZWZRd4_]P\`T]P^L
LWM`XNZaP]With this fab project, you can bring WZ_ZQ[L_TPYNPM`_TQdZ`SLaP_SP_TXP_ZWPL]YSZb
those covers back to life by displaying them _Z`^P^_]T[^ZQ[L[P]_ZN]PL_P^SL[P^Q]ZX]TRTO
on Adafruit’s LED matrix. It’s a simple enough _]TLYRWP^_SPYdZ`_ZZNZ`WON]PL_PL]L_SP]^[PNTLW
project which ties in with the WTRS_,=L^[MP]]d;TEP]ZBT^NZYYPN_PO_ZL^P_ZQ
music you’re playing so check 9PZ;TcPW^LYO_SPWTRS_^SLaPMPPY[]ZR]LXXPO_Z
out the maker’s GitHub page OTXL_YTRS_MPQZ]PM]TRS_PYTYRTY_SPXZ]YTYR_ZSPW[
(XLR[TNNQ_L]_bZ]V) to learn PL^P^WPP[P]^Q]ZX_SPT]^W`XMP]?SP]Pɪ^WZ_^ZQ^NZ[P
how to make it. _ZN]PL_P^ZXPLXLeTYROP^TRY^SP]P

Tools Tools
Needed Needed
f Rasp
pberry
y Pi 3B+ f Rasp
pbe
erry
y Pi Zero W

f Adaffruit 64x64
4 RGB
B LED Matrrix f Pllas
stic
c cas
se

f Adaffruit matrix
x bon
nnet f NeoP
Pix
xels
s

f Powe
er sup
pply
y f Pa
ape
er

f 5v 10
0 A sw
witch
hing PS
SU

f 3D-p
printe
ed ma
atrix fee
et

f Pi mo
ount

46
FORGE

f magpi.cc/
povdispla
ay

?ST^aT^`LWWd
L]]P^_TYR[]ZUPN_bZ]V^Md]Z_L_TYR
L^_]T[ZQ70/^L_STRS^[PPO-d^dYNTYR_SPT] Tools
MWTYVTYR[L__P]Y^LYObZ]VTYRZY_SP[]TYNT[WP
f ma
agp
pi.cc
c/ru
uhaca
am _SL_S`XLY^NZY_TY`P_ZM]TPʮd^PPLYTXLRP_SL_
Needed
f Rasp
pbe
erry
y Pi Pic
co
SL^^_Z[[POPY_P]TYR_SPPdPT_ɪ^[Z^^TMWP_Z
;SZ_ZR]L[SP]^OZYɪ_YPPO_Z^[PYO N]PL_P_SPTWW`^TZYZQLXZaTYRTXLRP?SP^_]T[^ f Adaffruuit DotSttar
LQZ]_`YPZYLN`__TYRPORPM]LYOYLXP L]PNZYYPN_PO_Z_SP;TNZXZ`Y_POZYL]Z_L_TYR Digittall LED
D Strrip
p
NLXP]LYZ]OZ_SPdYPPO_Z]PLNSQZ]_SPWL_P^_ L]XLYO^[`YL_STRS^[PPO,bT]PWP^^NSL]RTYR
f }‰ěŎee å
åāåÏ
ÏƋ±Ĺ
ĹÏå
å
^XL]_[SZYP^BT_S_SP3TRS<`LWT_d.LXP]LQZ] XZO`WP[]PaPY_^_SPbT]P^Q]ZXMPNZXTYRL „å
åĹŸŸŅųų
=L^[MP]]d;TT_ɪ^[Z^^TMWP_Z[]ZO`NPdZ`]ZbY _LYRWPOXP^^
OPaTNPTYLYd^_dWPdZ`bLY_ɧLWWZbTYRdZ`_Z f DFR
Robot Wireele
ess
s
ʱųųčĜĹ
Ĺč aŅÚ
ÚƚĬåÚ
š
ʮPcdZ`]L]_T^_TNX`^NWP^TY_SPN]PL_TZYZQLNZZW
NL^PMPQZ]P^SZbNL^TYRdZ`]ʮLT]QZ]LRZZO[SZ_Z f %a
aŅƋŅų
„ěĂ
ĂĉLj„
„B
?ST^[L]_TN`WL][]ZUPN_Z[_^QZ]L]P_]ZWZZVM`_
f aĜÏųųŅŸ
ŸŅüƋ šĜŸƚ
ƚ±Ĭ
T_NZXP^NZX[WP_PbT_SLXZOP]YaTPbʭYOP],^
„ƋƋƚÚ
ÚĜŅ
Ņ ƖLjŎƀ
ƀ
N]PL_Z];PYV.SPY^Ld^ɭT_ɪ^WT_P]LWWd_PNSYZWZRd
XL]]TPObT_SWTMP]LWL]_^ɮ

Needed
f Rasp
pberrry Pi Zero
oW

f High
h Quality Camera
a

f 2.2-iinc
ch TFT disp
pla
ay Advice!
f 200
00 mAhh lith
hium
m
poly
ymer batteery Why not make
yourself a light
f Case
e
meter too? magpi.
cc/picolightmeter

f mag
gpi.c
cc//crea
atiingaiiarrt

?SLYV^_ZL]_TʭNTLWTY_PWWTRPYNPdZ`NLYPY_P]L
[]ZX[_NWTNVRPYP]L_PLYO^PPL[TN_`]PL[[PL]
MPQZ]PdZ`]PdP^4QdZ`QLYNdPc[P]TXPY_TYR
bT_S_SP_PNSYZWZRd_]d:YYc>_]PLXL^XLWW Tools
TYQP]PYNPWTM]L]d_SL_]`Y^>_LMWP/Tʬ`^TZY Needed
 ZYL=L^[MP]]d;TEP]ZB>`]PT_NLYMP Ra
aspberrry Pi
f
^WZbM`_T_ɪ^^`[P]TX[]P^^TaP.SPNVSZbT_ Ze
ero
o2W
bZ]V^LYOWPL]YSZb_Z^P_T_`[L_RT_S`MNZX
f On
nnxStre
eam
aT_Z[WLY_LX`]L:YYc>_]PLX

47
Objet 3d’art

REGULAR

Objet 3d’art
3D-printed artwork to bring more beauty into your life

G
enerations of British kids got their first taste of
making things through Airfix kits. These cheap,
extruded plastic model kits of WWII-era vehicles
brought the Hawker Hurricane, Mitsubishi Zero,
Messerschmitt, Spitfire, and more into homes up
and down the land for pocket money prices. Some painted
them meticulously; some threw them out of windows to find
out if their model aeroplanes would actually fly. They did not fly!
Stian Ervik Wahlvåg, aka agepbiz, has taken this idea and
run with it in the shape of this overly complicated business
card. Rather than injection moulding, Stian’s used a Bambu
Lab X1-Carbon 3D printer to produce a four-colour model of
the parts of a toy jeep. For the packaging, he’s printed a design
onto card, which he’s cut out using a Silhouette Portrait 2 vinyl
cutter, folded with the relatively primitive but no less satisfying
means of a ruler and a craft knife. He’s then wrapped the box in
cellophane sealed using a PFS-200 Heat Sealer, and heat-shrunk
with a Bosch UniversalHeat 600.
Unlike most business cards, this doesn’t have any words
other than social media handles, but it does tell you that the
maker has some pretty advanced skills.

hsmag.cc/BusinessCard

48
SPARK

49
Letters

COLUMN

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

ON TOPS OF THE WORLD


That robot dog in issue 77 – wow. That’s a massive
achievement for one person. Well done Aaed Musa. I wish
I had the dedication to make something like that. Both the
hardware and the software look like they must have
been a real struggle to get right. Congratulations on an
awesome build!

Mark
Telford

Ben says:+EQORNGVGN[CITGG+VũUƓPKUJGFQHHYKVJCNGXGNQH
RQNKUJVJCVRWVUOCP[QHWUVQUJCOG

TINY TAPEOUT
I don’t normally write in to magazines, but Tiny Tapeout
just knocked my socks off. I can’t believe that it’s not only
possible for a hobbyist to design a chip (or a part thereof), but
reasonably achievable for mere mortals. I can’t wait to
get started.

Sam
Hull

Ben says:+MPQYTKIJV!К+ũOUVKNNCNKVVNGDKVKPUJQEMVJCVO[
FGUKIPKUGVEJGFKPUKNKEQP;GUO[FGUKIPKUUKORNGVQVJG
RQKPVQHDGKPIVTKXKCNDWVKVũUUVKNNOCFGKVQPVQCEJKRCPFKV
YQTMU+ũOPQYRNCPPKPIYJCVVQFQPGZV

50
SPARK

AIR QUALITY
The interview in issue 77 sent me down a rabbit hole. Obviously
I was aware that pollution was bad, but I didn’t realise just how
bad it could be on a personal level. Thanks for bringing this up.
I’m going to start monitoring it at my house to see how badly
I’m affected.

Jane
Stroud

Ben says:#KTSWCNKV[KUQPGQHVJQUGVJKPIUVJCVOQFGTPNKHG
TGCNN[OCMGUEJCNNGPIKPIKPCNCTIGPWODGTQHYC[U6JGTG
CTGUQOGVJKPIUVJCVCTGEQORNGVGN[YKVJKPQWTEQPVTQNťHQT
GZCORNGWUKPICPCKTƓNVGTYJGPUQNFGTKPIYGCTKPICFWUV
OCUMYJGPFQKPICP[VJKPIVJCVECWUGUFWUVCPFGXGPVJKPIU
CUUGGOKPIN[UKORNGCUEQQMKPIECPRWVQWVFCPIGTQWUNGXGNU
QHRQNNWVKQPKPVJGXKEKPKV[VJCVJCXGVQDGFGCNVYKVJ
6JGTGCTGCNUQVJKPIUCVCNCTIGTNGXGNťOCKPN[ECTCPFHQUUKN
HWGNTGNCVGFťVJCVVCMGOQTGEQQTFKPCVGFCEVKQP
6JGVYQVJKPIUVJCVDQVJCTGCUJCXGKPEQOOQPKUVJCVKVũU
OWEJGCUKGTVQVCMGGHHGEVKXGCEVKQPYJGP[QWMPQYYJCVũU
IQKPIQP/KEJCGNũUCKTFTQKFUCTGGZEGNNGPVCPFGPICIKPIDWV
[QWTOQPKVQTFQGUPũVJCXGVQNQQMSWKVGCUUVTKMKPIVQ
DGGHHGEVKXG

ROS
I’ve played about with a few robots over the years, and always
struggled when the software side started to get complex.
I’m not a skilled coder – just a bit of a tinkerer – and it just
seemed to get unmanageable very quickly. Rob Miles’ tutorial
on ROS seems like it might be the answer. I’m going to dig
out my old line-following robot and see what new skills I can
give it!

#NK
Sunderland

Ben says:)NCF[QWHQWPFKVWUGHWN5QHVYCTGũUCHWPP[
VJKPIťUQQHVGPYGUVCTVCRTQLGEVYQTT[KPICDQWVVJG
JCTFYCTGDWVGPFWRƓPFKPIVJCVVJGUQHVYCTGKUVJG
TGCNEJCNNGPIG6JGIQQFPGYUVJQWIJKUVJCV[QWũXGIQV
UQOGJCTFYCTGVQJCXGCJCEMCDQWVQP)GVVKPIENWGFWR
QP415UJQWNFPũVDGVQQJCTFCPFYKNNCFFCTGCNUMKNNVQ
[QWTOCMGTCTOQWT[

51
200 PAGES OF RASPBERRY PI
QuickStart guide to setting up The very best projects built by
your Raspberry Pi computer your Raspberry Pi community

Updated with Raspberry Pi Pico Discover incredible kit and


and all the latest kit tutorials for your projects

Buy online: magpi.cc/store


HACK MAKE BUILD CREATE
Improve your skills, learn something new, or just have fun
tinkering – we hope you enjoy these hand-picked projects

PG

60
CASH REGISTER PG
Build your own portable shop 54
66
PG
SCHOOL OF
3D-PRINTING
PLANTERS
MAKING
Start your journey to craftsmanship
Add more greenery to your house with these essential skills

54 KiCad
PG

70
GAMEPAD
Add high-performance buttons to your rig
PG

PG 82
74 ANIMATRONIC
ROBOT MOVEMENT COSTUMES
One step closer to Boston Dynamics Pico gives you wiiiiiiiiiings
KiCad: Making an RP2040 temperature sensor

SCHOOL OF MAKING

Making an RP2040
temperature sensor
Let’s explore adapting our RP2040 layout to make a simple weather station

I
n this final project of the KiCad series, SDA and SCL pins having a pull-up resistor and a
we’re going to adapt our RP2040 layout to bypass capacitor placed near the package. So far,
make a rudimentary weather station. The straightforward. The datasheet also recommends,
PCB will host an AHT20 sensor, which is a where possible, that the package has a routed
good-quality sensor that can detect both channel around it to isolate it thermally from the rest
temperature and humidity via I2C. It’s made of the system. You can get away without this, but
Jo Hinchliffe by the same company that created the venerable your temperature readings will be influenced by the
Jo Hinchliffe (AKA DHT22, which has long been a popular sensor for this rest of the components on the board. You can never
Concretedog) is a constant type of project. fully thermally isolate a temperature sensor, but the
tinkerer and is passionate
about all things DIY space. Scouring the JLCPCB parts library revealed that more you can disconnect it from the rest of the
He loves designing and they have two versions of the AHT20 in surface- board, the more accurate your readings will be.
scratch-building both
mount packages. It’s important to double-check
model and high power
rockets, and releases the
designs and components
components carefully, as one of the options (the F
DOTSTAR GPIO PINS
variant) was built so that the vent hole for the sensor
as open-source. He also
has a shed full of lathes
was placed underneath the package, so required a You can use any pins for DotStar LEDs. However,
and milling machines and very accurate footprint that included a matching hole underneath the library, they communicate using the
CNC kit! through the PCB under the footprint. With our correct SPI protocol. If you use the pins that are enabled
package identified, we created a KiCad footprint for for the appropriate SPI functions, you’ll get better
performance. For a strip of 14 LEDs, the difference
the 6-pin device (although two pins on the device are
is negligible, if there even is any. However, if you’re
not connected).
handling larger displays, it pays to fully utilise the
Above The next step is a quick read of the datasheet. It’s
The completed specific SPI hardware on the RP2040.
AHT20 board pretty straightforward to connect the AHT20, with

54
FORGE


Figure 1 (Below)
Adding a slot around the AHT20 sensor to thermally isolate it
somewhat from the PCB We wanted to be able to
Right
Our completed PCB layout
hook this board up to a
wide range of outputs,
so we broke out a
healthy number of


GPIO pins

There are two ways we can create this cutout in


KiCad: add the cutout in the footprint, or place the
component in the PCB design and then add the
cutout manually. Obviously, if you add the cutout to
the footprint, you then have to edit the footprint if
you want to change the cutout design. Then, if you
have placed a footprint with the channel in the PCB
Editor, but not created an overall edge-cut geometry,
you can’t correctly preview your board as the 3D
viewer will consider the small channel the outside
edge of the entire design.
We opted to add the channel in the PCB editor,
having placed and routed the AHT20 sensor. We’ve
often, in this series, used Inkscape externally to
create and then import SVGs for graphic elements The rest of the board lay up was pretty
and edge-cut geometries but, for simple items like straightforward. We wanted to be able to hook this
this, using the ‘Draw a basic polygon’ tool in KiCad is board up to a wide range of outputs, so we broke out a
simple and convenient. healthy number of GPIO pins, and also added a small
It’s important that you check what are the minimum pin header with numerous power connections.
slot dimensions that your fabricator can handle, as this After the usual session of silkscreen labelling and
will be limited by the size of the bit they use for routing. tidying, we then went through the familiar process of
At time of writing, this is 1 mm on JLCPCB, so we made creating Gerbers, BOM, and Centroid positional files,
our channel around 1.5 mm wide (Figure 1). and uploaded the board for fabrication and assembly.

55
KiCad: Making an RP2040 temperature sensor

SCHOOL OF MAKING

BRING IT TO LIFE
In the previous issue, we looked at creating a custom
version of CircuitPython but, this issue, we’ll use the
easier (though perhaps a little more boring) method
of using the CircuitPython build for Raspberry Pi Pico,
and incorporating any changes we need in the code.
When you receive your boards, they should come
GETTING HELP with blank flash chips, which means that when you
Above (Left) plug them into a computer, an RP2 flash drive
This is smaller and
more robust than We’ve covered the basic use of KiCad in this series appears. You can copy the Raspberry Pi Pico build
a dev board and but, as you progress, you may have questions or hit of CircuitPython onto this (download it from
separate temperature
sensor upon problems that you aren’t sure how to solve. circuitpython.org). Once this has fully copied over,
There are a few places that you can go for the RP2 drive should disappear and a CircuitPython
Above (Right) additional support.
A break in the PCB drive should appear. The only thing we need to add
thermally isolates the The first port of call in most cases should be the
temperature sensor documentation at docs.kicad.org. These go into more to this is the DotStar module that we’ll need to
as much as possible depth than we have in this series, and should also be control our LEDs. You can get this from the Library
updated as things change. bundle which is also at circuitpython.org. This
There are also online communities, both of the comes as a zip file, so extract it, and copy the
forum variety (kicad.org/community/forums) and chat adafruit_dotstar.mpy file from the lib folder to the
(kicad.org/community/chat). In both cases, these are
lib folder on the CircuitPython drive. Your device is
community resources for users to help each other out.
If you are using KiCad for a professional project now all set up and ready to start coding.
and you want an appropriate level of support, the The AHT20 sensor on this board is connected via
KiCad Services Corporation may be able to help. It I2C, and we can connect to it using the adafruit_
covers everything from helping you use KiCad, to ahtx0 module. We just need to set up an I2C object
bug fixes, and implementing features you need. This first. This is done with:
company employs some of the lead developers of
KiCad, so directly supports the project.
i2c = busio.I2C(board.GP1, board.GP0)
sensor = adafruit_ahtx0.AHTx0(i2c)

56
FORGE

Once this is set up, you can access the import adafruit_dotstar as dotstar
Above
temperature and humidity with sensor.temperature Make sure you
and sensor.relative_humidity. dots_temp = dotstar.DotStar(board.GP28, board. attach wires to the
right end of the
Now we’ve got temperature and humidity readings GP27, 14, brightness=0.2, auto_write=False) LED strip (the arrow
shows the direction
on the board, the next question is what to do with dots_humid = dotstar.DotStar(board.GP24, board. the information
them. We’ve broken out the spare GPIO pins, so we GP23, 14, brightness=0.2, auto_write=False) travels through
the strip)
can hook up almost any other hardware we want.
We’ve opted for two strips of DotStar LEDs. These i2c = busio.I2C(board.GP1, board.GP0)
are addressable RGB LEDs, so we can set any of sensor = adafruit_ahtx0.AHTx0(i2c)
them to be any colour. We’re going to use them as
thermometer-style outputs, with one LED lit up at a ďŦƢƖȱƢĕśƉȪǙŒŒȺȺǟȤǟȤǟȻȻ
time. As the temperature or humidity goes up, the lit ďŦƢƖȱķƪśļďȪǙŒŒȺȺǟȤǟȤǟȻȻ
LED moves up the relevant strip.
The DotStar LED strips have four connections, temp_range = (10,30)
VCC goes to 5 V, GND goes to GND (and there are temp_colour = (100,0,0)
two of each on the board, so they can connect
directly to the pin). Each strip also has a Clock and humid_range = (0,100)
Data input connection, labelled SCK and DIN. We’ve humid_colour = (100,100,0)
used pins 23 and 24, and 27 and 28 for these, but
any of the GPIO pins will work. while True:
We can create the two DotStar objects with: print(“\nTemperature: %0.1f C” % sensor.
temperature)
dots_temp = dotstar.DotStar(board.GP28, board. print(“Humidity: %0.1f %%” % sensor.relative_
GP27, 14, brightness=0.2, auto_write=False) humidity)
dots_humid = dotstar.DotStar(board.GP24, board. ďŦƢƖȱƢĕśƉȪǙŒŒȺȺǟȤǟȤǟȻȻ
GP23, 14, brightness=0.2, auto_write=False) ďŦƢƖȱķƪśļďȪǙŒŒȺȺǟȤǟȤǟȻȻ

You can then access them like lists and assigning temp_index = int(((sensor.temperature-
an RGB tuple to an element in the list with. For temp_range[0])/(temp_range[1]-temp_range[0])) *
example, dots_temp[0] = (100,0,0). There are also len(dots_temp))
some methods that we can use including ǙŒŒȺȻ, dots_temp[temp_index] = temp_colour
which sets all LEDs in the string to a particular dots_temp.show()
colour. The full code for our temperature and
humidity thermometers is: humid_index = int(((sensor.relative_humidity-
humid_range[0])/(humid_range[1]-humid_range[0])) *
@import time len(dots_humid))
import board dots_humid[humid_index] = humid_colour
import busio dots_humid.show()
import adafruit_ahtx0
import board time.sleep(2)

57
KiCad: Making an RP2040 temperature sensor

SCHOOL OF MAKING

You can save this to your board and you should see
Above
We’ve left as many the appropriate LEDs light up. Hold your thumb over OTHER PROGRAMMING
pins as possible for
additional hardware
the temperature sensor and you should see the LANGUAGES
to be connected LEDs change.
We’ve focussed on CircuitPython because that’s the
GOING FURTHER language we’re most familiar with, but you can program
We’ve now come to the end of our series on KiCad, the RP2040 board in a wide variety of languages.
The two officially supported options are C (via the
and we’ve worked our way up from simple boards that
Pico SDK), and MicroPython. Additionally, there are
connect modules and breakout pins, to creating our
community projects that have brought a wide variety
own microcontroller boards with the hardware we of languages to the RP2040 processor. Some of these
want, and we’ve programmed them along the way. might work out of the box, and others might need a little
From here, you can take this hobby wherever you like. tweaking in order to run.


• Arduino – technically, this is C++, but the IDE and
ecosystem make this feel like a distinct language. It’s

If you’re interested in
incredibly popular with hobbyists, mostly because there
are languages for essentially every bit of hardware
the skill of PCB design, ever created.
• TinyGo – hsmag.cc/TinyGoPico. Go was designed by
then you can work on Google to help them solve very large problems. Despite

technically more
the fact that microcontrollers, by their nature, very rarely
solve large problems, this language has leaked into the
challenging boards embedded world. We’ve never used it, so can’t really


comment, but lots of people smarter than us think it’s
good, so it probably is.
• Rust – github.com/rp-rs/rp-hal. As far as we can tell,
this is supposed to do the same things as Go, but it was
created by Mozilla rather than Google.
If you’re more interested in practical solutions, then • Forth – hsmag.cc/PiPicoForth. According to people with
grey hair who inhabit universities, Forth is the greatest
you can keep designing boards as you need them. If
language ever written. We’re not entirely sure why, but
you’re interested in the skill of PCB design, then you
they’re very convinced of this fact.
can work on technically more challenging boards. For • BASIC – geoffg.net/picomite.html. This writer learned
example, you could try starting with some of our to program in BASIC and has a certain fondness for it.
examples and seeing how small you can make them. However, the world has moved on over the last 30 years,
You could work on interesting or artistic boards, and BASIC hasn’t. It can give some people a good hit of
such as those used for badges at hacker-focused nostalgia, but that’s about its only purpose.
tech events.

58
Your FREE guide to
making a smart TV

BUILD A RASPBERRY PI
MEDIA PLAYER
Power up your TV and music system

FROM THE MAKERS OF THE OFFICIAL RASPBERRY PI MAGAZINE

magpi.cc/mediaplayer
Raspberry Cash

TUTORIAL

Raspberry
Cash
Build a working cash register with a Raspberry Pi

Dr Andrew Lewis
Dr Andrew Lewis is a
specialist fabricator
and maker, and is the
owner of the Andrew
3L^PZ°>VYRZOVW

Right
Yes, you could always
just wear a trader’s
money belt and
carry a calculator
if you need to, but
a battery-powered
cash register with a
working drawer looks
much nicer. Being
able to take cash and
generate receipts
without a power
connection can save
hundreds of pounds
CALCULATOR WITH CONTROL ISSUES

T
in cash if you’re at a he world of the future is a largely
trade show where the
organisers charge for
cashless society, but the world Cash register and EPOS system are really just
power connections of today still uses metal tokens catch-all terms for a fancy calculator, and it’s worth
and paper promises to facilitate defining exactly what we’re going to be building
QUICK TIP transactions. In an urban store you’ll here, and why. A typical modern cash register sits
probably find an electronic point of on the counter next to the cashier and it allows
If you want to
sale (EPOS) system that handles the shopping the cashier to calculate the total value of the items
delete the last item
scanned, use the experience, but when you’re on a market stall being purchased. In the old days, this was a purely
BACKSPACE key. If away from regular power, the conventional EPOS mechanical beast that required the cashier to know
you have text in the experience isn’t as easy to implement. In this article, the price of each item and enter it correctly. As
register’s buffer, it you’ll see how to create a working cash register with technology advanced, barcodes were used to give
will delete the last a secure money drawer, barcode scanner, and receipt each item a unique code that could be read by
character typed. If
printer. You’ll get it all running from a Raspberry Pi the cash register and checked against a database
the buffer is empty,
it will delete the and DeWalt battery, and you’ll also have a built- of prices, so that the cashier no longer needed to
last line item added in daily transaction log, and the option to use any enter the items manually into the register unless the
to the current sale. wireless device as an extra till display. barcode was damaged. In modern times, the cashier

60
FORGE

REGISTER INPUT
The cash register application gets input from the
barcode scanner and keypad by monitoring system-
wide key presses using pynput. Key presses from the
touchscreen web interface are generated by passing
an API request from the web page back into the main
app, which generates the appropriate key codes
using pynput. It’s worth noting that the generated key
code may vary between OS and the type of device
that generates them. For example, the decimal point
may generate different codes depending on whether
it’s being sent from the key on the main keyboard, the
numeric keypad, or an external device. You may need
to adjust the Python code slightly to suit your particular
input devices.
The barcode scanner used in this project appears as
a standard input device, and to all intents and purposes YOU’LL NEED
acts like a keyboard. When the user scans a barcode,
Raspberry Pi 3
the code is translated into a string of characters and (or similar – less
‘typed’ into the computer. To avoid the need for a powerful versions
database of scannable items, the barcode is encoded as draw less power)
a simple string with a ‘:’ symbol as the delimiter. The first
part of the string is an item description, and the second 7” HDMI
touchscreen
is the price of the item. So a barcode with the string
or a tablet to view
‘snacks:5.4’ would generate a sale item with the title the till display
‘snacks’ for £5.40 (or whatever currency you’re working
in). The type of barcode isn’t actually very important: as Barcode scanner
long as it can encode the text you want to enter correctly, amazon.co.uk/dp/
B08CHFN3T2
the scanner will read and decode it as plain text.
DC solid-state
relay
that displays the current transaction in a browser. The amazon.co.uk/dp/
B07PYZZ3G4
browser launches in kiosk mode when the computer
starts. This might seem a strange way to implement Cash drawer, 12 V
the display, given that there are several GUI tools RJ11 connection
amazon.co.uk/dp/
(like Pygame, PyQt, or Tkinter) available for Python, B09ZL3J1M9
but it’s actually a very flexible way to implement the
interface. The web browser can be easily customised M110 thermal
receipt printer
with HTML and CSS to alter its appearance without amazon.co.uk/dp/
needing to change the main Python code, and B0C33JSKTL
additional interface functionality can be added using
Set of laser-cut
JavaScript on the client side. You can also connect case pieces
is sometimes entirely missing from the equation multiple web browsers to the same cash till and (or suitable project
container)
and the shop makes us do all of the work ourselves, use them as remote displays or remote terminals
paying for items by putting money into a slot or for the register. 2 × XL4015 5 A
waving a debit card in front of a scanner. What you For this project, you will be connecting the step-down
will be creating is something like the last generation Raspberry Pi to a basic receipt printer, which adjustable PSU
amazon.co.uk/
of cashier-driven register. Your cash register will have requires between 5 and 9 volts to power it. gp/product/
a touchscreen interface, a barcode scanner, a remote You may have already spotted the immediate B081JP5YZP
keypad, a receipt printer, and the facility to keep daily problem that the Raspberry Pi GPIO header uses DeWalt 5 A
transaction lists that can be read at a later date. This 3.3 V and isn’t 5 V tolerant, although this isn’t battery
register won’t accept debit or credit cards by default, actually a huge issue. The printer only needs
3D-printed
but it should be possible to add that functionality if bidirectional communication to report the status DeWalt battery
you want it. With a little extra work and a third-party of the paper tray (which isn’t really necessary for adapter
API like Square, you could generate transactions that everyday use) and the 3.3 V GPIO voltage of the (or similar,
hsmag.cc/
accept card payments from a contactless reader. Raspberry Pi is high enough to trigger a high input DWBatteryAdapter)
The cash register application is written in Python, on the printer, so it’s possible to connect the printer
and uses a Flask web server to generate a web page directly to the Raspberry Pi without a level shifter, Inline fuse 1 A

61
Raspberry Cash

TUTORIAL

provided that you don’t connect to the RX pin


(GPIO 15) on the Raspberry Pi.
You can normally force a receipt printer to produce
a self-test by powering it on with the button pressed.
Although it varies from brand to brand, you’ll normally
see information about the firmware, character sets,
and serial connection settings for the printer. Most
DRAWER TRIGGERS
serial ports will be defaulted to 9600 or 19,200, with
QUICK TIP Cash drawers are normally available in 12 V or 24 V
the usual 8 bits, no parity, and 1 stop bit. varieties. The 24 V version is probably more common
Thermal printers Thermal printers use a control language called on modern EPOS systems, while the 12 V versions are
are fussy and usually found on older-style cash registers. Some new
ESC/POS, using escape codes to generate
easy to confuse. cash drawers are smart and have a processor built-in
If you’re getting character effects. It’s an old technology – and
with a USB trigger, but in general, most ‘normal’ cash
garbage printed unlike a modern desktop printer, a thermal receipt
drawers just have an RJ11 socket that connects to the
unexpectedly, try printer has very limited capabilities. Printing images solenoid and to a microswitch that triggers when the
power-cycling the is quite complicated to achieve, and printed text drawer is open. On these cash drawers, you can easily
printer to reset it. relies on a built-in font with escape codes used map the pinout of the wires by measuring the resistance
to apply simple modifiers like reverse-printing and between the pins on the RJ11 socket. The resistance
double-size characters. There’s also a built-in facility of the solenoid will be easy to detect with a multimeter,
and the continuity between the pins connected to the
to generate barcodes in most receipt printers.
microswitch should also be easy to detect. Opening the
Some units also have a special connection that can drawer is as simple as applying the correct voltage to
be used to trigger the cash drawer when a receipt the solenoid for a short amount of time (typically less
Below is printed. than 250 ms). On some of the more complicated drawer
Thermal receipt While it’s possible to set up a serial connection to systems, there are two independent cash drawers
printers are
very simple and the printer and send the escape codes directly, it’s with separate solenoids that share a centre tap. This
communicate using is sometimes referred to as ‘Epson wiring’ with pins 2
an RS-232 or TTL
much easier to use Adafruit’s Thermal Printer library
and 5 connected to the outside (negative) legs of the
port, although some and Blinka. Blinka allows you to use CircuitPython
of the more modern solenoids, while pin 4 is the shared (positive) centre tap.
units have a USB or APIs in regular Python, and can be installed from There are several other systems in use, but these are
Bluetooth connection circuitpython.org/blinka or using the pip installer. probably the most common in the modern day.

Finally, you’ll need to install pynput, which is the


module that reads and generates key press events.
You can install pynput straight from the pip package
manager using python -m pip install pynput.
One thing to watch out for with thermal printers
is that they are relatively slow and don’t really
communicate bidirectionally with the device they’re
connected to. This means that there’s no signal
to say when the printer is ready to print, or when
the printer is already printing. It’s quite possible to
send data to the printer so quickly that the internal
buffer becomes overwhelmed and it starts missing
characters. You need to make sure that the program
you’re using won’t send the data to the printer faster
than it can output onto the till roll.
Begin making your own cash register by
installing the latest version of Raspberry Pi OS
onto a Raspberry Pi 3, or later model, and making
sure that all of the packages are up to date. Once
you’re ready, go into the Preferences menu on the
desktop and bring up the Raspberry Pi Configuration
application. Check that the serial port is enabled,

62
FORGE

KIOSK MODE
and serial console is disabled, accept any changes,
You’ll probably want to automatically run the keys.py file and start a kiosk mode
and reboot the machine.
web browser when the computer starts up. To do this, you need to install some
Next, you’ll need to install some Python libraries packages that will help you control the window manager, and edit the autostart file in
that the cash register application depends on to /home/user/.config/lxsession/LXDE-pi.
get your code working. You’ll need the Blinka Begin by installing the packages:
library and the Adafruit Thermal Printer library, sudo apt-get install x11-xserver-utils unclutter
which you can install by following the instructions Edit the autostart file using nano:
ƖƪďŦŝëŝŦȰķŦśĕȰƉļȰȪĈŦŝǙİȰŒLJƖĕƖƖļŦŝȰfÚ'-ɀƉļȰëƪƢŦƖƢëƌƢ
at hsmag.cc/AdafruitReceiptPrinter. Next, you’ll
Add the following lines to the autostart file:
need to install the Flask framework, which you ʭƉLjƢķŦŝȰķŦśĕȰƪƖĕƌȰ'ĕƖŏƢŦƉȰƢļŒŒȰŏĕLjƖȪƉLj
will be using to create a Python-based web server. ʭĈķƌŦśļƪśɀĆƌŦǂƖĕƌɀɀŏļŦƖŏɀɀļŝĈŦİŝļƢŦɀɀďļƖëĆŒĕɀƉļŝĈķɀɀŦǁĕƌƖĈƌŦŒŒɀķļƖƢŦƌLjɀ
Follow the instructions found at hsmag.cc/Flask navigation=0 http://127.0.0.1:5000
to do this. Then, install the cash register files into ʭLJƖĕƢƖŝŦĆŒëŝŏ
a folder called till on the desktop (or in the location @xset s off
@xset -dpms
of your choice). The main application in the folder
@unclutter -idle 0.1 -roo
is keys.py.
Save the file and exit nano. This autostart configuration will cause the Raspberry Pi to
Next, you need to wire up all of your electronic boot into a kiosk mode, disable the screensaver, and hide the mouse. It’ll also mean your
components to the Raspberry Pi’s GPIO pins. You’ll desktop will be completely blank. If you want to be able to access the desktop, you’ll need
be drawing power from an 18 V battery, and dropping to edit the autostart again to include the following lines at the top of the file:
to 5 V and 12 V using buck converters. The 12 V buck ʭŒLJƉëŝĕŒɀɀƉƌŦǙŒĕfÚ'-ɀƉļ
converter is used to open the cash drawer, and can

QUICK TIP
The more powerful
the Raspberry Pi,
the more battery
power it will need
to run. A Raspberry
Pi 3 will be fine for
this project.

Left
You can see from
this diagram that
the wiring for the
cash register is not
complicated, but
there are a couple
of things that you
should watch out for.
Firstly, this diagram
doesn’t show
the USB or HDMI
connections for a
touchscreen or other
peripherals. When
you are mounting
your Raspberry Pi
inside your case, be
sure to allow enough
space for cables to
plug in. You should
also apply the same
thinking to make
sure that you can get
batteries in and out
easily. Remember
that any digital cable
is susceptible to
interference, so keep
the cables to your
external components
as short as possible

63
Raspberry Cash

TUTORIAL

be omitted if you have a 24 V cash drawer. If you thermal printers to print out their input voltage
have a 12 V drawer and want to risk omitting the buck during a self-test. This isn’t very accurate, so don’t
Above
The inside of the case converter anyway, the risk and responsibility are your be too worried if the reported voltage is slightly
should be neat and own to consider. It may work fine, or it may burn out under 5 volts. The thermal printer is also a power
tidy, properly fused,
and inaccessible to the drawer solenoid after a while. hog, and can draw up to 10 W while printing. The
the general public.
Lots of venues will
The 12 V power is controlled by a solid-state Raspberry Pi itself (and USB peripherals) will only
ask you to create a relay connected to GPIO 17, and should only trigger be drawing a couple of watts, but if you are using
risk assessment for
your stall, and prove for a few milliseconds at a time, which would a touchscreen display, it can add another 4 or 5
that your equipment is probably prevent the solenoid from damage, but watts to overall consumption depending on how it’s
safe. Exposed wires or
pins (even low voltage that isn’t guaranteed safe to use. The other 5 V configured. If you’re planning on a long workday,
ones) don’t look good buck converter is used to power the Raspberry consider taking along extra batteries just in case you
to an event organiser or
OLHS[OHUKZHML[`VMÄJLY Pi and the thermal printer. It’s not unusual for start running short.

64
FORGE

Below
This project is likely
to get bounced
around a bit when
you’re setting up and
disassembling your
store. Make sure that
your case is sturdy
enough to deal with
that by gluing your
joints well

Left
There’s plenty
of spare pins for
expansion of the cash
register, so adding
NFC readers,
servos, or custom
button boards is
absolutely possible

There are a few extra things that you could


consider adding to this project if they suit your needs,
including adding an NFC reader to read staff cards
so that you can record who took a sale, or adding
extra ‘hidden’ web pages to make downloading
daily transaction records easier. You could also add
a second battery connector to double the battery
life and make it possible to swap batteries without
restarting the till. You could also implement a local
database of items with prices, so you can set the
prices at the till rather than on the barcode itself.

65
3D printing planters

TUTORIAL

3D-printing planters
Make the most of your growing space

D
espite the best efforts of the we can fit a lot of different plants into a small space
gods of rain, the winter is finally and keep each contained in its own pot.
coming to an end. Plants are
sprouting all around – ones we ONWARDS AND UPWARDS
planted and ones we haven’t. A lot of vertical gardening is built around hydroponics,
This author has decided to turn and if that’s a route you want to go down, you’ll find
Ben Everard
his attention to generally making his home a little
Ben enjoys gardening greener and much more flavourful.
because, unlike most of Plants, like all life, are amazing replicators. Inside
his projects, plants will
complete the building
each seed is a tiny spool of cellulose filament and
process themselves (as a solar-powered print head capable of squirting out
long as he remembers this building block into exactly the right shape for
to water them).
that species (OK, we’re computer nerds rather than
biology nerds, and might have got that bit wrong).
This makes us think that they’re perfect partners for
a bit of 3D printing.
Right
You can mix and The two big problems we’ve had with herbs are
match pots of that there are quite a lot of them and they take up a
different styles, sizes,
and colours lot of space (whether you want them to or not). One
little mint plant very quickly becomes a whole carpet
that, while delicious, covers half the garden.
There is a solution to both these problems –
vertical gardening. This is the process of building
your plants upwards rather than outwards. With this,

66
FORGE

plenty of inspiration online. However, we wanted a additional builds, such as this vertical garden. Each
Above
more traditional soil-based approach for now. After tier consists of three 3D-printed plant pots that The PrusaVert
perusing some repositories of 3D-printable models, attach to one of the spool halves. They are designed system uses old
ÄSHTLU[ZWVVSZ
we found a couple to try out. to screw together, but we decided to try a drop of to add strength
to the planter
PrusaVert (hsmag.cc/ glue instead and, so far,
prusavert) incorporates they seem to be holding.


Prusament spools Each tier can be joined
(which we just so With this, we can fit a lot of together, but we have
happen to have a left them loose so they
few spares of at the different plants into a small can be rearranged as
moment) to make a space and keep each needed. We think this


robust barrel-like vertical will be useful when it
planter suitable for life
contained in its own pot comes to bringing some
outside, while High of them indoors to
Gardens (hsmag.cc/ overwinter.
highgardens) makes it possible to tower-up plant The pots come in two sizes – we went with the
pots on the windowsill. larger 12 cm-high version as these will hold more
Let’s take a closer look at PrusaVert first. water and allow for bigger plants. Our plants seem
Prusament spools are two sides of plastic joined happy and are quickly adapting to their new home.
by cardboard in the middle. You can pull the two
sides apart to remove the middle. You can buy CHOOSE YOUR OWN
replacement filament with just the cardboard, High Gardens is composed of multiple pieces. You
then slot the sides from the previous spools on. start with a base and then add as many pots as you
Alternatively, you can use these as the basis for like (or dare). Each pot slots into the one below it.

67
3D printing planters

TUTORIAL

These slots let the water flow through the central


Above
The chicken run is pillar so, in theory at least, you can add water to a
in the sunniest spot top reservoir and it will water each pot, with any
in this garden, and
now we can put that excess draining into the tray at the bottom. We
sun to good use
found that it didn't work particularly well as it was
Right hard to gauge how to add water to the top so that
A hook on the planter
goes over the plank all the pots would be watered without overflowing
to secure the pot the tray at the bottom. We instead watered each pot
in position
individually, but we did find the water flow system
useful as it meant that each plant could drain and the
excess water would be captured.
We found that a tower roughly three or four pots
TYPES OF FILAMENT
high was stable on its own, but any higher seemed PLA isn’t UV (ultraviolet) stable. This means that,
a bit precarious. This is partly due to the presence over time, the UV rays in sunshine will gradually
of two energetic kittens in the test area. We once break it down. How fast this happens depends mainly
ended up with plants scattered about the floor, but on how much UV they are exposed to. Most plants
this was due to a kitten jumping up and clinging onto like to be positioned outside or on windowsills which
the blind, pulling herself along until she was above are, unfortunately, places where there’s quite a bit
of UV light.
the High Gardens, and then dropping down onto it. If
Depending on what plants you grow, you might
your environment is more sedate, you may get away find that the foliage protects the plastic from UV. This
with a higher garden. There are wall clips available might be sufficient to ensure that your planter lasts
(hsmag.cc/hgclip) which make the prospect of long enough, or it might not.
compost-covered floors a bit less likely. You can protect PLA with a layer of paint.
There is a selection of different designs and sizes Alternatively, you can use a UV-stable filament such
as ASA.
for both pots and bases, though some of the bases
look alarmingly narrow. Perhaps some people like

68
FORGE

to live dangerously, or perhaps some places aren’t LABELS Above


patrolled by feline vandals. The choice, as they say, Each planter protrudes
As well as printing the right plant pots, you can print enough for the plants
is yours. to get plenty of light,
other accessories for your garden. The most popular but if you place it
are plant labels. These can be as decorative or against a wall, you
HANGING UP might struggle to
as plain as you like. Printing in two colours (either
Both the previous options build up from the floor, get plants to grow
with an automatic colour switcher, or by switching in some sections
but sometimes you want to attach your pots to a filament at a particular Z height) is a great way to
wall. That’s exactly what this vertical gardening make striking labels that add a bit of colour to your
planter does: hsmag.cc/vertplant. The attachment veg beds.
is simplicity itself – there’s a hook on the planter, and
you just need to secure a plank of wood to the wall
with enough of a gap to hook the planter over. You we incorporated a few. It doesn’t need a full set,
can have as many or as few as you like hanging from but using PrusaSlicer’s automatic support painting
your planks. feature, we added just enough to ensure the
Misan, the designer of this planter, has a few long bridges printed well without wasting lots
versions with different levels of drainage. The v4 of filament.
has intensive draining, with just a mesh at the We’ve been growing herbs indoors and outdoors
bottom. This may be OK for succulents and other in these for a few weeks, and so far, we’re delighted
plants that like dry conditions, but moisture-loving with the results. We’ve got plenty of flavourful
plants may struggle. The v3, with its less-intensive greenery to add to meals and drinks, and they look
draining, will be better suited for most plants. and smell wonderful as well. As the weather gets
This model just about prints successfully warmer, we’ll print more and more of these to keep
without supports, but we got better results when up with the growing demand.

69
Pico keyboard and gamepad

TUTORIAL

Pico keyboard
and gamepad Above
The easiest way of building
a controller like this is to
Two ways of using a Raspberry Pi Pico to control a computer solder some buttons onto
protoboard

T
he first thing that you usually learn You can hook up GPIO pins like this on many
when doing electronics with a microcontrollers, but there are a few features that
microcontroller is blink an LED. The make some work better than others. The first is
second is connecting a button. In this internal pull-ups. To read the position of a button, you
article, we’re going to take this second need to connect one part of it to ground, but you also
Ben Everard skill and use it to build a peripheral for a need to add a resistor between the GPIO pin and a
Ben spends more computer. There are surprisingly large stacks of positive voltage. Since this is a very common thing to
time making games software between the switch on a keyboard and the
controllers than he does
playing games. It’s a
program you use it to control. Fortunately, though, we
strange hobby, but he don’t have to concern ourselves with them. We can GETTING TO GP2040-CE
enjoys it. grab some pre-written firmware, adjust a bit of WEBCONFIG
configuration, and then have everything ‘just work’.
Buttons come in many different shapes and sizes, You configure GP2040-CE using the web-based config
but they mostly do the same job – bring two tool. To get there in the first place, you have to hold down
contacts together when you press them. For our button S2 while you plug in your controller. However, if
microcontroller to read the state of the button, you don’t have a button S2, you can flash the force-
webconfig version as we have done. If you want to get
we just have to connect it between a GPIO pin
back to the web config, you can just flash it again.
and ground.

70
FORGE

Left
Once all the
components are in
place, you can solder
wires between them
to connect them
up as needed

do with microcontrollers, many have built-in resistors,


ENTER THE MATRIX
and these are known as internal pull-ups.
The second feature that will prove useful to us is You might have noticed that Raspberry Pi Pico has 26
USB device support. Most microcontrollers can plug GPIOs you can use to attach buttons to, but that would
in via USB, and be programmed that way, but only satisfy the most militant of minimalist keyboard
depending on the implementation of the USB users. There are some microcontrollers with more
GPIOs, but they aren’t particularly common (at least in
software and hardware on the microcontroller,
the hobbyist community), and dev boards breaking out
some can be programmed to be keyboards, mice, all these connections can be expensive. How, then, are
and gamepads. we able to make DIY keyboards?
We won’t go into these in too much detail other The answer is a matrix. Rather than connecting up
than to say that the Raspberry Pi Pico is an excellent each button to its own GPIO pin, we create a grid of
choice for both of these reasons, and it also has wires horizontally and vertically. We can then place
another little trick up its sleeve – an abundance of switches joining a horizontal and vertical wire at the
crossing points.
ground pins. These mean that you can wire up
We can then use the GPIO pins on one axis as output,
buttons individually without having to worry about the and the other as inputs. By providing power to just one
logistics of connecting all the buttons to ground. row at a time, we can use the inputs on the columns to
detect which buttons in that row are currently pressed.
ON / OFF We can scan through the rows quickly to detect
You can connect the switches up using whatever presses at any place on the matrix with only a few GPIO
pins. The only potential problem is that multiple button
method you feel comfortable with. You can use a
presses can create alternative paths through the matrix
breadboard, you can solder wires between them, you which can cause problems. The solution is to use diodes
can protoboard them – it really doesn’t matter. Just – a component that allows electricity to pass in only one
make sure that each switch is connected between a direction. Using this combination of a matrix layout and
GPIO pin and ground. diodes, you can connect up to 169 buttons to the 26 GPIO
We’re going to make a games controller first, so pins on Pico.
you’re going to need at least six buttons (four for
direction and two action buttons). Once you’ve wired
them up, it’s time to add the software. There, you’ll see versions for lots of different
We’re going to use the GP2040-CE firmware. This controllers all built around the RP2040
takes an RP2040 board and turns it into a high- microcontroller. The one we want is the
performance gamepad. It takes care of all the tricky force_webconfig.uf2 file. Download this and
things like communicating with the computer and flash it to your Raspberry Pi Pico.
checking for button presses. All you have to do is Once it has been flashed, you should be able
tell it which GPIO pin relates to which button. You to access the web editor by pointing your browser
can get the firmware from hsmag.cc/GP2040. to http://192.168.7.1.

71
Pico keyboard and gamepad

TUTORIAL

Left
Regular readers may remember this controller from a previous
HY[PJSL>L^LYLHISL[V\ZL[OLUL^ÄYT^HYL^P[OV\[HU`
OHYK^HYLTVKPÄJH[PVUZ

JOYSTICK
Joysticks come in two forms: analogue and digital.
You can get either type in modules that are easy to
wire up to a microcontroller. Analogue joysticks are
basically two potentiometers, set up so each one
reads a separate axis: one for X and one for Y. Each
potentiometer has three connections: one for 3.3 V,
one for ground, and one output. You can wire them
up to an ADC input on Pico and read them using the
GP2040-CE firmware.
On this website, you can go to the ‘Pin Mappings’ Digital joysticks are basically a stick with four buttons,
section and select which GPIO pins you want to be with a different button being pressed depending on how
responsible for what actions. Once you’ve entered you move the stick – it’s basically a D-pad arrangement
rotated in on itself with a stick to do the pressing. In
everything and clicked Save, you can reboot your
these joysticks, there is usually a single common ground
Pico as a gamepad. It’s a regular USB gamepad, so connection, and then a separate GPIO connection for
you can use it for your favourite games in just the each button. You can wire them and connect them to
same way you’d use any other gamepad. Want more either gamepad or keyboard firmware.
features? No problem, you can add them. As well as
adding buttons, you can add analogue inputs such as
joysticks and feedback from LEDs and buzzers.
The code for our keyboard is:
TINY KEYBOARD
GP2040-CE is great for making games controllers, import board
but what if you want to control a game that takes from kmk.kmk_keyboard import KMKKeyboard
input from regular old keyboard presses? We can from kmk.scanners.keypad import KeysScanner
do that too using the exact same circuit as with our from kmk.keys import KC
gamepad. There’s a sizeable community of DIY
keyboard makers who have created some
excellent and hackable keyboard firmware. The one # GPIO to key mapping - each line is a new row.
that we’ll be using is called KMK, and it is _KEY_CFG = [
based on CircuitPython. board.GP2, board.GP3, board.GP4, board.GP5,
To use it, you first need to install CircuitPython board.GP9, board.GP13, board.GP17, board.GP21
on your Pico. To do this, head to circuitpython.org ]
and download the latest version for Raspberry Pi
Pico, then flash it to your device. You should find keyboard.keymap = [
that when you plug in your Pico now, a USB drive [
called ‘CircuitPython’ appears. KC.UP, KC.DOWN, KC.RIGHT, KC.LEFT,
Now, you’ll need the KMK firmware from KC.A, KC.B, KC.C, KC.D,
hsmag.cc/getkmk. Unzip the file and copy both
the kmk directory and the boot.py file to the ],
CircuitPython drive. To turn this into a working ]
keyboard, we need to add a code.py file that
describes the particular keyboard. # Keyboard implementation class

72
FORGE

Right
Thanks to the number of ground connections on Pico, we can
solder on all the buttons without complicated wiring

Below
The joystick is really just four buttons that get triggered when
the stick is moved

OTHER FIRMWARE
We’ve used KMK because it’s based on CircuitPython,
which we’re familiar with, but there are other options.
QMK is probably the most famous of the keyboard
class MyKeyboard(KMKKeyboard): firmware, and there are a lot of things built on top
def __init__(self): of it, including complex and powerful systems to
allow multiple key presses to be interpreted in
# create and register the scanner
different ways.
self.matrix = KeysScanner( ZMK is another option that’s built specifically for
# require argument: wireless keyboards, but unlike KMK and QMK, we’ve
pins=_KEY_CFG, not tested it out fully.
# optional arguments with defaults:
value_when_pressed=False,
pull=True,
interval=0.02, # Debounce time in The main part here is the two lists: _KEY_CFG and
ǚŦëƢļŝİƉŦļŝƢƖĕĈŦŝďƖ keyboard.keymap. These two match up to link a GPIO pin
max_events=64 with a key press. You might have to adjust the GPIO
) pins depending on where your buttons are attached.
Save that code.py file to the CircuitPython drive and
keyboard = MyKeyboard() you should be able to start using your Pico as a very
minimal keyboard.
You can use this controller as is, or expand it to have
as many buttons as you can cram on. It can be as
if __name__ == '__main__': simple or complex as you like, but the important point
keyboard.go() is that it can be customised to exactly the way you
want to control your computer. Happy gaming!

73
Get a ROS-powered robot moving

TUTORIAL

Get a ROS-powered
robot moving Above
The motion sensor clips
underneath the robot and is
Create a drive system for a ROS robot with motor control and connected via a Raspberry
Pi Pico

movement feedback Below


You can see the controller
HAT at the top right-hand
corner, second one down

I
n the last article, we discovered how
ROS 2 applications are structured and
how components can communicate using
publish and subscribe. In this article, we
are going to build on this to make the robot
move, and then we are going to discover how
Rob Miles
we can add a sensor to determine the distance and
Rob has been playing direction of movement.
with hardware and
software since almost
before there was
ROBOT CONTROL
hardware and software. The robot kit is from Hiwonder (hiwonder.com).
@V\JHUÄUKV\[TVYL It uses a HAT which fits on the Raspberry Pi driving
about his so-called life at
robmiles.com. the robot. The HAT drives the motors and servos and
is controlled by Python code supplied by Hiwonder.
It works well, but the author was keen to use
ROS 2 with the robot, so the first step was to
convert the motor driving code into a ROS 2 node
with the original name of motors.

74
FORGE

QUICK TIP
The motors node will subscribe to a topic which
FLEXIBLE WORKING If you have a robot
will be used by any process wanting to tell the robot
to move. However, before we can create the motors of your own that
The robot we are using is controlled by a Raspberry
you want to control
node, we must look at how the motors are presently Pi 4 with 4GB of memory. This is because the robot
with ROS, you can
controlled by the Hiwonder code. has a vision system which needs a powerful machine.
replace the setMotor
However, you can run ROS on very small platforms
function with one
(including Raspberry Pi Zero). You can also run a ROS
CONTROL POWER WITH PYTHON that controls your
application over multiple connected devices. A node
Each of the wheels on the robot is turned by a DC robot hardware and
running on one device can subscribe to messages
motor connected to the controller HAT. The controller everything else in
published by a node running on another. As an
HAT creates pulse-width modulation (PWM) signals this article will work.
example, you could have a simple rover controlled
to control the power going into the motor. PWM by a Raspberry Pi Zero which is connected over
works by rapidly turning the driving voltage on and Wi-Fi to a vision system running on a Raspberry Pi 5.
ROS gives you great flexibility when deploying your Figure 1
off to vary the amount of power being delivered. If you’ve ever wondered
solution, and you don’t have to decide where the what ‘professional’
You can get the effect of a dimmed light at home
nodes run at the start. code looks like, this is a
by rapidly turning a light switch on and off (although good example
this wouldn’t make you very popular with the house
owner). PWM works in a similar way, except that the
on and off times are much smaller, and the switching
is performed by a MOSFET. The HAT contains
circuitry that generates PWM signals for four motors.
All we need to do is call the Python setMotor function
to tell this hardware to set the speed of a particular
motor. The function accepts two parameters: the
number of the motor to be controlled and a power
level in the range of -100 (full-power reverse) to 100
(full-power forwards).

setMotor(1,50)

The above statement would ask setMotor to turn


motor 1 forwards at half power. The motor driver
code supplied by Hiwonder is shown in Figure 1.
This function is in the HiwonderSDK/Board.py
source file. The first few lines of the function (45–54) LET’S TWIST AGAIN YOU’LL NEED
validate the incoming motor number and speed Now that we know how the robot motors are
A reasonably
value. It is interesting to see how different errors controlled, we need to connect these motors to
powerful desktop
are managed. An attempt to access a non-existent ROS applications. In the previous article, we computer, laptop,
motor (for example, motor number 5) would cause an discovered that ROS nodes communicate using a or Raspberry Pi
exception to be thrown and the function will interrupt ‘publish and subscribe’ model. We built a button (preferably a
4 or 5 with 4GB
the program that called it. However, an attempt to node which published messages when buttons were
of RAM)
use speeds outside the speed range of -100 to 100 pressed, and a display node which subscribed to to run the
would result in the speed being capped at the limit messages and displayed them when they arrived. development
environment
values and the function continuing. In other words, Our motor controller will subscribe to a topic and
and ROS
trying to make the motor go at speed 200 would not then drive the motors in response to messages
generate an exception, the function would use speed published on that topic. A Raspberry Pi
Pico
100. This can lead to a philosophical programming The Twist message in ROS can be used to express
discussion of the type best held over a beer (Why not the direction we want to move the robot and the A Near Optical
fail for all errors?), but we haven’t got time for this amount the robot should rotate when it moves. If we Flow SPI
Breakout
because we want to make our ROS drive system. make the motor node understand Twist messages,
(shop.pimoroni.com/
The code from lines 56 to 65 creates an inter- it can be used with other robot applications. A Twist products/paa5100je-
integrated circuit (I2C or IIC) message and sends it message contains two components: the linear velocity optical-tracking-
spi-breakout) if
to the motor controller to set the power level. If the and the angular velocity. Both values are expressed as you want to track
first attempt to send the message fails, the exception vectors with values for the X, Y, and Z components. your robot
handler is triggered and tries to send the message a This sounds much more complicated than the kind of
Your own little
second time. If the second attempt fails, the function ‘ahead half speed’ messages we’d like to use, but it robot or the parts
will fail with an exception. does turn out to be a lot more flexible. to make one

75
Get a ROS-powered robot moving

TUTORIAL

NICE PLACE TO WORK humans call this ‘walking round a corner’. Whether
or not a robot can move in a requested direction
ROS comes with graphical tools that you can use to build and simulate your robot depends on the drive configuration. A car-like robot
application. Below, you can see the author’s first attempt at designing a robot using the with steering wheels at the front will have difficulty
Unified Robotic Description Format (URDF). He used the RViz2 graphical tool and the joint rotating on the spot (i.e. it could not implement a
state publisher to validate his robot description (which, in this case, needed some work). Twist request with an angular component but no
These tools require quite a powerful machine. The author used a Raspberry Pi 5 with a
linear component). One of the great things about the
solid-state drive (SSD) for this part of the project. He then placed the code in a GitHub
(github.com) repository and the smaller Raspberry Pi in the robot and loaded it from there.
mecanum wheel drive system is that it is possible for
a robot to move in any direction and turn at the same
time. We can use a bit of trigonometry to convert
a Twist move request into the speeds each wheel
should move:

def calculate_motor_speeds(twist):
# Robot dimensions in meters
L = 0.059 # Half the distance between front
and back wheels
W = 0.067 # Half the distance between left
and right wheels

# Convert twist velocities to motor speeds


Vx = twist.linear.x
Figure 2 shows how the direction velocity values Vy = twist.linear.y
Above
It turned out that the apply to the robot, which is pointing up the page. Vz = twist.angular.z
wheels were rotating The X direction is forwards, the Y direction is left and
on the wrong axes…
right, and the Z direction is up and down. So, if I want # Calculations based on the mecanum wheel
Figure 2
The Z value in this
the robot to move forward at one metre per second formulae
framework points (which would be very fast), I’d set a linear velocity of V_FL = Vx - Vy - (L + W) * Vz
straight up, i.e. out
of the page (1, 0, 0). Angular velocity is the rate at which the robot V_FR = Vx + Vy + (L + W) * Vz
should turn while it’s moving. The rate is specified V_RL = Vx + Vy - (L + W) * Vz
in radians per second. Angles can be expressed in V_RR = Vx - Vy + (L + W) * Vz
degrees (with 360 degrees in a circle) or radians (with scale = 100.0 / max_wheel_power
2 * Pi – around 6.28 – radians in a circle). Working max_wheel_speed = max(abs(V_FL), abs(V_FR),
with radians is confusing, but it pays off when we abs(V_RL), abs(V_RR), 1)
start doing maths with the values. If both angular and setMotor(1,int(V_FL * scale))
linear velocities are both non-zero, the robot will move setMotor(2,int(V_FR * scale))
in a particular direction and turn at the same time. We setMotor(3,int(V_RL * scale))
setMotor(4,int(V_RR * scale))

The calculate_motor_speeds function above


takes in a Twist value and extracts from it the three
values that are needed to control the mecanum
motors. These are the linear X and Y values and
the angular rotation. It uses a bit of maths, which
the author doesn’t quite understand (but seems to
work), to calculate power values for each wheel
(Front Left, Front Right, and so on). Then it scales
the values so that they are in the range 0 to 100.
Finally, it calls setMotor for each motor. Now that
we have our motor power control sorted out, the
next thing we need to do is make a ROS node that
can receive Twist messages from other parts of the
robot system.

76
FORGE

THE TOPIC OF MOVEMENT publisher(Twist, 'cmd_vel', 10)


The code below describes a MecanumDriveSubscriber self.timer = self.create_timer(0.1, self.
object which will respond to messages to control the timer_callback) # Poll at 10 Hz
motor power. The __init__ method runs when the self.get_logger().info("Use WASD keys to
object is created and creates a topic called cmd_vel control the robot")
which accepts Twist messages. # Save terminal settings
self.settings = termios.tcgetattr(sys.
class MecanumDriveSubscriber(Node): stdin)
def __init__(self):
super().__init__('mecanum_drive_ The __init__ method runs when the object is
subscriber') created. It does two things: it creates a publisher
self.subscription = self.create_ which can send Twist messages to cmd_vel; it
subscription( also creates a timer which is triggered ten times
Twist, a second. The timer will call a method called
'cmd_vel', # Topic name timer_callback. Let’s have a look at the code for
self.listener_callback, the timer callback.
10)
setMotor(1,60) def timer_callback(self):
time.sleep(0.5) key = self.get_key()
setMotor(1,0) if key == 'w':
self.get_logger().info("Motor subscriber self.get_logger().info("w - forward")
running") self.publish_twist(1.0, 0.0) # Forward
elif key == 's':
The __init__ method also makes a motor self.get_logger().info("s - backward")
move briefly. This proved very useful when testing. self.publish_twist(-1.0, 0.0) # Backward
It was obvious when the drive had been started. elif key == 'a':
The class also contains a method called listener_ self.get_logger().info("a - left turn")
callback. self.publish_twist(0.0, 1.0) # Left Turn
elif key == 'd':
def listener_callback(self, msg): self.get_logger().info("a - right turn")
calculate_motor_speeds(msg) self.publish_twist(0.0, -1.0) # Right
return Turn
elif key == ' ':
The listener_callback method is called self.get_logger().info("space - stop")
whenever a message is posted to the cmd_vel self.publish_twist(0.0, 0.0) # Stop
topic. The method just passes the incoming elif key == '\x03': # CTRL-C
message to the calculate_motor_speeds function self.destroy_node()
to move the robot. rclpy.shutdown()

TAKING CONTROL
The aim is to make a robot which will decide for DOCKER IS WONDERFUL
itself which way it wants to move. But for testing,
it is very useful to be able to control the robot Docker (docker.com) is not a robotics tool. Docker is used to deploy large and
complex applications. You create a ‘Docker image’ file which contains all the
directly from the keyboard. We can make a simple
components you need for an application, and this image runs on your machine inside
node which checks for key presses and publishes to a software object called a ‘Docker container’. The container sits on top of a layer
a topic when it sees them. The code below creates which hides details of the underlying system. This makes it possible to deploy a ROS
a class called KeyboardTeleop which publishes solution (which would otherwise need a particular version of Linux) on a standard
movement instructions to the cmd_vel topic. Raspberry Pi. Learning a bit about Docker is a great idea; you can use it to deploy
and manage all kinds of software.
The author has created a Docker image which contains ROS and a selection of
class KeyboardTeleop(Node):
useful tools that you can use with the examples in these articles. He has written a
guide to setting up a Raspberry Pi, installing Docker, building a Docker image and
def __init__(self): running it, along with instructions for the exercises in this article. You can find it all
super().__init__('keyboard_teleop') here: hsmag.cc/RosIntro.
self.publisher_ = self.create_

77
Get a ROS-powered robot moving

TUTORIAL

The function uses a method called get_key to get the would not work well in practice because the motor
currently pressed key. It then selects a movement slows down when it is under load.
option and calls a function called publish_twist for Figure 3 shows a motor which has a shaft
each movement. encoder. The encoder sends pulses when it detects
motor movement. We could use this signal to
def publish_twist(self, linear, angular): determine exactly how much a motor is turning
msg = Twist() and work out how far a wheel is moving the robot.
msg.linear.x = linear Unfortunately, the motors in the Hiwonder robot
msg.angular.z = angular don’t have shaft encoders, so there is no way that
self.publisher_.publish(msg) the robot control software can know how far the
motors have turned. The author decided to add a
The publish_twist method takes the linear and sensor to the robot to detect movement. This will
angular values and uses them to construct a Twist provide feedback to a ROS application which can
value (called msg) which is then published. This node then adjust the movement commands. The sensor
can be used to drive the robot from the keyboard. If he has chosen is called an ‘optical flow sensor’.
we start these two nodes running, we can use the It works in the same way as an optical computer
keyboard to steer the robot around. mouse. The camera on the sensor detects changes
in position of the surface beneath the robot and
transmits X and Y values to a connected computer.
Figure 3
The black disc on
the left of the motor GETTING INTO THE FLOW
contains a magnet
which moves past the Figure 4 shows the selected sensor. The sensor has
two sensors when been mounted on a bracket which will be clipped
the motor turns
underneath the robot. When the robot moves, the
Figure 4
The sensor is
sensor will send movement information, giving
Ä[[LK^P[O[^V3,+Z the direction and speed of the movement it has
to illuminate the
scene viewed by detected. This information will be broadcast so that
the camera control software can monitor the robot’s position.

ENTER THE PICO


KEEPING IT REAL The sensor uses an SPI connection to transmit
We’ve seen that we can put different power values movement values. There is no easy way to connect
into motors to make them turn at different speeds. the sensor to the motor control HAT on the
We’ve also found a way to take a movement request Raspberry Pi on the robot, so instead, a Pico was
and convert it into speeds for each wheel. However, used to collect movement information and transmit it
we have no way of mapping a requested speed over a USB serial connection into the robot. The Pico
onto a value to be sent to the motor controller. We was then plugged into a USB port on the Raspberry
know that putting a bigger number into the setMotor Pi. This worked well and means that the sensor can
function will make the motor turn faster (and a be easily added to any robot with USB connections.
value of 100 makes it run full speed), but we don’t Figure 4 shows how the sensor and the Pico
know how fast the motor moves. This works fine are connected together. The following Python
for remote control as the system above shows. It is program was adapted from the example code for the
quite fun to steer the robot around. However, we’d sensor and runs inside the Pico to send movement
like to be able to make the robot move a particular information to the robot.
distance, and at the moment this isn’t possible.
We could start to solve this problem by obtaining
the speed of the motors when our system turns
them. For example, if we observe that a motor turns
60 times in one minute at full speed, that would
mean the motor turns once a second. The wheel
has a diameter of 65 mm. The circumference of the
wheel would be Pi * 65 mm (around 190 mm). This
means that at full speed, the wheel would move
the robot 190 mm every second. Unfortunately, this

78
FORGE

import time
POWER FOR TESTING
import json
from machine import Pin The robot is battery-powered and runs for around half an hour on the enclosed
from breakout_paa5100 import BreakoutPAA5100 as batteries. The author added a speed limiter to the setMotor function so that he could
FlowSensor restrict the motor power and allow the robot to run on a mains adapter with less power
capacity than the batteries. This proved very useful when developing the code.
ǚŦɲEŒŦǂ©ĕŝƖŦƌȺȻ
ǚŦȪƖĕƢȱƌŦƢëƢļŦŝȺEŒŦǂ©ĕŝƖŦƌȪ'-F¡--©ȱǟȻ
led = Pin(25,Pin.OUT)

while True:
ďĕŒƢëɲǚŦȪİĕƢȱśŦƢļŦŝȺƢļśĕŦƪƢɲǟȪǠȻ
if delta is not None:
x = delta[0]
y = delta[1]
result = { "x":x, "y":y }
led.value(1)
print(json.dumps(result))
time.sleep(0.1)
led.value(0)

This code runs inside the Pico (not on the robot).


It connects to the sensor and then repeatedly reads
it. If the sensor has new data, the values of x and y twist.linear.y = y
Above
are assembled into a JSON message and printed to # Assuming z, angular x, y, and z are 0 All of the connections
the console (which is the serial output for the Pico). or set them as needed are on one side
of the Pico
A device connected to the sensor via the serial port self.publisher_.publish(twist)
receives the movement messages. Note that for self.get_logger().info(f'Publishing:
this code to work, your Pico must be running the {twist}') QUICK TIP
MicroPython image provided by Pimoroni. You can ĕLJĈĕƉƢŌƖŦŝȪa©{r'ĕĈŦďĕ-ƌƌŦƌȣ When creating
find it here: hsmag.cc/PimoroniPicoUF2. self.get_logger().error('Could not code that talks
to hardware, it is
decode JSON from serial data')
useful to make
ROBOT TRACKING ĕLJĈĕƉƢÔëŒƪĕ-ƌƌŦƌëƖĕȣ
something happen
We now need a node which can receive the when the code is
movement messages from the Pico and publish The code above shows the timer_callback working. The sensor
the values for a controller node to use. This will function for the motion sensor node. It checks to see reader flashes
be a bit like the keyboard node we have just seen, if there are any characters available from the serial the LED on the
except that rather than checking for key presses, the port and reads a line if there is. Then it decodes the Pico each time it
sends a movement
timer_callback method checks for messages from JSON and extracts the x and y values from it. These
message. This was
the movement sensor. values are then used to create a Twist value which very useful when
is published. A process wanting to track the robot debugging.
def timer_callback(self): movement can just subscribe to the events and be
if self.serial_port.in_waiting: informed when the robot moves.
data_str = self.serial_port.readline().
decode('utf-8').strip() TAKING CONTROL
try: The author has created a drive package which contains
data_json = json.loads(data_str) the keyboard, motor, and motion nodes which can move
LJɲǚŦëƢȺďëƢëȱŌƖŦŝȪİĕƢȺȮLJȮȤǟȻȻȩ the robot. He is presently working on a controller
ŦŝǁĕƌƢƢŦǚŦëƢ node which will use these to move the robot particular
LjɲǚŦëƢȺďëƢëȱŌƖŦŝȪİĕƢȺȮLjȮȤǟȻȻȩ distances. He hopes that these articles have served
ŦŝǁĕƌƢƢŦǚŦëƢ as a useful introduction to the lower-level components
of ROS. If you want to refine your robotics skills, you
twist = Twist() can work through the exercises on the project GitHub
twist.linear.x = x page, which you can find here: hsmag.cc/RosIntro.

79
This stunning 224-page hardback book not only tells
the stories of some of the seminal video games of
the 1970s and 1980s, but shows you how to create
your own games inspired by them using Python and
Pygame Zero, following examples programmed
by Raspberry Pi founder Eben Upton.

Get game design tips and


tricks from the masters

Explore the code listing


±ĻÚƐĀĻÚƐŇƣƒƐĚŇƾƐƒĚåDžƐƾŇŹī

Download and play game


examples by Eben Upton

Xå±ŹĻƐĚŇƾƐƒŇƐÏŇÚåƐDžŇƣŹƐŇƾĻƐ
ď±ķåžƐƾЃĚƐ{Džď±ķåƐ¬åŹŇ

Available now hsmag.cc/store


Parts bin wings

TUTORIAL

Parts bin wings


We shamelessly adapt an existing design with the parts we
have on hand

W
e saw an excellent tutorial ourselves the challenge of building this without
from Adafruit on making buying anything new. Obviously, you won’t have the
some animatronic wings: same bits and pieces lying around, but we’d
hsmag.cc/AdafruitWings. encourage you to use what you have and improvise
They looked awesome! The where necessary.
only problem was, we didn’t
Ben Everard
have the parts needed to make them. Obviously, we A SOLID BASE
Ben spends more could have ordered all the parts we needed from We won’t go through the whole build as the base is
time making games those good folks in New York, but we did have a lot documented well on the Adafruit website. We’ll focus
controllers than he does
playing games. It’s a
of similar parts. We wanted to know, could we on the parts where we’ve differed from Adafruit.
strange hobby, but he reproduce the wings using just what we had At the core of the project is a pair of servos, and
enjoys it. hanging around the workshop left over from we had some the exact same size, so we were off to
previous projects? a good start. The other parts we had that matched
Re-using stuff you have is a great practice to get exactly what was used are a pair of 608-ZZ bearings
into. It’s cheaper, better for the environment, and (we used them to make a filament spool holder and
means you can make stuff now rather than waiting had a few left over) and a lithium battery (that has
for a delivery (and this can be key to finishing a been through a few projects already, and regular
project rather than ending up with a pile of half- readers will recognise from an extremely janky pair of
finished projects). headphones).
It does sometimes mean suboptimal results That’s not a bad start. However, we didn’t have a
Above
Swap out the wings, – we’ll look at some of the areas where our wings Feather M4 Express, a Servo FeatherWing, a
and this is a prop that
can be recycled for
aren’t as good as the originals. However, as the FeatherWing Doubler, a PowerBoost Charger, or any
many costumes saying goes, done is better than perfect. We set of the nuts and bolts used.

82
FORGE

The first thing we had to work out was if we could they’re built on different Arm cores with completely
Above
mount the servos, as the servo arms designed by different things around these Arm cores. The fact We’re not completely
the Adafruit team screwed into the bearings. After a that it works so easily on different microcontrollers is sure if this Raspberry Pi
Pico will come off the
bit of fiddling, we worked out that rather than attach thanks to the work of the CircuitPython developers. glue without breaking,
but given that, at £4, it’s
these arms to the bearings with a machine screw, We swapped the PowerBoost board for a about the same price
we could simply add a protrusion to the arm. This Pimoroni LiPo Amigo board. This was swapping a as a delivery of bolts
to screw it on, we’re
had the downside of forcing us to print the arm in a similar component for a similar component. The willing to take the risk
less favourable orientation, which both meant biggest impact of the microcontroller and power
additional support material and layer lines in a board swap is that they no longer fitted on the Below Left
weaker position. However, in practice, they printed mounting plate. At this point, we had two options: We were late arrivals to
the world of cable ties,
OK and seemed strong enough. design a new mounting place, or hack it together. but now keep some
in different sizes on
We opted for the latter of these two options. Our hand because they’re
workshop is currently devoid of any machine screws incredibly useful
below M4, so we couldn’t have built it without
ordering more hardware anyway, and that’s against
our self-imposed rules.
We now have a bunch of parts and no nuts and
bolts to join them. We do, however, have a tube
of superglue (also known as Krazy Glue or
cyanoacrylate). Sometimes the easiest solution is
perfectly acceptable. Yes, superglue probably isn’t as
secure as bolting everything together, but then the
wings are by far the weakest part, so it’s really not
the end of the world if the base is slightly weaker
than it could be. Gluing them on does mean that the
cables are a bit more exposed than they could be, so
we used plenty of cable ties to tie the cables down
and keep things as tidy as possible.
That’s just about all there is to it. We didn’t add
the potentiometer, because we didn’t really need the
features it offered.
It would have been slightly stronger and noticeably
more tidy if we had built it as it was designed, but
With the servos in place and working, it was time then it’s strong enough and tidy enough as it is, and
for our next hardware flip – changing the Feather M4 with many builds, speed is of the essence. The
for a Raspberry Pi Pico. The short version of this quicker you can complete something, the more likely
story is that it just worked. The longer version is that you are to see it through to completion.
it’s actually really impressive that you can switch Waiting for parts to arrive is a recipe for
controllers like this. While both the Feather M4 and distraction and waning enthusiasm. At least, that’s
the Raspberry Pi Pico are built on Arm CPU cores, our experience (and our excuse).

83
DON’T MISS THE BRAND NEW ISSUE!

SUBSCRIBE
FOR JUST

> THREE! issues


of The MagPi

> FREE! Raspberry Pi


Pico W

> FREE! delivery


to your door

NEW
+ FREE
MO DEL!

RASPBERRY PI
*W

PICO W*
hil
e
sto
ck
sl
as
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

PG

92
CARDPUTER PG
The teeniest of tiny computers 86
PG BEST OF
BREED
94
BANGLE.JS 2
A smartwatch that you can control
Kits, kits, and more kits

PG

96
CROWDFUNDING
Power for your outdoors projects
DIY kits

BEST OF BREED

ONLYTHE
BEST
DIY kits
A collection of fun kits to build

By Marc de Vinck

K
its! Anyone who knows me, knows that are not only fun, but useful too. That second
I love kits. It’s how almost everyone part, usefulness, is often overlooked. I really enjoy
gets into soldering and electronics. I building something and then being able to use it for
manufactured electronic kits for many a long period of time afterwards. Not just blinky little
years and, at times, I really miss it. I LED things, although those are fun too! But I’m far
loved the process of prototyping and more inclined to pick up a kit that, after I’ve enjoyed
figuring out what people would like to build. And building it, I can plug it in, turn it on, and get some
even though I don’t create and sell kits any more, I longevity out of the labour of love.
do still love to pick some up and spend So, let’s jump right in and take a look at a few kits
some time building other people’s creations. In that I’ve built before, and a few kits that I have on my
this Best of Breed, I will be looking at some kits list to build in the future.

86
FIELD TEST

Freaq FM Digital Synthesizer


(DIY Kit) vs PDP-11 replica kit:
the PiDP-11
TINDIE $135 tindie.com TINDIE $297 tindie.com

T
he Freaq FM is a desktop 8-bit
digital synthesizer designed by
Wirehead Instruments in Australia.
It features dual two-op FM voice
architecture and multiple waveforms,
and an LFO and modulation envelope.
So, what does that mean? It means that you can
make some really cool-sounding distortions and
electronic music. And you can even sync it with
external instruments.
You can buy this as an assembled synthesizer or
do what I would do, which is buy the kit. Building
a synth is a very popular DIY project, and one that
I highly recommend everyone do. Be sure to head
over to the product page, which includes more
information and a great demo of what this unit can
do. After watching the video and listening to the
sounds, I’m sold! It’s awesome!

T
he PDP-11 replica kit from The original PDP-11 computers were sold by
Obsolescence Guaranteed, located Digital Equipment Corporation from the start of the
in Switzerland, is an amazing piece 1970s all the way through to the late 1990s. Yes, VERDICT
of hardware history that would be the 1990s! Freaq FM Digital
incredibly fun to solder together. In fact, from my limited research, it seems like Synthesizer
some of these are still in use, which is kind of Ideal for
amazing considering how powerful a Raspberry Pi makers who
is, never mind how inexpensive. make music!
Behind the scenes of this replica version is
a Raspberry Pi that runs the system, but you
wouldn’t know, considering all the amazing retro-
looking controls in the front.
10 / 10
The PiDP-11 runs all the original operating VERDICT
systems, including UNIX systems 5/6/7, 2.11BSD, PDP-11 Replica
RSX-11, RSTS-E, and RT-11. And it can simulate kit: the PiDP-11
many different types of peripherals. A truly unique kit.
If you like retro computing, go ahead and check
out this kit!
9 / 10
87
DIY kits

BEST OF BREED

Cordwood Puzzle Too


PIMORONI $11.75 pimoroni.com

N
ow this is a strange kit! Certainly
not for the faint of heart. Unlike
most kits that I love, the Cordwood
Puzzle Too by Boldport doesn’t
include any instructions. That’s
part of the fun, or frustrating part,
depending on your viewpoint.
In the 1950s and 1960s, engineers saved space
by using what is called the Cordwood assembly
method. Components were sandwiched, quite often
vertically, between two circuit boards. As surface-
mount technology advanced, and components got
smaller, this type of circuitry faded away. Boldport
created an inexpensive and fun little demonstration
of this period technique. If you’re up for a challenge,
this might be a good kit for you. But if you’re new to
soldering, I’d hold off on picking this one up until you
learn the basics. Head over to the website to learn
more about this unique puzzle kit, and some hints on
how to assemble it.

MintyBoost Kit – v3.0


ADAFRUIT $19.50 adafruit.com VERDICT
Cordwood Puzzle
Too
Interesting and
beautiful.

T
he MintyBoost from Adafruit is a
must-have kit for anyone getting
started with soldering. I have
bought over 100 of these kits to teach
soldering over the years. People are
9 / 10
so amazed at how easy it is to build, VERDICT
and how interesting the electronics are that make it MintyBoost Kit
work. Yes, you can charge your phone from two AA - v3.0
batteries! The latest version of the kit provides Why buy
500 mA at 5 V. It works with almost anything that when you can
requires 5 V power. It’s a perfect example of kits that make it?
are fun to build, and have longevity. Head over to
Adafruit to learn more about this fun little kit.
10 / 10
88
FIELD TEST

unPhone – all-in-one LoRa,


Wi-Fi and BT dev device
with touchscreen
and LiPo battery
PIMORONI $147.64 pimoroni.com

VERDICT

B
uild your own phone? Sort of! It’s basically an all-in-one radio unit that features
The unPhone is an IoT development LoRa, Wi-Fi, and Bluetooth technologies coupled with unPhone –
platform that is based on the very a LiPo battery and LCD touchscreen. all-in-one
popular ESP32-S3 microcontroller. It also includes an SD card reader, accelerometer, Powerful and
It’s an open-source project developed compass, and vibration motor for haptic feedback. It versatile.
by the University of Sheffield, in won’t exactly replace your phone, but you can send
partnership with Pimoroni and Gareth Coleman. So,
what does it do exactly?
messages over long distances, or create a wireless
IoT device. 9 / 10
89
DIY kits

BEST OF BREED

Noisette Optical
Theremin kit
TINDIE $44 tindie.com

I
love theremins! I have built several over
the years. The Noisette by Zeppelin Design
Labs is an optical theremin, my favourite
type, that looks to be very easy to assemble
and fun to use. If you’ve never heard of the
theremin before, just imagine those old
black-and-white horror movies with their creepy and
spacey soundtracks. VERDICT
The Noisette features two optical sensors, allowing Noisette Optical
you to control pitch and volume. There is also a Theremin kit
master volume knob and a wave shape selector. You Fun to build and
can create square waves, sine waves, or a mix of play.
either. It also features an on-board speaker for ease
of use. This looks like a great kit for teaching anyone
basic electronics and learning how to solder. 10 / 10
SPOOLT
PIMORONI $8.32 pimoroni.com
Who says you can’t solder together some tools too?
Typically, you solder electrical components, but in
this kit from Boldport, you solder together a solder
spool holder. It’s a clever use of PCBs. It’s also
something everyone needs! Pick one up and get
ready to build a fun little conversation piece for your
electronics workbench.

90
Learn coding
Discover how computers work
Build amazing things!

magpi.cc/beginnersguide
M5Stack Card Computer

REVIEW

M5Stack
Card Computer
Bridging the line between microcontroller and computer

M5STACK $29.90 hsmag.cc/cardputer

By Ben Everard

T
he Card Computer, also known as each piece is very basic. The advantage comes, not
the Cardputer, is an expansion of in any one piece of it, but in having it all together in a
the M5StampS3. This base board has single, affordable device.
an ESP32-S3, which has a dual-core The ESP32 packs a big processing punch – it’s
Tensilica processor running at up to the most powerful of the common microcontrollers.
240MHz with 512kB of RAM, 8MB of It can, for example, emulate a Game Boy (Espeon:
flash, and Wi-Fi and Bluetooth connectivity. hsmag.cc/cardputergb). Given the processing
Onto this removable board is a 56-key keyboard, power of this board, and the fairly minimal
1 W I2S amp with speaker, 1.14 inch IPS screen, interfacing options (just two GPIO pins on the Grove
microphone, and 1400 mAh battery. You can also add connector), it really feels more like a computer than
more hardware via a Grove connector. a microprocessor board.
All of this comes in a sturdy plastic case which While it doesn’t have an operating system in
features Lego-compatible mounts and magnets for the conventional sense, some of the firmware
attaching to, well, anything ferrous. This is a huge can launch different apps, and fulfil the role of
amount of hardware for the price, so it should come a rudimentary OS. One slight note of caution to
as no surprise that it does have limitations: the consider here: while 512kB of RAM is a huge
240 × 135 pixel screen is pretty small for most amount by most microcontroller standards, many
purposes; the buttons are hard to press, and the other ESP32 boards have additional PSRAM, which
speaker is quite tinny. The hardware isn’t bad, but the Cardputer does not. In some memory-hungry

Right
Any spare space is
ÄSSLK\W^P[OKL[HPSZ
VMOV^[OLOHYK^HYL
is connected up

92
FIELD TEST

Left
56 buttons is a
O\NLU\TILYMVYH
JVTW\[LY[OPZZPaL

applications, you might find it more limited than Army knife for data collecting. It could also be useful
other options. for running Python scripts on the go if you need to
You can program the Cardputer via the ESP-IDF, or interact with some networked hardware. Given its
Arduino. The example code is a bit lacking, and slightly cyberpunk look, we could definitely see it
it’s not the easiest microcontroller to get started fitting into some cosplay outfit or prop, but the lack
with – so we wouldn’t recommend this for of a secure mounting option makes that a bit more
beginners – but if you’ve got a bit of experience with tricky than it needs to be.
embedded programming, it should not present too It could certainly be a fun project for becoming
many problems. more familiar with the ESP32 microcontroller in
Fortunately, though, if you set out programming general, or the M5Stack specifically. The board at
the Cardputer, you’re not on your own. There is the heart of the Cardputer is removable, so if you
an emerging community around this device that is prototype something that needs only a portion of the
based around a subreddit (hsmag.cc/cardsr), and hardware, you could pop it out and just connect up
a Discord server (hsmag.cc/carddisc). They’ve what is required.
created a few useful additions to the official In all these cases, it feels a bit like we’re making
firmware, including a MicroPython build (and app up a potential project because, in truth, we like the
launcher called MicroHydra (hsmag.cc/cardhydra), Cardputer. What it lacks in utility, it makes up for in
a binary app launcher (hsmag.cc/cardlauncher), fun. Perhaps this is simply because this reviewer
and some modifications to the official firmware has done too many orbits around the sun, but the
(hsmag.cc/cardextended). Cardputer seems like exactly what he thought the
future would be like when he was younger.
FORM OR FUNCTION? In many ways, it’s like a 1980s home computer
The big question, in our mind at least, is what is the but shrunk down to miniature size, and that was
Cardputer for? what we thought technological progress would be
We’re a bit perplexed that the makers added like. Yes, almost all the examples we’ve seen could
Lego-compatible mounts and magnets, but not be done better by a phone app, but somehow, that VERDICT
mounting holes. This means there’s no way of just wouldn’t be the same. It’s a fun
bolting it down to anything. The 56-key keyboard We don’t want to second-guess your projects, gadget,
obviously gives you a lot of buttons to press, but so you’ll have to work out for yourself if it can be but we’re not
sure what to
they’re not particularly nice buttons and, with such a useful to you. Some products, though, are worth it
use it for.
small screen, it’s hard to do much useful text entry. simply because they make you smile, and for us, the
There are a few niches that this could fit into well. Cardputer is one of these. It might not be the most
The Grove-compatible connector means that you can
plug in some sensors and it could be a bit of a Swiss
practical microcontroller development board around,
but we love it anyway. 9 / 10
93
Bangle.js 2

REVIEW

Bangle.js 2
ESPRUINO £76.80 shop.espruino.com

By Ben Everard

T
here are two sides to any bit of up with most of your needs. There’s a bit of a delay
electronics: the hardware and the in starting apps, but not enough to annoy us.
software. On the Bangle.js 2, both are This reviewer is really impressed by the hardware,
worth a close look. There is no such mainly because of how much software it keeps
thing as perfect hardware – especially running and how little battery power it uses.
on a device as constrained as a However, there is another take – the screen isn’t
smartwatch. There is simply hardware that makes as bright and crisp as some others. The heart-rate
trade-offs – for some users, those trade-offs will be monitor is a little finicky, and the GPS can be slow.
good, and for others, they won’t. For us, the trade-off of having good battery life is
Any smartwatch has to find the right balance well worth these aspects, but others may prefer a
between features and power consumption. By far different trade-off.
the hungriest bit of kit on a smartwatch is the screen.
Producing light takes power. A 60 mA backlight A SOFTER SIDE
might be insignificant to a mains-powered device, While the hardware is a good proposition, it’s the
but it’ll kill a watch in just a few hours. However, software that brings this watch to the attention
a bright, crisp display needs these photons. The of this magazine. The entire software stack is
Bangle.js 2 keeps this part of the power budget designed to be programmable and is based on
low by using a 176 × 176 3-bit colour transflective the open-source Espruino framework. This means
display. Transflective means that it’s lit by reflected that everything is written in JavaScript – a language
light rather than a backlight, and, in normal light that seems to delight as many people as it horrifies.
conditions, you can read it without the backlight JavaScript was originally a language used to add
enabled. Having this display means that the battery features to web pages, where it sat between two
life is measured in weeks rather than days. Exactly asynchronous and unpredictable things: people and
how many weeks depends on what you’re doing web servers. The way it developed here – with a
with it, but it’s likely to be in the range of one to four. strong emphasis on event-based programming –
Strapped onto this screen is an impressive range means it’s a good fit for some other cases,
of sensors, including GPS, heart rate, and barometric including where low power use is essential. It can
pressure. A 64MHz Nordic microcontroller with take a bit of time to get your head around event-
an Arm Cortex-M4 core pulls all the data together based programming if you’re used to a more
and keeps the screen ticking. This is a reasonably traditional paradigm, but it’s a good fit for watches
powerful microcontroller that should be able to keep (and web pages).

94
FIELD TEST

Left
Less excessively
1990s clock faces are
available for people
whose tastes have
progressed since
Saved by the Bell

Far Left
Apps are delivered to
the Bangle directly
from a Web Bluetooth-
capable browser

There is an app store for Bangle.js 2 at


espruino.github.io/BangleApps that can load apps
directly onto your watch via Web Bluetooth. At the
time of writing there were 543 apps available, but
many replicated functionality. There are apps for
most core functions of heart-rate monitors, GPS
trackers, and phone notifications, but beyond this,
it’s a little sparse. However, the point of an open
smartwatch isn’t that there’s lots of apps available,
but that it’s easy to create your own.
The software stack is open by design, so you can
access all of the watch’s hardware without artificial
limits, and there’s plenty of documentation to get
you started. All of the apps in the store are open and
linked via GitHub, so there’s a lot of code that you
can look at for inspiration.
While many smartwatches are intimately linked to
smartphones, the Bangle.js 2 is different. It can be
linked to a smartphone – and has a companion app
for both Android and iOS – but it’s fundamentally
a standalone device and doesn’t need the phone small size of the screen, we found it a bit clumsy.
for any of the core functions. The main thing you’d We wouldn’t say it was hard to use, but it never VERDICT
want the phone for is for receiving notifications, quite felt natural to us. Open, hackable,
or transferring data. The latter can be done with a However, we absolutely love the battery life and lasts for ages
computer and web browser instead. daylight-readable screen. Coupled with the open- on a single
Overall, we think this is a great, hackable watch source software, this is definitely a smartwatch charge –
that many people will get a lot of joy out of. The we can see ourselves using for a long time. We’ve that’s a great
part of the watch we dislike the most is the played around with lots of hackable smartwatches combination.
interface. There’s a single button on the side which over the years (including the original Bangle.js), and
can be used for short or long button presses.
Additionally, there’s a touchscreen, but given the
we can confidently say that this is our favourite by a
significant margin. 10 /10
95
Crowdfunding now

REGULAR

CROWDFUNDING
NOW
The Power Mole
Fire electrons through your windows

From $59 hsmag.cc/powermole Delivery: May 2024

O
utdoors projects are great fun, Mole on the inside, and plug it into a normal power
especially once the skies darken in outlet. Then you fix the other part to the outside of
autumn and LEDs shine. Whether the window. There’s a USB socket that you can plug
it’s Halloween props scaring passers- anything you like into. It provides up to 10 watts at
by, winter solstice lights shining, or 5 V. This solves a very real problem that we have,
Christmas decorations dazzling, there’s a great run and we suspect a lot of other makers do as well.
of outside fun over the darker months. However, However, we won’t be able to try this out as it only
what’s not fun are draughts caused by cables ships to the USA. Our readers across the pond can
running through open windows. test this out, but we’ll have to wait until they open
The Power Mole solves this by letting you transmit up international shipping.
electricity directly through glass up to 30 mm thick.
This might sound like witchcraft, but it’s exactly the
Left
same sort of witchcraft that lets you charge your This is chunky and
not particularly
phone without wires. You pop one side of The Power aesthetic, but it does
solve a very real
problem that we face

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.

Invisibility shield
Hide from your enemies

From £54 hsmag.cc/invisishield Delivery: Dec 2024

I
nvisibility shields, cloaks, and vehicles photos all have bold horizontal stripes in
have been staples of science fiction for the background.
almost as long as there has been science There is obviously the concern about nefarious
fiction, and now, thanks to the Invisibility uses of such a device, but fortunately, it’s a bit too
Shield Company, you can buy one. obvious that something is there for this to be a real
This invisibility shield works with some clever concern. This risk is further reduced because it’s not
optics we don’t really understand, but we think it see-through in the other direction. In other words,
basically comes down to blurring things that are close if you can’t see the person hiding behind the shield,
behind the shield while less blurring things further they can’t see you.
away. While we haven’t tried one out, it’s probably Basically, we have no idea what this is for, but also,
no coincidence that the most impressive example we want one.

(Far) Left
If you have any idea
what you could
actually use this
for, get in touch
– hackspace@
raspberrypi.com

Left
The invisibility shield
is really impressive in
the video. Take a look
at the link above to
watch it

97
#79 ON SALE
30 MAY

The best
3D printers

ALSO
CIRCUITPYTHON
RASPBERRY PI
TINY COMPUTERS
LASER CUTTING
AND MUCH MORE

DON’T MISS OUT

hsmag.cc/subscribe
RFID treasure hunter
Some time ago, Robert MacLaren had an idea to create a treasure hunt using
5),' UDGLRIUHTXHQF\ LGHQWLÀFDWLRQ  FDUGV DQG DQ 03 SOD\HU PRGXOH 1RZ
WKDQNVWRDQ$UGXLQR1DQRD')5RERWVSHHFKV\QWKHVLVPRGXOHDQGDORYHO\
FXVWRPFDVHIHDWXULQJWKUHDGHGLQVHUWVPHOWHGLQWR'SULQWHGSODVWLFLW·VKHUH
8VLQJWHFKWRXSGDWHROGJDPHVLVDJUHDWZD\WRJHWNLGVDFFXVWRPHGWRWKLQJV
WKDWJREHHSDQGEOHHS8VLQJ\RXURZQWHFKWKDW\RX·YHPDGH\RXUVHOILVHYHQ
EHWWHU ² LW H[SRVHV \RXQJ PLQGV WR WKH SRVVLELOLWLHV WKDW D VROGHULQJ LURQ FDQ
XQORFNDQGPRVWLPSRUWDQWO\RIDOOLWHDUQV\RXVHULRXV%URZQLHSRLQWV
Manage your
servers or PCs
remotely!

PiKVM V4 Mini
Small, cost-effective, and powerful!

Power consumption in idle mode: just 2.67 Watts!


Transfer your mouse and keyboard actions
Access to all configuration settings like UEFI/BIOS
Capture video signal up to 1920x1200@60 Hz
Take full control of a remote PC’s power

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

A cost-effective solution for data-centers,


IT departments or remote machines!

Available at the main Raspberry Pi resellers

You might also like