Debra Ansell
S04:E34

Debra Ansell

Episode description

Debra Ansell joins the show and shares how she started with computers and electronics, the Orb-sessed LED Sphere, the PixelBlaze Pillow, and more.

00:30 How Debra started with computers and electronics

2:50 Creating the Orb-sessed LED Sphere

5:08 How CircuitPython helped with the project

7:11 Combining maker skills

  • LED Tote Bag Back to the Future

8:27 The PixelBlaze Pillow

  • The PixelBlaze controller

10:32 The WiFI Hot Spot LED Jacket

12:43 Where to learn more about Debra’s projects

13:25 Which board?

Download transcript (.srt)
0:00

[MUSIC PLAYING]

0:03

Welcome to the Circuit Python Show.

0:04

I'm your host, Paul Cutler.

0:06

This episode, I welcome Debra Ansell.

0:08

Debra studied physics and applied math

0:10

before becoming a software engineer in the mid '90s.

0:12

She quit to stay home with her three boys

0:14

after the internet bust, then rediscovered

0:16

her love of technology as a first LEGO League robotics

0:18

coach.

0:19

She has been making open source projects ever since.

0:24

Debra, welcome to the show.

0:25

Thank you, Paul.

0:26

It's really nice to be here.

0:28

Thanks for having me on.

0:30

How did you first get started with computers and electronics?

0:33

Well, I got started with computers.

0:36

Those are actually two slightly different topics.

0:38

I got started with computers in graduate school.

0:41

I had taken a year of coding in college

0:44

and felt a little bit intimidated, frankly,

0:46

because I think most of the people who took the class--

0:48

I was a novice, and a lot of people

0:49

had been hacking either TS-80s or whatever in high school

0:53

before I got there.

0:54

But I knew enough to code.

0:55

And then in graduate school, I did a fair amount

0:57

of coding with Fortran and numerical recipes

0:59

to analyze my data.

1:01

So I was in graduate school for physics

1:02

and decided against an academic career

1:05

and came back to Los Angeles and ended up

1:09

working for an internet startup as a software engineer.

1:12

And I've been fairly comfortable with coding for a while,

1:15

though I did retire from that job about 24 years ago

1:19

and have only coded as a hobby since.

1:22

I had technically learned electronics in graduate school.

1:25

You know, I'd learned a little bit about circuits and things

1:27

like that, but only in the lab and only in very small amounts.

1:30

So I really didn't have any practical experience with that.

1:33

That part all started when my middle son turned eight

1:37

and was an enormous LEGO fan and decided

1:39

he wanted to join a LEGO robotics team.

1:42

But we couldn't find a local team.

1:44

And given that I was a stay-at-home mom with coding

1:46

experience, I figured I could coach it.

1:48

And I have told this story before, but it doesn't get old.

1:51

It was a blast to coach, but I was very jealous of the kids.

1:54

Because if you're a good coach, your job

1:56

is to stand back and let them do the work while you just stop

2:00

them from doing anything dangerous.

2:02

But I really, really wanted to get in there and build robots

2:06

and make them do the things the kids were doing.

2:09

And somebody said to me--

2:10

another coach from another team said,

2:11

well, if you think the robots are cool,

2:13

you should look into Arduino.

2:14

And I said, what's that?

2:15

And he went on to explain.

2:17

And I did a little research online

2:18

and found a great deal of information on people's blogs

2:23

on the internet and also managed to attend

2:25

a workshop nearby that had an Arduino lily pad.

2:28

And so my first exposure to Arduino in person

2:31

was blinky lights.

2:32

And it seems it never really left.

2:36

I never really kind of graduated past that.

2:38

Just the complexity has grown, but the focus has stayed.

2:41

But that just started everything.

2:42

I started building projects on my own

2:44

and then writing my own blog once I started doing projects

2:47

that were original so I could kind of give back

2:50

because I'd gained so much from what I'd

2:52

write on other people's blogs.

2:54

You're well known for your LED projects.

2:56

And earlier this year, you shared the orb-cessed LED

2:59

sphere.

2:59

How did you make an LED cube into an orb?

3:03

Thank you for asking.

3:04

I'm very proud of that project.

3:06

That was one of those aha moments that just worked.

3:09

In general, I have a lot of ideas.

3:11

And about 80% of them just never go anywhere.

3:13

But they're fun to think about.

3:16

I think most people, when you're talking about electronics,

3:18

it's just cooler to see them in shapes that aren't square,

3:23

that don't have sharp corners.

3:24

So a sphere is obviously the ultimate interesting shape.

3:28

But it's very hard to get circuit boards

3:29

into a spherical shape or get lights

3:34

on the exterior of a sphere unless you're pushing a string

3:37

through holes or something.

3:38

And so it always been in the back of my mind

3:41

to do an LED sphere.

3:43

And I'd never really come across a good idea until--

3:45

unrelated, I can't remember quite what I was looking for.

3:50

I was looking for a way to map, just map computer graphics.

3:54

And I found this projection mapping

3:56

that people often use to go from the surface of a cube

3:59

to a sphere called a quad sphere.

4:01

And they use that rather than the traditional latitude,

4:04

longitude mapping because you don't have the singularity

4:07

at the poles that you normally do.

4:09

And I saw that and I said, well, wait a second.

4:11

I know how to pipe light.

4:13

I spent a lot of my projects on how do I get light

4:15

from one place to another.

4:16

And you get very interesting diffusion effects.

4:19

So this is a mapping that if I could make a cube,

4:22

would really make it look nice in the sphere.

4:23

And I just began to obsessively work on it.

4:26

And there's a reason--

4:28

it's funny.

4:29

It's a joke, but it's also true.

4:31

The title of the article is Or obsession.

4:33

And it really did become an obsession for a very long time.

4:36

It's just seeing how far I could take that project.

4:39

So yeah, it was kind of that aha moment that said,

4:42

wait, I got to try this.

4:43

And everything really-- it was the click

4:44

that everything fell into place from.

4:46

It was so satisfying.

4:47

It only took a couple of iterations

4:49

to really get a working shell that I

4:51

could place over on the outside of a pre-built LED cube.

4:56

People have done LED cubes for a long time.

4:59

And I've seen LED spheres, by the way, too, in clever ways,

5:03

but nothing quite like the way I did it.

5:05

So that was very, very satisfying

5:06

when it all came together.

5:08

How did CircuitPython help with the project?

5:10

Well, I used CircuitPython for the version

5:12

I wrote up for Make Magazine.

5:15

And I always prototype, with few exceptions.

5:18

Most of my LED projects are prototyped in CircuitPython

5:22

because I like the dynamic interactive nature of being

5:26

able to change the code and see the changes instantly

5:30

in the LED patterns.

5:32

I was using a small microcontroller, one

5:35

of the Jao's-- I think the one with Bluetooth,

5:37

NRF 52840 that runs CircuitPython.

5:40

And what's nice, of course, is there's a wonderful LED

5:44

animations library that Adafruit has written.

5:47

So it's got a bunch of pre-built animations.

5:49

And I often will use that and extend onto that library.

5:52

So it was made mapping the sphere much easier

5:55

because the order in which the-- I

5:58

wanted to know where the pixels were in 3D space

6:00

because it's much cooler if the patterns respond,

6:03

have a 3D spatial orientation.

6:06

I was able to use the CircuitPython libraries.

6:07

First of all, the controller I used-- ah, that's right.

6:10

I used the NRF cents.

6:11

I'm going to get the numbers wrong.

6:13

So it had a built-in accelerometer and microphone.

6:16

And there's an Adafruit library already ready

6:18

to how to get that data out of the accelerometer.

6:20

And that was great.

6:21

So I'm very lazy.

6:23

I'm not going to do any more work than I have to.

6:25

So I could use the library for the accelerometer, the LED

6:27

animations library, and then combine the two very simply

6:30

to create a new animation that responded

6:32

to orientation of the sphere.

6:34

And then when I'm mapping the sphere,

6:36

if I were very organized, I would

6:39

have planned ahead for where the orientation of the pixels

6:42

are going to be given the mapping.

6:44

But of course, I didn't.

6:45

But the nice thing about mapping the sphere

6:47

is to figure out the orientation of the matrices that

6:50

made up the side, I could just light up a few pixels

6:52

at a time with just a few CircuitPython commands

6:55

and figure out what the orientation was as I went.

6:57

So it just makes my life a lot easier.

7:00

I'm a big fan of the interactive nature

7:03

of the language for prototyping and the vast array of libraries

7:07

that let me take advantage of a lot of hardware that's

7:09

out there.

7:11

Your projects often combine a variety of skills,

7:13

including CAD, 3D printing, coding, sewing, and more.

7:17

Is there one skill you enjoy more than the others or one

7:19

that you find more challenging?

7:21

The answer to that is I like all the skills.

7:26

I love gaining new skills.

7:28

And probably my favorite skill is whatever

7:31

I'm working with at the time.

7:32

And I don't like anyone more than any of the others,

7:36

but I love to combine them in unusual ways.

7:38

Like sewing and electronics is one of my favorites.

7:41

I love wearables where you're creating an accessory

7:45

or a clothing item that's designed specifically

7:48

to hold the LED strip or string that you're

7:51

wearing with a pocket for the controller,

7:52

or 3D printing and electronics, which a lot of people do.

7:55

That's a great way to protect your electronics.

7:58

But if I can come up with a new way

8:01

to combine skills that I've learned,

8:03

it makes me really happy.

8:04

And frankly, the more, the better.

8:05

I think the one I published recently in Make Magazine

8:08

was LED tote bag we called Back to the Future, which

8:11

combined 3D printing and sewing and electronics

8:15

and a Pixel Blaze controller to make the patterns work.

8:18

So that was really fun to see what you can do.

8:21

Anytime I learn a new skill, it kind of

8:23

guarantees that I'm going to come up

8:24

with a new idea, which I really enjoy.

8:26

You mentioned sewing and Pixel Blaze.

8:29

And I wanted to ask you about the Pixel Blaze pillow project

8:31

that you did earlier this year, which uses the Pixel Blaze

8:34

controller.

8:35

What is Pixel Blaze, and how did it help with the project?

8:38

Pixel Blaze is a wonderful, wonderful controller

8:42

that makes-- like Circuit Python, actually,

8:44

just makes my life easier when doing LED projects.

8:48

It was designed by a very smart programmer named Ben Henke, who

8:52

does wonderful LED installations.

8:54

And it is its own controller.

8:57

It works as its own access point to launch a web-based coding

9:02

interface, which has a JavaScript-based editor window.

9:06

And you can code your LED patterns

9:09

and see the changes on the fly, which is wonderful.

9:12

Again, makes seeing how the code you're writing

9:15

affects the patterns very easy, because it's sometimes

9:17

hard to predict how things will look versus the code you're

9:20

writing on the page.

9:21

And it has a large number of preconfigured patterns

9:25

that people contribute to the library and a very active forum

9:29

that you can ask and answer questions in.

9:32

So it's a very active kind of user base that's very helpful.

9:35

My favorite thing about the Pixel Blaze

9:38

is that it has a pattern of libraries

9:40

separate from the pixel map.

9:43

So you can specify for any project you do.

9:46

You can go ahead and use whatever patterns you've

9:48

written.

9:49

And then in a separate area of the controller,

9:52

you can specify, well, here's where my pixels are in space.

9:55

And it will automatically map whatever pattern

9:58

you've created, as long as it has the correct number

10:00

of dimensions, to the location of your pixels.

10:02

So that's very nice, too.

10:04

I can take patterns that I've written, and I frequently do.

10:07

There's some patterns that run on my sphere on my orb

10:10

that the large version of my orb uses the Pixel Blaze.

10:13

The smaller version uses Circuit Python.

10:15

But I can take patterns for the large version of the orb that

10:19

will also run on my tote bag, that will also run on a pendant.

10:23

The versatility and the ease of use

10:26

and the built-ins on that controller

10:29

are very, very nice for anyone who works with LEDs.

10:32

One of your first Circuit Python projects

10:34

combined a Trinket M0 and a Raspberry Pi 0W

10:37

to control LEDs sewn into a jacket.

10:40

How did they work together?

10:41

That was a great project.

10:43

I really enjoyed that.

10:44

There were a couple of steps in that process.

10:46

I'd been playing with jackets and LEDs,

10:48

and they'd all had controllers based

10:50

on Circuit Python and the LED anima-- using the LED

10:53

animations library.

10:55

And I was going to wear the jacket to Maker Faire,

10:58

the last one right before everything shut down.

11:01

And last minute, I decided, well, it'd

11:04

be really cool if people could program this jacket on the fly.

11:08

So I wanted to use an access point

11:11

and have people via a web browser

11:13

be able to log in to the jacket and change

11:15

the animations remotely.

11:17

So I set up a Raspberry Pi 0 and didn't then and still

11:21

know very, very little about Apache,

11:23

but set up an Apache server.

11:25

And I could figure out just enough about the Apache server.

11:28

I could get it to serve a web page that

11:31

allowed you to use a drag and drop block code to create

11:34

Circuit Python patterns.

11:35

The block code is based on the Blockly coding language.

11:38

That I could get set up.

11:39

But I couldn't, for the life of me,

11:41

figure out how to get those new patterns onto the jacket

11:45

until I realized that the--

11:48

I believe it was a Trinket M0 I was running the Circuit Python

11:51

code on initially-- worked as a separate drive

11:54

for the Raspberry Pi 0.

11:56

So all I had to do was then, once the code was generated

12:00

in the web interface, save the Python file directly

12:03

to the drive.

12:04

And that I could do relatively simply

12:06

without having to go into any kind of operating system

12:08

or anything like that.

12:09

Because you just save the file and Circuit Python

12:11

automatically picks up the code and runs it on the jacket.

12:14

So there's probably a better way to do it.

12:16

But the way that works is always the best way at the time.

12:20

And it worked.

12:20

And I got it.

12:21

And I was thrilled.

12:22

And it was just a nice little bonus

12:24

of just the convenience of Circuit Python showing up

12:27

as--

12:28

the controller showing up as a drive on whatever computer

12:31

you attach it to.

12:32

So that was a lot of fun.

12:33

And I was very proud of myself for getting it working.

12:35

And I still have no idea how Apache actually works.

12:38

I don't think anyone knows how Apache really works.

12:41

Probably true.

12:43

If people want to learn more about your projects,

12:45

where should they go?

12:46

So my older projects are available on my blog,

12:50

geekmomprojects.com.

12:52

Those are mostly the kid-friendly ones.

12:54

And the really well-documented ones, you can find--

12:57

I've written seven or eight articles from Make Magazine.

13:01

You can look at-- that's a good place

13:03

to go to look up archives of some

13:05

of my more interesting projects.

13:06

Those are the two best places to go.

13:08

If you'd like a full instruction set,

13:10

I do tend to post finished builds to social media,

13:13

Instagram and Mastodon.

13:15

But for instructions, my blog and Make Magazine

13:19

are best places to go.

13:21

I'll make sure I link to those in the show notes as well.

13:23

Thank you.

13:24

Last question I ask each guest.

13:26

You're starting a new project or a prototype.

13:28

Which board do you reach for?

13:30

It's almost always the smallest Circuit Python controller

13:34

I have on hand.

13:35

So these days, it's a QDPI or a Zhao.

13:37

Because there's such a range of both of those.

13:39

I think they just came out with a Zhao with a camera.

13:42

And I've been dying to work that into a project.

13:44

And the QDPI is great.

13:45

I'm a big fan of that too.

13:46

I like the little connector.

13:48

What's that?

13:49

They call it the Stemic-QT, I think, connector.

13:51

Which makes it very easy to, when you're prototyping,

13:55

attach a variety of peripherals very easily and access them.

13:59

So both of those are kind of my go-to boards.

14:01

And they're cheap, which is great.

14:03

Debra, thanks so much for being on the show.

14:05

Thank you for having me, Paul.

14:06

I really enjoyed it.

14:09

Thank you for listening.

14:10

Transcripts are available in most podcast players.

14:13

And show notes are available at www.circuitpythonshow.com.

14:17

Until next time, stay positive.

14:20

( calling for help )