[00:01.050 --> 00:02.950] Alright, how's everybody doing? [00:03.450 --> 00:06.550] This is getting started with Meshtastic. [00:07.890 --> 00:11.090] Anybody here heard of Meshtastic before? [00:11.090 --> 00:11.590] Yeah? [00:11.590 --> 00:12.190] Awesome. [00:12.190 --> 00:14.690] Anybody who has not heard of Meshtastic before? [00:14.850 --> 00:15.670] Awesome. [00:15.670 --> 00:17.730] You are the people I'm trying to reach. [00:18.670 --> 00:20.410] So who am I? [00:20.770 --> 00:24.630] I am... I go by Ahriman2001 on Twitter. [00:24.630 --> 00:31.070] I'm KD2WUB and I enjoy making stuff sometimes with antennas. [00:31.210 --> 00:34.370] Generally, you know, pretty interested in RF. [00:34.370 --> 00:36.350] So yeah, that's me. [00:36.470 --> 00:38.790] And what's this talk about? [00:38.790 --> 00:44.970] So Meshtastic, it's kind of a new thing and I would like to see more of it out there. [00:45.430 --> 00:48.910] It's pretty boring to just message yourself in the house. [00:48.970 --> 00:52.990] So if I can get more of you guys using it, maybe we'll see more people out there. [00:53.730 --> 00:55.450] Yeah, that's all awesome. [00:56.310 --> 00:57.930] So what are we going to cover? [00:58.010 --> 01:11.110] Basically just what is Meshtastic, high level, what is LoRa, which is what it runs on, and then why would you do it, what do you need to use it, and hey, let's make some mesh networks. [01:13.650 --> 01:14.950] So what is it? [01:15.090 --> 01:20.270] Meshtastic is an open source project aiming to create mesh communications. [01:20.270 --> 01:30.430] Off grid, no infrastructure needed, basically you just buy a little board, maybe you put it on a hard hat, maybe you don't, I don't know. [01:31.490 --> 01:41.990] That board uses LoRa, which is a method of modulation for RF that is basically long range, very low data rates. [01:43.470 --> 01:59.830] That board then piggybacks to your phone, either over Bluetooth or Wi-Fi, and allows you to type text messages back and forth to people on the mesh, or share GPS data, basically anything you want. [02:00.870 --> 02:18.490] So it's based on the CHIRP's spread spectrum, and it's basically just making a trade off in your link budget to basically do slower speeds, smaller amounts of data, to get a longer range, and better signal to noise ratio. [02:21.230 --> 02:39.010] If you want to know more about how LoRa actually works, and under the hood, there's an amazing talk, it was at DEF CON 24, it was by Matt Knight, and I highly recommend you go check that out, he goes into way more detail than I ever could, and talks about all the frequencies, [02:39.570 --> 02:42.370] spreading factors, coding rates, and all of that. [02:44.510 --> 02:53.470] So in Meshtastic, a pretty big concept is a channel, and a channel is just a collection of settings that the radio needs to communicate. [02:54.070 --> 03:06.370] So it basically comprises of a channel ID, a modem configuration, a channel name, a pre-shared key, and a region. [03:07.070 --> 03:09.490] So what are all of these things, right? [03:09.710 --> 03:17.350] Two of the easy ones are channel ID and channel name, they're just an integer and a string used to identify all these settings. [03:18.750 --> 03:26.650] Then you have the modem configuration, and this is where all those LoRa settings get set. [03:26.710 --> 03:39.590] So you pick your bandwidth of your signal, your coding rate, your spreading factor, and that is going to determine the maximum speed that you can transmit data. [03:40.290 --> 03:43.490] And so all of these settings in the modem config... [03:45.870 --> 03:49.710] Oh, sure, all good. [03:49.890 --> 04:00.790] So each of these settings are basically just... they have some shorthand names, as you see on the left there, and they have some common names as well, like short-fast, short-slow. [04:01.710 --> 04:10.930] There is a default if you flash Meshtastic to your board, and that's what I've seen most people using during the con here, which has been great. [04:12.710 --> 04:17.670] And there's all sorts of extra documentation that you can find at that link right there. [04:19.210 --> 04:22.650] Also, it uses a pre-shared key for encryption. [04:23.170 --> 04:30.070] It can use AES-256 encryption, doesn't always though, so you can set it to none. [04:30.430 --> 04:37.010] There's also a default key, which I believe is included in all of the source code, so anybody can decrypt those. [04:37.070 --> 04:39.130] You might have some fun with that, you might not. [04:39.990 --> 04:49.670] You can also use random, which will use that randomly generated AES-256 bit key, and is generally the most secure of those settings. [04:49.670 --> 04:53.410] You can also just use a single byte to encode. [04:55.930 --> 05:14.630] Next up is your region, so depending on where you are in the world, you may have different regulations controlling what you're able to transmit and where, and so when you pick your region, it actually sets the center frequency, the spacing between those frequencies and the channels, [05:14.630 --> 05:19.050] the number of channels, and also the power limit, if you have one. [05:21.110 --> 05:23.210] So let's say, hey, you want to get into this. [05:23.250 --> 05:24.670] You do need some hardware. [05:25.470 --> 05:27.430] There's generally two form factors. [05:27.430 --> 05:42.030] There's ones that are based on the ESP32, and there's also ones that are based on the NRF52 chips, and generally you can get a radio for anywhere from like $30 to $50, depending on how fast you want to get it shipped to you. [05:43.630 --> 05:46.850] I've had a lot of experience with the Heltech. [05:47.150 --> 05:52.590] I've yet to try the RAC card, but I want to check it out soon. [05:54.790 --> 05:55.650] So that's great. [05:55.650 --> 05:56.530] You have the hardware. [05:56.530 --> 05:58.630] It can talk over the radio. [05:58.630 --> 06:01.610] How do you actually type a message and interface things? [06:01.610 --> 06:04.970] And that's where it piggybacks to your phone, generally. [06:05.710 --> 06:10.530] You can get an app either in the Google Play Store or on iOS in the Apple App Store. [06:11.530 --> 06:21.890] To get it on iOS, you actually have to download this TestFlight app, and then from within that app, you load in basically a beta version of the Meshtastic app. [06:22.990 --> 06:25.290] I'm going to warn you, it can be a little buggy right now. [06:25.290 --> 06:32.670] It's definitely a project in development, and go out, try things, and submit bug reports. [06:34.830 --> 06:37.810] Next up, we have the Python CLI. [06:38.470 --> 06:45.290] In there, you definitely get a lot more options to all of the settings, especially if you're on an iPhone. [06:45.350 --> 06:48.270] The app is a little more limited than the Android app right now. [06:48.950 --> 06:54.070] If you want to do things like change the name of your node and things like that, you should check out the CLI. [06:54.450 --> 06:58.930] It's installable via PIP, and pretty easy to use. [06:59.050 --> 07:04.530] If you just type it, it'll give you all the options that you can use and instructions for that. [07:06.450 --> 07:08.470] What kind of information can you share? [07:08.790 --> 07:16.710] Like I said, it's very slow speed, so you're going to be sending small bits of data, generally text messages. [07:17.350 --> 07:21.470] You can also share your location if you so choose, and if you have a GPS connected. [07:22.510 --> 07:24.450] There's all sorts of applications for this. [07:25.130 --> 07:32.470] I always think of if you were on a search and rescue team or something, you could get everybody on your crew and you could see where they're at. [07:33.810 --> 07:37.690] I mean, it definitely has lots of uses for that. [07:38.730 --> 07:40.150] Also, sensor data. [07:40.150 --> 07:52.690] There is some support for temperature sensors and things like that, so you could distribute different nodes across a property, for instance, and monitor different things with different sensors. [07:54.630 --> 08:04.190] There's also extra modules within the software, so if you want to do something extra than what the app does, there's room to tinker, and that's always fun. [08:04.190 --> 08:09.570] So you can connect different I2C sensors like I was talking about. [08:10.010 --> 08:21.630] You can also set your module to send canned messages, either triggered with a button or a rotary encoder, and there's also serial input for messages. [08:23.110 --> 08:38.570] There's actually a whole group of people trying to build little communicators, where you have an embedded keyboard and everything, and you can talk via serial from one microcontroller to the Meshtastic node, and then do things that way, too. [08:40.030 --> 08:54.830] If you want to find out more, you can go to meshtastic.org, and there's a whole docs page on how to get started, how to flash your board, and yeah, definitely more information there. [08:55.410 --> 08:59.690] So hopefully now you guys all know a little bit more about Meshtastic. [08:59.690 --> 09:03.610] I hope some of you get interested in it and maybe try it out. [09:05.050 --> 09:06.590] Any questions? [09:10.480 --> 09:11.280] Cool. [09:29.850 --> 09:36.050] I'm not, but that kind of makes sense to me, like that it would, because you're really just seeing it on the frequency. [09:36.230 --> 09:38.550] You probably can't see what it is. [09:38.550 --> 09:47.670] It'll just show up as an encrypted message to you, but it probably will try to, you know, act as a mesh and retransmit that out to other nodes that may have that encryption key. [09:47.810 --> 09:52.930] I don't know if that's as designed or not, but I haven't run into it personally. [09:54.890 --> 09:55.610] Cool. [09:57.010 --> 09:58.170] Yeah, [10:02.510 --> 10:11.090] so I did a little test from my house where I set up an antenna and then I just kind of went walking around my neighborhood. [10:11.090 --> 10:12.430] I got to about a mile. [10:13.210 --> 10:15.850] I know you can get better with more line of sight. [10:15.850 --> 10:18.410] I've heard people get up to like three miles almost. [10:19.330 --> 10:25.490] It really depends on your, you know, what's in the middle and what kind of antenna you're using and what your transmit power is. [10:28.630 --> 10:29.950] Anybody else? [10:31.050 --> 10:31.770] Yeah. [10:40.650 --> 10:41.310] Sure. [10:45.870 --> 10:53.230] I think that they're just more developed, so people have made firmwares for them that, you know, they know which module is on there. [10:53.230 --> 10:56.510] I don't think there's really any reason it couldn't be done. [10:56.510 --> 11:00.690] It's just, I don't think it's been developed yet, but I think you could. [11:06.880 --> 11:07.600] Sure. [11:13.100 --> 11:13.620] Yeah. [11:13.620 --> 11:13.980] Oh, yeah. [11:13.980 --> 11:25.580] I didn't mention, but there is also a Meshtastic Discord with a whole bunch of people that know way more about it than I do, but it's been a great place to hang out and just, you know, ask questions and see what people are building. [11:25.580 --> 11:32.420] And there's a whole bunch of people like doing 3D prints for cases and things like that and different designs. [11:32.420 --> 11:34.920] So definitely a cool thing to check out. [11:37.220 --> 11:37.940] Cool. [11:38.420 --> 11:42.240] Well, if there's nothing else, thank you for your time and I'll be around. [11:42.240 --> 11:44.940] You can probably find me with a hard hat if you have any other questions. [11:45.060 --> 11:46.140] So thank you very much.