00:00:00.029 --> 00:00:00.630
Hi everyone.
00:00:00.631 --> 00:00:06.450
And welcome to the Router, the official podcast of the UQ computing society, where we explore the human side of tech.
00:00:06.809 --> 00:00:07.679
I'm your host, Matt.
00:00:07.769 --> 00:00:11.609
And today I'm having a chat with Will Toohey also known as@mon on Slack.
00:00:12.029 --> 00:00:18.510
He currently works at MOVUS as a software engineer, but in his spare time, he is a passionate rhythm game fan and a hardware hobbyist.
00:00:17.971 --> 00:00:27.510
Today, he's going to be telling us all about his experiences working on these side projects and how you can get into hardware too, no 4-year electrical engineering degree required.
00:00:36.509 --> 00:00:37.950
Welcome to the router.
00:00:37.951 --> 00:00:38.880
Will, how are you doing?
00:00:39.390 --> 00:00:40.289
I'm doing great.
00:00:40.290 --> 00:00:40.829
How are you?
00:00:41.189 --> 00:00:42.000
I am all right.
00:00:42.600 --> 00:00:48.299
Um, so I thought a good way to start would kind of just feel like, uh, if you could give a bit of an intro about, about yourself.
00:00:48.979 --> 00:00:50.119
So I'm William Toohey.
00:00:50.899 --> 00:00:55.219
Um, I finished a software engineering degree from UQ a couple of years ago.
00:00:56.119 --> 00:01:02.960
Um, currently I'm working for a startup coming out of UQ's ilab called MOVUS that works in predictive maintenance.
00:01:03.439 --> 00:01:18.500
And on the side, my major hobby is making and selling and manufacturing, uh, controllers for arcade games and interface things for arcade games and basically making PCBs and designing PCBs.
00:01:18.501 --> 00:01:21.829
And that's my hobby at the moment.
00:01:22.549 --> 00:01:22.549
Yeah.
00:01:23.000 --> 00:01:23.599
Side hustle.
00:01:23.600 --> 00:01:24.140
You could call it
00:01:24.409 --> 00:01:24.980
Side hustle.
00:01:24.980 --> 00:01:25.180
Yeah.
00:01:25.180 --> 00:01:25.430
Yeah.
00:01:26.420 --> 00:01:28.159
Um, so, so that's interesting.
00:01:28.161 --> 00:01:33.049
So you only studied software engineering, um, so you didn't study computer engineering or anything like that?
00:01:33.079 --> 00:01:33.349
Just,
00:01:33.439 --> 00:01:42.590
Yeah, so I actually, I started doing mechatronics, uh, but it turns out that I don't like the mechanical side of things, so I switched to software and aerospace because it seems cool, but the math was too heavy.
00:01:42.590 --> 00:01:43.819
So I went to straight software.
00:01:44.989 --> 00:01:45.409
Fair enough.
00:01:45.439 --> 00:01:48.319
But I focus mostly on the firmware side of things.
00:01:48.320 --> 00:01:55.819
I really get a kick out of optimizing software to make it run on constrained platforms and getting the most out of a piece of hardware.
00:01:56.450 --> 00:01:56.450
Hmm.
00:01:56.480 --> 00:02:01.640
So, so did you do a little like embedded systems programming kind of stuff that you need that kind of thing?
00:02:02.719 --> 00:02:05.689
Um, I think the deepest I went, I didn't actually do embedded systems.
00:02:05.691 --> 00:02:08.539
The closest I went was CSSE2310 actually.
00:02:08.780 --> 00:02:13.909
And also CSSE310, which I believe is the FPGA course.
00:02:14.300 --> 00:02:14.300
Yep.
00:02:14.569 --> 00:02:14.569
Yep.
00:02:15.139 --> 00:02:23.120
And that was about the deepest I went apart from that it's just applying standard software engineering stuff to embedded and making sure to optimize all the time.
00:02:24.020 --> 00:02:24.590
Sounds good.
00:02:24.830 --> 00:02:36.500
So, um, so you mentioned PCBs, uh, I guess to anyone who's so, so as someone who's not super in into this kind of thing, um, I know that it sounds a printed circuit boards, right?
00:02:36.501 --> 00:02:39.949
So it's a kind of like the green little things.
00:02:40.580 --> 00:02:43.789
Uh, you have all your, like your circuits printed on them and all that.
00:02:44.300 --> 00:02:54.259
Um, but could you maybe give a little bit of an intro to those like more software inclined people like, like myself, I guess you kind of don't know what's, what's involved in, in getting a PCB or printing one.
00:02:54.949 --> 00:02:55.250
Yeah.
00:02:55.280 --> 00:03:01.569
So if you do I believe team project, uh, there'll be a PCB component there and it's effectively, okay.
00:03:01.570 --> 00:03:05.289
You've got your software on your computer, but you want something to happen in the real world.
00:03:05.740 --> 00:03:07.300
Maybe it's as simple as a keyboard.
00:03:07.300 --> 00:03:20.020
In my case, it's a slightly more complicated keyboard with a couple of knobs on it, but really all you want to do is you want to attach those knobs to a controller that talks over USB to your computer and gets input into your thing.
00:03:20.710 --> 00:03:38.949
Or it could be a standalone thing, whatever you want, but it's effectively just designing a circuit that connects all the components together that you'd want to connect together and putting that all into a flat piece of fiberglass and making it easy to manufacture and you stick it all together.
00:03:38.950 --> 00:03:43.120
And instead of having to wire up everything by hand, you're just solder everything to the board and it's all connected for you.
00:03:43.650 --> 00:03:44.729
Oh, very nice.
00:03:44.969 --> 00:03:49.740
And then, like, if you had like any, like, I guess I/O or anything like that, you kind of just do that after the fact, right?
00:03:49.830 --> 00:03:51.090
Like on the top of the board,
00:03:52.199 --> 00:03:53.039
Uh, what do you mean by that?
00:03:53.280 --> 00:03:54.629
As in like connections to other things?
00:03:55.050 --> 00:03:55.259
Yeah.
00:03:55.260 --> 00:04:00.599
So you felt like your, like your rhythm game controllers or anything like that, you'd have some sort of like USB port or something, right?
00:04:01.110 --> 00:04:01.469
Oh yeah.
00:04:01.471 --> 00:04:04.800
So you're just solder on a USB port and you'd get a USB cable and plug it in.
00:04:04.800 --> 00:04:11.590
And as long as you haven't messed up your PCB design and everything's connected properly, you plug it in and you get that beautiful boom, boom.
00:04:11.849 --> 00:04:12.210
And off you go.
00:04:13.199 --> 00:04:13.560
All right.
00:04:13.561 --> 00:04:14.189
Sounds amazing.
00:04:14.219 --> 00:04:16.800
And I guess like, yeah, so that, that would be like the next step off.
00:04:16.800 --> 00:04:22.189
Do you have some sort of like a, uh, maybe like an Arduino or something as what you'd first be or how
00:04:22.589 --> 00:04:27.300
You always have to start with an Arduino on a bread board because there's no faster way to prototype things really.
00:04:27.959 --> 00:04:31.560
Um, and then PCB is kind of like the polished finished version I guess.
00:04:32.550 --> 00:04:34.230
Uh, I've got several unfinished PCBs.
00:04:34.230 --> 00:04:34.949
I can assure you.
00:04:35.310 --> 00:04:39.149
I know, unfinished or finished depends on, it depends on the state of the project.
00:04:39.870 --> 00:04:42.629
Definitely a lot less broken than wires all over your desk.
00:04:43.709 --> 00:04:44.069
Yeah.
00:04:44.100 --> 00:04:59.220
I think like with, um, the students who don't really go into, um, do team project or anything like that, um, the most that software students get exposed to nowadays, I think is, is really that breadboard kinda kind of thing from a CSSE2010.
00:05:00.629 --> 00:05:04.529
Um, they're like, yeah, they're the tiny little cables that break and all that.
00:05:04.531 --> 00:05:04.829
So
00:05:05.430 --> 00:05:05.790
Yeah.
00:05:05.819 --> 00:05:10.350
And I think CSSE2010 in particular, I think is an absolutely fantastic introduction.
00:05:10.829 --> 00:05:17.079
Um, if, for example, you're in a stream, is it, is it optional in any streams because if it's optional, I recommend taking it.
00:05:17.129 --> 00:05:17.129
Yeah,
00:05:17.339 --> 00:05:17.550
Yeah.
00:05:17.550 --> 00:05:17.699
Yeah.
00:05:17.790 --> 00:05:21.089
So studying computer science and software engineering, it's definitely compulsory.
00:05:21.120 --> 00:05:21.899
So yeah.
00:05:22.290 --> 00:05:22.290
Good.
00:05:22.779 --> 00:05:22.930
Yeah.
00:05:23.639 --> 00:05:24.000
Very good.
00:05:24.000 --> 00:05:24.899
I loved it as well.
00:05:25.500 --> 00:05:40.439
Um, so another question, I guess I had, um, so with these hardware projects, could you go a bit into, uh, you mentioned rhythm game controllers, uh, for the uninitiated, uh, um, what, what are those, what does that entail?
00:05:41.279 --> 00:05:50.220
So if you're not sure what a rhythm game is, you might've heard of osu!, You might've heard of guitar hero, you might've heard of dance dance revolution, there's music on the screen and notes that you have to hit in time to the music.
00:05:50.639 --> 00:05:58.639
And I got really into this rhythm game called Sound Voltex, which is, um, effectively six buttons to hit with your fingers and knobs, to twiddle with your fingers.
00:05:59.089 --> 00:06:06.470
And it's quite unique and it's very difficult to simulate knobs with a keyboard, um, there existing controllers on the market, but they're massive.
00:06:06.500 --> 00:06:09.829
They're about$200 and an extra$150 in shipping.
00:06:10.339 --> 00:06:11.720
And I thought I can do a bit better than that.
00:06:11.750 --> 00:06:13.790
I can make this smaller and a bit more portable.
00:06:13.790 --> 00:06:24.620
So I designed a small PCB put on an ATmega controller, similar to the one you might be using in 2010 slapped on a couple of buttons and a bunch of encoders made a PCB for it.
00:06:25.040 --> 00:06:27.350
And it actually worked fairly well.
00:06:27.500 --> 00:06:40.519
And so I started iterating on that and made it bigger because it was too small and too cramped and slowly over the course of a couple of years design this thing, um, posted about it online and people thought it was pretty cool.
00:06:40.521 --> 00:06:44.180
So I made a bunch more and I think I've sold about 300 so far.
00:06:44.740 --> 00:06:44.740
Cool.
00:06:45.040 --> 00:06:45.639
Very nice.
00:06:46.180 --> 00:06:51.850
Um, yeah, I'll, I'll make sure to chuck the link as well, if anyone is interested in, in Sound Voltex, uh, in the description.
00:06:52.449 --> 00:06:56.079
Um, but, um, so that's kind of cool.
00:06:56.081 --> 00:07:02.079
So, so how long did it take to build the first version of that?
00:07:02.081 --> 00:07:03.490
Like the first working prototype?
00:07:03.490 --> 00:07:10.990
Was it over like a, like a one weekend of just like crazy, uh, prototyping or was it kind of a long term?
00:07:11.769 --> 00:07:13.180
The first prototype actually?
00:07:13.180 --> 00:07:16.120
Yeah, it was about it pretty much was a weekend project.
00:07:16.120 --> 00:07:21.250
I just drew up and I was using Altium at the time because you get to use Altium at uni.
00:07:21.910 --> 00:07:34.240
Um, I just threw this thing together, drew up what seemed to be the right idea, put stuff on the board, um, sent it off to be manufactured by a random Chinese fab place received it two weeks later.
00:07:34.240 --> 00:07:36.670
And there were a couple of problems with it.
00:07:36.670 --> 00:07:42.430
The USB connector, for example, I had wired and correctly and had to hotwire some of the connectors to actually make it work.
00:07:43.810 --> 00:07:49.629
But yeah, you can really throw together a quick test PCB in a weekend easily.
00:07:49.660 --> 00:08:02.920
And if you get a bit more practice under your belt in a couple of hours, sometimes I can get a PCB just to test a concept because sometimes even with bread boarding, I don't like breadboarding, it's a lot of effort to plug in all the wires everywhere.
00:08:02.920 --> 00:08:06.100
Sometimes I'll just design a PCB to make my life easier.
00:08:06.790 --> 00:08:14.529
So again, I guess like over that weekend, you kind of used a lot of the like PCB design tools and things like that.
00:08:14.531 --> 00:08:25.959
How much of that was, was picked up from uni and how much of it was stuff that you just kind of had to like, you know, mucked around with and, and Google, is it kind of like when, when, like when you walk into an entirely software project?
00:08:26.220 --> 00:08:35.889
No, at least for me, um, a lot of the time is spent just going on stack overflow and looking up very ad hoc solutions to the problems I kept running into and solving it that way.
00:08:37.149 --> 00:08:38.590
Um, was it kind of like that or?
00:08:39.399 --> 00:08:42.009
In PCB design, at least for me as a software person.
00:08:42.010 --> 00:08:43.690
So I wasn't trained in electrical engineering.
00:08:43.691 --> 00:08:47.169
I don't know some of the more advanced electrical aspects of it.
00:08:47.559 --> 00:08:56.039
It's kind of a, a feeling, uh, intuition that you get for how to make things and not have any problems.
00:08:56.070 --> 00:08:58.559
So, and that just comes with practice.
00:08:58.950 --> 00:09:10.049
One of my initial designs, I accidentally had a ground wire that instead of going from point a to point B looped around the entire PCB and then got to point B.
00:09:10.620 --> 00:09:19.559
And when I got the board, sometimes when I was turning the knobs, the buttons would start turning on by themselves and the board would start resetting if you spun the knob too fast.
00:09:20.129 --> 00:09:25.830
And without an oscilloscope, I just kind of looked at the board and eventually realized this ground wire was too long.
00:09:26.970 --> 00:09:29.549
Um, I fixed that in the next revision and it worked fine.
00:09:29.580 --> 00:09:34.049
So electrical engineers probably have a bit more official teachings.
00:09:34.110 --> 00:09:39.330
I know that there were a couple of PCB design lectures in one of the team project, uh, lectures.
00:09:39.509 --> 00:09:40.200
Oh yeah.
00:09:40.620 --> 00:09:51.870
Um, which definitely gave you kind of the basics, but yeah, a lot of it's just a wire needs to go from point a to point B direct from point a to point B and StackOverflow is still quite useful.
00:09:52.500 --> 00:09:59.490
Um, sometimes I'm not sure for example, USB, they say that you need to have differential pairs in that the wires need to be the same length.
00:10:00.120 --> 00:10:03.720
Um, so I looked up the USB routing best practices on stack overflow.
00:10:03.721 --> 00:10:05.940
And the end result is a lot of the time.
00:10:05.941 --> 00:10:18.480
It doesn't matter too much because the traces that you're making are maybe 10 centimeters long, the USB signals to be good can be somewhere within 20 centimeters of each other, which on a small PCB is huge.
00:10:19.379 --> 00:10:28.440
So instead of looking up how to do stuff, you just look up some concept and then best practice and stack overflow ends up giving you pretty good results that way.
00:10:29.149 --> 00:10:29.659
I see.
00:10:29.720 --> 00:10:30.019
Yeah.
00:10:30.500 --> 00:10:32.360
So, Oh, interesting.
00:10:32.450 --> 00:10:36.740
I guess like for me personally, these hardware projects are super intimidating.
00:10:36.919 --> 00:10:41.120
Cause it seems like there's so many ways in which you can, um, get things wrong.
00:10:41.149 --> 00:10:41.419
But
00:10:41.720 --> 00:10:43.850
I think the main mental block as well.
00:10:44.000 --> 00:10:46.759
Yeah, there are so many things that can go wrong and PCB design.
00:10:47.210 --> 00:10:50.809
The main thing is just accept that everything's going to go wrong all the time.
00:10:50.870 --> 00:10:55.429
Eventually it will stop going wrong because you learn, but things always go wrong.
00:10:55.431 --> 00:10:56.840
You just iterate and try again.
00:10:56.870 --> 00:11:05.000
Think about how many times you've hit compile on a C program and you've had a compiler or how many times you've thrown some JavaScript onto a website and you've uncovered some stupid bug.
00:11:05.480 --> 00:11:12.019
The only problem with printed circuit board is it cost you about$10 every time that happens, but it, things will go wrong.
00:11:12.020 --> 00:11:14.929
As long as you commit to actually iterate your project.
00:11:14.931 --> 00:11:15.769
You'll get there in the end.
00:11:16.659 --> 00:11:16.850
Let's see.
00:11:17.629 --> 00:11:20.269
Um, do you have any recommendations, I guess, for those who want to get started?
00:11:20.270 --> 00:11:25.100
Like, so you need to find somewhere to, to manufacture these, these PCBs, to print them out.
00:11:25.759 --> 00:11:27.080
Um, do you have any recommendations?
00:11:28.070 --> 00:11:42.799
So for the longest time I've been using Seeed Studio because they've been cheap and reliable, but recently JLC PCB along with, if you follow anyone electronics on YouTube, they advertise a lot, but thankfully they actually, they actually provide a fairly good service.
00:11:43.879 --> 00:11:45.080
Uh, they're very, very cheap.
00:11:45.081 --> 00:11:47.120
I think it's$2 for a set of PCBs.
00:11:47.149 --> 00:11:49.610
Plus don't ever forget the$15 tax.
00:11:49.730 --> 00:11:52.429
They ship it to you, but the PCBs themselves are quite cheap.
00:11:52.879 --> 00:11:54.730
The traces are all quite nicely routed.
00:11:54.730 --> 00:11:56.679
The silk screen is crisp the silk screen.
00:11:56.681 --> 00:12:06.820
Of course, being the writing on the PCB that tells you which parts that go where, um, but there's a bunch there's JLC PCB, there's Elecrow there's seed studio.
00:12:06.860 --> 00:12:09.610
There's a couple of others and they're all fairly similar.
00:12:09.669 --> 00:12:11.470
The PCBs are under$5.
00:12:11.471 --> 00:12:16.389
If they're 10 by 10 centimeters, you get five of them and they get delivered by us now, now,
00:12:16.809 --> 00:12:18.940
Oh, see you get multiple, you get multiple PCBs.
00:12:19.000 --> 00:12:19.330
Oh yeah.
00:12:19.331 --> 00:12:21.070
You're always, you always get five copies.
00:12:21.071 --> 00:12:34.090
So if you want to cut a PCB up and see what it looks inside, or if you want to completely ruin a PCB, um, if I've got some trace that is connected to a component, and I'm worried that if you hit this component too hard, the trace might come off.
00:12:34.240 --> 00:12:38.320
I'll just solder the component on a, rip it off myself because I've got five more PCBs to test it with.
00:12:38.559 --> 00:12:42.820
And that way you get a really good feel for exactly how strong these circuit boards are.
00:12:42.821 --> 00:12:44.200
And they actually are quite strong.
00:12:45.570 --> 00:12:48.360
So yeah, I get more opportunity for trial and error than I thought.
00:12:49.049 --> 00:12:49.470
That's cool.
00:12:49.860 --> 00:12:50.190
Yeah.
00:12:50.519 --> 00:12:52.320
Um, and I know we'll, we'll leave that in the description.
00:12:52.350 --> 00:12:58.320
And just to clarify, we are not sponsored by, uh, any sponsored by no one.
00:12:58.590 --> 00:12:58.590
Yeah.
00:12:59.250 --> 00:13:01.289
Just, uh, it's the word of mouth recommendation.
00:13:02.070 --> 00:13:03.090
Um, but cool.
00:13:03.929 --> 00:13:10.049
Um, I guess, were there any other projects that you kind of, uh, I I'm guessing that it hasn't been your only project.
00:13:10.860 --> 00:13:11.250
Yeah.
00:13:11.250 --> 00:13:16.320
If I go into my products folder, I've got something like 30 different things in various stages of things.
00:13:17.009 --> 00:13:21.929
Any, any, any good stories, any like, um,
00:13:23.169 --> 00:13:31.080
I've got, um, there's some interesting stuff with the Pocket Voltex, which is the Sound Voltex controller is the initial version.
00:13:31.081 --> 00:13:38.879
I wanted the RGB LEDs and I wanted them to be side mounted, but side mounted, RGB LEDs didn't exist in a very convenient form.
00:13:39.570 --> 00:13:46.019
So I got these through hole LEDs and bent the legs on them, but then I needed to drive them and I didn't want to get an expensive controller chip.
00:13:46.620 --> 00:13:56.580
And it turns out that you can push an ATmega chip a fair way past its stated maximum limits, as long as you do it infrequently enough.
00:13:57.120 --> 00:14:02.669
So if you've ever heard of multiplexing, it's powering something for only a small period of time.
00:14:03.000 --> 00:14:08.039
So if you have 60 LEDs, you power one at a time when you loop around and do them all in rows and columns.
00:14:08.460 --> 00:14:17.669
So I multiplex the LEDs together and an Arduino's pins I think are specified for a maximum of 50 milliamps per pin constantly.
00:14:17.671 --> 00:14:24.990
And I was able to push, I think about 120 milliamps through the pin because I was only firing through that pin about 10% of the time.
00:14:26.159 --> 00:14:33.149
And that's the really good thing about being a hobbyist is you don't need to worry about producing 10,000 of these or a hundred thousand of these.
00:14:33.179 --> 00:14:37.830
If you're doing something that's a bit naughty, if you can get away with it, it doesn't matter because it still works.
00:14:38.370 --> 00:14:41.190
So you can often drive things faster or use the wrong resistor.
00:14:41.191 --> 00:14:43.289
And it doesn't really make much of a difference.
00:14:43.860 --> 00:14:48.450
So kind of, kind of going against like the super rigorous principles, but it's all right.
00:14:48.659 --> 00:14:49.889
Cause you know, it's your own little.
00:14:50.309 --> 00:14:52.129
Throw stuff off the wall and seeing what sticks.
00:14:52.190 --> 00:14:52.549
Yeah.
00:14:53.450 --> 00:15:00.559
Um, one question as a is a more moderately curious software person with little experience.
00:15:00.889 --> 00:15:12.139
Um, I've always been worried that I'm going to like fry my fingers or hurt myself in some way when playing with all these like, you know, electronics, cause I don't know what, what I'm doing.
00:15:12.980 --> 00:15:23.750
Uh, would you say that it's at all dangerous or if there are any basic safety precautions, you would recommend the people who are messing around with hardware for the first time he want electrically trained.
00:15:24.279 --> 00:15:28.899
There are really only two big things to be very, very, very afraid of.
00:15:28.900 --> 00:15:37.779
And that is 240 volt AC power and batteries that go into like drones or scooters or e-bikes.
00:15:37.899 --> 00:15:42.429
Those are very scary and I would recommend staying away from them unless you're extremely comfortable with them.
00:15:42.940 --> 00:15:46.299
Everything else, it's all low voltage, five volt, 12 volt.
00:15:46.330 --> 00:15:47.529
There's not much that can happen.
00:15:47.799 --> 00:16:00.279
The worst things that I've done is you plug in your board, windows says this USB port is using too much power and you see a small little wisp of smoke rising from the board and you realize something's gone wrong.
00:16:00.340 --> 00:16:05.740
Now, obviously the first, uh, the first thought you have after that is to touch it and see how hot it got.
00:16:05.740 --> 00:16:08.080
But don't do that because you will burn your fingers doing that.
00:16:09.909 --> 00:16:15.100
But apart from that, it's, it's all such low power that it's very difficult to hurt yourself.
00:16:15.100 --> 00:16:21.789
You might stab yourself on a sharp pin more often than you'll hurt yourself with, uh, blowing things up.
00:16:22.360 --> 00:16:22.360
Hmm.
00:16:23.049 --> 00:16:23.350
Sorry.
00:16:23.350 --> 00:16:27.490
So low risk, as long as you avoid AC power from your straight from there.
00:16:27.580 --> 00:16:27.879
Okay.
00:16:29.110 --> 00:16:29.440
All right.
00:16:30.220 --> 00:16:43.029
Um, one last question I kind of had, um, was about, so, you know, you mentioned, so you only studied software engineering, um, but you mentioned 2010, um, as well, 2310, 3010.
00:16:43.900 --> 00:16:46.809
Is there anything else you'd recommend if you wanted to learn about this kind of thing?
00:16:46.840 --> 00:16:49.539
Cause, cause for, for software engineers, right?
00:16:50.169 --> 00:16:53.950
Um, and, and computer science students, we don't actually do the team projects anymore.
00:16:54.460 --> 00:16:56.710
Oh no, we do.
00:16:56.711 --> 00:17:05.589
We do, uh, design computing, which is kind of more like, uh, uh, entirely software focused kind of like there's like a game design thing and there's thing like that.
00:17:05.650 --> 00:17:10.180
But, um, would you recommend anything for those wanting to get into this kind of thing,
00:17:10.750 --> 00:17:26.470
Any courses that are all similar team product, if you have to make something that will be infinitely more useful than any other optional course that you could do because just forcing yourself to actually get hands on and as well, being surrounded by other people who might know something that you don't, that's the best thing that you can do.
00:17:28.480 --> 00:17:36.789
Um, as well as going to places like the edge in South bank who always have a bunch of people messing on random hardware products or I think hackerspace BNE has some very interesting,
00:17:36.910 --> 00:17:37.450
Oh yeah.
00:17:37.109 --> 00:17:38.799
I've heard about hackerspace as well.
00:17:39.339 --> 00:17:43.420
Um, warehouse or something, right where with all the stuff.
00:17:43.759 --> 00:17:51.779
So that was my real introduction to the hardware projects was being lucky enough to be surrounded by all these smarter people than me at uni to get me excited about it.
00:17:53.299 --> 00:17:53.569
Yes.
00:17:53.570 --> 00:17:53.960
That's great.
00:17:53.990 --> 00:17:55.130
That's basically it for me.
00:17:55.131 --> 00:18:00.680
I guess I want to ask if there's anything you wanted to, to say anyone, any other advice or,
00:18:01.759 --> 00:18:02.000
Oh yeah.
00:18:02.000 --> 00:18:03.619
There is one more thing I want to talk about actually.
00:18:03.890 --> 00:18:04.940
Get into Kicad.
00:18:05.690 --> 00:18:08.119
Kicad is an absolutely tremendous piece of software.
00:18:08.121 --> 00:18:14.180
If you haven't heard of it, it is a free PCB design software sponsored by the guys at CERN who do the large Hadron Collider.
00:18:15.109 --> 00:18:19.789
Um, five years ago it was acceptable, but not really great.
00:18:19.790 --> 00:18:23.690
It was kind of janky they've recently, not recently last eight months or so.
00:18:23.691 --> 00:18:27.920
They came out with a new version, version five and it is really a tremendous piece of software.
00:18:27.921 --> 00:18:30.349
Now completely lowers the barrier to entry.
00:18:30.740 --> 00:18:33.289
You don't have to worry about paying$10,000 for Altium.
00:18:33.529 --> 00:18:36.529
You don't have to worry about Altiums free cloud offering.
00:18:36.530 --> 00:18:39.410
That means that if they ever go down, you lose all your PCBs.
00:18:39.710 --> 00:18:40.670
It's all local.
00:18:40.849 --> 00:18:42.349
All the PCBs are text files.
00:18:42.619 --> 00:18:47.000
Often I'll find a bug with keycard where they won't let you do something, but you know, it's technically possible.
00:18:47.000 --> 00:18:48.619
You can just edit the text file.
00:18:49.519 --> 00:18:49.519
Hmm.
00:18:50.400 --> 00:18:50.779
Oh, so that's cool.
00:18:50.780 --> 00:18:54.980
So this, this would kind of replace any like other kind of software, but it's text based?
00:18:57.200 --> 00:19:11.480
Well, the, you edit it using a GUI, but Altium for example, even Microsoft office Libreoffice, no matter what you're looking at, if you're trying to open up a document in there, it's a bunch of XML files and zip things together can be quite complex.
00:19:11.480 --> 00:19:18.349
PDF files, especially an extremely complex, whereas keycard, you can look inside it and you can instantly understand just as a human being.
00:19:18.380 --> 00:19:18.829
Oh, okay.
00:19:18.830 --> 00:19:24.259
This is a piece of line on the copper layer on the top.
00:19:24.289 --> 00:19:34.819
And if you want to change the layer from f.cu, which is front copper to back.silkscreen, if the GUI is too dumb to let you do it, you just modify the text file and reload the GUI.
00:19:34.820 --> 00:19:37.099
And it works because it doesn't really care too much.
00:19:37.519 --> 00:19:38.150
Oh, that's cool.
00:19:38.180 --> 00:19:38.420
Is it?
00:19:38.421 --> 00:19:40.099
And this is all like open source.
00:19:40.670 --> 00:19:40.940
Yeah.
00:19:40.970 --> 00:19:43.730
Completely open source and Python scriptable as well.
00:19:43.730 --> 00:19:48.710
So if you have a massive PCB layout, I'm designing a keyboard that has 64 switches on it.
00:19:49.670 --> 00:19:52.099
Um, in Altium you might use rooms that lets you do that.
00:19:52.101 --> 00:19:56.630
But I just wrote a Python script that laid out the board for me in a perfect grid.
00:19:56.631 --> 00:19:59.990
And every time I wanted to move one thing, it moved them all forming.
00:20:00.829 --> 00:20:05.900
And there's a, there's actually quite a community around making scripts for Kicad that let you do interesting things like that.
00:20:06.859 --> 00:20:08.269
I guess that would be, that'd be kind of cool.
00:20:08.450 --> 00:20:15.769
Cause it would cater to all the programmers, you know, who just want to try messing around with scripts or whatever to make their little PCBs.
00:20:16.039 --> 00:20:16.519
Oh, that's cool.
00:20:17.750 --> 00:20:30.079
And one last thing I wanted to say as well, if you are a programmer wanting to get into PCB design, one thing I've noticed about the small hobbyist industry is that it's full of people who don't actually know how to write code, but they're really good at the hardware thing.
00:20:30.410 --> 00:20:37.940
So if you can bring your programming knowledge into the hardware space, you can produce some incredibly valuable PCBs.
00:20:37.941 --> 00:20:41.809
You can make some gorgeous interfaces that connect your PCB to your computer.
00:20:42.019 --> 00:20:54.430
Maybe you want to make a really cool audio amplifier that no one's done before, or whereas look something and go, if you need inspiration, look at a project that you use or a product that you use and think, can I do this better?
00:20:55.329 --> 00:20:57.789
Or even if you're starting out, just can I do this?
00:20:57.819 --> 00:21:00.309
Try and replicate something, put your own spin on it.
00:21:00.630 --> 00:21:02.250
Would you recommend a rhythm game controller?
00:21:03.730 --> 00:21:09.690
Only if you're into rhythm games, but if you are, it's quite fun because they're, they're very simple.
00:21:09.839 --> 00:21:13.230
It's just a USB controller buttons, maybe some knobs.
00:21:13.680 --> 00:21:15.630
A mini, basically a mini keyboard right here.
00:21:15.990 --> 00:21:16.200
Yeah.
00:21:16.201 --> 00:21:17.490
It's basically a small keyboard.
00:21:17.490 --> 00:21:18.750
In fact, that's also a good start.
00:21:18.750 --> 00:21:26.039
If you wanted to make your own 60% keyboard from scratch, you just make your own PCB put in a bunch of diodes, a bunch of switches wired all up.
00:21:26.099 --> 00:21:28.019
It can be quite therapeutic wiring, a PCB.
00:21:28.799 --> 00:21:28.799
Hmm.
00:21:29.490 --> 00:21:31.140
Well I guess there you go, anyone who's listening.
00:21:31.141 --> 00:21:35.160
If you want to mess around with hardware, um, it's not as intimidating as you might.
00:21:35.519 --> 00:21:36.210
You might think, you know?
00:21:37.470 --> 00:21:37.920
Um, and uh,
00:21:38.130 --> 00:21:40.589
I basically live in the projects channel in Slack.
00:21:40.590 --> 00:21:44.160
So feel free to, if you want any help with hardware stuff, feel free to ping me.
00:21:44.190 --> 00:21:45.299
I'd love to give you a hand,
00:21:46.230 --> 00:21:46.230
Right?
00:21:46.259 --> 00:21:51.660
That's it#projects on Slack and I'll link anything that was mentioned in the description of this episode.
00:21:51.661 --> 00:21:54.480
So you can, um, look into it further.
00:21:54.569 --> 00:21:54.900
All right.
00:21:54.960 --> 00:21:55.470
Thanks so much, Will.
00:21:55.290 --> 00:21:55.470
Fantastic.
00:21:57.030 --> 00:21:57.690
Thanks for having me.
00:21:58.230 --> 00:21:58.650
All right.
00:21:58.651 --> 00:22:00.089
That's all we have time for today.
00:22:00.119 --> 00:22:01.049
Thanks for joining us.
00:22:01.319 --> 00:22:03.660
As usual, our next episode will be out in a fortnight.
00:22:03.690 --> 00:22:05.730
So until then come join us on our Slack community at slack.uqcs.org or listen to past episodes of the router at router.uqcs.org.
00:22:19.890 --> 00:22:26.670
My name is Matthew Low and this podcast was created by the UQ Computing Society with gracious support from our industry sponsors.