Built from the ground up
S02:E08

Built from the ground up

Episode description

In this episode, Paul and Tod each share three interesting things from learn to solder kits to programming ARM in assembly and more. Visit TheBootloader.net for more information including detailed show notes and transcripts.

00:22 Meet the Maker: Carrie Sundra of Alpenglow Industries. (Paul #1)

1:29 SMT Garden - surface mount soldering kit

3:51 Building a synthesizer with the Daisy Seed from Electrosmith (Tod #1)

5:56 synthUX Academy classes on YouTube

8:08 Microdot web framework for MicroPython (Paul #2)

9:08 Programming for both CPython and CircuitPython or MicroPython

10:25 ARM Assembly Deep-dives by Carlynorama (Tod #2)

16:52 ARM Simulator in the browser

18:50 gcc and Clang compilers for ARM

19:20 Bambu Labs 3D printer follow-up from Episode 1 (Paul #3)

20:35 Bambu extends firmware support until 2027 and security updates until 2029

23:08 Let’s talk about Capacitive Touch Sensors and Sliders (Tod #3)

29:00 Tod’s Tindie Store

29:31 Wrap-up and visit TheBootloader.net for detailed show notes and transcripts

Download transcript (.srt)
0:00

(upbeat music)

0:02

- Welcome to The Bootloader, I'm Paul Cutler.

0:06

- And I'm Tod Kurt.

0:07

Each podcast will be bringing you news, project updates,

0:10

product talk from the tech and maker scenes.

0:13

And for each episode, we'll be talking about it

0:15

around three, no more than five things

0:17

and chat about them for a few minutes each.

0:20

Paul, what do you have for us this week for your first one?

0:22

- First up, I've got a segment that I like to call

0:24

Meet the Maker.

0:25

And first up is Carrie Sundra of Alpenglow.

0:28

Now I've never met Carrie.

0:29

I just follow her on Mastodon and the socials.

0:32

And shame on me, but I've never took a good look

0:34

at the products and services offered by Alpenglow.

0:37

I visited their website and if you visit the about page,

0:40

I wanted to share Alpenglow's mission statement,

0:43

which is to teach you about electronics

0:45

without gatekeeping.

0:47

It goes on to say,

0:48

we are passionate about representation in electronics.

0:51

The field is still overwhelmingly white and male

0:54

with only 10% of electrical engineers identifying as women.

0:58

Having worked in the field for over 20 years,

1:00

we know how much gatekeeping and hostility there can be.

1:03

We aim to provide a welcoming space

1:04

where adults can learn about electronics

1:06

without judgment or any previous experience.

1:10

So right there, you know it's a business

1:11

that you want to support and do business with.

1:13

That is just such a cool mission statement

1:15

to share with the world.

1:16

And it's something that I'm passionate about too,

1:18

that whole women in tech and under-representation in tech.

1:21

And it's great to see her trying to bring people

1:22

into electronics and soldering.

1:24

What sparked my interest was on Mastodon a couple weekends ago

1:28

they shared a learn to solder surface mount kit.

1:31

And that got me to visit the shop

1:34

and I saw the various learn to solder through hole kits

1:36

as well as surface mount.

1:37

Now I'm terrible at soldering.

1:39

I just started soldering within the last couple of years.

1:42

And if I had known about this a couple of years ago,

1:44

I probably would have picked one out.

1:46

I still don't know how to do surface mount soldering.

1:48

So I'm tempted to buy one of those.

1:50

And the kit, which is called the SMT Garden,

1:53

it's only 20 bucks and it includes

1:55

over a hundred different pieces from practice capacitors

1:58

to different colors of LEDs, as well as resistors

2:00

and a battery holder.

2:02

So there's tons of stuff that you can practice soldering on.

2:05

There's so many cool things in the shop

2:07

that I encourage you to go spend a few minutes browsing,

2:09

pick up something if you're looking to learn to solder

2:12

or improve your soldering skills.

2:14

And that's not all she does.

2:15

She also runs a learn electronics workshop

2:18

and a learn to solder workshop

2:20

and encourages those underrepresented in tech to attend.

2:24

Be sure to check it out.

2:25

I've included a number of links in the show notes.

2:27

- I follow her on Acidon too.

2:29

And like, I'm always seeing these great soldering classes

2:32

and electronics classes that she gives.

2:35

And like most soldering kits are kind of boring.

2:38

They're like little square things that have like, you know,

2:40

four little LEDs or something

2:42

and they just blink or just go on.

2:45

But her PCB designs are beautiful,

2:47

like little bits of art that light up.

2:49

And it's, especially for SMD, it's a really great intro

2:52

because like SMD seems kind of scary, but like,

2:54

oh, this is just LEDs.

2:56

You know, if you mess one up,

2:57

you still have three or four others

2:59

that are gonna light up for just this one part.

3:01

And there's like four different parts of the whole PCB.

3:04

And so, yeah, just even if it's not turned on,

3:07

it looks cool.

3:09

- Yes.

3:09

- And then if you add to it, then it'll look even better.

3:12

- Her products do look cool.

3:14

I mean, there's holiday themed one.

3:15

There's a light up Krampus.

3:17

There's some no soldering ones that are available.

3:20

So depending on what your skill set,

3:21

there's a little bit of everything for everyone, I think.

3:24

- Yeah.

3:25

Yeah, it's really cool 'cause electronics is not that scary.

3:27

It just kind of looks scary.

3:29

- It does.

3:31

And I would say that's my experience in the last few years

3:33

is I really came into this

3:34

thinking it was a lot scarier than it is.

3:36

And it's just amazing how much you pick up

3:38

just doing it over and over again in the practice,

3:41

which is perfect for something like this.

3:43

- Yeah, like so much of things.

3:44

If you don't keep using it, you kind of lose it.

3:47

- Absolutely.

3:48

What did you have up for us next?

3:51

- From like intro to electronics

3:52

to like some of the most complicated electronics

3:54

that I know of is how to make a synthesizer.

3:57

And so from previous shows and just if you follow me,

4:01

you've probably seen that I've made little toy,

4:03

kind of toy synthesizers using either Arduino

4:05

with this library called Mozi or in circuit Python

4:08

with the new synth IO functionality

4:10

that's built in a circuit Python.

4:11

But they're kind of toys.

4:13

Like there are a lot of real synthesis platforms out there

4:17

that let you do like professional quality synthesizers.

4:21

And I've never really gotten into them until recently.

4:24

There's one module, it looks kind of like an Arduino

4:26

called Daisy Seed from this company called Electrosmith.

4:29

We'll have a link to it in the show notes.

4:31

And it's 25 bucks and it's a Cortex-M7 chip,

4:35

which is one of the most powerful microcontrollers

4:39

you can get on a tiny board.

4:41

And it has 65 megabytes of RAM.

4:43

So like, you know, RAM is important

4:45

in when you're making synthesizers or digital effects,

4:47

like pedals, like guitar pedals and stuff,

4:49

because you need that memory to act as the buffer

4:52

for like the delay effect or something

4:54

or the reverb effect.

4:55

You kind of need to store copies of the sound.

4:59

With this chip, sorry, this board,

5:00

this Daisy Seed board also has a professional quality

5:03

24-bit 96 kilohertz audio input and output and stereo.

5:08

And then for like knobs and stuff,

5:09

it's got 16 ADC, sorry, 12 16-bit ADC pins

5:13

and two 12-bit DACs to control stuff.

5:16

31 GPIO pins to like let you control LEDs

5:19

or like drive a display or something

5:21

or like read from an SD card.

5:24

And it fits on a breadboard.

5:25

So it's kind of like, you know,

5:27

if someone made an Arduino and it grew up

5:31

and wanted to make music,

5:33

it's kind of what the Daisy Seed is.

5:35

And Electrosmith provides all these

5:37

really great libraries for it,

5:38

but they're pretty complicated C++ libraries.

5:41

They've got a Arduino library that wraps the C++ stuff,

5:45

but it's still, you need to kind of know how to C++.

5:48

So it's pretty daunting if you just like go and look at it

5:50

and go through their tutorials, it's like, whoa,

5:53

that's a lot.

5:54

But thankfully there's this nonprofit in the UK

5:57

called Synth UX Academy, sorry, not in UK,

6:00

in the Netherlands.

6:01

And they've been doing these online classes and, sorry,

6:05

in-person and online classes

6:06

that they've been streaming for free on YouTube

6:09

and putting their code up on GitHub

6:11

so that you can follow along.

6:12

And they're only using the Daisy Seed

6:15

and they have this really great little PCB set they sell

6:18

that's like a little tiny synthesizer like platform.

6:21

Their whole idea was that like,

6:22

hey, here's a big gridded PCB with a lot of holes in it

6:26

where you can put the knobs kind of wherever you want

6:28

to design what interface you want your synthesizer to have

6:32

and just quickly wire them up to the Daisy Seed

6:34

and like wire up an output jack

6:37

and boom, you've got a synthesizer.

6:40

And so it's been a really nice sort of intro level

6:43

getting you slightly involved in the whole Daisy Seed

6:47

way of thinking about how to deal with audio

6:49

and how to generate audio

6:50

or how to generate like a guitar pedal effects and stuff.

6:54

So it's been really cool.

6:55

I've been wanting to play with the Daisy Seed for years.

6:58

I supported their Kickstarter back in like 2020

7:01

and it's been sitting in a box since then. (laughs)

7:05

But I finally, like just like in the last two weeks

7:07

I've like gotten out of the box, started playing with it.

7:10

And it's all because of this,

7:11

the Synth UX Academy YouTube videos and their GitHub stuff.

7:14

So if you're into this sort of thing, check it out.

7:17

It's really cool.

7:18

- It looks just like, it's just a microcontroller.

7:20

It looks a little bigger than a Pico.

7:23

And it was only $21 when I looked at the website.

7:26

I was kind of taken aback by how cheap it is

7:28

for that much RAM and M7, like you said.

7:32

- Yeah, and it's used in like real products.

7:34

Like there's some guitar pedals that use it.

7:37

There's some like official,

7:38

you can go and buy them at like Guitar Center, I think.

7:41

There's some synthesizers,

7:42

like the thing called the Chompy.

7:44

That's like this cute little synthesizer

7:47

that has like uses computer key switch keys

7:50

for its keyboard.

7:52

It uses a Daisy Seed inside of it.

7:54

And then there's a bunch of Eurek modules

7:56

that use the Daisy Seed internally.

7:58

And you wouldn't know it.

7:59

They're just like, they're hidden and they just,

8:01

oh, here's this platform to do cool audio stuff.

8:03

- That's pretty neat.

8:05

- So what's your second one for this week?

8:07

- My next one is the Microdot web framework.

8:11

I've shared before that I enjoy programming

8:13

for the web and Python.

8:14

I've used both Pyramid and FastAPI web frameworks,

8:18

but I recently came across the Microdot web framework

8:21

for CPython and MicroPython,

8:23

which I thought was interesting.

8:25

- Interesting, yeah.

8:26

- It was created by Miguel Grinberg,

8:27

who wrote the Flask mega tutorial,

8:29

Flask being a popular Python web framework as well.

8:33

Microdot's homepage describes it as

8:34

the impossibly small web framework

8:36

for Python and MicroPython.

8:39

And it's inspired by Flask.

8:41

What is interesting is that you'll be able to prototype

8:44

and write all your code and have it run on desktop Python,

8:46

on CPython before you bring it over

8:49

to a microcontroller running MicroPython.

8:51

Virgin 2 was released this past December,

8:54

and it looks like there may even be CircuitPython support.

8:57

I saw Miguel had filed a few bugs with CircuitPython,

9:00

so the Microdot test suite would pass,

9:02

which is how I first came across Microdot

9:04

was seeing the bug reports.

9:05

So I haven't looked to see if it actually runs

9:07

on CircuitPython, but it does run on MicroPython,

9:10

and I was surprised to learn that there's over

9:12

a dozen different web frameworks for MicroPython,

9:15

including Microdot.

9:18

So if you're coming from the world of CPython

9:20

and you've used Flask and you're coming to the world

9:22

of microcontrollers, it really looks like Microdot

9:25

might be the perfect web framework

9:27

to bridge both of those worlds.

9:29

- That's really amazing.

9:30

I'm really impressed.

9:32

Like I did some networking,

9:34

some UDP networking stuff a couple months ago.

9:36

That was mostly for CircuitPython,

9:38

but because the API, the network API is a CircuitPython

9:42

and normal Python, or CPython, are so close,

9:45

I was able to have my library support both.

9:47

And that was really cool because yeah,

9:49

I could do all my development on the desktop

9:52

and then try it in CircuitPython and it would just work.

9:56

I'm just like, this is kind of the promise

9:59

of why MicroPython and CircuitPython exists

10:02

is that you can take your learning from DesktopPython

10:05

and apply it to embedded microcontrollers,

10:08

which is amazing.

10:09

- Exactly, or even the other way around as well.

10:13

- Yeah, yeah, that's very much true for me

10:15

'cause I actually don't know DesktopPython too much.

10:17

I have heard of Flask though,

10:19

so I'm gonna look at this Microdot thing.

10:22

- There you go.

10:23

What do you have for us next?

10:25

- To go even deeper.

10:26

So like what's lower level than CircuitPython?

10:30

- C.

10:30

- C, right, yeah, exactly.

10:32

I was gonna say the next step down might be Arduino.

10:35

Lower than that would be C with like say a vendor SDK.

10:38

Like you see you need to have some way of knowing

10:41

some functions you can call to do like,

10:44

make the pin go high, make the pin go low.

10:46

But what's even lower than that,

10:48

you could write C code that manipulates

10:50

a chip's registers directly

10:51

because that's really all this vendor SDK does

10:54

is you can just know what memory locations,

10:57

where the pin register lives and modify that with C.

11:02

Or you go even lower, you could do assembly language,

11:05

which I don't know if you ever heard of assembly language,

11:08

but it's pretty much the lowest level.

11:10

It is these tiny instructions that represent

11:15

the actual bits that are sent to the CPU

11:18

and the CPU decodes those bits.

11:20

And then that's an instruction

11:22

and it does one of the instructions,

11:23

which could be load something by memory

11:26

or add two registers together or something like that.

11:29

And so Carlynorama, disclosure, she's my wife,

11:32

has been doing a deep dive on ARM assembly language.

11:36

And I've been finding this really fascinating.

11:37

See, she started out, she knows Arduino

11:40

and low level Arduino and AVR stuff very well for me.

11:43

Original Arduino back in 2006 or so,

11:47

she wrote some of the original documentation

11:49

for the Arduino website back in 2006.

11:52

She knows all about like low level, bare bones, AVR stuff.

11:56

And so she decided to kind of get back into it

11:58

by writing some bare metal C code to drive an AC tiny 45,

12:03

and which is a little eight pin AVR,

12:06

unlike the larger like 28 pin AVR that's in an Arduino.

12:10

And she got that to work and it was like,

12:12

that was a cool couple of days of work.

12:15

But now, 'cause like her real target is to learn,

12:18

not necessarily to learn ARM assembly,

12:21

but to learn how ARM chips work.

12:24

Because she has some like,

12:25

she has some plans down the road.

12:27

And so she went to a Trinket M0,

12:31

which is a SAMD21 ARM chip and started,

12:34

instead of just programming an Arduino or programming C,

12:36

she's like, nope, I'm gonna go with the bottom level.

12:39

I'm gonna figure out how this chip starts up

12:40

when you apply power, what does the chip start to do?

12:43

Okay, I'm gonna feed it code to know how to do that.

12:46

And then within about a week or so,

12:47

she got it to blink an LED.

12:50

And then a couple of days later,

12:51

she got it to read a button using the lowest level code

12:55

as the ARM assembly.

12:55

And it's really cool because like,

12:58

ARM chips are what are in all of our devices now,

13:02

like our phones, our computers,

13:05

they all use the ARM processor, the ARM instruction set.

13:09

And so, unfortunately, the instruction set

13:13

on these little chips,

13:14

like the little ones that run Arduino and CircuitPython,

13:18

they're a kind of ARM called the Cortex-M series.

13:22

And it's the lowest level of the Cortex-M, the Cortex-M0.

13:26

And so each one of those,

13:29

each one of those sort of subsets

13:31

are a smaller and smaller number of instructions

13:34

that are available to you

13:34

from what the big ARM instruction set has.

13:37

So the big ARM instruction set has like

13:39

really big, cool instructions for doing DSP functions

13:42

and stuff like that.

13:43

But when you're on the little microcontroller,

13:45

you get like the bare minimum.

13:46

So trying to figure out when you just type in

13:48

ARM assembly on Google,

13:51

gives you this wide range of information

13:55

and you have to figure out what part of this

13:57

is applicable to these tiny chips.

14:00

And so that was like coming into one of the first hurdles

14:02

that I was watching her get over.

14:04

Like, I don't know any of this.

14:05

I know assembly a little bit from like Apple II,

14:09

you know, way back a long time ago.

14:11

- Sure.

14:12

- But my current assembly language knowledge

14:14

is pretty, pretty scant.

14:15

So it's really fun to like just kind of sit back

14:18

and see her figure out this stuff

14:21

and then kind of draft off her

14:22

and kind of do it off to the side myself

14:24

to see if I can make stuff work.

14:25

And sometimes I can't.

14:26

But it's these instruction sets,

14:31

the really cool thing about the ARM instruction set

14:32

is it's really regular.

14:34

Like the old instruction sets of like the Apple II

14:37

and the x86 chips,

14:39

they were what's called the complex,

14:41

CISC, complex instruction set.

14:43

What does the C stand for?

14:45

The complex CISC, complex instruction set, something.

14:50

And then RISC, which is what ARM is,

14:51

is the reduced instruction set, something.

14:54

And so the cool thing about RISC

14:56

is that you have a fewer number of instructions overall,

14:59

but the instructions are very regular.

15:01

And so you don't have all these different ways

15:03

of loading from a memory location.

15:06

You just have one.

15:07

And then you do have to do everything in the register.

15:09

It's hard to explain,

15:10

but without going into a hour long description

15:14

of like instruction sets.

15:16

But I know a little bit about this now.

15:18

(laughs)

15:20

- That's pretty cool.

15:21

You've got to be pretty curious

15:23

to go all the way down to that low level

15:25

and start building back up.

15:27

- Yeah, no, she's very much like a documentarian

15:31

approaching it.

15:32

She's been blogging about all of this

15:34

in this little blog she has off to the side

15:36

of her main sort of blog of like,

15:40

let's see what are all the different possible ways

15:43

this can be done and then figuring out the way

15:45

that actually is the right way.

15:46

'Cause not only is there this subsetting

15:51

of the ARM instruction set,

15:52

but there's also all these different chips

15:54

that implement the Cortex-M0 instruction set.

15:58

There's the SAMD21, which is what we're familiar with,

16:00

like the original QTPI.

16:02

There's the STM32 chips,

16:04

which are really, really popular and really common,

16:06

but neither of us have any experience with STM32,

16:09

but yet there's a lot of documentation

16:11

on the STM32 assembly language for some reason.

16:14

And then there's like people talking about

16:17

these more complicated STM32 ARM chips for audio stuff,

16:22

which is what I was running into.

16:24

'Cause I was seeing that like,

16:25

oh, some of these synthesizer people

16:27

implement large chunks of their very complicated

16:30

DSP code as really tight assembly language loops

16:34

inside of a much larger C program that does the synthesizer.

16:37

And so it's like, well, that's not applicable

16:39

to this problem of like programming a QTPI,

16:42

(laughs)

16:43

but it's interesting.

16:45

- Right.

16:45

- But like along the way, she also learned

16:50

that there's a really great ARM simulator,

16:52

online ARM simulator you can go to

16:54

and you can like just type in some language instructions

16:57

into it and compile it in the browser.

16:59

And you can kind of step through it

17:01

with a little built-in debugger

17:02

and it's like cycle accurate emulation apparently

17:06

for a bunch of different types of chip architectures.

17:08

And that was really, really fascinating to see that.

17:11

She also learned how to actually run and use GDB,

17:16

which I don't know if you ever had to use GDB before,

17:18

I've used it once, you know, 20 years ago,

17:21

but it's a way of hooking into your program

17:23

and telling it to stop and telling it to step, step, step,

17:26

one instruction at a time and setting break points

17:30

at certain parts in your code

17:31

so you can kind of inspect the state of the program

17:35

without having to use print statements.

17:37

So it's really powerful way of debugging your program.

17:40

Usually pretty hard to do on an embedded system,

17:43

but these ARM chips have a built-in debugging system

17:46

called SWD, software debugging I think is what it stands for.

17:49

And so you can use these little $10 programmers

17:52

that just hook into a couple of pins on the chip

17:54

and then you can just use GDB to it

17:56

and tell it to stop and inspect registers

17:58

and inspect memory locations and see, okay, yes,

18:01

my code did accurately twiddle this one little memory

18:04

location that represents the pin register

18:08

to cause it to be like turn the LED on or off or whatever.

18:11

- Very cool.

18:14

- Yeah, so it's incredibly fascinating.

18:16

It makes me appreciate all the work that goes into

18:19

when you write in Arduino, say pin mode and input pull-up,

18:22

or when you say in Circuit Python,

18:25

button equals digital in out and your pin number.

18:29

There's a lot of stuff, like you just look at the C code

18:31

that it goes, that goes and does that,

18:33

maybe it's only one or two lines,

18:34

but then you see all the assembly language instructions

18:37

that have to happen to make that work and it's pretty cool.

18:41

And then her next steps are, I think,

18:42

going to move to the Clang compiler system.

18:46

So there's this kind of two different ways

18:48

of compiling for chips.

18:50

There's the older and more sort of established GCC

18:55

toolset and then there's this new thing called Clang

18:59

and LLVM, Clang is kind of the front end,

19:02

LLVM is kind of the back end, I think.

19:04

And that's, I think the future maybe.

19:08

So that's where she's heading next, I think.

19:12

And I'm fascinated to see that

19:13

'cause I know nothing about Clang.

19:15

- Yeah, it'll be fun to watch.

19:16

- It's all right.

19:18

So what's your third one today?

19:20

- Mine is a callback to way back in episode one

19:22

in September of 2022.

19:24

I had talked briefly about the bamboo X1 carbon 3D printer,

19:29

which had just hit the market at the time.

19:31

I had mentioned a good friend of mine had bought one

19:33

and I questioned how long it would last.

19:36

Well, after watching him have his

19:38

for about six months later, I bought one.

19:41

So I've just passed the one year mark of having one

19:43

and I have the P1P model.

19:46

I know it's not an open source printer

19:47

and I'll take some flack from it,

19:49

but I gotta say a year later, it still just works.

19:54

- Oh, wow.

19:55

- I don't have to fiddle with the bed.

19:56

I don't get clogged nozzles.

19:58

Now I know that I went from an Ender 3 to a bamboo,

20:01

which is kind of like going from a really cheap car

20:03

to a really nice car.

20:04

But the worst thing I can say about it

20:08

is that I have to keep my greasy fingers clean

20:10

when I'm taking things off the bed.

20:12

Just trying to keep the bed clean

20:13

is probably the worst problem I have.

20:15

And if that's the worst problem you have

20:16

when you come to 3D printing,

20:18

then you're doing something right.

20:20

- Yeah, I've heard so many good things about it.

20:23

People are claiming it's like a toaster

20:26

where you just go to it and you just push the button

20:28

and it works and it seems so fast to print

20:31

from what I've heard.

20:33

It's like, man, that's amazing.

20:34

- Well, that's been my experience.

20:36

And bamboo was actually in the news this week.

20:39

It looks like they tried to slip something by their users

20:42

and it didn't get through,

20:43

which was claiming that their software

20:45

would only be updated through 2025.

20:48

Well, there was a big brouhaha about it

20:51

and they came out today actually and said,

20:53

"Nope, they're gonna support the printer's firmware

20:56

through 2027 and security fixes through 2029."

20:59

So that's pretty interesting when you think 2027,

21:02

that'll give the printer four years of life,

21:05

which in this industry is probably not too bad.

21:08

- Yeah, totally.

21:10

But yeah, that's always the danger

21:12

with any of these complicated computing-based devices

21:16

is how long does their support last

21:19

because things seems to always decay.

21:22

Like the software-based things always decay

21:24

unless you keep updating them nowadays.

21:25

- Right, and you could argue

21:27

that their firmware is exactly that.

21:30

People either love it or hate it

21:31

every time an update comes out, it seems.

21:34

But they've done a good job with documentation.

21:36

They've got a Wiki which includes maintenance tips

21:38

and when to perform them.

21:40

I know the bamboo costs more than your average 3D printer,

21:43

but for me, it's been worth every penny

21:45

'cause as I said, it just works.

21:48

- Yeah, yeah, I've been involved

21:51

trying to play 3D printer for jeez, forever,

21:54

like since kind of the first MakerBots.

21:56

And I got so sick of having them be a hobby

22:01

rather than a tool.

22:03

And so at one point, I bought like a really expensive one

22:06

just to like get, just to get out of the morass

22:10

of like always tuning the printer

22:12

to get it to work properly.

22:13

And then just like pay too much money

22:15

and get a printer that works.

22:17

And thankfully now, getting a printer that works

22:21

is really low cost comparatively.

22:23

Used to be like $20,000.

22:25

- Right.

22:25

Now anywhere from 300 to call it $1,600

22:30

if you get like a fully loaded bamboo with the AMS

22:32

and all that kind of stuff.

22:34

- The AMF, that's the one where it can like

22:35

change the filament color

22:36

or change which filament you're printing with.

22:38

- Yep, up to four filaments you can have loaded at any time

22:41

and it can auto switch them out.

22:42

- That's crazy.

22:43

It's like, yeah.

22:45

- I did not shell out for that.

22:47

The printing I do is still pretty basic.

22:49

It's prototypes and that kind of stuff.

22:51

I don't need, you know, I'm kind of,

22:55

I've been through the phase where I printed the pretty toys

22:58

that was already behind me by the time I got this.

23:01

So I didn't need an AMS to do the multicolor printing.

23:04

- Totally.

23:05

- What's your last one for us this week?

23:08

- All right, so let's talk about capacitive touch sensors

23:11

and sliders.

23:12

So if you haven't followed me again,

23:14

you've probably been seeing that I've been playing with,

23:16

I've been exploring capacitive touch sensors

23:18

and they're a really great way of adding buttons

23:22

to your project without actually having to have

23:25

any extra hardware,

23:27

except for like one little resistor per button.

23:29

And so if you can make a PCB, you can have 10, 20 buttons.

23:34

Like I've got a little a MIDI keyboard

23:36

that's got I think 25, it's a 25 key keyboard I think,

23:39

you know, just with cap touch pads and an Arduino,

23:43

sorry, a Raspberry Pi Pico.

23:46

One of the things I've been wanting to play with is the

23:48

little sliders, like you've seen, like the most famous

23:51

is like the second version of the iPod touch wheel

23:55

or scrolly wheel.

23:57

And the first one was a mechanical little thing that moved,

23:59

but the second version and kind of all the way up

24:01

to I think till the end,

24:02

was this non-moving capacitive touch surface

24:06

that you just kind of scrolled your finger around on.

24:08

I've seen in some of the capacitive touch design guidelines,

24:13

how to make one of these types of little wheels

24:16

and the wheels are actually just a special case

24:18

of a linear slider uses the same technique.

24:21

And so I'm like, let me try to build something like this.

24:24

And so first, how do these capacitive sensors work?

24:28

The way that the technique that I use,

24:30

that is one of the really common ones is,

24:33

so all wires, all traces on a PCB

24:37

are actually little capacitors.

24:39

Like when you set them high,

24:40

it actually takes some time to get to that high state

24:44

because the capacitance of the metal and the fiberglass

24:47

and the ground plane on the bottom,

24:49

that forms a little capacitor

24:50

and it has to take time to charge up that wire

24:54

that is your signal trace or your capacitive touch pad

24:58

takes some amount of time.

25:00

And then when you make it go low again, it takes some time.

25:03

It's not instantaneous.

25:04

Nothing in electronics is instantaneous,

25:06

even though you said, go low now.

25:09

It's like, well, it takes a little bit of time.

25:11

And that time is driven by that capacitance

25:13

of the physical copper on the PCB.

25:17

And so you can use that effect

25:19

if you make that piece of copper bigger, like finger sized.

25:23

And then if you tell your microcontroller

25:24

to raise that pad to the high state

25:28

and then time how long it takes to go low,

25:32

you are now able to detect,

25:34

is there a person touching the pad or not?

25:37

Because what happens is if you put your finger

25:39

next to a copper trace, you add your body's capacitance

25:44

to the capacitance that's inherently on the PCB.

25:47

And it like, I think it's like maybe two or three times.

25:50

It's almost like you're adding another capacitor's worth

25:53

of charge when you put your finger next to it.

25:56

So it's kind of cool.

25:57

It's like this like really ambient physical effect.

26:00

You can, there was normally like a bad thing in electronics

26:03

that like, oh, your finger's affecting the circuit,

26:05

but we're using it to actually affect a usable,

26:08

useful technique, which is like, oh,

26:10

and I have a little fake button

26:11

by having just a piece of copper on a PCB.

26:14

And so that's how just on/off buttons work.

26:17

Well, the sliders work by just having three or more

26:20

of these copper surfaces and they interleave them.

26:24

Kind of like if you take your two fingers

26:26

and sort of like, sorry, take your two hands

26:28

and sort of splay your fingers and put them together.

26:30

When you interleave the copper traces like that,

26:33

and if you then put your finger somewhere on that gradient

26:37

of like the two copper pieces,

26:40

if you're like, if you're to touch,

26:41

say on your left side of your hand,

26:43

when your fingers are kind of connected like that,

26:46

then you'll get just the left hand.

26:47

And as you move your finger across to the right hand,

26:51

you'll get less and less of the left hand

26:53

and more and more of the right hand

26:54

as you move your finger across.

26:56

And so that's kind of how these things work is you,

26:58

instead of reading like just an on/off value,

27:00

you kind of read a analog value

27:03

of what that capacitance changes in the pads.

27:08

And you can have not just two pads that are interleaved,

27:11

you can have say three or four or five, six, seven pads,

27:13

and that will give you more resolution in a way,

27:16

because you're using more little individual pads

27:19

to indicate where things are.

27:20

I'm not sure how many of the original iPod slide,

27:23

the touch wheel had,

27:25

but the minimum that I've seen is about three.

27:28

You need three pads.

27:29

And my little Pico slider toy,

27:31

that little PCB that I came out with,

27:33

uses this three pad technique for doing two rotary dials

27:37

and three vertical sliders.

27:41

It actually kind of works.

27:42

It's using a Raspberry Pi Pico,

27:45

and the code for it is pretty simple code.

27:49

It's like just simple sort of algebra,

27:51

sort of linear sliding two values next to each other.

27:54

And I don't know, I'm pretty excited on like,

27:57

what other dumb things I can do with it.

27:58

Like the real downside of the capacitive touch

28:00

is that there's no feedback.

28:02

You know, with a button, when you push the button,

28:04

you hear a click.

28:05

- Right.

28:06

- Some people pay a lot of money

28:07

on the mechanical keyboards

28:09

to get even a louder click than normal.

28:11

And, but you get some sort of pushback,

28:14

and there's no pushback with these capacitive touch things.

28:17

It's one of the downsides.

28:18

It's one of the things that people levied against our phones

28:22

compared to the phones that preceded it,

28:24

because the big black screen of a iPhone

28:27

doesn't have any ridges to tell you where the buttons are,

28:31

because you know, every interface

28:32

has a different layout of buttons.

28:34

But we're getting used to it.

28:36

So I feel like, you know, the capacitive touch

28:38

is sort of like due for a comeback

28:40

in terms of microcontroller interfaces,

28:42

because we're so used to the non-tactility of a phone surface

28:46

that, you know, these flat capacitive touch surfaces

28:49

of a microcontroller touch interface would be okay.

28:52

- Right.

28:54

So you link to the code for both the touch wheels

28:56

and the Pico Slider toy.

28:57

Is the Pico Slider toy available on your Tindy store as well?

29:01

- Oh yes, by the way, I have a Tindy store.

29:03

And I have both the larger Pico Slider toy,

29:08

which has something like 16 different controls

29:11

and two rotary sliders, three linear sliders,

29:14

and a bunch of buttons.

29:15

And then also the prototype, my little touch wheel zero,

29:18

that's just one of those little rotary controls,

29:20

like an iPod slide wheel.

29:23

And those are both in the Tindy store

29:25

if you want to try them out.

29:26

And the code for it is like, yeah,

29:28

like 10 lines of circuit Python.

29:30

- That's all we have for you this episode.

29:33

For detailed show notes and for transcripts,

29:35

visit thebootloader.net.

29:37

I'm Paul Cutler.

29:38

- And I'm Tod Kurt.

29:39

- Until next time, stay positive.

29:41

You