UTSKRIFT 🔗
1
00:00:04,600 --> 00:00:06,440
Welcome to The Bootloader. I'm Paul Cutler.
2
00:00:06,840 --> 00:00:11,640
And I'm Tod Kurt. The show works like this. In each episode, we each bring three things we're excited to share,
3
00:00:12,040 --> 00:00:17,480
chatting about each one for about five minutes. For detailed show notes and transcripts, visit thebootloader.net.
4
00:00:17,800 --> 00:00:23,560
Paul was your first one for us. If there was a Venn diagram for two of my passions, open source and music,
5
00:00:23,780 --> 00:00:29,080
it would probably fit in one perfect circle. When you look at most of my Python and CircuitPython projects,
6
00:00:29,220 --> 00:00:30,900
they're mostly music-related in some way.
7
00:00:31,540 --> 00:00:34,420
So when I read the article on Hackster.io by Gareth Halfacree
8
00:00:34,640 --> 00:00:37,820
about an open-source record player slash turntable
9
00:00:38,240 --> 00:00:42,080
called the Statomatic STAMO-1, My Ears Perked Up.
10
00:00:42,980 --> 00:00:46,400
Patrick Nelson started this project about four years ago and then got stuck.
11
00:00:46,900 --> 00:00:49,260
But now he's back and he's documenting all of his progress
12
00:00:49,310 --> 00:00:50,980
to build an open-source turntable.
13
00:00:51,520 --> 00:00:53,820
His project goals when he started four years ago included
14
00:00:54,480 --> 00:00:58,620
only 7-inch records at 33 to 3rd RPM or 45 RPM,
15
00:00:58,680 --> 00:01:00,020
so the little 45s.
16
00:01:00,880 --> 00:01:03,040
He wanted a full-sized LP expansion,
17
00:01:03,760 --> 00:01:05,440
and he built in expansion ports
18
00:01:05,960 --> 00:01:08,900
for things like record changers, alarm clocks, and preamps.
19
00:01:09,280 --> 00:01:11,340
I shouldn't say that he built them in, but he planned for them.
20
00:01:11,880 --> 00:01:14,220
He wanted to also have automatic capabilities,
21
00:01:14,400 --> 00:01:17,400
so the tone arm would lift and stop and lift on its own again.
22
00:01:17,980 --> 00:01:20,460
And then he wanted it easily sourced or made parts.
23
00:01:20,640 --> 00:01:22,400
So all the design files are open source,
24
00:01:22,560 --> 00:01:23,980
including the PCB files.
25
00:01:24,640 --> 00:01:26,640
He started the project with a piece of cardboard shape
26
00:01:26,720 --> 00:01:28,600
like a record player with cutouts for the tone arm,
27
00:01:28,640 --> 00:01:32,880
the platter and buttons. He then moved on to designing the vertical movement for the tone arm.
28
00:01:33,360 --> 00:01:37,660
This lifts and lowers the tone arm and its record needle onto the record to play or stop playing.
29
00:01:38,360 --> 00:01:42,920
After that he needed to design the horizontal movement, which is a lot more complicated than the
30
00:01:43,120 --> 00:01:47,740
vertical movement and he shares how he placed the tone arm at the correct edge of the record for playing.
31
00:01:48,280 --> 00:01:51,980
He also shared the custom PCB he designed, which was his first ever PCB,
32
Load full transcript
00:01:52,660 --> 00:01:57,520
which he future-proofed by adding support for other record sizes too. It's almost all surface-mounted
33
00:01:57,520 --> 00:02:02,440
components and in a later video Patrick introduces a second version of the PCB. The turntable
34
00:02:02,600 --> 00:02:07,380
used an Arduino as the brain of the project. From there it was time to work on the turntable
35
00:02:08,140 --> 00:02:13,580
itself. He built the tone arm mechanism into the cardboard box prototype and it worked. He even
36
00:02:13,740 --> 00:02:18,480
added a seven-segment display so you could see how fast the turntable was turning. Patrick
37
00:02:18,600 --> 00:02:22,520
walks through how he assembled the motor and pulleys with the turntable. With that done,
38
00:02:22,600 --> 00:02:27,480
the turntable was working except for getting it to the right speed was giving him some trouble. This
39
00:02:27,500 --> 00:02:33,040
took to where he left off four years ago. The record player could play seven-inch records at 33 and a third
40
00:02:33,340 --> 00:02:39,160
or 45 RPM. That was the first video, which was about 20 minutes long. In the second video,
41
00:02:39,300 --> 00:02:43,120
which is about the same length, he talks about the revisions to the record player, like being
42
00:02:43,160 --> 00:02:48,360
able to play all record sizes at varying speeds. Patrick picks up from where he left off a few
43
00:02:48,460 --> 00:02:53,360
years ago and shares a few more challenges as well that he needed to work on. This included the
44
00:02:53,480 --> 00:02:57,460
pickup sensor that lifts the tone arm. He was able to make it work by putting the tone arm to play,
45
00:02:58,100 --> 00:03:02,320
but had some challenges to overcome on when the tone arm picked up after finishing playing the record.
46
00:03:03,000 --> 00:03:07,280
After watching the first three videos, you're left with the first two prototypes that Patrick got working.
47
00:03:07,940 --> 00:03:11,580
He then states that in the last couple of years since he had to put the project on hold,
48
00:03:12,140 --> 00:03:16,740
that he has more and different ideas on how to build the turntable and wants to start over from scratch.
49
00:03:17,200 --> 00:03:22,240
The next couple of videos in the series on building the tone arm and lift mechanism for it kick off the redesign.
50
00:03:23,700 --> 00:03:27,300
One of the things I didn't really touch on is Patrick's goal to keep the turntable modular.
51
00:03:27,660 --> 00:03:32,680
He envisions that the turntable itself is pretty basic, but then there are five adapter ports.
52
00:03:33,240 --> 00:03:41,880
He throws out some ideas for external modules such as a record flipper, a changer, a preamp, a remote control, a control panel of some kind, and more.
53
00:03:42,500 --> 00:03:44,560
This is a project I'm going to keep my eye on.
54
00:03:45,060 --> 00:03:53,580
Patrick is still very young in his journey to build an open source turntable, but he's got
all his progress listed on his GitHub repository, and he's about a third done.
55
00:03:54,220 --> 00:03:59,360
Depending on how much the bill of material ends up being for the project, this is one that I'm itching to build myself.
56
00:04:00,060 --> 00:04:00,920
This is really neat.
57
00:04:01,000 --> 00:04:12,140
Like, I think one of the first mechanisms that entranced me as a kid was this little suitcase record player that had the automatic changing capability where it would lift up the tone arm and move it out of the way.
58
00:04:12,240 --> 00:04:16,620
And then the record would like come over, come out and one would drop down.
59
00:04:17,090 --> 00:04:20,680
And it's like, like, we don't normally, we don't often see open source mechanisms.
60
00:04:21,040 --> 00:04:24,180
Usually the stuff we talk about is software, the little, their little touch.
61
00:04:24,200 --> 00:04:28,980
any PCBs, but this is an actual mechanism as well. That's pretty interesting and hard to do.
62
00:04:29,600 --> 00:04:33,640
Right. And I mentioned at the beginning of the article that I came across this via
63
00:04:34,080 --> 00:04:39,300
Gareth Halfacree, who wrote it up on Hackster.io I'll link to his Mastodon profile. And if you
64
00:04:39,460 --> 00:04:43,900
enjoy this podcast, give Gareth a follow on Mastodon. I think you'll enjoy the articles that he posts
65
00:04:50,720 --> 00:04:53,280
because I keep meaning to go to Hackster regularly
66
00:04:53,500 --> 00:04:55,120
because they're always posting really cool news,
67
00:04:55,240 --> 00:04:55,980
but I sometimes forget.
68
00:04:56,220 --> 00:04:57,860
So it's good to see his follow-ups.
69
00:04:58,800 --> 00:05:00,040
What's your first one for us, Tod?
70
00:05:00,400 --> 00:05:02,580
So I have a new favorite Wi-Fi dev board.
71
00:05:03,020 --> 00:05:09,040
It's the ESP-32 S3-Touch LCD2 by WaveShare,
72
00:05:09,500 --> 00:05:12,140
and it runs this fun new OS called Micropython OS.
73
00:05:13,100 --> 00:05:17,380
So this board, the ESP32-S3-Touch-LCD-2,
74
00:05:18,140 --> 00:05:20,440
what a mouthful, is about the size of a candy bar,
75
00:05:20,620 --> 00:05:27,820
It has a 2-inch 320 by 240 cap-touch screen bonded on top of what's a pretty much standard ESP 32 S3 Devboard,
76
00:05:28,540 --> 00:05:29,480
but it's maxed out.
77
00:05:29,540 --> 00:05:35,720
It's got 8 megs of PS-RAM, 16 megs of flash, it's got an SD card reader and a 5-mixel camera.
78
00:05:36,540 --> 00:05:40,080
The 5-meg camera is on a socket so you can take it out if you don't want it.
79
00:05:40,720 --> 00:05:46,560
It's also got onboard accelerometer and lithium battery management, so it could be like a little standalone thing, all for $22.
80
00:05:47,700 --> 00:05:49,280
It comes with header pins already soldered.
81
00:05:49,660 --> 00:05:52,360
As you imagine, it's a pretty dense board, so it's a good thing you don't have to solder that.
82
00:05:52,820 --> 00:06:00,180
So you can plug it into a breadboard, but if you do, you'll have to take the camera module off because the camera sticks out farther than the header pins.
83
00:06:00,820 --> 00:06:06,960
Or you could have it like do that some people do with ESP32s where they have the ESP32 devboards straddle to breadboards.
84
00:06:07,780 --> 00:06:08,520
So it's blank in the middle.
85
00:06:09,160 --> 00:06:15,180
But I think most uses for this will be kind of using it just standalone by itself with a module placed into some sort of an enclosure.
86
00:06:15,360 --> 00:06:19,180
There's so much of 3D printed enclosures on Maker World and printables already.
87
00:06:19,560 --> 00:06:21,200
without too much else hooked up to it.
88
00:06:21,880 --> 00:06:25,560
Unlike one of my other previous favorite ESP 32 boards,
89
00:06:25,960 --> 00:06:28,700
this one's display is only hooked up via SPI,
90
00:06:29,240 --> 00:06:30,180
not parallel bus,
91
00:06:30,480 --> 00:06:32,680
so you can't get those blistering fast animations
92
00:06:32,960 --> 00:06:35,340
or quick updates in circuit Python, which I like.
93
00:06:35,800 --> 00:06:37,460
But it still works, it's pretty serviceable.
94
00:06:38,120 --> 00:06:39,720
The CapTouch driver is really nice.
95
00:06:39,800 --> 00:06:40,820
It's actually pretty high-res,
96
00:06:41,000 --> 00:06:42,040
and it's multi-touch, I believe.
97
00:06:42,979 --> 00:06:46,460
The display and SD card do share the same SPI bus,
98
00:06:47,080 --> 00:06:48,380
so it's not as fast as it could be,
99
00:06:48,420 --> 00:06:50,900
you'll be streaming video to the SD card probably.
100
00:06:51,540 --> 00:06:54,720
But it's good enough for like time lapse and still photos, things like that.
101
00:06:55,480 --> 00:06:58,700
And there's already a basic Circuit Python firmware for it.
102
00:06:58,700 --> 00:07:00,220
You can go and download right now and install onto it.
103
00:07:00,680 --> 00:07:06,420
It sets up the display and works out of the box because it's pretty much just a standard ESP 32 S3 devboard,
104
00:07:06,600 --> 00:07:10,940
which means it shows up as a USB device and a USB hard drive to your computer.
105
00:07:12,060 --> 00:07:14,360
But it doesn't set up the touch screen for Circuit Python,
106
00:07:14,560 --> 00:07:18,120
but there is a separately downloadable Circuit Python touch library that works for that.
107
00:07:19,040 --> 00:07:26,100
But what's really neat about this particular WaveShare module is that it's the main target platform for Micropython OS.
108
00:07:26,960 --> 00:07:34,180
MicroPython OS is attempting to provide an Android-like experience for ESP32 sized devices that have touchscreens,
109
00:07:34,500 --> 00:07:47,640
a complete UI system with touch gestures, an app store, over-the-air updates, and APIs like battery manager, app manager, input manager, and so on to make writing new apps in Micropython pretty nice.
110
00:07:48,420 --> 00:07:51,360
when I first started following Micropython OS a month ago,
111
00:07:51,760
--> 00:07:53,180
it only supported this board.
112
00:07:53,940 --> 00:07:56,260
But now it fully supports six different boards
113
00:07:56,980 --> 00:07:58,260
and six more coming soon.
114
00:07:58,780 --> 00:08:03,080
With two of these are smartwatch style ESP32 Gizmos from Liligo,
115
00:08:03,740 --> 00:08:07,480
another popular maker of little Wi-Fi dev boards.
116
00:08:08,320 --> 00:08:10,260
And so we could be having a full
117
00:08:11,580 --> 00:08:14,960
Micropython Android-like OS on a smartwatch soon,
118
00:08:15,500 --> 00:08:16,500
like within the next month or two.
119
00:08:16,600 --> 00:08:17,180
It's pretty cool.
120
00:08:17,540 --> 00:08:23,360
I've been poking around the docs and playing around with the Rupple because you can just, you know, it's a Micropython board.
121
00:08:23,520 --> 00:08:26,020
You can just log into it as well as while it's running the OS.
122
00:08:26,120 --> 00:08:27,600
You can just just poke around.
123
00:08:27,900 --> 00:08:28,980
And it seems pretty reasonable.
124
00:08:29,140 --> 00:08:30,620
The API docs are really good.
125
00:08:31,140 --> 00:08:32,860
I might try writing a little app for it.
126
00:08:33,219 --> 00:08:37,719
But mostly I've been playing around with this WaveShared dev board because it's just nice.
127
00:08:37,860 --> 00:08:47,180
It's really sort of fundamentally changes a display when you can touch it and have that be the input, you know, instead of happy to have buttons on the side or knobs on the
128
00:08:47,200 --> 00:08:52,180
side or whatever. So I've been having fun just playing with just my own little code of like I make
129
00:08:52,200 --> 00:08:56,980
little buttons that I push on them. Yeah, so there'll be links on this in the show notes.
130
00:08:57,740 --> 00:09:02,900
If you want to see something that is like kind of like this in circuit Python, a while back, Tim,
131
00:09:03,340 --> 00:09:09,360
aka Foamy Guy at Adafruit wrote Fruit JamOS, which many people have contributed apps to.
132
00:09:09,480 --> 00:09:13,120
And so it's got sort of a similar thing with as an app launcher and different programs
133
00:09:13,980 --> 00:09:17,160
run inside of this Fruit Jam OS. But yeah, this, this, this, this, this,
134
00:09:17,180 --> 00:09:22,460
This Micropython OS seems to be taking a much more standard OS approach to things.
135
00:09:22,700 --> 00:09:25,500
And it's really interesting to see a high-level OS.
136
00:09:25,660 --> 00:09:27,100
Like usually we think of OS.
137
00:09:27,160 --> 00:09:28,540
This is something fairly low-level.
138
00:09:29,120 --> 00:09:31,840
And this is in Python, in Micropython.
139
00:09:32,120 --> 00:09:38,680
I think the two really neat things about Micropython OS are that it's a touch-first kind of experience.
140
00:09:39,060 --> 00:09:39,220
Yeah.
141
00:09:39,220 --> 00:09:41,020
But they're designing it with that in mind.
142
00:09:41,080 --> 00:09:42,200
And then two is the App Store.
143
00:09:42,780 --> 00:09:47,100
There are so many Micropython apps out there that it would be great to kind of get the cream of the crop.
144
00:09:47,640 --> 00:09:48,980
in one place that
145
00:09:49,340 --> 00:09:50,720
you know it's coming from a trusted
146
00:09:51,160 --> 00:09:52,980
source as well. Yeah, yeah.
147
00:09:53,100 --> 00:09:54,400
Getting sort of a standardize.
148
00:09:54,490 --> 00:09:56,400
Like one of the
149
00:09:56,900 --> 00:09:58,740
downsides of Micropython I'd say is that it's fairly
150
00:09:58,980 --> 00:10:01,320
fragmented. There isn't sort of like one place to go
151
00:10:01,760 --> 00:10:04,180
for some stuff. And so it'd be cool to see
152
00:10:04,300 --> 00:10:05,780
some of these more complicated things
153
00:10:06,200 --> 00:10:08,120
being ported to Micropython OS
154
00:10:08,170 --> 00:10:10,480
and it kind of becomes the place you go
155
00:10:10,640 --> 00:10:12,620
to look for a particular Micropython concept.
156
00:10:14,040 --> 00:10:15,720
All right, Paul, what's your next one for this time?
157
00:10:16,440 --> 00:10:18,400
I have a couple 3D printing stories to share.
158
00:10:18,860 --> 00:10:24,100
I'm a pretty big AI skeptic as I'm not a really big fan of the plagiarism machine that hallucinates.
159
00:10:24,780 --> 00:10:28,600
But two projects I saw left me thinking that this was the neat use of AI.
160
00:10:29,560 --> 00:10:33,480
The first comes via Ellen Shapiro on Mastodon, who shared tooltrace.com.
161
00:10:34,400 --> 00:10:38,180
When you visit the site, the tagline is toolbox inserts made in one click.
162
00:10:39,140 --> 00:10:44,200
You put your tools on an 8.5 by 11 inch piece of paper, take a photo and upload it,
163
00:10:44,380 --> 00:10:49,320
and then it generates a gridfinity bin or foam shadow box for you based on the tools in the picture.
164
00:10:49,820 --> 00:10:52,140
You can then download the model to 3D print it.
165
00:10:52,780 --> 00:10:58,240
There's a free plan that gets you three active tool traces you can output in DXF, SVG, or STL,
166
00:10:58,800 --> 00:11:03,720
and a paid program at $8 a month that gives you unlimited tool traces and some advanced features.
167
00:11:04,240 --> 00:11:06,960
Kind of neat how AI can just figure out from a picture.
168
00:11:07,500 --> 00:11:09,340
This is what a 3D model should look like.
169
00:11:10,500 --> 00:11:14,040
The next one is from Tom's hardware is a story about researchers.
170
00:11:14,060 --> 00:11:17,920
at Carnegie Mellon University's Department of Mechanical Engineering
171
00:11:18,560 --> 00:11:21,660
that have created a system that uses multiple large language models
172
00:11:22,220 --> 00:11:24,560
to monitor and correct 3D printers in real time.
173
00:11:25,080 --> 00:11:26,020
This story is kind of crazy.
174
00:11:26,160 --> 00:11:29,280
They used four different LLM agents with a supervising agent.
175
00:11:29,940 --> 00:11:32,740
The first agent takes a picture after each layer is printed
176
00:11:32,880 --> 00:11:34,740
and looks at the quality and for defects.
177
00:11:35,360 --> 00:11:38,800
Another agent looks at the printer settings to see if anything needs to be adjusted.
178
00:11:39,640 --> 00:11:43,360
From there, a solution planner agent creates an action plan to fix the prints
179
00:11:43,780 --> 00:11:45,740
and hands that off to an executor agent,
180
00:11:46,120 --> 00:11:48,620
which uses the 3D printer's API to manage the print.
181
00:11:49,560 --> 00:11:54,380
The article also points out that it does not use a custom LLM trained on a specialized dataset.
182
00:11:54,980 --> 00:12:00,820
It's using the base chat GPT-4-O model and some generalized prompts the Carnegie Mellon team has come up with.
183
00:12:01,090 --> 00:12:02,560
Now, that's a pretty cool use of AI.
184
00:12:03,660 --> 00:12:09,400
Lastly, again via Gareth Halfacree at Hackster.io, he shares a story from Creality
185
00:12:10,060 --> 00:12:12,400
that they've developed the holy grail for 3D printers,
186
00:12:12,860 --> 00:12:14,640
a shredder and a filament maker.
187
00:12:15,480 --> 00:12:17,020
Throw your waste filament in the shredder
188
00:12:17,040 --> 00:12:18,720
and it will use a dry crush approach
189
00:12:18,840 --> 00:12:21,380
to render them into less than 4mm feedstock.
190
00:12:21,820 --> 00:12:23,660
You then feed this into the filament maker
191
00:12:24,080 --> 00:12:27,660
and you'll be able to produce up to about one kilo of filament per hour.
192
00:12:28,660 --> 00:12:31,180
Sounds like alchemy to me turning lead into gold,
193
00:12:31,760 --> 00:12:34,720
but of course, Creality hasn't shared release dates or pricing yet.
194
00:12:35,480 --> 00:12:36,980
This, everything is AI.
195
00:12:37,480 --> 00:12:38,520
Really kind of bugs me.
196
00:12:38,640 --> 00:12:41,560
Like, I love all three of these projects,
197
00:12:42,320 --> 00:12:52,300
But the first one where you can make tool inserts, kind of in one click, is a classic use of standard computer vision that's been around for like 20 years, 20 plus years.
198
00:12:53,740 --> 00:13:01,200
And as someone who used to do this kind of stuff, it really kind of frustrates me that the standard machine learning techniques are being just called AI.
199
00:13:02,760 --> 00:13:11,140
And like maybe it is doing something with a transformer model, LLM style, or maybe it's just doing standard open CV machine learning stuff.
200
00:13:11,280 --> 00:13:25,040
you know, and just, I really wish we had better disambiguation to the terms because I'm like, you know, like some of the stuff that runs locally on your box that's very small and can be, can even be run on a micro controller.
201
00:13:25,890 --> 00:13:26,680
Do we call that AI?
202
00:13:26,940 --> 00:13:27,300
I don't know.
203
00:13:27,360 --> 00:13:27,880
I don't think so.
204
00:13:27,960 --> 00:13:29,880
I think I'd rather call it some sort of machine learning.
205
00:13:30,700 --> 00:13:31,900
But who knows what this is actually doing.
206
00:13:32,080 --> 00:13:37,160
It might be feeding the whole image to Chad GBT, and saying draw outlines around all the tools.
207
00:13:40,759 --> 00:13:43,200
I share your frustration with the term AI.
208
00:13:43,980 --> 00:13:46,460
My spouse is pursuing her doctorate in machine learning.
209
00:13:46,660 --> 00:13:50,280
And we have this conversation all the time where I'm swearing about AI and AI is bad.
210
00:13:50,420 --> 00:13:52,520
And she's like, but AI can be used for good.
211
00:13:52,740 --> 00:13:57,520
And if you look at the work she's doing, it's all weather related, for example.
212
00:13:57,680 --> 00:14:00,220
Can they predict the direction that a fire will go, for example?
213
00:14:02,399 --> 00:14:04,080
And I'm like, that's machine learning.
214
00:14:04,240 --> 00:14:07,140
And so, yeah, we bucket everything as AI to our Dutch.
215
00:14:07,200 --> 00:14:07,760
term, probably.
216
00:14:08,240 --> 00:14:08,560
It's frustrating.
217
00:14:08,910 --> 00:14:10,100
I mean, I mean, it's cool.
218
00:14:10,260 --> 00:14:10,500
It's cool.
219
00:14:10,500 --> 00:14:11,120
We can have these things.
220
00:14:11,170 --> 00:14:15,860
I mean, the, the, the, using the 3D printing, using A out of fixed 3D printing tools also
221
00:14:15,980 --> 00:14:21,600
feels like a like a classic sort of computer vision machine learning task that they're just using,
222
00:14:21,780 --> 00:14:24,620
let's use four LLMs against it instead.
223
00:14:26,000 --> 00:14:28,000
Seems a little overkill, but okay, whatever, man.
224
00:14:28,140 --> 00:14:30,880
You know, you got your, your chat, GBT tokens.
225
00:14:31,240 --> 00:14:31,900
You got to use them up.
226
00:14:33,400 --> 00:14:33,840
That's right.
227
00:14:35,220 --> 00:14:36,600
What's your next one for us?
228
00:14:37,160 --> 00:14:44,480
The clever folks at Teenage Engineering that makes synthesizers have released an interesting little musical toy, musical microphone toy.
229
00:14:44,920 --> 00:14:49,420
It's the first commercial product for Normies that I've seen that is running Micropython under the hood.
230
00:14:49,940 --> 00:14:51,880
And lets you get out that micropython it runs.
231
00:14:52,320 --> 00:14:54,760
It's called the Ting E.P. 2350.
232
00:14:55,420 --> 00:14:58,360
And if you know anything about microcontrollers, that name might ring a little bit of a bell.
233
00:14:59,080 --> 00:15:04,400
The Ting E.P. 2350 costs about 60 bucks and looks like a handset of a CB radio.
234
00:15:05,760 --> 00:15:09,260
But it's got three extra buttons on the side, in addition to the talk switch.
235
00:15:09,880 --> 00:15:13,560
You plug its curly cable into your mixer or audio input to a speaker or something,
236
00:15:14,100 --> 00:15:15,080
and you press the talk switch.
237
00:15:15,160 --> 00:15:17,020
Your voice can be altered in a bunch of different ways.
238
00:15:17,600 --> 00:15:18,180
Here's an example.
239
00:15:19,360 --> 00:15:20,840
Here's a echo.
240
00:15:23,620 --> 00:15:24,540
Here's distortion.
241
00:15:24,780 --> 00:15:25,420
This is reverb.
242
00:15:27,500 --> 00:15:29,020
This is single sideband.
243
00:15:29,200 --> 00:15:31,180
This is distortion and ring modulation.
244
00:15:32,280 --> 00:15:33,220
Distortion and ring modulation.
245
00:15:34,320 --> 00:15:35,460
And this is single side band.
246
00:15:35,500 --> 00:15:36,640
down J-Tac.
247
00:15:36,880 --> 00:15:41,300
And then it can also play some sound effects like...
248
00:15:45,139 --> 00:15:46,160
And so on.
249
00:15:49,140 --> 00:15:52,100
So anyway, so as you hear, you got four different sound effects.
250
00:15:52,680 --> 00:15:56,940
You can play, you can trigger, and it's got four different samples you can trigger,
251
00:15:57,320 --> 00:16:01,380
and it's got four different sound effects you can apply to your voice or to the sample that you've triggered.
252
00:16:02,240 --> 00:16:05,020
There are four LEDs on it that let you show which,
253
00:16:05,380 --> 00:16:07,540
which audio effect is currently in play,
254
00:16:08,100 --> 00:16:10,520
and it's got four LEDs to show you
255
00:16:10,820 --> 00:16:13,100
which audio sample is currently set up to trigger.
256
00:16:13,820 --> 00:16:15,940
And there are inputs where you can use
257
00:16:16,020 --> 00:16:18,520
either the talk switch or shaking it
258
00:16:18,880 --> 00:16:21,580
to act as modifiers to change how the sound plays back.
259
00:16:22,360 --> 00:16:24,060
And the list of audio effects is pretty extensive.
260
00:16:24,640 --> 00:16:26,360
There's echo delay with adjustable EQ,
261
00:16:27,080 --> 00:16:28,060
feedback and wet level.
262
00:16:28,360 --> 00:16:29,920
There's distortion with gain and EQ,
263
00:16:30,420 --> 00:16:31,800
harmonizer for repitching.
264
00:16:32,280 --> 00:16:34,240
There's reverb with EQ and spring emulation.
265
00:16:34,520 --> 00:16:34,640
There's re-delayment.
266
00:16:34,920 --> 00:16:36,840
There's ring modulation, single sideband,
267
00:16:37,500 --> 00:16:39,680
and single sideband for that sci-fi hymn radio thing
268
00:16:39,680 --> 00:16:40,500
that I just demoed.
269
00:16:40,520 --> 00:16:42,120
And if you notice the list of sound effects
270
00:16:42,130 --> 00:16:43,800
and their parameters are greater than the number
271
00:16:43,890 --> 00:16:45,960
of the slots available, so how do you reconcile this?
272
00:16:46,520 --> 00:16:48,680
Well, if you plug the ting into your computer,
273
00:16:49,140 --> 00:16:51,320
it shows up like a thumb drive, just like a Python.
274
00:16:52,140 --> 00:16:55,460
And if you edit a config.json file on that drive,
275
00:16:56,100 --> 00:16:58,760
that specifies what effects should be in which slot,
276
00:16:59,180 --> 00:17:00,040
how its settings should be,
277
00:17:00,140 --> 00:17:02,760
and how the handle and shaking input should map to those settings.
278
00:17:03,400 --> 00:17:04,860
Oh, and you can also chain the effect,
279
00:17:04,900 --> 00:17:06,620
It's not just one effect per slot.
280
00:17:06,670 --> 00:17:13,260
You can actually have, say, the EQ feeding into the delay, which feeds into the harmonizer, which feeds into the reverb.
281
00:17:13,860 --> 00:17:17,240
So it's sort of like a virtual guitar pedal board in this little microphone.
282
00:17:18,680 --> 00:17:19,180
It's pretty cool.
283
00:17:20,199 --> 00:17:26,079
Also, when the little Ting microphone is plugging your computer, you can also connect to its Micropython Repel.
284
00:17:26,939 --> 00:17:28,900
And see the code that is actually running.
285
00:17:29,380 --> 00:17:34,500
The T-engineering guys have created a custom build of Micropython, version 1.2.5, I think.
286
00:17:34,860 --> 00:17:37,720
that is a handful of custom built-in modules.
287
00:17:38,060 --> 00:17:42,720
One is called Effects for audio effect chain management.
288
00:17:43,300 --> 00:17:46,460
One is called UI to manage the LEDs, accelerometer, and buttons.
289
00:17:46,980 --> 00:17:50,260
And one is called SPL to handle loading and triggering the samples.
290
00:17:51,000 --> 00:17:55,980
And then the entirety of the main.m.p.i is just reading that config.json file
291
00:17:56,400 --> 00:18:00,640
and setting up the various settings of those various custom modules.
292
00:18:00,920 --> 00:18:02,620
So there's not much logic to the actual main.compy.
293
00:18:02,700 --> 00:18:04,380
It's mostly just setting up the various.
294
00:18:05,120 --> 00:18:07,720
settings of the internal custom modules, then letting it run.
295
00:18:08,340 --> 00:18:12,040
I was hoping it would have more in its main.P.Y, but it's pretty incredible that we can actually
296
00:18:12,300 --> 00:18:16,920
edit this file, and we can actually change what everything does. Like, I can make it behave
297
00:18:16,990 --> 00:18:20,440
in entirely different fashion. I can even make it play sounds all by itself without me touching
298
00:18:20,470 --> 00:18:26,560
any of it. Now, if you're familiar with Circuit Python, the ability to have these audio effects
299
00:18:26,590 --> 00:18:31,120
and chain them together is very similar to what we've been able to do with the built-in audio
300
00:18:31,240 --> 00:18:34,120
effects module in Circuit Python. And the type of effects,
301
00:18:34,200 --> 00:18:36,120
the circuit python has is very similar to.
302
00:18:36,820 --> 00:18:38,760
But the circuit Python approach is more configurable
303
00:18:39,320 --> 00:18:40,540
and exposes much more of the ability
304
00:18:40,540 --> 00:18:42,140
to drive the effects in creative ways
305
00:18:42,300 --> 00:18:46,040
like with modulators and connected to various parts
306
00:18:46,120 --> 00:18:47,880
of your other Python code.
307
00:18:48,700 --> 00:18:50,280
The Ting Micropython can't really do that.
308
00:18:51,720 --> 00:18:53,220
So it's sort of like the Ting's effects
309
00:18:53,270 --> 00:18:55,060
are like a small guitar pedal board
310
00:18:55,600 --> 00:18:57,680
that just does these handful of things,
311
00:18:58,080 --> 00:18:59,460
but Circuit Python's audio effects
312
00:18:59,560 --> 00:19:01,900
are more like an entire modular synthesizer
313
00:19:02,040 --> 00:19:03,440
that's acting like a guitar pedal board.
314
00:19:04,600 --> 00:19:12,400
And now, as you might have noticed by the name, the Ting EP-2-3-50 is running an RP-2-2 under the hood.
315
00:19:13,100 --> 00:19:17,060
I've taken my Ting apart and verified it's got a 2-meg flash, leaving about 1-meg for samples,
316
00:19:17,720 --> 00:19:22,800
and it shows up as almost a standard RP-2350 UF2 boot device.
317
00:19:23,400 --> 00:19:26,180
I've not been able to get a circuit Python loaded on it yet,
318
00:19:26,380 --> 00:19:32,020
because I think they might be using some of the RP-2350 security features to only allow signed firmware.
319
00:19:32,940 --> 00:19:34,800
But it's pretty cool that that exists.
320
00:19:34,880 --> 00:19:39,200
It makes firmware updates for this little box really easy, of which teenage engineering
321
00:19:39,230 --> 00:19:40,140
has already released a couple.
322
00:19:40,680 --> 00:19:44,140
So one of the first things they did when I got it a couple weeks ago was to flash it with
323
00:19:44,140 --> 00:19:47,200
the latest firmware, and it actually fixed a small problem that it was having.
324
00:19:47,520 --> 00:19:50,420
So yeah, I hope that there's a way that we can put our own firmware on here.
325
00:19:50,520 --> 00:19:54,260
I'd love it if they release their version of Micropython because that would be really cool.
326
00:19:55,660 --> 00:20:01,440
In the show notes, I've got a couple of links to both some YouTube videos of people showing
327
00:20:01,520 --> 00:20:04,620
how to use this, how to configure the Ting with the config.jsons file.
328
00:20:05,240 --> 00:20:11,180
There's also an online preset editor that someone has made because it shows up as a USB device.
329
00:20:11,400 --> 00:20:15,480
If you're running a Chrome-based browser, you can use this and you can essentially change the configure.
330
00:20:16,070 --> 00:20:18,840
Dot JSON via a little web page.
331
00:20:19,120 --> 00:20:20,540
Yeah, that's, it's pretty fun.
332
00:20:20,680 --> 00:20:23,120
I'm really encouraged to see real products using Micropython.
333
00:20:24,440 --> 00:20:31,180
If you want to see one in action, check out the Wednesday, February 25th show and tell on the Adafruit YouTube channel.
334
00:20:31,260 --> 00:20:31,420
Right.
335
00:20:32,420 --> 00:20:34,120
Dan, aka Bartlebeats,
336
00:20:35,780 --> 00:20:37,460
demoed one right at the beginning of the show.
337
00:20:37,600 --> 00:20:38,940
So that was pretty cool to see it in action.
338
00:20:39,030 --> 00:20:40,100
Oh, yeah, I missed that.
339
00:20:40,160 --> 00:20:41,740
That was yesterday for us, right?
340
00:20:42,060 --> 00:20:42,160
Yeah.
341
00:20:42,450 --> 00:20:42,880
It was.
342
00:20:44,940 --> 00:20:45,280
Very cool.
343
00:20:45,960 --> 00:20:47,900
All right, Paul, what's your next one for this time?
344
00:20:49,060 --> 00:20:51,060
Have you ever wanted to build your own game controller?
345
00:20:51,940 --> 00:20:56,360
Tommy B. did, and he was inspired by the original steam controller from Valve software.
346
00:20:57,140 --> 00:21:00,440
And by inspired, I mean, he took the idea to the next level.
347
00:21:01,140 --> 00:21:04,600
A shout out to Cooper Dalrymple for sharing this story in the Adafruit Discord.
348
00:21:05,580 --> 00:21:09,760
Linus of Linus Tech Tips recently had Tommy B on his show to show off his open split deck,
349
00:21:09,860 --> 00:21:12,040
and by split it does exactly that.
350
00:21:12,560 --> 00:21:14,700
You can split the game pad into two halves,
351
00:21:15,200 --> 00:21:17,820
kind of similar to how the switches joycons work individually.
352
00:21:18,740 --> 00:21:22,300
He also created additional pieces you can attach to the middle of the two halves
353
00:21:22,630 --> 00:21:25,560
to put it back together that makes it more ergonomic.
354
00:21:25,960 --> 00:21:27,520
Now, if you've never seen a Steam controller,
355
00:21:27,840 --> 00:21:30,960
think a big game pad with two track pads where your thumbs go,
356
00:21:31,380 --> 00:21:32,120
instead of joysticks.
357
00:21:32,880 --> 00:21:34,480
And that's exactly what Tommy B built
358
00:21:34,640 --> 00:21:36,740
with two track pads as well as the two joysticks
359
00:21:36,900 --> 00:21:37,940
that you're probably used to.
360
00:21:38,800 --> 00:21:40,460
He created two custom PCBs,
361
00:21:40,880 --> 00:21:42,540
one for the left half and one for the right.
362
00:21:43,140 --> 00:21:46,260
It runs on a Nordic NRF 52840 microcontroller
363
00:21:46,740 --> 00:21:49,160
and also features gyro support and haptics.
364
00:21:49,860 --> 00:21:51,960
Tommy B talks about that the track pads are optional
365
00:21:52,100 --> 00:21:53,140
when using the game pad,
366
00:21:53,560 --> 00:21:56,100
but gives you an extra level of control that makes it unique.
367
00:21:56,700 --> 00:21:57,980
Well, that and it splits in two.
368
00:21:58,800 --> 00:22:00,920
The parts will run you about $250 to $300,
369
00:22:00,960 --> 00:22:03,660
but you'll have enough parts to probably build another one.
370
00:22:04,120 --> 00:22:08,020
And for context, the Steam Controller retails for about $250.
371
00:22:09,420 --> 00:22:10,060
Check out the video.
372
00:22:10,200 --> 00:22:14,540
Tommy B, who guests on the Linus Text Tips show, is very well-spoken and engaging.
373
00:22:14,840 --> 00:22:16,840
I really enjoyed the video of him with Linus.
374
00:22:18,060 --> 00:22:24,100
Related to GamePads is Joypad OS, an open-source universal game controller firmware.
375
00:22:25,060 --> 00:22:29,860
You build a dongle, and they recommend using an Adafruit KB2040 microcontroller
376
00:22:30,140 --> 00:22:31,960
that allows you to use your game controller
377
00:22:32,120 --> 00:22:33,840
like a PlayStation or Xbox controller
378
00:22:34,060 --> 00:22:34,840
with other platforms.
379
00:22:35,800 --> 00:22:37,180
They also support building the dongle
380
00:22:37,320 --> 00:22:40,380
using a Siege Zhao ESP 32S3 board,
381
00:22:40,960 --> 00:22:42,980
the Raspberry Pi Pico, and a few others.
382
00:22:43,800 --> 00:22:45,100
The project has excellent docs
383
00:22:45,180 --> 00:22:46,700
on how to build and install the firmware
384
00:22:47,040 --> 00:22:49,080
and even includes a page on hardware compatibility
385
00:22:49,760 --> 00:22:50,900
with links to buy the boards,
386
00:22:51,200 --> 00:22:53,160
pre-built controller adapters, and more.
387
00:22:53,840 --> 00:22:56,580
They've also launched joypad.aI
388
00:22:57,140 --> 00:22:59,840
where you can pre-order a USB or Bluetooth dev kit
389
00:22:59,880 --> 00:23:00,280
for $50.
390
00:23:01,360 --> 00:23:03,340
The DevKit is a USB pass-through adapter
391
00:23:03,520 --> 00:23:05,480
running Joypad OS that allows you to connect
392
00:23:05,740 --> 00:23:07,960
any USB controller to the DevKit
393
00:23:08,480 --> 00:23:09,780
to allow you to remap buttons,
394
00:23:10,020 --> 00:23:12,300
create macros, and more before it reaches
395
00:23:12,380 --> 00:23:13,460
your PC or console.
396
00:23:14,540 --> 00:23:16,280
They're building towards a Joypad dongle,
397
00:23:16,440 --> 00:23:18,460
which is basically what the Dev kit will turn into.
398
00:23:19,060 --> 00:23:20,560
Its tagline is one device,
399
00:23:20,780 --> 00:23:22,420
any controller, any platform.
400
00:23:23,300 --> 00:23:25,000
So 50 bucks to get a custom dongle
401
00:23:25,000 --> 00:23:26,420
to allow you to use your game controller
402
00:23:26,560 --> 00:23:28,380
on other platforms is a bit cheaper
403
00:23:28,520 --> 00:23:29,680
than the OpenSplit deck.
404
00:23:30,280 --> 00:23:31,880
but they're two very different things.
405
00:23:32,960 --> 00:23:34,900
The open split deck is incredible.
406
00:23:35,440 --> 00:23:38,400
My wife, she likes to play some video games like I do,
407
00:23:38,880 --> 00:23:40,520
but she mostly plays it on the switch
408
00:23:41,360 --> 00:23:43,780
because she finds the kind of hunched over nature
409
00:23:43,820 --> 00:23:45,880
you have to have when you're grasping a controller
410
00:23:45,940 --> 00:23:47,900
to be kind of hard on her shoulders after a while.
411
00:23:48,300 --> 00:23:49,380
And so she likes to have the switch
412
00:23:49,540 --> 00:23:52,720
because you can play with your shoulders open,
413
00:23:53,000 --> 00:23:55,120
your hands open, and it's much more comfortable
414
00:23:55,300 --> 00:23:56,360
for a long-term gaming.
415
00:23:56,760 --> 00:23:59,700
But we've not been able to find a similar type of
416
00:23:59,720 --> 00:24:01,040
but controller for like a PlayStation.
417
00:24:01,840 --> 00:24:06,060
Like there's like the accessibility controller stuff for PlayStation, but that's really
for
418
00:24:06,460 --> 00:24:11,320
people who need much more critical sort of like controller needs.
419
00:24:11,760 --> 00:24:16,100
And so it's like surely someone makes a switchlight controller for the PlayStation, but no.
420
00:24:16,400 --> 00:24:18,760
But now, yes, we can make our own.
421
00:24:18,780 --> 00:24:19,660
You can build your own.
422
00:24:20,820 --> 00:24:21,760
You got the bill of materials.
423
00:24:21,980 --> 00:24:25,340
One of the things he calls out is buying some of the parts directly from ATA fruit, like
424
00:24:25,400 --> 00:24:25,900
the batteries.
425
00:24:26,060 --> 00:24:27,580
So you know, it doesn't start on fire.
426
00:24:27,680 --> 00:24:28,220
So I like that.
427
00:24:28,280 --> 00:24:29,000
He called that out.
428
00:24:29,100 --> 00:24:29,460
Yeah, totally.
429
00:24:29,640 --> 00:24:31,600
But yeah, it was a really fun video to watch.
430
00:24:32,000 --> 00:24:32,640
Oh, man, that's great.
431
00:24:32,960 --> 00:24:35,140
Yeah, yeah, we might be making one of these
432
00:24:35,240 --> 00:24:37,940
because I've been wanting to get her into some of these crazy PlayStation games that I play.
433
00:24:39,840 --> 00:24:42,100
Well, keep us up to date on your progress if you do.
434
00:24:42,320 --> 00:24:42,540
Totally.
435
00:24:44,040 --> 00:24:45,780
All right, what's the last thing for us this episode?
436
00:24:46,260 --> 00:24:50,040
All right, so my favorite nutty synth professor, Sam Bartle,
437
00:24:50,320 --> 00:24:52,320
aka Look Mum, No Computer on YouTube,
438
00:24:53,000 --> 00:24:56,280
is the UK's surprise entry for Eurovision 2026.
439
00:24:57,380 --> 00:24:59,320
If you've never seen it, Eurovision is a yearly,
440
00:24:59,560 --> 00:25:04,820
bonkers musical contest that's broadcast on TV everywhere. It's just insane. I highly recommend
441
00:25:04,980 --> 00:25:09,180
watching some clips on YouTube right now if you've not heard about it. And Sam's particular
442
00:25:09,400 --> 00:25:14,840
flavor of insanity will fit right in. His performances on his homemade, animatronic, modular sense
443
00:25:14,920 --> 00:25:19,280
are incredible on their wackiness, but also with his deep musicality. I hope he wins.
444
00:25:19,780 --> 00:25:23,300
It'll be interesting to see how he's kind of a nerd like us. It'll be interesting to see
445
00:25:23,460 --> 00:25:27,760
him in front of a huge, huge audience. So I've been following Sam's YouTube channel for about nine
446
00:25:27,780 --> 00:25:32,280
years. He usually hooked me by showing simple synth circuits that he turns into proper
447
00:25:32,780 --> 00:25:38,840
synth modules for his homemade modular rig. One of the best for me was his simplest DIY audio
448
00:25:39,080 --> 00:25:44,200
oscillator video that uses a single transistor, capacitor, resistor, and LED to make a really
449
00:25:44,380 --> 00:25:49,560
nice setting score of oscillator. It's surprisingly musical. For less than $10, he made a five-voice
450
00:25:49,560 --> 00:25:57,740
drone synth with this circuit. This sounds amazing. And his online delivery, if you remember, like
451
00:25:57,760 --> 00:25:59,640
the very considered synth designer.
452
00:26:00,020 --> 00:26:03,420
His online delivery is almost exactly the opposite to Morris Klein's.
453
00:26:04,420 --> 00:26:07,340
Every circuit Sam makes as he hand drills the panels,
454
00:26:07,540 --> 00:26:09,740
Sharpies knob panels, and soders over live circuits
455
00:26:09,900 --> 00:26:12,000
make you almost expect a disaster to happen.
456
00:26:12,540 --> 00:26:14,600
But of course it never does because Sam is a professional,
457
00:26:15,300 --> 00:26:16,860
but he's exceedingly fun to watch.
458
00:26:17,200 --> 00:26:19,200
Other great videos of his that I liked over the years
459
00:26:19,340 --> 00:26:22,320
are his Furby organ, where he takes 45 Furbies
460
00:26:22,320 --> 00:26:25,160
and hacks them into a nice woodenclosed organ,
461
00:26:25,780 --> 00:26:31,520
or the 1,000 oscillator megadron synth that takes that simple oscillator circuit from before
462
00:26:31,900 --> 00:26:34,020
and multiplies it by literally 1,000.
463
00:26:34,880 --> 00:26:38,880
The final result takes up a whole wall because he made it a proper synthesizer,
464
00:26:39,020 --> 00:26:44,840
so every oscillator has individual controls for pitch and how it connects to the rest of the circuit,
465
00:26:45,440 --> 00:26:46,260
the synth circuit.
466
00:26:46,960 --> 00:26:51,200
He's built a ton of other gear and his builds are explicitly for him to perform with
467
00:26:51,360 --> 00:26:54,300
because he's also a professional musician, often on tour.
468
00:26:55,240 --> 00:26:59,160
With all these huge builds, though, Sam has needed a place to put them all, so he created,
469
00:26:59,440 --> 00:27:05,900
This Museum is Not Obsolete, a real physical museum of experimental and old technology in Kent, UK.
470
00:27:06,600 --> 00:27:10,040
You can go there and play on some of this gear that you've seen in his videos.
471
00:27:10,760 --> 00:27:14,660
There's other amazing artifacts there as well, like old test gear and ancient telephone switching equipment,
472
00:27:15,220 --> 00:27:17,180
all of it hooked up and able to make cool noises.
473
00:27:17,660 --> 00:27:23,800
If I'm ever, like, next time I'm in the UK, I want to make a field trip to Kent to visit this place because it just looks incredible.
474
00:27:24,320 --> 00:27:25,480
But yeah, go Sam.
475
00:27:25,560 --> 00:27:27,580
I hope you win Eurovision.
476
00:27:28,960 --> 00:27:32,720
And you said he's representing the UK, so it's not just some small country.
477
00:27:32,900 --> 00:27:35,060
It's one of the larger countries in Europe.
478
00:27:37,920 --> 00:27:39,280
Small town boy makes it big.
479
00:27:40,360 --> 00:27:40,880
That's awesome.
480
00:27:42,940 --> 00:27:43,620
Well, that's our show.
481
00:27:44,040 --> 00:27:48,700
If you're interested in getting a free sticker, visit the homepage of the bootloader.net for the order form.
482
00:27:49,320 --> 00:27:53,680
You can also visit the homepage to see our show notes and transcripts.
483
00:27:54,080 --> 00:27:55,860
Until next time, stay positive.