00:00:02,319 --> 00:00:03,600
- Hi, welcome to The Bootloader.
2
00:00:03,840 --> 00:00:04,320
I'm Tod Kurt.
3
00:00:04,700 --> 00:00:05,440
- And I'm Paul Cutler.
4
00:00:05,800 --> 00:00:06,820
The show works like this.
5
00:00:07,100 --> 00:00:10,840
Tod and I have each brought three things to share, which we'll discuss for about five
6
00:00:10,880 --> 00:00:11,380
minutes each.
7
00:00:11,910 --> 00:00:14,380
If you're enjoying the show, do me a favor and write a review.
8
00:00:14,590 --> 00:00:15,400
It really helps.
9
00:00:15,920 --> 00:00:20,020
And check the show notes to follow us on Mastodon or Blue Sky and to order a couple stickers
10
00:00:20,080 --> 00:00:20,680
if you want to.
11
00:00:21,160 --> 00:00:21,700
- We have stickers.
12
00:00:22,500 --> 00:00:22,960
- That's right.
13
00:00:24,060 --> 00:00:28,300
Tod, just days after we recorded our last episode, you attended Supercon, which we've
14
00:00:28,200 --> 00:00:31,380
talked about on the show for the last few years. How was this year's conference?
15
00:00:32,220 --> 00:00:36,920
Every year, Hackaday Supercon is amazing. There's lots of people that I consider my
16
00:00:37,000 --> 00:00:43,440
friends, but I only really see them once a year at Supercon. You know, we interact on
17
00:00:43,440 --> 00:00:47,860
the various internet-y ways, like social media or Discord or whatever, but actually seeing
18
00:00:47,920 --> 00:00:53,280
people face-to-face is always really nice. This year, it was interesting because it was
19
00:00:53,160 --> 00:00:59,220
a lot smaller in some ways. I think the current war on fun that the US regime is having makes
20
00:00:59,260 --> 00:01:04,140
it so that people from out of the country don't really want to come to the US. And so
21
00:01:04,239 --> 00:01:08,940
there was a noticeable, I'd say, contraction of people at the conference this year. It
22
00:01:08,960 --> 00:01:13,720
wasn't as, like normally it's really crowded. And this year it was only just kind of crowded.
23
00:01:14,960 --> 00:01:18,440
- That's sad to hear. And it's just not safe for some people to come, which is really,
24
00:01:19,320 --> 00:01:21,000
it's just scary the times we're living in.
25
00:01:21,000 --> 00:01:22,700
Yeah, no, it's really sad.
26
00:01:22,760 --> 00:01:28,800
And I think all tech conferences have a real problem with trying to be not just a white
27
00:01:28,880 --> 00:01:29,400
guy fest.
28
00:01:29,680 --> 00:01:34,920
And Hackaday's had this problem forever and they try hard, but I think that is also wearing
29
00:01:34,980 --> 00:01:37,700
on non-white gay people and some white gay people.
30
00:01:38,220 --> 00:01:40,580
That it's like, "Oh, more of the same."
31
00:01:40,580 --> 00:01:42,820
It's like, "We've got enough of this, more of the same."
32
00:01:42,820 --> 00:01:45,580
So overall, it's amazing.
33
00:01:46,200 --> 00:01:52,640
Thankfully Hackaday streams and records the live stream on YouTube for the main stage.
34
00:01:52,700 --> 00:01:56,900
And so if you right now want to get a sense of what all the talks were about, you can
35
00:01:56,960 --> 00:02:00,980
go right now and watch a bunch of YouTube videos and get a pretty good sense.
36
00:02:00,980 --> 00:02:05,620
And there were some really fun talks this year, so you can experience some of those.
37
00:02:06,660 --> 00:02:09,979
So speaking of fun talks, what was your first one for us this episode?
38
00:02:10,820 --> 00:02:13,960
Oh, well actually, I have a couple of fun talks.
39
00:02:14,200 --> 00:02:16,100
if you wanna go look at 'em, go watch 'em.
40
00:02:16,620 --> 00:02:20,180
One of the ones that I liked real quick
41
00:02:20,620 --> 00:02:25,640
was transmitting multiple protocols over a single wire.
42
00:02:26,760 --> 00:02:29,040
So it turns out there's, like for every protocol,
43
00:02:29,180 --> 00:02:31,680
there's usually some parts of the protocol
44
00:02:31,860 --> 00:02:33,800
where the signal doesn't matter.
45
00:02:34,480 --> 00:02:38,960
Like in the case of like a two-wire protocol like I2C,
46
00:02:39,560 --> 00:02:44,700
there are times where the data signal isn't listened to
47
00:02:44,780 --> 00:02:46,800
because the clock signal isn't at the right state.
48
00:02:47,290 --> 00:02:50,320
And so one of the talks was how you could essentially
49
00:02:50,820 --> 00:02:54,520
hide other protocols in these kind of like dead areas.
50
00:02:54,960 --> 00:02:56,940
And so his theoretical,
51
00:02:57,100 --> 00:02:58,380
I don't think he's implemented this yet,
52
00:02:58,570 --> 00:03:01,380
but his theoretical one was you could make a single set
53
00:03:01,420 --> 00:03:05,640
of cables or a single wire basically transmit NeoPixel RGB
54
00:03:05,800 --> 00:03:09,080
data and RS232 and I2C.
55
00:03:09,300 --> 00:03:09,880
(laughs)
56
00:03:10,320 --> 00:03:10,880
- That's crazy.
57
00:03:12,500 --> 00:03:14,460
- And it's all just 'cause the timings kinda work out,
58
00:03:14,460 --> 00:03:17,560
and if you stretch this one timing out a little bit,
59
00:03:17,560 --> 00:03:19,340
it matches the timing of this other thing,
60
00:03:19,700 --> 00:03:22,980
so you can, in the blank spot of a NeoPixel refresh,
61
00:03:23,040 --> 00:03:25,360
you can put an RS-232 frame or something.
62
00:03:25,400 --> 00:03:27,820
It was really fun. (laughs)
63
00:03:28,760 --> 00:03:30,740
Not something you wanna do in production. (laughs)
64
00:03:31,380 --> 00:03:33,880
But one of the other things that the Supercon has
65
00:03:33,880 --> 00:03:35,060
is a series of workshops,
66
00:03:35,800 --> 00:03:38,139
and these are things, sort of optional things you can buy
67
00:03:38,140 --> 00:03:39,300
that will teach you a thing.
68
00:03:39,340 --> 00:03:40,860
And some of the cool workshops were
69
00:03:42,270 --> 00:03:44,360
like how to learn Rust, like embedded Rust,
70
00:03:45,040 --> 00:03:46,240
like Sean Hymel taught that.
71
00:03:46,900 --> 00:03:49,100
There's by Stefani and Bob Pickman,
72
00:03:49,300 --> 00:03:51,720
they did a thing on how to do generative art
73
00:03:51,860 --> 00:03:54,400
on an LED matrix for like, you know,
74
00:03:54,500 --> 00:03:56,280
blinging up your costumes or whatever.
75
00:03:56,800 --> 00:03:57,540
And so there's all these cool things.
76
00:03:57,840 --> 00:04:00,280
One of the ones I did, like the only one I did,
77
00:04:00,700 --> 00:04:02,720
was about the Arduino UNO Q,
78
00:04:03,210 --> 00:04:06,380
the new Arduino board that Arduino came out with.
79
00:04:07,060 --> 00:04:09,500
And, oh boy, there's been a lot of talk
80
00:04:09,600 --> 00:04:10,320
about Arduino lately.
81
00:04:10,800 --> 00:04:12,380
Have you seen any of that?
82
00:04:12,680 --> 00:04:14,940
Aside of that, I was interested in the Arduino Q
83
00:04:17,239 --> 00:04:19,440
because it's a weird little thing.
84
00:04:19,440 --> 00:04:20,859
It looks like an Arduino Uno,
85
00:04:21,480 --> 00:04:22,940
but it's also a Linux computer.
86
00:04:23,500 --> 00:04:26,320
So I wanted to see how this weird merging
87
00:04:26,520 --> 00:04:28,280
of a Linux computer and microcontroller work.
88
00:04:28,840 --> 00:04:31,540
Over a decade ago, I developed a project
89
00:04:31,540 --> 00:04:35,060
that used several hundred of the Arduino UUN boards,
90
00:04:35,140 --> 00:04:36,740
which was the same idea pretty much.
91
00:04:37,020 --> 00:04:40,360
This was back when the embedded Linuxes were much simpler.
92
00:04:41,740 --> 00:04:41,840
(laughs)
93
00:04:41,840 --> 00:04:43,600
But it was pretty much the only way you could get
94
00:04:43,700 --> 00:04:46,660
a reliable microcontroller Wi-Fi connection.
95
00:04:46,980 --> 00:04:50,380
If you want to be a player on the internet,
96
00:04:50,440 --> 00:04:54,060
you have to do SSL, TLS, security,
97
00:04:54,160 --> 00:04:55,560
which means you have to do regular updates
98
00:04:55,660 --> 00:04:57,400
of the security certificates,
99
00:04:57,680 --> 00:05:00,720
'cause otherwise your thing can just not be
100
00:05:01,340 --> 00:05:02,840
considered a valid participant on the internet
101
00:05:02,980 --> 00:05:04,200
where you have to have HTTPS connections.
102
00:05:05,000 --> 00:05:09,400
So the Uno Q is sort of a revisit of that idea.
103
00:05:10,180 --> 00:05:12,420
I really wish they wouldn't have called it Uno Q.
104
00:05:12,980 --> 00:05:16,340
But inside it's essentially a Raspberry Pi 3
105
00:05:17,080 --> 00:05:18,460
level single board computer
106
00:05:19,060 --> 00:05:23,140
with a fairly beefy STM32 running Zephyr real-time OS
107
00:05:23,590 --> 00:05:24,900
to do the microcontroller stuff.
108
00:05:25,500 --> 00:05:28,460
Whereas the Yun was like a really low end
109
00:05:28,730 --> 00:05:32,700
sort of portable router level Linux box with an 18 mega.
110
00:05:32,980 --> 00:05:34,940
This is sort of like leveled up on both sides.
111
00:05:34,980 --> 00:05:38,200
It's like, it's not the fastest single-ware computer.
112
00:05:38,460 --> 00:05:40,360
It's not like a Raspberry Pi 5, it's like a Raspberry 3.
113
00:05:41,040 --> 00:05:42,740
And instead of the array of ports
114
00:05:42,770 --> 00:05:45,560
you would normally have on a Raspberry Pi,
115
00:05:45,870 --> 00:05:48,320
you just have a USB-C cable, a USB-C port
116
00:05:48,400 --> 00:05:50,800
that you plug in USB-C cable in to power it.
117
00:05:51,320 --> 00:05:53,960
But you can also then break out, because it's USB-C,
118
00:05:54,400 --> 00:05:56,400
break that out into ethernet, video, keyboard,
119
00:05:57,240 --> 00:05:58,860
mouse, et cetera, cameras.
120
00:05:59,220 --> 00:06:01,980
You know, you can pretty much hook anything USB up to it.
121
00:06:02,460 --> 00:06:03,640
And it does run a version of Debian
122
00:06:04,340 --> 00:06:05,380
with a full desktop GUI.
123
00:06:05,940 --> 00:06:07,900
So you could use it as a little computer if you wanted to,
124
00:06:08,460 --> 00:06:09,700
but you'd have to have all that extra,
125
00:06:10,160 --> 00:06:12,220
have a USB hub that has all those extra ports on it.
126
00:06:13,360 --> 00:06:15,840
That's not really how they intend you to use it.
127
00:06:16,080 --> 00:06:17,940
It also works headless as you'd expect.
128
00:06:18,020 --> 00:06:19,720
So you can just SSH into it
129
00:06:19,720 --> 00:06:20,980
and do everything via terminal if you want.
130
00:06:21,700 --> 00:06:22,800
That's how I've been playing with it mostly.
131
00:06:23,360 --> 00:06:24,720
But Arduino would prefer
132
00:06:25,400 --> 00:06:27,480
that you use their new Arduino App Lab.
133
00:06:28,240 --> 00:06:28,920
It's a new IDE.
134
00:06:29,140 --> 00:06:31,180
It's different than the normal Arduino IDE,
135
00:06:31,500 --> 00:06:35,960
totally separate, and it lets you program the two aspects of the Uno Q kind of as a single
136
00:06:36,080 --> 00:06:36,300
thing.
137
00:06:36,960 --> 00:06:41,360
And strangely, even though it's a download from their website, it's really a web app
138
00:06:41,440 --> 00:06:42,680
that runs on the Uno Q.
139
00:06:44,960 --> 00:06:50,080
And so it brings up sort of a standard looking little editor, but you've got like in one
140
00:06:50,140 --> 00:06:54,780
window you've got what looks like a regular Arduino sketch that you'd program with a setup
141
00:06:54,940 --> 00:06:57,940
and loop functions, and that part runs on the STM32.
142
00:06:58,580 --> 00:07:01,740
In another window, you have an Arduino-like Python script
143
00:07:02,160 --> 00:07:04,720
that runs on the Linux part of the Uno Q.
144
00:07:05,560 --> 00:07:07,500
And then Arduino provides these libraries,
145
00:07:07,640 --> 00:07:09,300
lets you easily share information
146
00:07:09,480 --> 00:07:11,540
between those two kind of worlds
147
00:07:11,820 --> 00:07:13,840
that are running simultaneously on the board.
148
00:07:14,960 --> 00:07:16,280
And then when you click the Run button,
149
00:07:17,120 --> 00:07:17,680
from what I can tell,
150
00:07:17,680 --> 00:07:19,780
it doesn't compile anything on your computer.
151
00:07:20,180 --> 00:07:22,280
It instead, because it's a web app running the Uno Q,
152
00:07:22,800 --> 00:07:25,400
it essentially ships that source off to the Uno Q
153
00:07:25,680 --> 00:07:27,579
where your code gets compiled
154
00:07:27,580 --> 00:07:29,840
and then turned into a custom Docker image,
155
00:07:30,380 --> 00:07:31,920
and then that Docker image is run.
156
00:07:33,580 --> 00:07:36,820
- How slow is that on a Raspberry Pi 3 type
157
00:07:36,960 --> 00:07:37,820
single board computer?
158
00:07:38,420 --> 00:07:39,980
- As you might expect, it takes a long time.
159
00:07:40,000 --> 00:07:42,500
Expect to wait 30 seconds from pressing run
160
00:07:42,640 --> 00:07:43,920
to like having your code run,
161
00:07:44,320 --> 00:07:45,860
and it's then seeing your LED blink,
162
00:07:46,260 --> 00:07:47,800
which if you're thinking of this
163
00:07:47,800 --> 00:07:49,160
as sort of a replacement for your Uno,
164
00:07:50,160 --> 00:07:52,180
think again, you know, this is a much more complicated thing
165
00:07:52,240 --> 00:07:56,280
and Arduino is looking to attack larger,
166
00:07:56,500 --> 00:07:57,840
more complicated projects.
167
00:07:58,480 --> 00:08:02,740
They're really big in their IDE about their concept of bricks,
168
00:08:03,280 --> 00:08:05,180
the bricks coding blocks they have.
169
00:08:05,620 --> 00:08:09,180
They're paired combinations of an Arduino, C++ sketch,
170
00:08:09,260 --> 00:08:10,540
and Python code that work together
171
00:08:10,600 --> 00:08:11,820
to accomplish a single task.
172
00:08:12,500 --> 00:08:13,940
You can imagine how this might be useful.
173
00:08:13,940 --> 00:08:17,240
You might have some complicated processing on the Linux side,
174
00:08:17,380 --> 00:08:20,020
and then the thing that deals with the GPIO or the sensor
175
00:08:20,100 --> 00:08:21,920
or whatever on the microcontroller side.
176
00:08:22,320 --> 00:08:24,040
And they don't have many examples of the bricks yet,
177
00:08:24,100 --> 00:08:30,420
They do have ones like Web UI to GPIO, which is kind of cool, or AI motion detection, where
178
00:08:30,490 --> 00:08:36,800
if you hook up an I2C accelerometer, it can tell how the accelerometer is being moved
179
00:08:36,919 --> 00:08:40,979
around, like if it's a waving motion or a double tap motion or something.
180
00:08:41,800 --> 00:08:46,200
Also on the subject of waiting to get your project going, if you get one of these and
181
00:08:46,200 --> 00:08:51,299
expect to spend about 30 minutes or more just installing software, even though the App Lab
182
00:08:51,300 --> 00:08:56,420
runs on the UNO Q it seems, the App Lab download for your computer is almost a gig in size.
183
00:08:57,260 --> 00:09:00,280
I think it's like an Electron app or something, I don't know what, but it's got a bunch of stuff in
184
00:09:00,320 --> 00:09:05,760
it you have to download. And once you run it, it'll want to update itself, so that's more updating,
185
00:09:05,860 --> 00:09:10,140
that's more time. When you first connect your UNO Q, you'll have to update the bootloader,
186
00:09:11,110 --> 00:09:14,760
which is another gig download, because I think it's a whole new Linux install.
187
00:09:15,820 --> 00:09:19,619
After that, when you connect the UNO Q to the App Lab, the App Lab will want to update the UNO Q
188
00:09:19,620 --> 00:09:21,860
again and it's unclear to me what it's doing here.
189
00:09:22,360 --> 00:09:23,240
It might be doing the same thing,
190
00:09:23,240 --> 00:09:24,980
but it's like a gate you have to get through.
191
00:09:26,040 --> 00:09:27,020
That's another gig download.
192
00:09:27,440 --> 00:09:29,360
Then finally, once it's all running,
193
00:09:29,640 --> 00:09:31,200
it'll then say, "Oh, there's updates for
194
00:09:31,240 --> 00:09:35,100
the App Lab program on the Uno queue."
195
00:09:36,520 --> 00:09:38,460
All these steps, reflashing bootloader,
196
00:09:38,860 --> 00:09:41,120
reflashing Linux distro, reflashing App Lab,
197
00:09:41,640 --> 00:09:43,040
all these can fail in
198
00:09:43,260 --> 00:09:45,240
weird ways that you have no real feedback for.
199
00:09:46,140 --> 00:09:48,199
During our workshop, there are some folks who just barely
200
00:09:48,200 --> 00:09:52,960
got to a "Hello World" blink sketch in the two hours we had for the workshop.
201
00:09:53,600 --> 00:09:59,320
You can imagine, we had I think maybe 15 people, and everybody's trying to download several
202
00:09:59,420 --> 00:10:00,020
gigs of data.
203
00:10:00,860 --> 00:10:06,320
The Hackaday supply frame Wi-Fi is really good, but that's a lot of bits to get on everybody's
204
00:10:06,640 --> 00:10:06,760
things.
205
00:10:07,459 --> 00:10:08,860
You'd think it would be really...
206
00:10:09,040 --> 00:10:13,880
Arduino's normally made for educational environments, but this current way of doing things is not
207
00:10:13,960 --> 00:10:16,280
very education setup friendly.
208
00:10:17,120 --> 00:10:17,860
It's just not good.
209
00:10:18,210 --> 00:10:22,640
And so if you're an instructor hoping to just swap out your Uno cue boards for your normal
210
00:10:22,720 --> 00:10:24,180
Uno boards, I would not recommend it.
211
00:10:24,820 --> 00:10:25,500
They're entirely different.
212
00:10:25,850 --> 00:10:29,000
They just happen to look like the Uno, but they're much more complicated.
213
00:10:29,230 --> 00:10:35,780
I think it's a shame that they diluted the Uno name for this otherwise interesting product
214
00:10:36,020 --> 00:10:37,860
because there's real promise here.
215
00:10:38,420 --> 00:10:46,039
Having a smart, full internet participant that runs Linux that works on the Wi-Fi side
216
00:10:46,040 --> 00:10:48,440
or internet side, and then having a microcontroller
217
00:10:48,620 --> 00:10:49,780
handle the real-time tasks,
218
00:10:49,860 --> 00:10:51,380
that's a really, and then having to meld it together,
219
00:10:51,420 --> 00:10:52,560
that's a really powerful combo.
220
00:10:52,660 --> 00:10:55,700
Like I've so many times plugged a Arduino Pro Micro
221
00:10:55,820 --> 00:10:57,880
into a Raspberry Pi to solve similar problems.
222
00:10:58,040 --> 00:10:59,900
And so having it be a single thing is really cool.
223
00:11:00,620 --> 00:11:02,540
Sean Heimell just posted a blog post
224
00:11:02,640 --> 00:11:07,340
about how to use the Arduino app CLI command line tool
225
00:11:07,900 --> 00:11:11,900
to do a lot of the stuff that the Arduino App Lab GUI does,
226
00:11:12,000 --> 00:11:14,000
but you can do it all via SSH on the command line.
227
00:11:14,080 --> 00:11:17,260
So that's like, I think, an easier way to interact with it.
228
00:11:17,260 --> 00:11:19,020
You just SSH into it and you, you know,
229
00:11:19,540 --> 00:11:23,020
essentially build and run your project on the command line.
230
00:11:23,100 --> 00:11:23,920
I think that's easier.
231
00:11:24,300 --> 00:11:25,800
If you want something more powerful,
232
00:11:26,880 --> 00:11:29,420
there's this single board computer called the RADSA X4.
233
00:11:30,259 --> 00:11:31,820
And it's been around for a while.
234
00:11:31,920 --> 00:11:36,600
It has like an Intel X86, like an N100 class CPU on it
235
00:11:36,920 --> 00:11:38,240
that has an RP2040 built in.
236
00:11:38,240 --> 00:11:39,760
So like a Raspberry Pi Pico.
237
00:11:40,320 --> 00:11:42,320
And it comes in a Raspberry Pi form factor.
238
00:11:42,840 --> 00:11:45,840
And so that's what some people have been using up to now
239
00:11:46,040 --> 00:11:47,140
if you want this sort of combo
240
00:11:47,260 --> 00:11:48,740
of Linux plus microcontroller.
241
00:11:49,680 --> 00:11:51,300
It's pretty great 'cause it controls
242
00:11:51,980 --> 00:11:53,280
all the pins on the 40-pin header
243
00:11:53,380 --> 00:11:54,740
that would normally be on a Raspberry Pi.
244
00:11:55,670 --> 00:11:56,240
So that's kinda cool.
245
00:11:56,900 --> 00:11:59,780
- Who do you think the target market for the Uno Q is?
246
00:12:00,300 --> 00:12:02,240
Is it still enthusiasts and makers
247
00:12:02,420 --> 00:12:04,400
or is it really more of a commercial product
248
00:12:04,460 --> 00:12:05,640
now that lives on the edge?
249
00:12:06,120 --> 00:12:07,400
- Yeah, that's a good question.
250
00:12:08,280 --> 00:12:09,240
I think it's a bit misguided.
251
00:12:09,380 --> 00:12:11,880
So Arduino has, for the last, jeez,
252
00:12:11,920 --> 00:12:13,780
like maybe almost 10 years now,
253
00:12:13,860 --> 00:12:15,940
had a pretty strong industrial offering,
254
00:12:16,560 --> 00:12:18,680
which is odd, 'cause a lot of us think of Arduino
255
00:12:18,800 --> 00:12:20,280
as mostly an educational platform,
256
00:12:20,840 --> 00:12:22,340
but they've got a bunch of IoT,
257
00:12:23,020 --> 00:12:25,120
like industrial IoT boards that you can get,
258
00:12:25,660 --> 00:12:27,960
and those are like hardened and stuff,
259
00:12:28,200 --> 00:12:30,380
but they still use the Arduino IDE to program them,
260
00:12:30,960 --> 00:12:33,740
and so I suspect this almost feels like,
261
00:12:34,020 --> 00:12:37,119
oh, this is the educational version
262
00:12:37,120 --> 00:12:42,180
of a future larger, more robust IoT product.
263
00:12:42,860 --> 00:12:44,900
Having this position for the educational market,
264
00:12:45,000 --> 00:12:49,040
it's just not really good right now for education.
265
00:12:49,200 --> 00:12:52,020
Just in how I've seen how educators use
266
00:12:52,080 --> 00:12:54,280
these little microcontroller boards, just getting going,
267
00:12:54,780 --> 00:12:59,020
it's a real motivation and inertia buster
268
00:12:59,180 --> 00:13:00,680
when you have to download so much stuff
269
00:13:00,680 --> 00:13:02,120
and have it fail in these really weird ways.
270
00:13:02,120 --> 00:13:04,020
That was really one of the powers of the original Arduino,
271
00:13:04,620 --> 00:13:07,220
You could just go from nothing to blink in a few minutes
272
00:13:08,240 --> 00:13:11,540
Not anymore. Not anymore. Yeah, everything's more complicated
273
00:13:13,560 --> 00:13:17,600
So anyway, um, so yeah did you I know you didn't go to Supercon
274
00:13:17,680 --> 00:13:20,940
But was there anything in the Supercon videos that you saw that was interesting?
275
00:13:21,540 --> 00:13:21,600
Yeah
276
00:13:21,620 --> 00:13:27,420
The one that jumped out at me was if you're like me and ever wanted to learn more about mesh tastic and how it works
277
00:13:28,040 --> 00:13:29,839
There was a talk by Daryll Strauss called
278
00:13:30,380 --> 00:13:35,320
"Covert Regional Communication with Meshtastic" which was the last talk of the day at Supercon.
279
00:13:36,080 --> 00:13:39,600
I fall into the camp of wanting to learn more about Meshtastic, I keep hearing of it and
280
00:13:39,780 --> 00:13:43,020
seeing people getting into it, but all I know is that it uses a LoRa radio.
281
00:13:43,520 --> 00:13:49,080
Daryll covers what Meshtastic is, his motivations for using it, and how to make a covert communication
282
00:13:49,340 --> 00:13:54,620
system using Meshtastic. If you haven't heard of it, Meshtastic uses LoRa Radio's peer-to-peer.
283
00:13:54,980 --> 00:13:59,520
It's open source and designed around exchanging text messages and data in off-grid environments,
284
00:13:59,900 --> 00:14:01,900
also commonly used for IOT hardware.
285
00:14:02,340 --> 00:14:05,000
The hardware is cheap, as low as 20 bucks for some boards.
286
00:14:05,540 --> 00:14:08,880
Pick a board, flash it with the Meshtastic firmware, configure it,
287
00:14:09,360 --> 00:14:10,760
connect it, and you're up and running.
288
00:14:11,280 --> 00:14:15,140
The Meshtastic website at meshtastic.org has some excellent documentation.
289
00:14:15,200 --> 00:14:17,860
If you want to learn more, see the list of supported boards.
290
00:14:19,000 --> 00:14:20,820
Daryll's next goal was to make it covert.
291
00:14:21,180 --> 00:14:24,200
His goal in making it covert was to support his local communities
292
00:14:24,380 --> 00:14:28,660
during these troubling times, and some of his goals were no eavesdropping,
293
00:14:28,960 --> 00:14:33,760
It's limited geographic area, difficult to locate the transmissions, and pseudonymous.
294
00:14:34,620 --> 00:14:38,680
He then walked through some of the steps you take to configure a Meshtastic node as a covert
295
00:14:38,900 --> 00:14:41,260
node and how it differs from a default install.
296
00:14:41,780 --> 00:14:43,680
I'm really glad I made the time to watch the video.
297
00:14:43,780 --> 00:14:47,160
It's something I've wanted to learn more about, and next time I make an Adafruit order, I
298
00:14:47,160 --> 00:14:49,940
might just throw a feather in the cart that has the LoRa radio on it.
299
00:14:51,620 --> 00:14:51,700
Totally.
300
00:14:52,120 --> 00:14:56,780
Yeah, the LoRa stuff, it's been around for so long, and everyone has sold a little board,
301
00:14:56,800 --> 00:14:59,940
like SparkFun, Adafruit, of all those little boards with Laura on them.
302
00:15:00,490 --> 00:15:04,160
And I've not gotten into it until the last couple of months because of MeshTastic.
303
00:15:04,210 --> 00:15:09,220
And I knew that it was going to be a topic at Supercon.
304
00:15:09,940 --> 00:15:15,700
And it's really cool because one of the things that Daryll covers is right now, all of our
305
00:15:15,720 --> 00:15:18,060
communications are fairly centralized.
306
00:15:19,540 --> 00:15:25,800
Even though we're all on these cellular phones, the cells are pretty large in terms of area,
307
00:15:25,940 --> 00:15:29,060
the footprint they cover, and they're all connected together, and they don't really
308
00:15:29,120 --> 00:15:30,760
work just by themselves.
309
00:15:31,540 --> 00:15:36,320
If there's a disaster, like we're in California, there's lots of disasters that are waiting
310
00:15:36,320 --> 00:15:36,720
to happen.
311
00:15:37,640 --> 00:15:41,260
There could be no landlines available because power and phone lines could be cut.
312
00:15:41,440 --> 00:15:48,040
There could be no cell towers because power went out or the cell towers fell over or whatever.
313
00:15:49,020 --> 00:15:54,140
Having something that is mesh-networky, where there isn't a central thing that can fail,
314
00:15:54,380 --> 00:15:56,500
It's just a bunch of people, a bunch of nodes.
315
00:15:56,910 --> 00:16:00,480
And having something that is really low power, like one of the really cool things about LoRa,
316
00:16:00,920 --> 00:16:04,780
is that it can run for months on just a really small battery.
317
00:16:05,380 --> 00:16:11,480
And so one of the philosophies of some of these Meshtastic communities, like there's
318
00:16:11,520 --> 00:16:16,840
one called SoCal Mesh down here in Southern California, is they're like, "Hey, let's install
319
00:16:17,160 --> 00:16:18,480
these little Meshtastic nodes.
320
00:16:18,660 --> 00:16:23,020
We'll just put it in a weatherproof box with a solar panel and just stick it to the side
321
00:16:22,980 --> 00:16:27,020
of a parking structure in some place random in my downtown in my city.
322
00:16:27,580 --> 00:16:28,540
And we'll do that a couple times.
323
00:16:28,920 --> 00:16:30,600
And these things will last forever.
324
00:16:30,840 --> 00:16:34,760
And no one cares because it's just this little box that looks like a little utility box.
325
00:16:35,900 --> 00:16:39,560
And so now if something goes wrong, we'll at least be able to hop through it to get
326
00:16:39,640 --> 00:16:41,360
to people we want to talk to.
327
00:16:41,800 --> 00:16:46,500
And if you want to, if you're a mesh-tastic, if you've got a mesh-tastic gizmo on your
328
00:16:46,580 --> 00:16:52,280
person, you can turn on GPS tracking for it if you want to let people know where you are
329
00:16:52,180 --> 00:16:55,620
or where this node is, so that if you want to use it
330
00:16:55,720 --> 00:16:57,920
to help someone find you, you can have that as well.
331
00:16:58,220 --> 00:17:00,000
But by default, that's turned off, I think.
332
00:17:00,820 --> 00:17:02,360
And so it's really great that, like,
333
00:17:02,360 --> 00:17:03,620
oh, it gives us choice, you know,
334
00:17:03,660 --> 00:17:06,560
it gives us the ability to communicate with each other
335
00:17:06,780 --> 00:17:08,180
without having to have a central authority.
336
00:17:08,640 --> 00:17:11,540
It lets us choose how much information we want to disclose.
337
00:17:12,040 --> 00:17:14,900
And it's all purposefully really low power and low data.
338
00:17:15,000 --> 00:17:16,199
We're not sending YouTube videos,
339
00:17:16,199 --> 00:17:17,300
we're sending text messages.
340
00:17:18,620 --> 00:17:20,579
- So one of the things I wanted to ask you about
341
00:17:20,579 --> 00:17:25,040
that Supercon is known for is the badge. Was there a LoRa radio built into the badge this
342
00:17:25,100 --> 00:17:25,220
year?
343
00:17:25,480 --> 00:17:28,100
Yes. It was not running Meshtasic, but it's
344
00:17:28,100 --> 00:17:33,560
running a LoRa radio that had been sufficiently muted, because it was going to be upwards
345
00:17:33,560 --> 00:17:39,960
of 500 people in a single room, potentially. One of the things with radio is that if everyone
346
00:17:40,040 --> 00:17:50,560
starts to shout, it just turns into a wall of noise, and no one can hear anything. The
347
00:17:50,560 --> 00:17:55,760
open the badge up and solder one thing, and that'll take the attenuation off.
348
00:17:56,320 --> 00:18:01,220
And it's also not running MeshTastic, because MeshTastic is made for a little bit more diffuse
349
00:18:01,560 --> 00:18:02,420
of a set of nodes.
350
00:18:02,430 --> 00:18:05,580
It's not meant for having 500 nodes in one square block area.
351
00:18:09,000 --> 00:18:14,440
But the thing is that people have been working, and they got some initial builds of MeshTastic
352
00:18:14,900 --> 00:18:16,700
for the badge.
353
00:18:16,780 --> 00:18:19,480
The badge, it looks kind of like an old computer.
354
00:18:19,640 --> 00:18:25,380
It's got a little QWERTY keyboard, a cool little rectangular display, and a little antenna
355
00:18:25,380 --> 00:18:25,900
off the top.
356
00:18:26,090 --> 00:18:27,180
And it's got a battery inside.
357
00:18:27,440 --> 00:18:33,960
Internally, it runs an ESP32-S3 and the standard LoRa board that everyone uses.
358
00:18:34,400 --> 00:18:39,300
And so it's very similar to some existing Meshtastic compatible boards that are out
359
00:18:39,340 --> 00:18:43,060
there from like LilyGo or Waveshare or something.
360
00:18:43,190 --> 00:18:45,160
I forget who, but it's...
361
00:18:45,160 --> 00:18:50,980
there are some of these Chinese sort of maker vendors that have boards that are very similar.
362
00:18:51,180 --> 00:18:57,940
And so the conversion from that to getting MeshTastic to work on the Hackaday badge was
363
00:18:58,000 --> 00:18:58,500
really easy.
364
00:18:59,360 --> 00:19:04,880
And the cool thing is this badge is so useful because it's a ESP32 with a QWERTY keyboard
365
00:19:05,040 --> 00:19:05,820
and a display.
366
00:19:06,800 --> 00:19:11,100
Just installing a BASIC on it and using it as a little BASIC computer from the 1980s
367
00:19:11,140 --> 00:19:12,040
is really possible.
368
00:19:12,360 --> 00:19:18,380
And I guess the the keyboard is brand new from solder party. Yeah, the keyboard is so nice
369
00:19:18,440 --> 00:19:22,100
it's it's pretty much the same technology from keyboards of
370
00:19:23,160 --> 00:19:26,160
like the late 80s and early 90s of the little like
371
00:19:26,900 --> 00:19:29,480
Silicone rubber thing a little like snap dome
372
00:19:30,280 --> 00:19:33,540
Metal bit above the PCB so it makes a nice little click when you press
373
00:19:34,050 --> 00:19:38,500
But it's really simple and and solder party just released on if you saw a little
374
00:19:38,960 --> 00:19:44,220
USB keyboard using the same same technique for like eight euros or something. It's really cool
375
00:19:44,220 --> 00:19:47,000
I wanted to get some but the shipping was really expensive from from Sweden
376
00:19:49,580 --> 00:19:51,920
But but yeah, yeah, he helped out or I mean
377
00:19:52,540 --> 00:19:58,100
Soder party helped out with the keyboard for the the badge. This badge is one of the few badges. I'm gonna actually use
378
00:19:58,880 --> 00:20:04,360
After the conference, I hope that they offer it on tindy or something. It's really cool. So that's the badge
379
00:20:04,540 --> 00:20:06,780
What is your second item for us this episode?
380
00:20:07,400 --> 00:20:13,340
Okay, so to continue the wireless trend I've recently been looking into ultra wideband chips and
381
00:20:14,640 --> 00:20:19,980
So I love Apple's air tags these little coin sized what looked like Bluetooth beacons
382
00:20:20,250 --> 00:20:22,680
I put them on everything my keys my wallet my suitcase
383
00:20:23,250 --> 00:20:25,900
Maybe even my cat I got kind of a small cat
384
00:20:25,900 --> 00:20:33,439
So, I don't know if it'll it'll fit on him really but unlike other little Bluetooth trackers air tags also do ultra wideband or UWB
385
00:20:33,960 --> 00:20:41,560
This kind of newest technology allows among other things devices like air tags to be tracked to a few centimeters
386
00:20:42,620 --> 00:20:48,060
Which is amazing like with normal Bluetooth your tracking resolution is about a few meters with Wi-Fi
387
00:20:48,320 --> 00:20:49,480
It's like maybe like, you know
388
00:20:50,280 --> 00:20:57,420
five meters or something and there's a couple of new dev boards that have the have a UWB chip and ESP 32 Wi-Fi in
389
00:20:57,420 --> 00:21:02,240
A single board and I just ordered some maker fab the the maker fab
390
00:21:02,400 --> 00:21:09,080
ESP UWB board they're 40 bucks and they look kind of like your standard ESP 32 Wi-Fi board with a little weird module
391
00:21:09,720 --> 00:21:12,820
That is this a Corvo DMW
392
00:21:13,220 --> 00:21:19,440
1000 the Corvo's QoR vo they're apparently the main company that's making these ultra wideband chips
393
00:21:19,890 --> 00:21:22,900
that that board itself goes for about 20 bucks on digikey Mouser and
394
00:21:24,240 --> 00:21:29,619
The their chip is supposedly compatible with air tags. So I'm hoping I can build like a little tracker tracker
395
00:21:30,700 --> 00:21:34,820
Base station so I can track the trackers have like a little display or something that kind of shows
396
00:21:35,340 --> 00:21:39,640
I mean, you know cuz you can do this do all this with your phone with find my on on iPhone
397
00:21:40,220 --> 00:21:42,140
But I think it'd be kind of cool to have a standalone thing
398
00:21:42,240 --> 00:21:47,060
That would just kind of say is you know, if I have one on the cat is the cat nearby
399
00:21:48,580 --> 00:21:49,420
That would be cool
400
00:21:50,620 --> 00:21:52,540
You know, I don't know. I don't you know how cats are
401
00:21:52,550 --> 00:21:55,500
They can kind of like somehow disappear like, you know, they're in the house
402
00:21:55,510 --> 00:22:00,380
But like where the heck are they in the house the next thing, you know, they're sneaking up on you. Yeah
403
00:22:00,380 --> 00:22:03,720
So this UWB technology is really cool.
404
00:22:04,250 --> 00:22:06,580
Instead of transmitting at a particular frequency
405
00:22:07,420 --> 00:22:09,040
with a particular like sort of width of channel,
406
00:22:09,180 --> 00:22:11,420
like with WiFi it's like five gigahertz
407
00:22:11,430 --> 00:22:13,060
and the width is like 20 megahertz.
408
00:22:13,700 --> 00:22:16,400
And with Bluetooth, the frequency is 2.4 gigahertz
409
00:22:16,540 --> 00:22:19,400
and the width of the transmission is like one megahertz.
410
00:22:20,600 --> 00:22:23,860
UWB is this five megahertz or more channel
411
00:22:24,040 --> 00:22:25,060
at six gigahertz.
412
00:22:25,620 --> 00:22:28,020
And instead of transmitting at like a central frequency,
413
00:22:29,180 --> 00:22:32,560
the UWB protocol sprays pulses,
414
00:22:33,320 --> 00:22:35,420
a little radio pulses at various frequencies,
415
00:22:35,910 --> 00:22:37,660
at various amplitudes and polarity
416
00:22:38,060 --> 00:22:39,900
across that 500 megahertz spectrum.
417
00:22:40,510 --> 00:22:42,880
So if you could hear it, it'd be sound more like noise
418
00:22:43,540 --> 00:22:45,620
compared to the sort of pure chords
419
00:22:46,280 --> 00:22:48,240
or arpeggios of Wi-Fi or Bluetooth.
420
00:22:49,140 --> 00:22:50,760
And so being able to distinguish and decode
421
00:22:50,900 --> 00:22:53,720
the sprayed pulses gives you the benefit
422
00:22:54,060 --> 00:22:56,580
of being able to localize where that noise is coming from.
423
00:22:57,140 --> 00:23:00,320
these chips can do both time of flight recording
424
00:23:01,080 --> 00:23:05,140
of the radio signal, and also there's two other really fast,
425
00:23:05,280 --> 00:23:07,360
busy, basically they're able to measure
426
00:23:07,360 --> 00:23:08,380
the speed of light effectively.
427
00:23:09,300 --> 00:23:09,920
It's kind of crazy.
428
00:23:10,210 --> 00:23:12,380
But also because they've got this really wide bandwidth,
429
00:23:12,970 --> 00:23:15,320
you can also transmit enormous amounts of data,
430
00:23:15,760 --> 00:23:18,220
like upwards of 675 megabits per second
431
00:23:18,520 --> 00:23:20,500
if both sides are fully powered and stuff.
432
00:23:21,340 --> 00:23:24,120
The downside is you have to be able to hear all that noise.
433
00:23:24,760 --> 00:23:26,660
UWB doesn't work well through walls.
434
00:23:26,840 --> 00:23:29,160
If you've ever gone outside of a room
435
00:23:29,220 --> 00:23:30,860
that where a stereo is playing and it gets all muddy,
436
00:23:30,960 --> 00:23:31,720
it's kind of that problem.
437
00:23:31,720 --> 00:23:33,240
You start to lose the fidelity.
438
00:23:33,910 --> 00:23:35,860
So it's more of an in a room technology.
439
00:23:36,720 --> 00:23:37,680
But it's really interesting.
440
00:23:38,520 --> 00:23:41,580
I can't wait to get my hands on some of these ESP32 boards
441
00:23:42,000 --> 00:23:43,800
'cause then I'll be able to do Bluetooth positioning,
442
00:23:44,110 --> 00:23:46,580
Wi-Fi positioning, and now this ultra wideband positioning.
443
00:23:47,080 --> 00:23:49,020
- What will you code those boards in?
444
00:23:49,040 --> 00:23:51,500
Is this a C or an Arduino project?
445
00:23:52,300 --> 00:23:53,720
- In the show notes, I've got some links
446
00:23:53,900 --> 00:23:56,820
to a couple of essentially blog posts
447
00:23:56,820 --> 00:23:58,080
doing this, yeah, with Arduino.
448
00:23:58,540 --> 00:24:03,660
And the Arduino libraries that exist for this Corvo DMW-1000
449
00:24:03,840 --> 00:24:07,640
or whatever have a API where you can just say get range.
450
00:24:08,360 --> 00:24:12,640
And so you can find a particular other device
451
00:24:12,700 --> 00:24:14,080
and then say how far away that thing is.
452
00:24:14,420 --> 00:24:15,960
And then if you have multiple devices,
453
00:24:16,120 --> 00:24:17,720
you can then get multiple ranges.
454
00:24:17,830 --> 00:24:19,220
And then you can triangulate yourself.
455
00:24:20,160 --> 00:24:21,940
You'll have to come back in a future episode
456
00:24:21,950 --> 00:24:24,200
and give us an update on your tracking the tracker project.
457
00:24:24,700 --> 00:24:25,100
Yeah, totally.
458
00:24:25,760 --> 00:24:26,580
Got my tracker tracker.
459
00:24:27,720 --> 00:24:29,920
All right, Paul, what's your what's your next one for this time?
460
00:24:30,900 --> 00:24:33,580
In October 2023, Microsoft spent a cool
461
00:24:33,860 --> 00:24:36,780
$75 billion to purchase Activision Blizzard.
462
00:24:37,760 --> 00:24:40,780
Now, two years later, we get a bonus from Microsoft as they announced
463
00:24:40,840 --> 00:24:45,220
on November 20th that they have open sourced the Zork one through three games,
464
00:24:45,740 --> 00:24:49,780
which they acquired from Activision Blizzard, who I believe own the Infocom IP.
465
00:24:50,900 --> 00:24:53,320
If you're not familiar with Zork, it was a text adventure game
466
00:24:53,320 --> 00:24:57,720
first released in 1977 to run on a mainframe and was developed at MIT.
467
00:24:58,740 --> 00:25:03,660
The player explores the ruins of the great underground empire, and you use the text commands
468
00:25:03,720 --> 00:25:06,620
to travel to different locations, solve puzzles, and collect treasure.
469
00:25:07,480 --> 00:25:12,020
When it was released commercially, it was split into three games, Zork 1-3, to save
470
00:25:12,120 --> 00:25:12,420
memory.
471
00:25:13,040 --> 00:25:16,540
He also had the Z-Machine, the game engine that ran the games.
472
00:25:17,120 --> 00:25:21,440
I've linked to a nice blog post by Andrew Plotkin that has more details on the release.
473
00:25:22,140 --> 00:25:26,580
Over two years ago, he publicly wrote on his blog asking Microsoft to do exactly what they've
474
00:25:26,660 --> 00:25:26,920
done.
475
00:25:27,360 --> 00:25:29,000
He has a few more details worth reading.
476
00:25:29,740 --> 00:25:31,540
I've also linked to Microsoft's announcement.
477
00:25:31,840 --> 00:25:35,560
I especially liked how they stated that their goal in releasing the game's source code
478
00:25:36,110 --> 00:25:40,040
"to place historically important code in the hands of students, teachers, and developers
479
00:25:40,680 --> 00:25:45,500
so they can study it, learn from it, and perhaps even more importantly, play it."
480
00:25:45,500 --> 00:25:48,740
The announcement links to the GitHub repo where you can download the source code.
481
00:25:49,640 --> 00:25:51,140
And the timing couldn't be better for me.
482
00:25:51,820 --> 00:25:56,100
On the next episode of the CircuitPython show coming December 8th, I interviewed Dan Cogliano.
483
00:25:56,920 --> 00:26:02,680
Dan ported the ZMachine game engine to Arduino a few years ago and just ported it to CircuitPython
484
00:26:02,760 --> 00:26:03,020
now.
485
00:26:03,580 --> 00:26:07,180
So if you have a fruit jam and you want to play the classic Zork games, it's now super
486
00:26:07,280 --> 00:26:12,660
easy to do that right in CircuitPython using Dan ZMachine with the open source Zork 1-3
487
00:26:12,880 --> 00:26:13,260
games.
488
00:26:14,060 --> 00:26:14,500
That's so cool.
489
00:26:14,580 --> 00:26:18,560
I really loved trying to play Zork on my whatever the heck it was, Apple II.
490
00:26:19,100 --> 00:26:25,000
I was terrible at it, but just the whole "Go North, take rock."
491
00:26:25,660 --> 00:26:32,600
Having the concept of being able to type English to a computer was so fantastic back then.
492
00:26:32,600 --> 00:26:37,440
Of course now, with LLMs and conversational interfaces, it's so de rigueur.
493
00:26:37,880 --> 00:26:41,020
But man, back then, it's like trying to figure out, "Well, what verbs does it know?
494
00:26:41,420 --> 00:26:42,420
Does it know 'fight'?
495
00:26:42,520 --> 00:26:43,440
Does it know 'run'?"
496
00:26:43,980 --> 00:26:44,580
"Gotta run away."
497
00:26:44,440 --> 00:26:44,740
away.
498
00:26:46,350 --> 00:26:48,260
And I never could seem to get the commands right.
499
00:26:48,560 --> 00:26:50,880
And I was never any good at Zork.
500
00:26:51,620 --> 00:26:52,160
Same, same.
501
00:26:52,300 --> 00:26:52,400
Yeah.
502
00:26:52,500 --> 00:26:56,320
And there was for a while there was like Infocom was making all these ones like they made
503
00:26:56,360 --> 00:26:57,400
one called Star.
504
00:26:58,660 --> 00:27:00,180
But it was like it was basically Zork in space.
505
00:27:00,550 --> 00:27:04,240
And that one I that one I played more because I'm you know, I was more into space stuff
506
00:27:04,340 --> 00:27:05,220
than fantasy stuff.
507
00:27:05,360 --> 00:27:06,480
But yeah, yeah.
508
00:27:06,480 --> 00:27:08,140
Infocom seemed to make all these games.
509
00:27:08,220 --> 00:27:12,360
I think they were all just different data files for this Z machine.
510
00:27:12,800 --> 00:27:15,040
Now that we have Z machine for CircuitPython, incredible.
511
00:27:15,620 --> 00:27:16,380
- Yep, exactly.
512
00:27:17,140 --> 00:27:18,200
What's your next one for us?
513
00:27:18,860 --> 00:27:20,680
- So I love a well-designed dev board.
514
00:27:21,380 --> 00:27:23,060
The Raspberry Pi Pico is pretty good,
515
00:27:23,360 --> 00:27:25,760
but what if you wanna make your own or make modifications?
516
00:27:26,480 --> 00:27:28,200
Maybe like different layout, different connectors.
517
00:27:28,880 --> 00:27:31,440
There's a new blog post by Kai Pereira
518
00:27:31,720 --> 00:27:34,360
called "Let's Design an RP2040 Dev Board"
519
00:27:35,380 --> 00:27:36,840
that teaches you exactly how to do that.
520
00:27:37,180 --> 00:27:42,260
In his post, Kai shows the entire KiCAD design process
521
00:27:42,300 --> 00:27:44,800
and ending with soldering up an actual physical board.
522
00:27:45,260 --> 00:27:46,420
Starting with drawing the schematic,
523
00:27:46,520 --> 00:27:48,100
he shows how to pick schematic symbols
524
00:27:48,380 --> 00:27:50,740
and highlight good schematic practices to make it readable.
525
00:27:51,400 --> 00:27:53,720
So many schematics I see nowadays have little conception
526
00:27:53,840 --> 00:27:55,080
of what makes a good schematic.
527
00:27:55,900 --> 00:27:57,760
It's the primary way of getting across to others
528
00:27:57,880 --> 00:27:59,260
what the circuit actually does.
529
00:27:59,920 --> 00:28:01,440
So just like writing a good essay,
530
00:28:01,500 --> 00:28:03,400
drawing a good schematic requires some knowledge
531
00:28:03,440 --> 00:28:06,320
of style and structure, and Kai gives you some tips on that.
532
00:28:06,900 --> 00:28:08,460
When I'm saying his name, it's K-A-I.
533
00:28:08,680 --> 00:28:09,800
I assume that's pronounced Kai.
534
00:28:10,440 --> 00:28:11,500
- It usually is.
535
00:28:12,180 --> 00:28:15,260
Yeah, it's like, plus it's complicated for me
536
00:28:15,400 --> 00:28:17,840
because like, oh wait, it's not pronounced Ki-CAD,
537
00:28:17,880 --> 00:28:18,860
it's pronounced Ki-CAD.
538
00:28:19,300 --> 00:28:21,660
So it's Kai talking about Ki-CAD, all right.
539
00:28:25,200 --> 00:28:27,740
So Kai then goes on to show you how to take that schematic
540
00:28:27,900 --> 00:28:29,700
and turn it into a dimensionally accurate PCB.
541
00:28:30,440 --> 00:28:33,300
He shows some of the power routing for the ARCB2040,
542
00:28:33,620 --> 00:28:36,460
can be tricky, but he shows you how to handle those
543
00:28:36,820 --> 00:28:38,780
and other critical bits like the oscillator placement,
544
00:28:39,460 --> 00:28:41,080
USB and flash placement and ground fills.
545
00:28:41,980 --> 00:28:46,940
He goes and talks about how to choose the right symbols,
546
00:28:47,180 --> 00:28:50,100
both in the schematic and then how to match those up
547
00:28:50,260 --> 00:28:52,500
with the footprints in the PCB.
548
00:28:52,620 --> 00:28:54,380
This is actually kind of a tricky thing to do
549
00:28:54,560 --> 00:28:55,760
in all schematic programs.
550
00:28:56,140 --> 00:28:58,460
Again, KiCad is a little bit weird to me in how to do it,
551
00:28:58,820 --> 00:29:01,520
so showing how to do that is really, really nice.
552
00:29:02,380 --> 00:29:03,380
I know how to do all this stuff,
553
00:29:03,480 --> 00:29:06,580
but you can do things in KiCad in many different ways,
554
00:29:06,580 --> 00:29:09,040
and so it's cool to see someone else show a way
555
00:29:09,120 --> 00:29:10,980
that's almost the same but a little bit different
556
00:29:10,980 --> 00:29:15,560
what I do helps me kind of understand how Key Cadward thinks, you know. And then he
557
00:29:17,100 --> 00:29:19,940
takes all that and actually like doesn't order through PCB,
558
00:29:20,580 --> 00:29:22,860
gets the actual PCBs and shows how to solder them up.
559
00:29:23,380 --> 00:29:28,380
And so some of these things are described in terms of the schematic and stuff are described in the RP2040
560
00:29:28,840 --> 00:29:32,440
manuals, but it's really nice to see a single blog post and not a video
561
00:29:33,240 --> 00:29:37,360
that delineates everything in a step-by-step process describing the reasoning behind it.
562
00:29:37,420 --> 00:29:44,300
So even if you know circuit design and RP2040 layout, this post is a great refresher that might teach you some things. Thanks, Guy.
563
00:29:44,800 --> 00:29:49,760
Yeah, there's a time and a place for videos and then there's a time and a place for an actual blog post that details the
564
00:29:50,060 --> 00:29:51,900
process. So it's pretty cool to see someone actually
565
00:29:52,420 --> 00:29:58,280
take the time to write that out and still have a personal blog in this day and age. So, you know, kudos to them.
566
00:29:58,820 --> 00:30:02,420
Yes. So, yeah, what's our last one for today?
567
00:30:03,360 --> 00:30:06,340
Tod, you and I are both of an age that we were around at the start of
568
00:30:06,780 --> 00:30:08,160
microcomputers in the early eighties.
569
00:30:08,320 --> 00:30:09,160
Yes, we're old.
570
00:30:10,230 --> 00:30:14,080
Back then you could go into a Babbage's or a Waldenbooks and buy magazines with
571
00:30:14,360 --> 00:30:17,620
basic code or even assembly that you would then program by hand at home,
572
00:30:17,780 --> 00:30:19,340
copying direct from the magazine.
573
00:30:20,520 --> 00:30:23,420
Well, someone's trying to bring that back, but this time for HTML.
574
00:30:24,250 --> 00:30:28,640
The website vol WTF has launched the Doctype magazine.
575
00:30:29,160 --> 00:30:33,240
For 10 bucks, you get a glossy cover magazine with 10 web apps inside with
576
00:30:33,260 --> 00:30:35,200
illustrations and additional information.
577
00:30:36,120 --> 00:30:39,300
They're frequently asked questions on the homepage sums it up pretty well.
578
00:30:39,820 --> 00:30:40,660
I don't understand.
579
00:30:40,740 --> 00:30:42,880
It's a magazine of HTML source code.
580
00:30:43,980 --> 00:30:47,800
Yes, you type it in and then you get to play the games and run the apps.
581
00:30:48,520 --> 00:30:49,260
Type it all in.
582
00:30:49,440 --> 00:30:49,740
Why?
583
00:30:50,260 --> 00:30:52,660
Because it's a lost form of software distribution.
584
00:30:53,160 --> 00:30:56,520
It was intriguing and rewarding back then, and maybe it still is now.
585
00:30:58,240 --> 00:30:58,980
And they're right.
586
00:30:58,980 --> 00:31:01,420
It is a lost form. It takes me back to being a kid.
587
00:31:02,100 --> 00:31:03,980
And don't worry, you don't need a web server.
588
00:31:03,980 --> 00:31:07,120
You can run the web apps locally in your browser with instructions included.
589
00:31:07,880 --> 00:31:10,080
I actually recognize one or two of the authors,
590
00:31:10,200 --> 00:31:14,440
but I haven't spent the 10 bucks yet to try it out myself with the holidays here.
591
00:31:14,640 --> 00:31:17,500
It might make an interesting gift for someone younger,
592
00:31:17,660 --> 00:31:20,960
just getting into computers or someone our age that takes us back
593
00:31:20,960 --> 00:31:22,480
to that time when we were kids.
594
00:31:23,400 --> 00:31:27,660
My wife, Carlyn, she just got me the physical copy of this, which is hilarious.
595
00:31:28,080 --> 00:31:31,460
So in that fact, they also have one of their questions,
596
00:31:31,960 --> 00:31:33,600
can I cheat and get a PDF instead?
597
00:31:34,260 --> 00:31:34,840
And the answer is no.
598
00:31:35,740 --> 00:31:36,020
(laughs)
599
00:31:36,120 --> 00:31:39,480
It's like, you purely have to get the physical paper
600
00:31:39,640 --> 00:31:42,580
and do that transcription yourself
601
00:31:42,740 --> 00:31:45,940
of going from paper to a screen yourself.
602
00:31:46,440 --> 00:31:48,220
So Carlyn, my wife, she got me this.
603
00:31:48,720 --> 00:31:51,040
She's like, oh, I wanted to give you this for Christmas,
604
00:31:51,180 --> 00:31:52,480
but I can't wait, I wanna give it to you now.
605
00:31:52,540 --> 00:31:53,380
I don't know if you'll like it.
606
00:31:53,400 --> 00:31:54,380
I'm like, oh, this is amazing.
607
00:31:55,000 --> 00:31:55,280
(laughs)
608
00:31:56,080 --> 00:32:00,240
Yeah, I picked this out not knowing that you had it already, so it's quite the coincidence.
609
00:32:01,440 --> 00:32:02,120
Oh, it's so good.
610
00:32:02,540 --> 00:32:07,400
Yeah, so I distinctly remember getting, I think the magazine was called Nibble.
611
00:32:08,240 --> 00:32:12,400
It was geared towards Apple II, and it had code everywhere.
612
00:32:12,660 --> 00:32:17,180
Not only did it have what Doctype has, which is, here's a little program you can type in,
613
00:32:17,740 --> 00:32:23,480
and it was just printed text of the source code that you would type in, but it also would
614
00:32:23,360 --> 00:32:29,160
have these articles about a software technique. Like, "Oh, here's how to do high-res graphics
615
00:32:29,310 --> 00:32:34,320
on the Apple II," or something. But then also, there'd be these little ads. Beagle Bros was
616
00:32:34,400 --> 00:32:38,080
this company that would make these little tips and tricks and tools for your Apple II,
617
00:32:38,500 --> 00:32:43,880
and their little quarter-page ad would often have a little one or two or five-line program
618
00:32:43,880 --> 00:32:48,500
you could type in to do something fun. It's like, "Oh man, imagine if ads were like that
619
00:32:52,900 --> 00:32:53,340
nowadays."
620
00:32:54,520 --> 00:32:57,360
But yeah, so I'm really loving Doctype.
621
00:32:57,660 --> 00:33:01,160
I hope I... Currently, it is just the actual programs.
622
00:33:01,160 --> 00:33:04,700
I don't think there's much editorial content, but I would love it if they extended it out
623
00:33:04,780 --> 00:33:12,400
to having little articles about certain cool HTML techniques, because man, HTML is huge.
624
00:33:12,460 --> 00:33:13,860
There's lots of really cool things you can do with it.
625
00:33:14,040 --> 00:33:16,840
It is kind of the language to know on the internet now.
626
00:33:18,080 --> 00:33:18,940
Well, that's our show.
627
00:33:19,460 --> 00:33:20,360
Thank you for listening.
628
00:33:20,780 --> 00:33:25,920
We're recording this over the Thanksgiving holiday weekend in the US and we are thankful for every one of you listening.
629
00:33:26,760 --> 00:33:31,820
For detailed show notes and transcripts or to order a free sticker, visit thebootloader.net.
630
00:33:32,560 --> 00:33:34,480
Until next time, stay positive.