We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

A journey to the hardware world

00:00

Formal Metadata

Title
A journey to the hardware world
Subtitle
A software engineer retrospective
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
As an embedded software engineer, I'm used to be at the border between software and hardware. However, for many years I delegated everything more complex than finding a GPIO number to a dedicated hardware team. Now working as a freelance engineer, I've decided to get over the barrier, to be more independent. In this talk, I'll share my journey to the hardware world, from simple hardware designing and routing using free software to more complex design review. As a big difference between hardware and software is the required equipment, I will also go through the equipment I had to buy and how I use it. I hope to convey the message that while hardware is a vast world, it is a real advantage for the software engineer to get familiar with a few basic tools of our hardware colleagues.
Computer hardwareMathieu functionSoftwareWorkstation <Musikinstrument>MetreFluxFlash memoryComputer programmingSoftware engineeringLaptopMessage passingCASE <Informatik>Software developerBefehlsprozessorProcess (computing)Kernel (computing)Maxima and minimaSoftwareSet (mathematics)Computer hardwareFunctional (mathematics)SurfaceBlack boxPower (physics)Bit rateComputerFlash memoryComputer programTracing (software)Workstation <Musikinstrument>BitSelectivity (electronic)Multiplication signDifferent (Kate Ryan album)Web pageZoom lensBuffer overflowNumberDegree (graph theory)WhiteboardDigital electronicsMetreCuboidYouTubeReverse engineeringProjective planeMotherboardData miningComponent-based software engineeringData structureRemote administrationComputer animation
Program flowchart
Transcript: English(auto-generated)
So, hi everyone. My name is Mathieu Tasse. I'm a software engineer and this talk is about a retrospective of my last year when it comes to hardware development. So, my background is that I do a lot of C programming. I've been doing so for
the last 10 years, kernel drivers, libraries, mostly on Linux, so with all of that mostly for profit because you get to make a living. And I've also been hacking on more fun stuff like guide, new gigs, functional stuff for fun this time.
And to me, up to last year, hardware was more or less like a black box. I mean, I was familiar with the surface of the box which are data sheets, manuals, schematics, but what's inside of it wasn't that interesting to me. If I had something
harder than finding out a GPIO number or any kind of trouble, I found my hardware coding, dropped the ball and moved on. But last year, I almost randomly I discovered the
world of hardware repair and micro soldering on YouTube. And it's a fun world. There are some really, really talented people which are repairing some stuff. They are finding the one tiny capacitor that is failing, removing it, and just by buying some one zero zero one cent
capacitor, you are fixing a board. I found that quite interesting. I think that the world will be really different maybe in 20, 30 years and having this kind of tool set
could be interesting. And at the same time, I had a project where I was involved in the design of a motherboard for an Intel CPU. As the hardware guy was a bit buzzy, I was somehow against my will involved in the hardware selection. So I learned that it's more or
less picking out ICs, which means integrated circuits. It's like often a tiny black box and you have to pick one. You have to pick one that is not out of stock and it's challenging these times. And once you pick one that maybe will ship, then you need
to draw the wires between them. And it was quite a fun exercise. It gave me the motivation to acquire some tools because one of the difference between software and hardware is that with software, well, you can have your laptop and work everywhere. With hardware, my experience
is that it's not only that you need some tools, it's that you need all the tools. Like if you don't have everything, you will still have something missing and you'll be, oh no. And so this is about how to turn your desk into a terrible mess. So first, you
need to buy a microscope. You don't need at times 5,000 zoom. 540 is way than enough. You need some LED lightnings so that you're able to see what's under that. And it's quite a fun exercise to learn to solder under a microscope and it's a nice tool to use.
Then you need obviously a soldering iron. Most of you are familiar with it. You need a hot air station. It's maybe even more important than the soldering iron. You use that to desolder some ices, the tiny black things. We solder them but it's
difficult to manage because it's blowing 400 degrees air so it's easy to mess everything, burn your board. You need a generator to power your board. You need a oscilloscope to be able to see your signals. You need also a breadboard so that you're
able to experiment, try out some things. You need some components, some resistors, some capacitors, some inductances. As I said, it's nice to have all of those so that when you are trying out something, you don't need to wait for two weeks, five weeks to experiment. You need a multimeter. You don't need a fancy one. It's like a two
euros multimeter. The main function is that when you connect the probes it beeps. It sounds funny but with that you can reverse engineer some tiny circuits. You can isolate some issues.
You can do a lot of stuff. You need some flux so that the solder is able to flow nicely. It's probably very toxic and as healthy as eating lead for breakfast. So maybe you also
need some kind of human extractor. I need to improve mine because it's bad. You need some solder week or solder pump so that you're able to remove the solder when you have made some mistakes. You need some tweezers and more than that you need to learn how to use them
because when you are dealing with O4O2 components, they like to jump to the end of the room. So quite a fun exercise. You need a perfboard so that once you have a circuit on your breadboard, you can make it more permanent. You need some wires to wire things obviously. If you
have a two dollar multimeter then you probably also need an RLC meter so that you are able to find the values of your components. And last of all, I felt like I needed, I have
a software engineer. I did some hardware school but not so much and I felt like I needed some kind of reference book. When it comes to software, to me it's like, it's SICP, Structured and Interpretation of Computer Programs. It feels to me like a novel. It's like a Stephen King novel. I can read it. So entertaining. And I ask like,
I can use what's the reference book for hardware. People tell me it's the art of electronics. So I can just say that it's a whole different deal here, to me at least. Like reading more than two or three pages give me like horrible headaches. But it's a reference
book. You will find some more in-depth explanations on electronics like Overflow. And when I acquired all that equipment, I tried to design some easy circuits. So this one is a flash programming device on a perfboard so that you are able to put your IC on the
circuit on the left hand corner and then able to flash it with flash RAM. That was my first circuit. Then I managed to make a few repairs. I had a zero percent success rate for like three months. Then I did hit two percent success rate by fixing my coffee machine. But since then I managed to fix quite a few things. I also managed
to hack a BIOS. It was a nice thing. I had a laptop with password-protected BIOS. I tried to remove the BIOS, which is the IC there. I burnt it to ashes. I burnt
another one that I still burnt to ashes, about the third one. I flashed it with the device user with flash RAM, put BIOS without the password, managed to solder it back on with the hottest station I thought about. Then it wasn't working because I also managed
to blue some copper traces. Then I had to run some wires. But at the end, the notebook booted and it's not much, but it was quite a success to me. Then finally, I did try to get into PCB design. So I have a LED ribbon around my desk and I tried to
make it remote controllable. So I designed the PCB. It's the worst use case you can even think of, but you get to start somewhere. So I designed a PCB on KiCad with a CPU that was really fun to solder, a regulator, USB port, nothing fancy. I found both software,
I found KiCad really fun to use. It was easy to draw the schematics, to make the routing even without any experience. I mean, really nice software. I tried LibraCad for
my next design because the name sounds appealing. But it was quite an interesting process. Yeah, that's it. So the takeaway message is that even if you are 100% software engineer and you don't want to get into hardware, having a minimal set of equipment
and minimal set of knowledge allows you to do some fun stuff and tries to connect you to your hardware colleagues, which is a good thing in my opinion. So thank you.