1
00:00:05,100 --> 00:00:06,940
Welcome to The Bootloader. I'm Paul Cutler.

2
00:00:07,700 --> 00:00:14,780
And I'm Tod Kurt. The show works like this. In each episode, we each bring three things we're excited to share, chatting about each one for about five minutes.

3
00:00:15,260 --> 00:00:20,280
For detailed show notes and transcripts, visit the bootloader.net. Paul, what's your first one for us?

4
00:00:20,740 --> 00:00:28,200
First up is openboardsguide.com, a new website dedicated to news reviews and project highlights for embedded boards and microcontrollers.

5
00:00:28,520 --> 00:00:34,780
And when I say new, it's brand new having just launched last month and only has three stories so far.

6
00:00:35,280 --> 00:00:39,040
But if you want to get in on the ground floor and see something grow, now is the time to check it out.

7
00:00:39,800 --> 00:00:45,080
Open Board Guides is founded by David Groom, aka I ShotJR on social media.

8
00:00:45,460 --> 00:00:50,220
David is or was the community editor at Make Magazine, so this is a subject I'm guessing he knows well.

9
00:00:50,920 --> 00:00:54,540
The first two reviews are focused around two very different Arduino boards.

10
00:00:55,100 --> 00:00:58,240
The first review is for the Arduino Ventuno, which means 21 and.

11
00:00:58,280 --> 00:01:01,060
in Italian and is a nod to Arduino's birthday this year.

12
00:01:01,640 --> 00:01:05,680
It's a $300 dev board with tons of storage, networking,

13
00:01:05,880 --> 00:01:08,200
and the ability to hook up a monitor, mouse, and keyboard.

14
00:01:08,920 --> 00:01:11,180
The article calls it a real kitchen sink dev board

15
00:01:11,640 --> 00:01:12,920
with all the connections at sports,

16
00:01:13,140 --> 00:01:15,380
including a 40-pin Raspberry Pi-like header.

17
00:01:16,300 --> 00:01:19,120
The second review focused on the Arduino Nesso N1,

18
00:01:19,720 --> 00:01:21,200
which is by M5 Stack,

19
00:01:21,740 --> 00:01:24,360
who makes what I think are really neat and innovative boards.

20
00:01:25,100 --> 00:01:28,220
David shared in the article that M5 launches a new board

21
00:01:28,240 --> 00:01:31,520
week and has a wall to keep track of them all, which is really neat.

22
00:01:32,600 --> 00:01:39,820
That NSON1 is a tiny solution that features an ESP32C6 with a 1.14-inch iPS touchscreen.

23
00:01:40,560 --> 00:01:45,680
It has everything you need in a board, Wi-Fi 6, Bluetooth 5.3 low energy, infrared,

24
00:01:46,140 --> 00:01:49,600
expander ports, and thread and Zigby support for your home automation projects.

25
00:01:50,300 --> 00:01:55,020
And it has a Lora radio and a spot to hold the antenna built in all for 50 bucks.

26
00:01:56,040 --> 00:01:58,200
And lastly, just so you don't think they're all doing a lot.

27
00:01:58,220 --> 00:02:02,320
boards is a review of the Pimoroni badgeware Tufty running MicroPython.

28
00:02:03,040 --> 00:02:08,800
The Tufty is the high end of three badgeware offerings from Pimoroni and features an RP 2350

29
00:02:09,399 --> 00:02:12,720
with 16 megs of flash, Wi-Fi 4 and Bluetooth 5.2.

30
00:02:13,480 --> 00:02:21,240
It also features a LIPO battery with integrated charging that can keep a charge going up to 12 hours with 100 days of standby and a real-time clock.

31
00:02:22,040 --> 00:02:28,180
What's different about this one from the other two badges Pomerone offers is the 2.8-inch TFT IPS.

32
00:02:28,200 --> 00:02:31,780
LCD screen with a 320 by 240 resolution.

33
00:02:32,660 --> 00:02:34,640
This all comes in a package for about $55,

34
00:02:35,090 --> 00:02:38,700
and you can even buy an add-on STEM kit for more projects with the Tufty.

35
00:02:39,500 --> 00:02:42,860
The only question I have is for this particular review is who wrote it.

36
00:02:43,360 --> 00:02:47,280
I came across a blue sky post from Straithe, who mentions they're an editor at the site,

37
00:02:47,780 --> 00:02:49,500
and the Tufty review is their first submission.

38
00:02:50,240 --> 00:02:54,400
But the byline at the top is David, so it might just be a quirk of their publishing platform.

39
00:02:55,120 --> 00:02:56,100
Overall, I like the site.

40
00:02:56,280 --> 00:02:57,760
The reviews are hands-on and thoughtful,

41
00:02:58,060 --> 00:03:02,740
and I like at the end of each review that it concludes with a what I'd love and room for improvement section.

42
00:03:03,440 --> 00:03:08,740
I'm always looking for neutral, trustworthy review sites, and there aren't a lot of folks out there doing board and microcontroller reviews.

43
00:03:09,300 --> 00:03:10,580
So maybe go check this one out.

44
00:03:10,960 --> 00:03:11,540
Yeah, this is great.

45
00:03:12,060 --> 00:03:20,940
I like all the stuff that I shot J.R. has posted on various socials, his various publishes on making all that kind of stuff.

46
00:03:21,340 --> 00:03:27,580
And I used to always get the make board guide back when the number of boards was like kind of tractable.

47
00:03:27,680 --> 00:03:29,420
Now there's like an infinite number of boards.

48
00:03:29,920 --> 00:03:32,380
But the board guide was always really handy to be like,

49
00:03:32,460 --> 00:03:34,540
okay, this is a great way of kind of thumbing through

50
00:03:34,540 --> 00:03:38,360
and see what's the kind of cool boards in the different spaces

51
00:03:38,600 --> 00:03:40,980
because there's all these different ways you can use these

52
00:03:40,980 --> 00:03:41,820
or do we don't kind of boards.

53
00:03:42,460 --> 00:03:47,640
And I didn't even know about this Nesso N1, this M5 stack thing.

54
00:03:48,260 --> 00:03:51,800
It's totally positioned to me as a great thing to use for mesh-tastic

55
00:03:51,980 --> 00:03:55,540
because it's got a display and a Lora radio and a couple of buttons.

56
00:03:55,740 --> 00:03:57,280
And so it could run a messtastic.

57
00:03:58,459 --> 00:04:03,940
interface and it's like a nicely real device. It's not some kit yet put together.

58
00:04:04,360 --> 00:04:07,940
Right. I mean, the way they've got the antenna built in and then the screen makes it a really

59
00:04:08,120 --> 00:04:13,740
nice little device for 50 bucks. Yeah, yeah. So, I mean, I'm curious to see what the meshtastic folk

60
00:04:13,860 --> 00:04:18,880
have, if they've seen this and like, I think porting to a new board is pretty, pretty easy.

61
00:04:19,079 --> 00:04:23,840
So maybe we'll see mesh task pretty soon on it. Which case, I might get one in playing with

62
00:04:23,840 --> 00:04:26,900
it because I'm always looking for a way to actually, to actually use meshastic.

63
00:04:27,160 --> 00:04:27,360
Right.

64
00:04:27,620 --> 00:04:28,760
As opposed to just goof it around with it.

65
00:04:29,760 --> 00:04:29,920
I know.

66
00:04:29,920 --> 00:04:32,260
I keep telling myself, the next time I make an Adafruit order,

67
00:04:32,420 --> 00:04:33,580
I'm going to order a Lora board,

68
00:04:33,820 --> 00:04:35,480
and I just haven't got around to it yet.

69
00:04:36,040 --> 00:04:36,160
Totally.

70
00:04:36,900 --> 00:04:38,460
But yeah, so I'm here.

71
00:04:38,760 --> 00:04:40,320
I'm hoping that open boards guide,

72
00:04:42,120 --> 00:04:44,740
openboardsguide.com becomes a big thing

73
00:04:44,960 --> 00:04:46,380
because we need something like this.

74
00:04:46,800 --> 00:04:47,140
I agree.

75
00:04:47,360 --> 00:04:48,440
What's your first one for us?

76
00:04:49,340 --> 00:04:51,980
My first one for this week is bump mesh.com.

77
00:04:52,940 --> 00:04:54,880
So bump mesh is a web-based tool

78
00:04:55,000 --> 00:04:56,780
to let you add arbitrary textures.

79
00:04:57,040 --> 00:04:58,380
to your 3D printable models.

80
00:04:58,920 --> 00:05:01,540
Just import an STL, pick a texture or upload your own,

81
00:05:01,980 --> 00:05:03,200
adjust the texture settings,

82
00:05:03,800 --> 00:05:05,320
and export your modified STL.

83
00:05:05,420 --> 00:05:05,900
It's free.

84
00:05:06,440 --> 00:05:07,300
It runs in your browser.

85
00:05:07,580 --> 00:05:10,160
There's no service, no login, no privacy issues.

86
00:05:10,700 --> 00:05:13,060
I think you can even like just download it locally

87
00:05:13,520 --> 00:05:14,800
and run it entirely that way if you wanted to.

88
00:05:15,280 --> 00:05:18,460
If you ever use the fuzzy texture option in your slicer

89
00:05:18,540 --> 00:05:21,980
when printing a 3D model to get a more interesting surface on your prints,

90
00:05:22,540 --> 00:05:23,660
you'll definitely want to try this out.

91
00:05:23,760 --> 00:05:24,640
It's really cool.

92
00:05:25,220 --> 00:05:26,800
So ButtMesh was created by Stefan.

93
00:05:26,820 --> 00:05:28,480
from the YouTube channel, C&C Kitchen.

94
00:05:28,800 --> 00:05:30,640
If you watch 3D printer or stuff at all,

95
00:05:30,780 --> 00:05:32,600
you'll have probably come across this channel.

96
00:05:33,200 --> 00:05:35,380
He wanted something more interesting than just the fuzzy skin.

97
00:05:35,660 --> 00:05:37,480
He recognized that in 3D computer graphics,

98
00:05:38,240 --> 00:05:40,680
there are these displacement maps or bump maps

99
00:05:40,820 --> 00:05:43,120
that simulate the bumps and wrinkles of a surface,

100
00:05:43,680 --> 00:05:45,080
and these are just black and white images,

101
00:05:45,620 --> 00:05:47,920
where the pixel brightness corresponds to the height

102
00:05:48,360 --> 00:05:49,880
above the normal level of the surface.

103
00:05:50,720 --> 00:05:52,440
And those bump maps that exist

104
00:05:52,560 --> 00:05:55,620
could actually perturb the surface of a 3D model

105
00:05:55,640 --> 00:05:58,100
if you had some clever algorithm to do it, which he figured out.

106
00:05:58,370 --> 00:06:02,140
And so he turned the simulated bumps and creases into actual ones.

107
00:06:02,640 --> 00:06:06,820
And there are tons of existing bump map textures of out there available to try out.

108
00:06:07,400 --> 00:06:13,000
But also, since the bump map is just a black and white image, or a grayscale image, I should say, you can make your own.

109
00:06:13,050 --> 00:06:15,960
You can just draw something and have that be your texture.

110
00:06:16,430 --> 00:06:17,820
It's pretty cool.

111
00:06:18,220 --> 00:06:23,200
So in bump mesh, the web app, when you're actually using it, once you pick a texture map, you can adjust the many parameters of it.

112
00:06:23,260 --> 00:06:25,600
So it wraps around your model in the way that makes sense.

113
00:06:25,620 --> 00:06:30,160
sense, like if you're making a, like if you have a brick texture for the sides of the,

114
00:06:30,280 --> 00:06:33,420
of your model, you might not want to have the top be a brick texture, for instance.

115
00:06:34,000 --> 00:06:38,700
You can also adjust the various scaling and how it joins at the edges.

116
00:06:39,220 --> 00:06:43,060
So the, like the bricks line up at the edges, if it's a sort of a right angle or something.

117
00:06:43,600 --> 00:06:47,540
There's a built-in 3D visualizer, so you can see all these changes in real time.

118
00:06:47,920 --> 00:06:52,060
And it's doing, like, using the bump maps as 3D graphics originally intended them to be.

119
00:06:52,440 --> 00:06:55,540
But there's also a mode to show you what the 3D printable.

120
00:06:55,960 --> 00:06:57,860
like deformed STL would look like as well.

121
00:06:58,620 --> 00:06:59,860
And then you just click export.

122
00:07:00,320 --> 00:07:00,960
It's a lot of fun.

123
00:07:01,360 --> 00:07:02,440
You can try out different textures.

124
00:07:02,640 --> 00:07:04,840
There's a bunch of textures like sort of built into the app,

125
00:07:04,940 --> 00:07:06,460
but you can add your own really,

126
00:07:06,480 --> 00:07:07,020
be really easy.

127
00:07:07,240 --> 00:07:09,480
And even just for simple shapes like spheres and cubes,

128
00:07:09,600 --> 00:07:10,700
you can make them look totally different

129
00:07:10,820 --> 00:07:13,380
by making them look all weird and, you know,

130
00:07:13,460 --> 00:07:15,560
made of rock or made of wood or something.

131
00:07:16,100 --> 00:07:18,680
So this is highly recommended a great way of adding detail

132
00:07:18,880 --> 00:07:22,460
to your 3D models without having to model that detail in the CAD program.

133
00:07:23,100 --> 00:07:24,000
That's really neat.

134
00:07:24,720 --> 00:07:24,860
Yeah.

135
00:07:26,040 --> 00:07:30,500
When you say the word bump maps, it takes me back to the early days of OpenGL and Direct 3D

136
00:07:31,080 --> 00:07:33,460
when 3D video cards were just becoming a thing.

137
00:07:34,080 --> 00:07:38,620
But it's so neat to see, you know, 30 years later to see the similar technology being employed

138
00:07:38,640 --> 00:07:39,800
in such a novel way.

139
00:07:40,300 --> 00:07:45,120
Just even having thought this thing up and then actually create the algorithm that does

140
00:07:45,180 --> 00:07:46,160
it as just ingenious.

141
00:07:46,840 --> 00:07:49,540
Yeah, I think it's like, I think it's pretty easy.

142
00:07:49,660 --> 00:07:54,240
I mean, the fact that we can render 3D models with bump maps and shading and all this

143
00:07:54,200 --> 00:07:59,640
stuff just in your browser is kind of bonkers. And so I think it's like a pretty well-hewn

144
00:08:00,720 --> 00:08:08,580
path for him to be able to like modify the STL. But yeah, it's a so cool. So what's your next

145
00:08:08,660 --> 00:08:13,440
one for the for this time? As listeners know, I'm a big music fan. And in addition to my record

146
00:08:13,560 --> 00:08:17,920
collection, I have a large collection of CDs I've ripped and imported into Apple Music. Plus

147
00:08:18,020 --> 00:08:23,520
everything I've ever bought there as well. But the music app on macOS does not bring me joy. And I'm

148
00:08:23,540 --> 00:08:24,780
always looking for an alternative.

149
00:08:25,860 --> 00:08:27,060
Parachord is one alternative.

150
00:08:27,480 --> 00:08:29,240
It's an electron app that runs on Windows,

151
00:08:29,400 --> 00:08:31,720
Mac, and Linux and connects multiple music services

152
00:08:31,920 --> 00:08:33,140
into one user experience.

153
00:08:33,940 --> 00:08:35,460
You can connect and sync your Apple Music

154
00:08:35,760 --> 00:08:37,180
and or Spotify accounts,

155
00:08:37,659 --> 00:08:39,320
so everything that was available for streaming

156
00:08:39,500 --> 00:08:41,200
can be streamed by Parachord as well,

157
00:08:41,860 --> 00:08:43,539
and you can point it at a local library,

158
00:08:43,979 --> 00:08:45,440
and you can also link your band camp

159
00:08:45,780 --> 00:08:46,780
and YouTube accounts.

160
00:08:47,640 --> 00:08:49,540
I don't know about Spotify, but be warned,

161
00:08:49,860 --> 00:08:51,540
sinking my large Apple music collection

162
00:08:51,660 --> 00:08:53,260
of about 34,000 songs,

163
00:08:53,380 --> 00:08:59,820
took a while. I should have timed it, but I feel like it was at least 15 minutes. The UI itself is a little

164
00:08:59,940 --> 00:09:05,680
bit sluggish. It is an electron app after all, but from clicking playlist to my collection, for example,

165
00:09:05,840 --> 00:09:10,920
can take a good three to five seconds, which feels like forever. I don't know if it's the size of my

166
00:09:11,100 --> 00:09:15,820
collection or if it's because it's an electron app, but I'm running this on an M4 Mac Mini,

167
00:09:16,040 --> 00:09:21,940
so it's not like it's an old machine. Overall, though, I do like the user experience. It's exactly what

168
00:09:21,960 --> 00:09:26,140
you would expect a music library app to be, and it makes easy to switch between albums,

169
00:09:26,460 --> 00:09:30,840
artists, and playlists. When you're looking at your library, it will have an icon for where you

170
00:09:30,920 --> 00:09:36,100
can stream it, Apple Music, BandCamp, or YouTube, for example. But BandCamp and YouTube actually

171
00:09:36,300 --> 00:09:40,240
punch you out to a browser for streaming. They're not integrated in the app like Apple Music

172
00:09:40,420 --> 00:09:45,960
and Spotify are, or like using your local library. It's got a neat Discover feature with a few

173
00:09:46,160 --> 00:09:51,260
different categories such as fresh drops, new songs by artists in your collection, or recommendations,

174
00:09:51,740 --> 00:09:54,080
which if you use Last FM or Listen Brains,

175
00:09:54,440 --> 00:09:56,300
it will learn what you like from what you listen to.

176
00:09:57,240 --> 00:09:59,800
And lastly, you will either love this or hate it,

177
00:09:59,940 --> 00:10:02,200
but it does have some AI features built in.

178
00:10:02,760 --> 00:10:05,480
It looks like Claude assisted in writing the code as well.

179
00:10:06,280 --> 00:10:08,660
The AI features include an MCP server.

180
00:10:08,870 --> 00:10:11,120
I used my Cloud API key to test it out,

181
00:10:11,260 --> 00:10:15,140
and you can interact with your collection right from Claude on the desktop.

182
00:10:15,380 --> 00:10:17,860
For example, I asked it, how many songs by prints do I have?

183
00:10:17,920 --> 00:10:19,940
And it came back and didn't hallucinate.

184
00:10:19,940 --> 00:10:20,980
It actually had it right.

185
00:10:22,220 --> 00:10:26,460
It uses AI as a chatbot to play music, manage the queue, or discover new music.

186
00:10:27,040 --> 00:10:34,560
When you do open the chat bot, you'll notice the Share My Data is defaulted to off, which is a nice touch, but you can opt into telemetry if you want.

187
00:10:35,300 --> 00:10:41,340
You can also use Olamma locally as a model or any of the other three big AI companies if you have an API key.

188
00:10:42,060 --> 00:10:49,060
It features a plug-in architecture allowing add-ons like connecting to bands in town or songkick to see what concerts will be coming to your town.

189
00:10:49,940 --> 00:10:53,800
Overall, I really like it, though it can be a bit sluggish, like I mentioned at times.

190
00:10:54,380 --> 00:10:58,100
If you're looking for an alternative to the Apple Music or Spotify default experience,

191
00:10:58,579 --> 00:10:59,860
Parachord is worth checking out.

192
00:11:00,420 --> 00:11:00,880
This is cool.

193
00:11:02,160 --> 00:11:06,240
I've been so frustrated of the years because I've been using Apple music since it was called iTunes

194
00:11:06,800 --> 00:11:08,680
back in the early 2000s or whatever.

195
00:11:08,760 --> 00:11:12,820
And it used to be the best way of organizing your music, at least to me,

196
00:11:13,140 --> 00:11:16,700
because back when it was just like you had your directory full of MP3s or whatever.

197
00:11:17,200 --> 00:11:17,340
Right.

198
00:11:18,540 --> 00:11:21,860
It seemed to be like a very straightforward way of categories and stuff and let you,

199
00:11:22,490 --> 00:11:24,580
let you reorganize things in a pretty seamless way.

200
00:11:24,960 --> 00:11:30,740
But man, it's just gotten weirder because they've added a bunch of services on top of it that I'm just not interested in.

201
00:11:31,280 --> 00:11:32,820
And so it's nice to have an alternative.

202
00:11:33,060 --> 00:11:37,740
I think the sluggishness might just be they have not optimized it yet for large libraries.

203
00:11:38,540 --> 00:11:42,920
And so maybe they'll figure out a way to do that because that just sounds like a large data problem.

204
00:11:43,540 --> 00:11:44,600
Yeah, it very well could be.

205
00:11:44,700 --> 00:11:47,820
And I do have a large library, so it wouldn't surprise me one bit.

206
00:11:48,020 --> 00:11:48,260
Totally.

207
00:11:49,860 --> 00:11:50,980
What's your next one for us?

208
00:11:51,500 --> 00:11:51,720
All right.

209
00:11:51,900 --> 00:11:53,460
Speaking of cross-platform apps,

210
00:11:53,540 --> 00:11:55,820
I got a little bit of shameless self-promotion.

211
00:11:56,420 --> 00:11:59,760
I wrote a cross-platform app for Mac, Windows, and Linux,

212
00:11:59,960 --> 00:12:00,880
called Serial Plotster.

213
00:12:01,500 --> 00:12:04,740
If you can hear the scare quotes around Plotster,

214
00:12:04,860 --> 00:12:05,620
I'll describe that later.

215
00:12:06,380 --> 00:12:09,460
It's a data graphing app for use with Arduino, MicroPython,

216
00:12:09,720 --> 00:12:11,340
CircuitPython, similar boards.

217
00:12:12,120 --> 00:12:15,100
If your project spits out data, this app can graph it.

218
00:12:15,620 --> 00:12:17,640
And it's a very tiny download at 10 megabytes.

219
00:12:17,780 --> 00:12:18,840
and it launches really fast.

220
00:12:19,820 --> 00:12:21,360
These are aspects that are very important to me.

221
00:12:22,360 --> 00:12:25,620
So back in 2015, one of the best additions to the Arduino IDE

222
00:12:26,120 --> 00:12:27,860
that was added was the serial plotter.

223
00:12:28,420 --> 00:12:30,600
Just print a value in your Arduino sketch,

224
00:12:30,700 --> 00:12:31,980
and you can see a cool plot of it.

225
00:12:32,400 --> 00:12:33,620
Add more values with commas,

226
00:12:33,740 --> 00:12:37,320
and now you've got a multi-series real-time plot of those values against each other.

227
00:12:38,060 --> 00:12:39,400
The obvious use is data logging,

228
00:12:39,960 --> 00:12:41,620
but I find it really helpful for debugging.

229
00:12:42,320 --> 00:12:44,720
Being able to see how a value changes graphically

230
00:12:44,880 --> 00:12:46,980
just hits different than watching scrolling numbers.

231
00:12:47,600 --> 00:12:56,520
it's also much easier to catch when you've got a glitch and a value that should be set at a certain value or smoothly moving, suddenly jumps to like a max or a man.

232
00:12:57,000 --> 00:13:01,820
But as I started working more in CircuitPython and MicroPython, I lost the plotter.

233
00:13:01,860 --> 00:13:08,960
I tried using the Arduino plotter, but it's very helpful in grabbing the serial port, making connecting back to the REPL really frustrating.

234
00:13:09,840 --> 00:13:16,860
On the Mu editor, it's got a nice plotter, but it's also pretty port grabby because it expects you that you're just living in the Mu editor editing your,

235
00:13:16,980 --> 00:13:20,160
CircuitPython and the repel and graphing, all that kind of stuff.

236
00:13:20,800 --> 00:13:25,940
Thonny editor got a plotter in 2019 inspired by Mu, but I've never liked Thonny for much.

237
00:13:26,400 --> 00:13:27,540
I've never really inspected why.

238
00:13:27,640 --> 00:13:31,240
I don't like it, but I'm not a big, big Thonny fan.

239
00:13:31,600 --> 00:13:33,420
So clearly plotters are a useful thing.

240
00:13:33,900 --> 00:13:37,160
All these I dees have them, but I want to use my own editor.

241
00:13:37,520 --> 00:13:40,760
I don't really want a huge IDE that may or may not have a plotter extension.

242
00:13:41,500 --> 00:13:43,980
So every once in a while, I'd go looking for plotter apps.

243
00:13:44,540 --> 00:13:46,440
There are a few, but they're the weird,

244
00:13:47,280 --> 00:13:49,220
or abandoned now or they're web-based,

245
00:13:49,940 --> 00:13:51,300
which means they have to use Chromium,

246
00:13:51,760 --> 00:13:52,720
and I'm not a Chrome user.

247
00:13:52,900 --> 00:13:54,280
I use Firefox and Safari.

248
00:13:55,180 --> 00:13:57,160
But one really great web-based one

249
00:13:57,560 --> 00:13:59,240
is called Web Serial Plotter

250
00:13:59,460 --> 00:14:01,300
by Atomic 14 on GitHub.

251
00:14:02,140 --> 00:14:03,420
If you run a chromium-based browser

252
00:14:03,520 --> 00:14:04,380
that supports WebSereal

253
00:14:04,680 --> 00:14:06,880
and if you like web apps,

254
00:14:07,240 --> 00:14:07,980
it's a great solution,

255
00:14:08,160 --> 00:14:08,900
no need to look further.

256
00:14:09,420 --> 00:14:11,440
But I wanted an actual application

257
00:14:11,700 --> 00:14:13,440
on my desktops for both Mac and Linux.

258
00:14:14,100 --> 00:14:15,220
I've built many of these in the past,

259
00:14:15,620 --> 00:14:21,540
My normal tool of choice is Electron because, as you know, it lets you write JavaScript to make a desktop app.

260
00:14:21,660 --> 00:14:22,880
It's really easy to get going.

261
00:14:23,880 --> 00:14:30,200
This is great, but it means the app ends up being over 200 megabytes in size just for like a hello world

262
00:14:31,180 --> 00:14:36,560
because you're shipping a whole chromium browser that's just wearing your applications close.

263
00:14:37,260 --> 00:14:40,040
It's also slowed up at launch, as you might expect, and it takes up a lot of RAM.

264
00:14:40,740 --> 00:14:42,500
So I always feel a little bit gross writing electron.

265
00:14:43,440 --> 00:14:44,680
It just feels inefficient.

266
00:14:44,940 --> 00:14:49,220
If I write three or four little handy tools for myself using electron,

267
00:14:49,840 --> 00:14:52,480
suddenly I'm using up all the RAM and CPU of my computer.

268
00:14:53,700 --> 00:14:58,300
But there's an alternative I've been playing with lately called Tori, Tauri, T-A-U-R-I,

269
00:14:59,160 --> 00:15:03,380
which is the same ideas as Electron, but it uses Rust for the OS-specific stuff,

270
00:15:03,800 --> 00:15:07,760
and the OS's built-in web renderer for your apps GUI.

271
00:15:08,100 --> 00:15:09,780
So if you're experienced with making web apps,

272
00:15:10,240 --> 00:15:13,240
90% of your skills and processes stay the same.

273
00:15:13,920 --> 00:15:15,980
But if you can figure out that last 10% that's Rust,

274
00:15:16,440 --> 00:15:19,480
you're rewarded with an app that's literally 20 times smaller

275
00:15:20,260 --> 00:15:22,420
and has a tiny RAM and CPU usage footprint.

276
00:15:23,480 --> 00:15:24,220
But I don't know Rust.

277
00:15:25,780 --> 00:15:28,180
I know just enough to know I don't know anything about Rust.

278
00:15:28,720 --> 00:15:33,060
I banged on adapting the concepts of the Web Serial Plotter Project to Towery

279
00:15:33,110 --> 00:15:34,800
and got it sort of working,

280
00:15:35,360 --> 00:15:36,880
but was ruining up against my lack of knowledge

281
00:15:37,080 --> 00:15:38,880
and my lack of modern web development skills.

282
00:15:39,360 --> 00:15:43,720
So I brought in cloud code like everyone does now and asked it to figure out what I was doing wrong.

283
00:15:43,960 --> 00:15:44,760
And it was quite helpful.

284
00:15:45,220 --> 00:15:52,600
It rewrote huge swaths of my Rust code and cleaned up a lot of how I was using React objects in the GUI.

285
00:15:53,120 --> 00:15:56,260
Turns out, I don't know React nearly as well as I thought I did.

286
00:15:56,820 --> 00:16:02,320
And then, most importantly, it helped me write a barrage of tests for the data parser in Rust.

287
00:16:02,960 --> 00:16:09,320
Because parsing all this data is because it can support many different formats of data, the parser is a little bit complicated.

288
00:16:09,360 --> 00:16:13,160
and so having a set of tests for that is great.

289
00:16:13,720 --> 00:16:15,700
Now that I can have tests written for me,

290
00:16:16,100 --> 00:16:18,280
I've been much more of a fan of projects having test suite.

291
00:16:20,160 --> 00:16:21,180
Everything should have tests now

292
00:16:21,340 --> 00:16:23,960
because you can just ask an AI to write the test for us.

293
00:16:24,520 --> 00:16:25,780
So anyway, there's this app now.

294
00:16:26,240 --> 00:16:28,080
Thanks Atomic 14 for the web serial plotter.

295
00:16:28,200 --> 00:16:31,500
It was the basis for what I made with Serial Plotster.

296
00:16:32,160 --> 00:16:35,480
It looks like that he also used Cloud Code to help write it

297
00:16:35,620 --> 00:16:37,320
and released it all under the GPL3.

298
00:16:37,560 --> 00:16:44,840
So Serial Plotster is also GPL3, and you can download pre-built and signed binaries for MacOS, Linux, and Windows.

299
00:16:45,900 --> 00:16:46,680
And if you like it, let me know.

300
00:16:46,900 --> 00:16:48,040
If you use it, let me know.

301
00:16:49,100 --> 00:16:50,100
This is kind of a niche tool.

302
00:16:50,560 --> 00:16:54,840
If you have any suggestions for improvements or fixes, also please let me know.

303
00:16:54,960 --> 00:16:55,500
Well done.

304
00:16:55,500 --> 00:17:01,560
And if you want to see it in action, check out the April 30th, JPs workshop on the Adafruit YouTube channel.

305
00:17:01,680 --> 00:17:05,839
He demoed Serial Plotster on his show as well, so you can actually see it.

306
00:17:06,120 --> 00:17:12,839
The thing that you don't mention is you kind of complained about how some of the other apps you would grab the serial port.

307
00:17:13,060 --> 00:17:16,199
How is Serial Plotster a little different in that regard?

308
00:17:17,100 --> 00:17:24,040
So the sort of normal way that I'm used to dealing with things that access serial ports is you've got a connect button and a disconnect button.

309
00:17:24,560 --> 00:17:31,580
And you have to explicitly press the connect button and you use the serial port and then you press the disconnect button when you're done to use a serial port.

310
00:17:32,400 --> 00:17:35,760
But in Arduino and stuff, it's more like you just set which.

311
00:17:35,860 --> 00:17:41,040
port you want to use and it tries to use the port all the time. And it's really hard to get it

312
00:17:41,350 --> 00:17:46,420
for you to say no. There's no explicit disconnect button because the assumption is like, oh,

313
00:17:46,500 --> 00:17:50,800
once you've hooked up a board, you're going to be interacting with that board entirely with

314
00:17:51,480 --> 00:17:57,380
Arduino or with Moo or something. And so it doesn't really have the concept of multi-application

315
00:17:57,620 --> 00:18:03,640
use of the serial port. So that's all. It's a more friendly way of doing stuff with serial port-based

316
00:18:03,800 --> 00:18:08,360
projects, but it also makes it hard for things when I do things like me, where I like have

317
00:18:08,740 --> 00:18:14,140
my terminal program, looks at the REPL, and then my serial plotter looks at the, looks at the

318
00:18:15,470 --> 00:18:15,580
serial port.

319
00:18:15,900 --> 00:18:16,280
So I am.

320
00:18:16,640 --> 00:18:19,260
So Paul, what's your, your third one for this week?

321
00:18:19,960 --> 00:18:23,740
When my kids were younger, I was always introducing them to my hobbies and interests with

322
00:18:24,100 --> 00:18:24,880
limited success.

323
00:18:25,880 --> 00:18:29,660
I didn't become a maker until they were almost fully grown, but if I had younger kids,

324
00:18:30,160 --> 00:18:32,820
I definitely introduced them to picoCAD 2.

325
00:18:33,780 --> 00:18:39,700
PicoCAD 2 is an app, I won't call it a game that's sold on Steam and Itchio for just under $15.

326
00:18:40,820 --> 00:18:44,560
PicoCad 2 is available on Mac or Windows and it just came out over a month ago.

327
00:18:45,440 --> 00:18:51,040
It describes itself as focused on the bare essentials of 3D modeling, blending simplicity with creativity,

328
00:18:51,840 --> 00:18:55,020
allowing you to make low-poly 3D models with just a few clicks.

329
00:18:55,920 --> 00:18:59,420
I've included a link to a two-minute feature video on YouTube that shows it in action.

330
00:19:00,120 --> 00:19:02,860
Picoad 2 features a CAD tool set you'd expect where you can.

331
00:19:02,880 --> 00:19:06,780
can draw lines to create shapes and then fill them in with textures and colors.

332
00:19:07,580 --> 00:19:11,940
The homepage and video highlights a big reg truck and trailer with a spinning GameCube

333
00:19:12,560 --> 00:19:13,440
animation as well.

334
00:19:14,580 --> 00:19:18,620
picoCAD 2 has three main modes, modeling, texturing, and animating.

335
00:19:19,220 --> 00:19:23,260
You start with modeling, add the textures, and then you can animate the final model,

336
00:19:23,700 --> 00:19:27,960
and you can even make it a spinning GIF in PicoCad 2 to show off your new model and share it.

337
00:19:28,740 --> 00:19:32,840
I've also included links to its manual and a five-minute YouTube video that gets you up and

338
00:19:32,860 --> 00:19:33,660
running pretty quickly.

339
00:19:34,580 --> 00:19:40,600
One of the neatest features, I think, is the ability to export your models in GLTG or OBJ

340
00:19:40,780 --> 00:19:45,260
slash MTL and ping sprite sheets so it can be imported into popular game engines.

341
00:19:45,900 --> 00:19:48,620
So many kids out there are always wanting to build their own games.

342
00:19:48,660 --> 00:19:53,260
Well, here's a nice little first step of building blocks to getting game assets.

343
00:19:54,320 --> 00:19:58,460
For only $15, I wish my kids were still young enough or interested in something like

344
00:19:58,660 --> 00:19:59,280
picoCAD 2.

345
00:19:59,540 --> 00:19:59,980
Check it out.

346
00:20:00,580 --> 00:20:01,360
Yeah, this is really neat.

347
00:20:02,080 --> 00:20:05,820
I've seen a lot of kids who love to like make, build stuff in Minecraft,

348
00:20:07,020 --> 00:20:09,000
but Minecraft is sort of its own little thing.

349
00:20:09,100 --> 00:20:12,600
And also its way of doing stuff is voxels based where you're not,

350
00:20:13,860 --> 00:20:13,960
you're not doing normal modeling.

351
00:20:14,400 --> 00:20:15,580
You're doing these like, you know,

352
00:20:15,640 --> 00:20:18,240
let's stack a bunch of Lego bricks on top of each other essentially,

353
00:20:18,740 --> 00:20:19,180
which is cool.

354
00:20:20,520 --> 00:20:22,000
But it's not how most video games are done.

355
00:20:22,100 --> 00:20:23,380
It's not how like Cat has done.

356
00:20:23,760 --> 00:20:24,080
This is,

357
00:20:24,500 --> 00:20:27,340
this looks almost more like my first blender.

358
00:20:27,920 --> 00:20:30,600
Because it's got a lot of the same workflow as blender where you're,

359
00:20:30,820 --> 00:20:31,140
you're,

360
00:20:31,180 --> 00:20:34,800
creating these shapes and you're putting the textures on them and you're animating them.

361
00:20:35,280 --> 00:20:38,060
I'd almost call it more blender than CAD because, like to me,

362
00:20:38,180 --> 00:20:45,700
CAD implies a sort of parametricness and dependency tree aspect, which I've not yet seen in

363
00:20:45,780 --> 00:20:48,740
PicoCAD, but this is really, really fascinating.

364
00:20:48,920 --> 00:20:54,980
Yeah, the fact that it can be used, the output can be used in actual game engines.

365
00:20:56,080 --> 00:20:56,920
It's pretty cool.

366
00:20:57,420 --> 00:20:57,500
Yeah.

367
00:20:57,900 --> 00:20:59,620
It's just really neat building blocks.

368
00:20:59,640 --> 00:21:02,060
And like you said, it reminds you a blender.

369
00:21:02,390 --> 00:21:04,240
You could start with this, get good with it,

370
00:21:04,620 --> 00:21:06,400
and then graduate to something like a blender,

371
00:21:06,540 --> 00:21:09,580
or maybe even a Fusion 360 if you wanted to get into the CAD part more.

372
00:21:09,860 --> 00:21:10,080
Totally.

373
00:21:10,150 --> 00:21:11,300
Yeah, this is really great.

374
00:21:11,840 --> 00:21:13,120
All right, what's your last one for us?

375
00:21:13,640 --> 00:21:17,240
Okay, so there's some new research in 3D printer model slicing

376
00:21:18,740 --> 00:21:20,900
that I just learned about called wave overhangs.

377
00:21:21,740 --> 00:21:24,600
It lets you print steep overhangs without supports.

378
00:21:25,360 --> 00:21:28,400
The 3D printer tool pass that it creates are generated recursively

379
00:21:28,840 --> 00:21:30,640
using wave propagation theory

380
00:21:31,240 --> 00:21:33,500
instead of the standard layer stacking technique used today.

381
00:21:34,080 --> 00:21:36,300
This is a big change to how we normally think of 3D printing.

382
00:21:37,300 --> 00:21:38,440
And if it ends up actually being useful,

383
00:21:38,780 --> 00:21:41,060
could cause 30 printers to be designed differently.

384
00:21:41,980 --> 00:21:42,740
You can try right now.

385
00:21:43,020 --> 00:21:45,300
There's a custom fork of orca slicer you can download

386
00:21:45,460 --> 00:21:47,620
that has the wave overhangs stuff built into it.

387
00:21:48,420 --> 00:21:50,000
So as a little bit of refresher,

388
00:21:50,440 --> 00:21:53,480
process of turning a 3D model into instructions for a 3D printer

389
00:21:53,540 --> 00:21:55,940
is called slicing because traditionally the process

390
00:21:56,120 --> 00:21:58,240
divides the model into a series of horizontal layers,

391
00:21:59,060 --> 00:22:01,140
and the 3D printers prints out those layers,

392
00:22:01,320 --> 00:22:02,560
stacking them up on top of each other.

393
00:22:03,800 --> 00:22:05,260
Now, Steve Overhangs present a problem

394
00:22:05,480 --> 00:22:07,380
because there's a part of a layer

395
00:22:07,500 --> 00:22:08,700
that's just floating in space

396
00:22:08,840 --> 00:22:09,800
without anything holding it up.

397
00:22:10,440 --> 00:22:11,240
If you try to print this,

398
00:22:11,320 --> 00:22:12,260
you'll get a messed up print

399
00:22:12,460 --> 00:22:14,060
because the plastic will just fall to the ground.

400
00:22:14,740 --> 00:22:16,240
So Slicer software will typically

401
00:22:16,760 --> 00:22:19,260
give you the option to print these disposable supports

402
00:22:19,600 --> 00:22:20,760
to hold up these parts.

403
00:22:21,460 --> 00:22:22,920
And getting the supports off can be tricky

404
00:22:23,040 --> 00:22:24,120
because it's just plastic also,

405
00:22:24,240 --> 00:22:24,880
so it'll stick together.

406
00:22:25,660 --> 00:22:26,860
And generally the surface finish

407
00:22:26,880 --> 00:22:28,660
of those overhang areas

408
00:22:28,940 --> 00:22:30,860
are worse than the

409
00:22:31,020 --> 00:22:31,800
other parts of the print.

410
00:22:33,240 --> 00:22:34,760
So this 3D object

411
00:22:34,920 --> 00:22:36,800
to 2D layer stack process has made that almost

412
00:22:36,920 --> 00:22:38,980
all printers have been designed to be fast

413
00:22:39,020 --> 00:22:40,360
in the X, Y part of the printer,

414
00:22:40,840 --> 00:22:42,800
and slow in the Z dimension, as that

415
00:22:42,960 --> 00:22:44,660
is the part that just moves to the next layer.

416
00:22:45,980 --> 00:22:46,940
But the wave overhangs

417
00:22:47,260 --> 00:22:48,760
process makes slicing a truly

418
00:22:49,000 --> 00:22:50,760
3D operation. The exterior

419
00:22:50,880 --> 00:22:52,600
of the model becomes sort of a wavefront

420
00:22:52,720 --> 00:22:54,300
that ripples into the model

421
00:22:54,680 --> 00:22:56,840
until it meets another wavefront to fill a

422
00:22:57,020 --> 00:23:00,280
recursive wavefront spawn from the cusp or two waves meet.

423
00:23:00,600 --> 00:23:05,320
And these waves kind of become the tool paths of how the plastic is laid down.

424
00:23:06,120 --> 00:23:10,940
It's extremely clever, but this means your 3D printer Z axis is going to be working as hard as the X, Y axis,

425
00:23:11,400 --> 00:23:11,620
potentially.

426
00:23:12,560 --> 00:23:16,140
The task of laying down plastic is no longer just putting down stacks of layers,

427
00:23:16,340 --> 00:23:19,720
but these complicated blooms of moves in three dimensions.

428
00:23:20,780 --> 00:23:25,400
The plastic sort of blossoms out to create the overhang, so there's never any fully unsupported

429
00:23:26,280 --> 00:23:30,640
plastic. I've not tried this out yet with an actual 3D printer as I just discovered this,

430
00:23:30,720 --> 00:23:35,280
but I have downloaded the Wave Overhangs fork of Orca Slicer and I sliced a few simple

431
00:23:35,460 --> 00:23:40,220
models with it, and it's really cool to look at the resulting tool paths. It's just, in fact,

432
00:23:40,300 --> 00:23:46,260
some of the, some of the G-code renders can't quite display it because it's expecting layer-based

433
00:23:46,640 --> 00:23:52,020
kind of ideas. So I had to, like, I had to like export it to G-code and load it into the

434
00:23:52,050 --> 00:23:55,380
the Prusa G-G-code slicer because it actually could render it soMuhat. I, I had to, I had to,

435
00:23:55,400 --> 00:24:01,120
I think it might be a really interesting addition in sliders going forward as we see a bunch of,

436
00:24:01,600 --> 00:24:04,760
and we'll see people start to redesign how things are made.

437
00:24:04,820 --> 00:24:09,520
Because right now there's this huge preference to not do overhangs on 3D printed objects

438
00:24:09,800 --> 00:24:13,960
because you'll have to add supports and supports takes time and make sure the part look kind of crappy.

439
00:24:14,720 --> 00:24:18,340
But one of the challenges I think of this technique is that it could cause warping because

440
00:24:18,860 --> 00:24:25,360
because of the way that these overhangs work, it creates these lines of filament that sort of wrap around

441
00:24:25,380 --> 00:24:28,460
help support from above the overhang.

442
00:24:29,580 --> 00:24:33,300
And when plastic cools, it cools along the extrusion length.

443
00:24:33,720 --> 00:24:39,360
And so with these wrapping around, it'll sort of like pull up the overhung part and kind of

444
00:24:39,950 --> 00:24:44,060
make them, instead of being like, if it's a right angle out, it might pull them up a little bit.

445
00:24:44,740 --> 00:24:48,920
I think, I think there's a way to fix this, but it'll be, it'll be interesting to see how they fix it.

446
00:24:49,100 --> 00:24:53,820
If you go to the waveoverhangs.com in there's a gallery section, you can see some of the

447
00:24:53,800 --> 00:24:55,900
warping happen, but I'm sure they'll fix it.

448
00:24:57,340 --> 00:25:00,880
It feels like just yesterday we got tree supports, which were a major evolution in

449
00:25:01,060 --> 00:25:04,620
supports, and now we actually have it evolving even more where we might not even have to

450
00:25:04,840 --> 00:25:07,320
have supports, which is just great.

451
00:25:08,160 --> 00:25:08,280
Yeah.

452
00:25:08,360 --> 00:25:09,960
But this is hot off the press.

453
00:25:10,000 --> 00:25:13,800
I mean, this article just came out or the projects.

454
00:25:14,560 --> 00:25:14,920
Yeah, yeah, yeah.

455
00:25:15,460 --> 00:25:19,440
It's from a thesis research project that's like maybe from a month ago.

456
00:25:21,440 --> 00:25:22,720
So it's definitely we're checking out.

457
00:25:22,800 --> 00:25:24,400
I want to get my hands on orcas slicer as well.

458
00:25:24,400 --> 00:25:27,820
I didn't realize that there was a new version of orcus slicer that supported that.

459
00:25:28,500 --> 00:25:28,960
Oh, no, yeah.

460
00:25:29,060 --> 00:25:31,800
This is a custom fork of an orchestra.

461
00:25:31,980 --> 00:25:32,800
It's not the real one.

462
00:25:33,180 --> 00:25:33,440
Got it.

463
00:25:33,460 --> 00:25:37,820
So, yeah, you're going to have to like, yeah, run two different versions if you already use orcisler.

464
00:25:38,400 --> 00:25:42,320
There's a nice Hackaday article about it as well, but there are also the Wave Overhanging site.

465
00:25:42,700 --> 00:25:43,960
It goes into a lot of good detail about it.

466
00:25:44,000 --> 00:25:46,820
And, of course, you could read the research paper if you wanted to.

467
00:25:49,800 --> 00:25:52,680
That's our show for detailed show notes and transcripts,

468
00:25:52,780 --> 00:25:54,120
visit the bootloader.net.

469
00:25:54,540 --> 00:25:56,460
Until next time, stay positive.

