WEBVTT

00:00.840 --> 00:01.640
Hello, friends.

00:01.640 --> 00:03.200
Joe here from HackerBoxes.

00:03.200 --> 00:06.280
Welcome to this build session for HackerBox 0057.

00:06.280 --> 00:15.200
This is an extension to our Learn to Solder workshop that we're doing with the Hardware Hacking Village as part of DEF CON 28 Safe Mode.

00:15.200 --> 00:16.320
Hope everyone's being safe.

00:16.320 --> 00:18.000
Hope you're having a great time.

00:18.000 --> 00:25.920
So, HackerBox is the original monthly subscription box for DIY electronics, computer enthusiasts, and hacker culture.

00:25.920 --> 00:32.080
The theme of this particular HackerBox, HackerBox 57, is Safe Mode.

00:32.260 --> 00:47.300
So, the primary content item of HackerBox 0057 that we're working on here is this really cool kit to build this exclusive indie badge, which we'll talk about more in a second.

00:47.300 --> 00:55.540
This HackerBox also includes a practice lock for practicing lockpicking and a set of lockpicks.

00:55.580 --> 00:57.460
There's also some exclusive items.

00:57.460 --> 01:02.560
There's a branded tube bandana that can be used as a Safe Mode mask.

01:02.560 --> 01:05.240
It has a really cool circuit board pattern on it.

01:05.240 --> 01:08.340
There's also some cool hacker stickers.

01:08.340 --> 01:15.100
There's an exclusive lapel pin that has our logo, our BitHead logo, wearing a mask.

01:15.100 --> 01:19.860
It's a special Safe Mode lapel pin.

01:20.720 --> 01:23.040
Let's see, there's also a USB cable.

01:23.040 --> 01:26.580
Oh, there's an IR remote controller that lets you control your PC.

01:26.580 --> 01:29.320
It's kind of like a remote control mouse to use for presentations.

01:29.320 --> 01:37.260
It also lets you control media functions, such as turning volume up and down and jumping tracks.

01:37.740 --> 01:46.660
Interestingly, because of the IR features of our indie badge kit, you can use that remote control, that IR remote control, to do some cool things with the badge as well.

01:47.560 --> 01:53.420
All right, so the badge kit itself will let you build up this badge.

01:53.420 --> 02:01.520
Of course, it has a pretty nifty PCB with the HackerBox logo on it as its basis.

02:01.700 --> 02:08.930
And then the processing module on it is called an ESP32T display module.

02:09.200 --> 02:10.980
Of course, it includes the ESP32.

02:10.980 --> 02:14.060
A lot of us are pretty familiar with this microcontroller.

02:14.640 --> 02:22.300
This microcontroller has a dual-core 32-bit LX6 microprocessor that can run up to 240 MHz.

02:22.300 --> 02:24.740
So it's very full-featured for a microcontroller.

02:24.900 --> 02:32.960
It also has built-in Wi-Fi and Bluetooth, a whole bunch of bus interfaces, all the standard stuff, a lot of GPIOs.

02:32.960 --> 02:41.220
This particular version of it, the T-Display, has an onboard IPS full-color display.

02:41.220 --> 02:43.840
It's a 240x135 display.

02:43.840 --> 02:46.120
It looks really sharp at that small size.

02:46.120 --> 02:47.660
It's actually quite a lot of pixels.

02:47.680 --> 02:49.840
It has a built-in USB-C interface.

02:49.840 --> 02:51.760
It also has a battery charger.

02:51.760 --> 02:56.680
You can connect a LiPo battery to it, and it'll keep it charged when it's plugged into USB power.

02:56.840 --> 03:04.840
The kit for this board also includes RCA interfaces for audio and video out.

03:04.920 --> 03:13.020
This can do composite video and audio out, sort of like what we used to have on the older 8-bit computers.

03:14.420 --> 03:21.920
You may have had a composite output on your Commodore 64 or Apple II computer back in the day, if you're as old as I am.

03:22.100 --> 03:25.640
So there's also a little five-way joystick.

03:25.640 --> 03:26.920
It's a little tiny joystick.

03:26.920 --> 03:28.320
It's a surface-mounted device.

03:28.540 --> 03:30.200
And there's a couple of buttons.

03:30.200 --> 03:34.520
So with this joystick and these two buttons, you can do a lot of nice controls.

03:34.520 --> 03:40.440
There's an infrared receiver and an infrared LED for doing IR blasting.

03:40.440 --> 03:45.840
So you can receive infrared signals and then blast them back out, or blast out different infrared signals.

03:46.540 --> 03:50.460
Let's see, there's also a little tiny surface-mounted buzzer there for making sounds.

03:50.460 --> 03:59.100
So you can make sounds onboard and then also output audio through the digital-analog converter built into the ESP32.

03:59.100 --> 04:00.560
All right, so...

04:01.100 --> 04:11.260
Oh, and of course there's a nice, colorful, exclusive HackerBoxes lanyard as part of that kit that uses a similar graphic to what's on the actual box itself.

04:11.980 --> 04:22.920
Great, so as far as getting started with working on this kit, we really recommend that you take the T-Display device, plug it in to your computer.

04:22.920 --> 04:31.880
Just when you power it up, it'll do a little nice graphics demo showing a little graphical image and then flip through some color screens.

04:32.100 --> 04:36.500
So the advantage of doing that first off before you solder anything is it just lets you know the thing works.

04:36.500 --> 04:45.720
And then also what you want to do, so before you solder anything to it or try to do anything with this little module, we recommend setting up the toolchain.

04:45.840 --> 05:01.820
So this is a good time to probably tell you that every HackerBox has an online box guide, which has lots of different information about how to use the devices in the box, for some projects it kind of gets you started, for some of them it gives you all the build instructions,

05:01.820 --> 05:11.080
sometimes there's some sample code, or if it's a device that's pre-programmed, we usually try to give you the code so that you can modify it and do other things with it and hack it and learn from it.

05:11.080 --> 05:35.280
So the box guide for HackerBox 0057, the safe mode box, has some sample code for exercising the badge, but even before you put the T-Display module onto the badge, there are all the instructions for configuring the Arduino IDE as a software tool that can compile code for that board and interface to it,

05:35.280 --> 05:46.860
and then also, quite importantly, setting up the library for doing graphical displays and text displays on that little IPS display that's embedded on the board.

05:46.860 --> 06:04.680
So when you go through and set all that up, then when you power the board up, rather, after powering the board up, you can program it and then just verify to yourself that your toolchain works well, that you have the TFTE SPI library set up correctly,

06:04.680 --> 06:10.600
and that you can program the flash on the board and then have it boot up and run the code you put on it.

06:10.600 --> 06:20.680
So that really builds confidence and lets us know that our toolchain is good before we start taking it to the next level and putting the module onto the badge itself and then start programming the badge.

06:22.400 --> 06:31.180
Right, so probably now what we should do is just let's go to the overhead and we'll jump into soldering this badge together, and we'll just talk through it as we do it.

06:31.600 --> 06:36.940
All right, so for this kit, we have a baggie of components.

06:37.160 --> 06:39.700
We have the T-Display module and the PCB.

06:39.700 --> 06:42.260
So these are the three things we're going to be working with.

06:42.660 --> 06:45.540
Let's get the actual T-Display module out.

06:45.540 --> 06:52.500
This is the module that has the actual display on it and the ESP32 processor.

06:52.640 --> 06:57.600
The processor has the Wi-Fi and Bluetooth functionality built into it.

06:57.600 --> 07:15.440
So this display doesn't have the pins soldered on, they're separate headers, and it comes with a little wire JST connector for attaching the LiPo battery to the battery charger circuit of the module.

07:29.120 --> 07:41.340
All right, like I said, before we get to soldering this module, let's go ahead and power it up and just make sure that it works fine.

07:42.660 --> 07:59.440
Before we solder it, we want to go through and make sure all the tools can compile a program for it and load the program with the correct library, which is the tft-eSPI library for controlling the display driver.

08:13.600 --> 08:17.260
Okay, so let's check out the actual PCB.

08:17.800 --> 08:20.140
This is obviously where we'll be doing our soldering.

08:20.140 --> 08:24.080
You can see it has a side that's a little blacker and a side that's whiter.

08:24.280 --> 08:29.900
The black side is the one we'll be soldering the components onto.

08:29.900 --> 08:33.500
So the front of this board, the silkscreen, is just used for some artwork.

08:33.500 --> 08:35.300
So the silkscreen isn't on here.

08:35.300 --> 08:37.380
It gives it a nicer look when it's finished.

08:37.380 --> 08:40.260
It's a little harder to build it, but that's kind of part of the fun.

08:40.260 --> 08:43.640
So make sure you go to the box guide and look at the...

08:44.020 --> 08:47.440
There's a placement diagram that shows where the components go.

08:47.440 --> 08:54.880
So that diagram is sort of what would normally be on the silkscreen if you weren't going to have artwork on the silkscreen.

08:54.880 --> 08:58.220
So definitely check that out.

08:59.900 --> 09:02.440
And we'll go ahead and start with these three resistors.

09:03.380 --> 09:07.040
You can tell which resistor is which by measuring them.

09:07.040 --> 09:10.560
There's a 220 ohm, a 330 ohm, and a 1k ohm.

09:10.840 --> 09:12.800
1k is 1,000, 1,000 ohm.

09:12.800 --> 09:15.840
You can measure them with a multimeter or you can just look at the little stripes.

09:18.620 --> 09:24.620
This one that has an orange, orange, and black, that's 330.

09:24.740 --> 09:27.680
So that's a 330 ohm resistor.

09:30.160 --> 09:34.400
Go ahead and put it through and just bend the leads back so it holds it in place.

09:34.600 --> 09:38.900
And then the 220 ohm resistor is the one that is red, red, black, black.

09:48.310 --> 09:50.230
And then the 1k resistor.

09:50.230 --> 09:52.530
So these go in right next to each other.

09:53.690 --> 09:58.410
You can, again, make sure you look at the component placement guide.

09:58.410 --> 10:05.850
Or if you can see really closely up here, those three resistors, it almost looks like they touch each other.

10:05.850 --> 10:10.850
The holes for each neighboring resistor are very close to the one next to it.

10:12.230 --> 10:16.230
So in order they go 330 to 21k.

10:16.270 --> 10:17.910
Front order from left to right.

10:31.950 --> 10:35.330
When the wire gets a little kinked on the front side, it's hard to pull it through.

10:37.050 --> 10:43.640
You want to grab some pliers here to pull it through.

10:48.680 --> 10:53.580
All right, so all three of these resistors are through and the wires are bent back so they're going to be held into place.

10:56.610 --> 10:58.310
And we'll go ahead and get some solder on here.

10:58.310 --> 11:06.790
So I have to apologize, the white artwork that's on the silkscreen on the back of this board makes it a little hard to get contrast.

11:08.310 --> 11:11.070
But hopefully you can still see the soldering that's going on.

11:11.070 --> 11:22.830
We're using the standard techniques that we've discussed in the Learn to Solder videos of starting with a very clean tip, make sure it's tinned, have a little solder on the tip.

11:22.870 --> 11:27.310
Because the solder that's on the tip helps conduct heat into the work.

11:27.570 --> 11:40.290
So we want to use the soldering iron to heat each joint up so that it gets a little warm and then bring the solder to it and let the pieces of metal you're trying to solder melt the solder.

11:40.290 --> 11:45.250
Don't melt the solder just with the iron tip or you might get a cold solder joint.

11:46.770 --> 11:58.350
And since there's not a lot of metal here, the vias, the through holes that these leads go through, there's not a lot of metal so they don't take but a very quick touch to heat up.

11:58.530 --> 12:00.810
You don't have to hold the iron on there for very long.

12:01.390 --> 12:04.650
That looks good, let's go ahead and trim these leads off.

12:04.650 --> 12:09.110
This is where you want to make sure you're wearing your safety glasses and hold on to the leads while you cut them.

12:09.450 --> 12:11.550
You don't need leads flying all over the place.

12:23.200 --> 12:35.000
And as we discussed in the first Learning to Solder video, we want to make sure we're not getting a lot of chunks of solder around because solder has lead in it.

12:35.000 --> 12:42.220
So when I'm cutting these, I try to keep the surface clean, my work surface, I wipe it down at the end.

12:42.220 --> 12:45.660
And also when I cut leads, I put them in a little pile so I can easily throw them away.

12:46.560 --> 12:50.200
Next we're going to do the surface mount buzzer.

12:57.450 --> 12:59.970
That little dot just tells you that that's pin 1.

12:59.970 --> 13:04.270
Pin 1 is at the top when the board is oriented like this for this layout.

13:06.570 --> 13:08.150
So this is an example of

13:12.020 --> 13:14.380
a surface mount component.

13:14.380 --> 13:33.860
We're going to basically just set it on the surface and get the pad that it sits on, get some solder on that pad, get it tinned, and then get just enough heat onto the little metal lead on the side of the buzzer, just enough heat on there to melt some solder onto it.

13:33.860 --> 13:45.360
We'll get one side tacked down and then flip it around and get some solder fluid onto the other side and just make a nice solder flow that fills in the little L-shaped space between the buzzer and the PCB.

13:54.340 --> 13:58.980
The buttons are oriented with the leads up and down.

14:00.040 --> 14:05.200
They won't really fit if you try to put them the other way, but it doesn't matter if you completely rotate them 180 degrees.

14:05.200 --> 14:08.560
There's no top and bottom to the button.

14:08.560 --> 14:12.480
We just don't want to have the leads going out of the sides.

14:12.480 --> 14:18.300
Although if they were going out the sides in this configuration, you wouldn't be able to solder them because they wouldn't be over any pads.

14:19.320 --> 14:20.560
It's pretty easy.

14:20.560 --> 14:23.240
Again, just tack one little bit down.

14:23.380 --> 14:39.320
When only one part of it is tacked, you can heat it up very easily and move it around again and make sure all the leads line up over the pads before you go ahead and commit the other three corners of the button to soldering.

14:50.520 --> 14:53.540
You can see from the first one we did, we kind of go to the opposite corner.

14:53.540 --> 14:55.740
It helps constrain it nicely.

14:55.740 --> 14:58.600
It's a similar concept to tightening up lug nuts.

14:58.600 --> 15:02.000
You want to kind of distribute the tension around.

15:04.590 --> 15:08.430
I'm going across the... you can see there's some... that looks pretty good.

15:08.430 --> 15:14.230
There's a nice flow, a nice shiny flow all over the lead and the pad.

15:16.890 --> 15:22.930
We have one more pin on each one.

15:22.930 --> 15:34.150
And if you want, you can hit the original pin, the first pin you did, just to get it reflowed real shiny and make sure all four of the pins look good.

15:37.130 --> 15:37.990
Buttons are good.

15:37.990 --> 15:45.470
And the next component we're going to do is a little joystick, which looks very similar to the buttons, but it has a lot more leads because it's actually a five-way joystick.

15:45.470 --> 15:50.890
So it has a lead for up, down, left, right, and then it has a lead for center, which is when you're just pushing it straight down.

15:50.890 --> 16:09.670
And then there's a common lead, which in this design, if you check out the schematic, you can see that the common lead on the five-way joystick is grounded, which means that the other terminals will all float.

16:09.670 --> 16:15.270
So you should probably pull them up using the pull-up description definition for your...

16:15.790 --> 16:21.630
when you do the pin declaration in Arduino, make sure they have a pull-up.

16:21.630 --> 16:28.330
So then when you close that contact, it will go to ground and the ground will overcome the pull-up and it'll go to zero.

16:28.330 --> 16:35.450
So when one of the contacts is not being closed, it'll be a high, and then when you close it, it'll be a low or zero or false.

16:39.160 --> 16:44.200
Now we're just doing this nice and slow, getting each terminal and making sure the solder flows really nicely.

16:55.690 --> 16:58.910
All right, we've got our joystick done, we've got the buttons done.

17:00.530 --> 17:02.010
We're cooking in here.

17:12.110 --> 17:17.710
All right, so next we're going to put the T-display on, which has these headers that come separate.

17:17.710 --> 17:30.570
So I'm just going to put the headers in here and then put something underneath it so that the headers aren't being pushed out by the desk, just to make sure everything lines up right and it looks good.

17:31.110 --> 17:39.150
I'll get it on here and we'll tack a couple of the points, a couple of the pins while it's in this position, while it's being held up.

17:40.170 --> 17:43.190
And again, usually kind of work from opposite corners.

17:47.620 --> 17:54.000
Make sure when you're doing this, you get the solder to flow all down in the hole.

17:54.060 --> 17:58.360
And remember, when you see the smoke coming out, that means that you're getting the...

17:58.360 --> 18:00.500
Let me cut this little tab off of here.

18:01.140 --> 18:09.740
This tab is so you can pull the protective plastic off of the display, but I'm going to leave the plastic on there for now to catch any flux splatter.

18:10.200 --> 18:13.560
When you see that smoke, what you see right here, some smoke will come out.

18:13.560 --> 18:18.380
That's when the flux is being released and that's when it's the easiest to get the solder to flow.

18:18.380 --> 18:28.100
So right as that smoke's released and the solder starts to melt, that's when you want to make sure your connection is hot and get the solder into the terminal.

18:28.100 --> 18:30.260
So we'll look at this and you'll see there's...

18:30.260 --> 18:36.900
We need to reflow this and drop that down against the plastic of the header.

18:36.900 --> 18:38.220
There we go.

18:38.820 --> 18:39.760
Let me get the other one.

18:39.760 --> 18:41.800
Yeah, so now that header's in there nice and tight.

18:42.340 --> 18:44.480
That one looks good.

18:46.460 --> 18:47.220
Great.

18:49.740 --> 18:51.120
Put that back in.

18:51.120 --> 18:53.300
We don't need to solder the rest of them quite yet.

18:53.300 --> 19:00.380
Let's just get it mechanically seated and make sure everything fits right and all the headers are all aligned properly.

19:04.710 --> 19:07.450
Tack a couple of the pins all the way through on the other side.

19:07.450 --> 19:09.810
For each pin, you actually have to solder it twice.

19:09.810 --> 19:12.930
You're soldering it once to the module and once to the board on the other side.

19:15.210 --> 19:26.110
And again, just like we did with the top, just make sure it's sunken all the way down and it's completely seated properly in at least a few spots or at least the opposite corners.

19:26.110 --> 19:37.010
And then once it's all properly seated, we can go through and make sure we get a good connection and flow on each pin.

20:01.800 --> 20:02.740
There we go.

20:02.740 --> 20:03.820
It goes pretty quickly.

20:04.500 --> 20:08.500
It's kind of a weird angle to try to do this underneath the overhead camera.

20:12.780 --> 20:22.320
I like to try to avoid doing this right here where I get too close to this hole because I don't want to get any solder down there inside the T-Display module.

20:22.480 --> 20:25.500
That would be a big pain and we'd have to take it all apart and clean it up.

20:25.500 --> 20:28.600
So maybe just stay to the outside of these headers.

20:28.600 --> 20:31.620
Don't go near that hole and that void in the PCB.

20:35.820 --> 20:39.380
I'm going to get these a lot quicker because I have easier access from this direction.

20:43.070 --> 20:45.070
Always cleaning our tip a lot.

20:45.070 --> 20:48.570
Keep a nice clean solder and iron tip.

20:48.570 --> 20:49.950
Keep the solder flowing.

21:29.360 --> 21:31.040
There's a couple more here.

21:48.470 --> 21:50.690
Now we've just got to get all the pins.

21:50.690 --> 21:55.930
So there's 24 pins on this thing so we're having to make 48 solder connections.

21:56.490 --> 21:57.730
This takes a couple minutes.

21:57.730 --> 21:58.910
Just take your time.

22:00.650 --> 22:08.690
Like I said, leave that plastic covering on the display in case you splatter some flux up onto the display.

22:15.930 --> 22:19.370
Just turn the temperature up on the solder and iron a little bit.

22:27.250 --> 22:28.950
Yeah, that works a little better.

22:28.950 --> 22:40.410
The posts in these headers are a little thicker than, let's say, the pins on an IC or on a resistor or something.

22:40.410 --> 22:45.490
So it might just help that I turn the temperature up just a little bit.

22:46.930 --> 22:48.610
Turn it up to 30.

22:48.610 --> 22:50.510
It looks like it's 360 here.

23:23.100 --> 23:25.640
All right, there's this last row of 12.

23:35.750 --> 23:40.450
It's nice when you have the pin and the through-hole very nicely heated.

23:40.450 --> 23:51.730
You can see the solder almost gets drawn down into the hole and makes a nice shiny kind of cone shape onto the lead.

23:51.730 --> 24:01.490
So you can see the solder totally wets down into the hole and then totally wets the lead in such a way that it fills it in all the way around.

24:01.490 --> 24:08.930
It makes a nice clean, shiny, well-flowed connection.

24:10.750 --> 24:14.370
All right, so there's our T-display.

24:14.470 --> 24:17.250
So, bump the camera a little bit.

24:28.120 --> 24:31.380
The display is all done, all 48 of those connections.

24:31.380 --> 24:36.900
So, let's get on to this little driver transistor.

24:36.900 --> 24:43.760
Notice that one side of it is flat, and if you look at the placement diagram, that flat is down.

24:43.760 --> 24:46.020
It's kind of facing the joystick.

24:46.100 --> 24:50.480
So , make sure the flat portion of that transistor is in that direction.

24:50.480 --> 24:57.040
And once you get it into place, if you want, you can fold it over and make it flush to the board, or you can leave it sitting up.

24:57.040 --> 24:58.320
That's totally your option.

25:00.480 --> 25:04.440
Just to keep it out of the way of the display, I think I'm going to fold it down.

25:04.440 --> 25:05.820
I kind of like the way that looks.

25:06.260 --> 25:09.140
Fold it right down onto its flat face, but you don't need to do that.

25:13.210 --> 25:19.470
See, that solders real quick because the plated holes are very small on these, very thin.

25:19.470 --> 25:21.650
There's not a lot of metal there to waste the heat.

25:21.650 --> 25:24.090
It just solders very quickly.

25:24.090 --> 25:25.650
It heats up quickly and solders quickly.

25:25.650 --> 25:27.090
We'll cut the leads off.

25:35.960 --> 25:44.860
I'm going to keep checking back to our component placement diagram that tells us what direction to put things in.

25:44.860 --> 25:50.440
That's definitely important, even though there's only two leads on this LED, it only works if placed in the right direction.

25:50.600 --> 25:59.300
The short lead goes towards the flat side in the diagram, and I like to leave this sticking up about 3 or 4 millimeters so that I can fold it over.

25:59.300 --> 26:05.400
And it gives it a nice edge-firing, edge-blasting configuration.

26:05.400 --> 26:06.720
I like the way that looks.

26:07.080 --> 26:18.520
It feels like it's a little bit more like a transmitter, like it would be on the end of the board of a remote control, like a TV remote or something.

26:19.300 --> 26:20.700
Just two quick leads.

26:20.700 --> 26:27.380
Remember the short lead goes on the flat side of the circle in the placement diagram.

26:38.140 --> 26:44.560
All right, and just a few more components here, continuing on with our through-hole components.

26:47.690 --> 26:49.670
A little ceramic capacitor.

26:49.670 --> 26:55.150
This is part of the audio circuit for the AV.

26:55.890 --> 26:58.690
And with this, you could also fold it over if you wanted to.

26:59.630 --> 27:02.910
Unfortunately, where it's placed right there, it's kind of right next to the reset button.

27:02.910 --> 27:09.550
So if you're going to use the reset button a lot, you might want to fold that cap over before you solder it into place, but it's not really a big deal.

27:09.550 --> 27:10.930
It's pretty small.

27:12.470 --> 27:15.970
And again, the heat flows on that real quickly.

27:15.970 --> 27:17.530
Very nice, very quick.

27:22.440 --> 27:24.120
Trim the leads off.

27:36.910 --> 27:44.210
And I should mention, we can take the leads off of the headers on the back of the T-display to make it nice and flat if you're going to put a battery on there.

27:44.210 --> 27:46.310
We'll just skip that for now.

27:46.310 --> 27:49.390
It's a little time-consuming, and everyone knows how to cut wires.

27:49.610 --> 27:56.910
The display leads are not really in the way until we try to put a battery on there.

27:58.910 --> 28:04.890
All right, and this is our IR sensor device.

28:04.890 --> 28:15.070
You want to put it on there so that the rounded lens faces down towards the bottom of the board, away from the T-display, the ESP32-T display.

28:16.730 --> 28:31.550
And again, that makes it so if you set the badge down, you can aim an IR remote at it, and it'll receive from one side, and then it blasts out of the top, IR blaster style.

28:36.460 --> 28:38.580
So, that's real easy.

28:38.900 --> 28:47.100
And all we have left is our two RCA jacks for our AV, for composite video, and our audio line out.

29:04.730 --> 29:07.590
So the yellow one is the video out.

29:08.150 --> 29:09.270
We're going to get that here.

29:09.270 --> 29:11.150
That's kind of on the left side.

29:11.150 --> 29:15.410
Again, check the component placement diagram on the box guides.

29:15.410 --> 29:23.030
You're going to want to just get one of these, get just a little solder on one of these, and then, you know, check the positioning, make sure it's the right depth.

29:24.570 --> 29:29.130
There's some, like, alignment holes on the front of these things that don't always work very well.

29:29.130 --> 29:31.230
That's why we just let them hang off the edge of the board there.

29:31.570 --> 29:39.610
Once you get the three posts soldered, it really holds itself in very well, but you don't really need those alignment holes at all, or even in the front.

29:41.950 --> 29:48.590
And then once it's all positioned, we just get a lot of solder in there to make sure it's very mechanically stable and flows very well.

29:48.590 --> 29:57.130
Because there's a lot of pressure, sometimes if you have a tight RCA cable, when you're plugging it on there, it puts a lot of pressure on that jack.

29:57.130 --> 29:59.370
So you want to make sure you have it well soldered.

30:00.310 --> 30:06.010
So not only for a good electrical connection, but to keep it, you know, very solidly seated from a mechanical perspective.

30:06.830 --> 30:22.970
Again, we're going to get one soldered and then we're going to pick it back up and move, position the connector around until it's right in the right orientation and seated the way we want before we put solder on the other three posts.

30:41.440 --> 30:43.040
Alright, that looks nice.

30:44.460 --> 30:46.220
That's the last one here.

31:03.400 --> 31:12.700
I see there's a little bit of the metal on the back there sticking out, so I'm going to heat that up and see if we can force it back into the housing.

31:24.130 --> 31:26.270
There we go, looks a little better.

31:26.350 --> 31:30.490
Now we can go ahead and get a lot of solder in there to hold it into place, now that everything's positioned correctly.

31:31.170 --> 31:36.150
And that'll hold it real solid even when we're plugging cables onto it.

31:36.390 --> 31:43.870
Pulling them off and plugging them back on, it'll keep everything seated properly.

31:46.090 --> 31:48.910
Real good, real solid there.

31:55.990 --> 31:59.190
Alright, there's our fully soldered up board.

31:59.770 --> 32:03.870
We have some keycaps we can pop on the buttons and then also the joystick.

32:07.030 --> 32:10.890
And if you have other buttons like this, you can put different keycaps on.

32:11.430 --> 32:15.590
If you have other compatible caps, customize it a bit.

32:23.640 --> 32:27.060
Alright, so the first sketch we just loaded on here was...

32:28.900 --> 32:30.680
Again, this sketch is in the box guide.

32:30.680 --> 32:33.120
It's just a really simple buzzer demo.

32:33.120 --> 32:40.300
And it does use the TFT eSpy library to just put some text on the screen.

32:40.300 --> 32:43.940
And then it just plays some tones out through the buzzer.

32:43.940 --> 32:45.820
So let's power it up and you can see.

32:53.510 --> 32:55.710
A little Mario music there.

32:55.710 --> 33:06.370
So this is a really simple program that you can look at what it does.

33:06.750 --> 33:12.370
Like I said, it's fairly simple and it just shows you how to make some sounds on the buzzer.

33:12.370 --> 33:18.410
So really good kind of first sketch to get running after you've soldered up this board.

33:18.470 --> 33:35.210
Part of the reason for wanting to do that one first is even if the library gets messed up or something's not quite working right or one of the pins is shorted or something for the display, as long as you have that one wire that gets between the ESP32T display module and the surface mount buzzer,

33:35.210 --> 33:37.210
there's only one wire necessary for that.

33:37.210 --> 33:44.190
As long as you have that one wire right and you don't have a power ground short elsewhere, then whatever else is going on, this sketch should work.

33:44.190 --> 33:45.790
So go ahead and try that one out first.

33:46.050 --> 34:06.830
If that works out well, which it should, the next sketch to try out from the box guide, there are a couple of links to different sketches within a library, example sketches that do infrared receiving, infrared transmitting, and then also relay infrared signals.

34:06.830 --> 34:09.670
So that might be a nice thing to try next.

34:09.670 --> 34:12.170
They also exercise the serial output.

34:12.650 --> 34:19.430
They don't use the display because they're not specific to this particular T-display module, but they do some really interesting things.

34:19.430 --> 34:23.030
Of course, you can add in some display outputs if you want to do that.

34:23.690 --> 34:31.650
So trying out the LED blaster and the infrared receiver next, that might be a good next step.

34:33.250 --> 34:40.150
Then probably another very simple one that isn't too complicated.

34:40.270 --> 34:41.310
It's actually in the guide.

34:41.310 --> 34:41.930
You can download it.

34:41.930 --> 34:45.610
Maybe let's go ahead and load it up, the one that exercises the joystick.

34:45.610 --> 34:47.610
It displays the state of the joystick on the display.

34:47.610 --> 34:49.970
So here, let me get that programmed on here.

34:51.530 --> 34:59.250
All right, so on this one here, we've loaded the sketch from the box guide.

34:59.250 --> 35:01.150
That's the joystick sketch.

35:01.150 --> 35:03.350
So let's go ahead and fire that up.

35:03.350 --> 35:05.610
So let's see how that works.

35:07.850 --> 35:10.850
All right, so just says it's launching a joystick test.

35:10.850 --> 35:23.690
And then when you put the joystick, you know, up, down, left, right, or press the center button on it, it puts it on the display and you can actually do button A and B also.

35:23.690 --> 35:30.090
And you can actually hold them both down to get A and B and then go down or down and sideways and in all at the same time.

35:30.090 --> 35:35.410
And whatever these contacts you close on the joystick and switches, it'll just put it on the display.

35:35.410 --> 35:44.230
So again, just a little sketch you can run that'll let you know that your soldering is right, you've made all the right connections for the joystick and the two buttons.

35:46.750 --> 35:50.190
So that, you know, exercises the joystick and the buttons.

35:50.850 --> 35:58.790
You know, both of the sketches we've loaded use the display, onboard display.

35:58.790 --> 36:04.230
And then there's some demos for testing out the IR in and IR out.

36:05.390 --> 36:11.770
The easiest way to test the audio video is there's a really cool program.

36:11.970 --> 36:15.610
There's a link to it in the box guide called Dawn of AV.

36:15.610 --> 36:16.810
It's from Bit Loony.

36:16.810 --> 36:25.710
He wrote some really cool code that does composite output and an audio line out using ESP32.

36:25.710 --> 36:32.410
So let's load that on there now and I'll capture the output so we can see it here.

36:32.410 --> 36:34.210
Hold on.

36:49.500 --> 37:00.400
Yeah, so outputting to the composite video and the audio line out is actually, it's pretty nifty.

37:00.400 --> 37:05.700
It does require a little bit of trickery, but you can check out the Bit Loony's code and see how that works.

37:05.880 --> 37:17.740
Those techniques are the same ones that are used in a really neat project called, I think it's ESP8Bit, that lets you emulate Nintendo Entertainment Systems and 8Bit Atari computer systems.

37:18.620 --> 37:19.540
It's really neat.

37:19.540 --> 37:22.360
There's a link to it in the box guide.

37:22.360 --> 37:23.580
It's really kind of fun to play with.

37:23.580 --> 37:38.160
It uses the file system in the ESP32, so the flash of the ESP32 can be set up to have a file system in it and make sure you follow the instructions clearly in the repo for that.

37:39.600 --> 37:46.100
If you want to mess around with that ESP8Bit project, make sure you set the file system up correctly.

37:46.500 --> 37:54.300
There's a lot of other cool projects in the box guide, links to projects that would be interesting.

37:55.300 --> 38:15.660
There is a thing called the ESP Marauder, which allows you to extend some pen testing tools to leverage the Bluetooth and other wireless functionality of the ESP32.

38:15.660 --> 38:16.980
So that's kind of a neat project.

38:16.980 --> 38:23.940
There's a couple other projects that are targeted specifically towards the T-Display.

38:23.940 --> 38:26.840
So they'll use the display without too much modification.

38:26.840 --> 38:38.220
Getting different TFT display modules working at the right resolution for different programs can be a little tricky, but that's a lot of the fun that you get with working with these projects.

38:38.220 --> 38:47.380
So anyway, this badge is a really nice platform because it has an ESP32 processor, which there's more and more stuff coming out for it all the time.

38:47.380 --> 38:53.020
And then it has some really nice IOs that are pretty easy to program, the buttons in the joystick.

38:54.520 --> 39:01.700
You probably won't see a ton of projects out there that use the AVIO, but they are kind of neat to play with.

39:02.400 --> 39:09.640
Like I said, there's some really neat emulation out there that uses these for doing some retro gaming and some 8-bit computing.

39:09.640 --> 39:18.540
A lot of programs can be adjusted to use the particular driver for this TFT display.

39:18.540 --> 39:20.040
It's a pretty common driver.

39:20.040 --> 39:30.920
It works with a lot of the libraries for doing full-color graphics displays with the Arduino projects, and particularly ESP32 has the power to really do some nice displays on that.

39:30.920 --> 39:32.840
So anyway, it's a nice badge.

39:32.840 --> 39:35.120
Hopefully you enjoyed building it.

39:35.120 --> 39:39.620
Take some real pride of ownership that you made the badge yourself and you can program your own stuff on it.

39:39.620 --> 39:46.760
Maybe put a picture of yourself or your pet or your logo or whatever on there and do some neat stuff with it.

39:46.780 --> 39:58.340
Oh, we didn't get into it here, but the guide has the instructions on how to use these little pins right here to put a LiPo battery on here that charges when you plug the USB cable in.

39:58.340 --> 40:04.020
And then there's a little power switch, which came in the parts kit for this badge.

40:04.020 --> 40:16.700
And that switch will let you turn the battery, the LiPo on and off, basically take it in and out of the circuit so that you can turn the board off when it just has the LiPo plugged in without having to reach in there and remove this little tiny JST connector.

40:17.380 --> 40:22.960
Just remember, though, if you turn that switch off, it actually takes the battery completely out of the circuit so it won't charge.

40:23.040 --> 40:33.400
So if you want to charge it, you need to leave it in there and maybe write something in your program to have a sleep mode or something so that your sound and display aren't going wild while you're just trying to charge the battery up.

40:34.080 --> 40:52.040
All right, yeah, so we hope you enjoyed this and hit us up with any questions at hackerboxes.com or if you're watching this live during the Hardware Hacking Village workshops, we'll be online in the Hardware Hacking Village channel in Discord.

40:52.320 --> 40:56.080
That's the Discord for DEF CON 28 safe mode.

40:56.080 --> 41:07.920
If you're seeing this later somehow, feel free to contact us at hackerboxes.com with any questions you might have and keep an eye out for future Hacker Boxes.

41:07.920 --> 41:09.720
We're always trying to come up with new things.

41:09.720 --> 41:24.660
We have some really interesting stuff coming up in the next couple months, and we usually have some nice things a couple months after DEF CON because while we meet up and talk to all of our friends, they always have a lot of suggestions for projects they've been working on and ideas they might like to see in the future Hacker Boxes.

41:24.660 --> 41:45.140
And for those of you that aren't too familiar with Hacker Boxes, you should just know that it's kind of like a self-fulfilling community thing because we get most of the ideas now for future boxes from members who have been playing around with our previous boxes and are trying something new on their own and then think,

41:45.140 --> 41:47.200
oh, everyone else might like this, and they send it to us.

41:47.200 --> 41:52.740
And we've had some guest designers from our community to help us out with some of the boxes.

41:52.740 --> 41:55.400
So if you've got some really cool ideas, please reach out to us.

41:55.400 --> 41:56.800
We really like that.

41:56.800 --> 41:59.860
And yeah, live the hack life.

41:59.860 --> 42:02.120
We look forward to seeing you online.

42:02.120 --> 42:02.880
Drop us a note.

42:02.880 --> 42:03.420
Bye-bye.

