Arduino radar sensor triggers DFplayer: Boltanski Prendre la parole V2

Jan Enning
12 min readJul 19, 2019

--

A few months later and we are working on an improved version of Prendre la parole. This time for a show in Tokyo. We learned from the previous version and are ready. This time armed with my Prusa MKi3 and new sensors.

Sound units: Arduino, DFplayer, HFS-DC06

How contemporary art works

The artist has and idea/vision. A production company will take care on how to build and produce it. After approval this ‘product’ is the art piece. Results can be different if you visit other exhibitions of the same artist. The Prendre la parole is build in many ways. Only our version is bulletproof and works, because it is custom made and tested. Shows in Paris and Osaka were using something different, I have no details about it. Other then they power regular 220V desk lights and use these kind of devices. Where the PIR sensor is marked with black paint to “direct” the beam. This never works and batteries die quickly without being noticed. Ending up with a inferieur experience.

But first

After the 3d printing hype was over I decided I want one to use for my projects. Binge watching tons of youtube channels: 3d printing nerd, Makers muse, Thomas Sanladerer, CNC Kitchen, C.R.T, GreatScott!, Lars Christensen. I was ready.

Oeps, what the Radar!

I do not windows shop @ zalando, instead I zapp through Banggood, just to see what I potentially could be missing and maybe (not) need. ;) These $1 radars keep popping up, what are they, how do they work? After ordering them I discovered they are a nice piece of kit that I probably could use. They are X seconds HIGH/ON when triggered, just like when you press a button, perfect! If only I could limit the range…

Not possible

The RCWL-0516 seemed to be popular. On github you will find a page about it, and even more radar units. Also a video than nobody understands, but is analyzed to the max. According to the datasheet you should be able to limit the range by replacing a resistor. Well that doesn’t work. I used some extension wired to a breadboard and placing resistors in series. So I could maximize / minimize the value. Nothing happened, abord idea.

RCWL-0516 module

Possible!

Andreas Spiess to the rescue! He made a video about a handful of radar sensors. Amongst them the super duper HFS-DC06. It has 2 pots to limit sensitivity and delay. Just what I needed.

HFS-DC06 module

Or not

after ordering 2 units (When in prototyping alway buy +2. You always will destroy one) it kinda worked. The LED would trigger when I wave my hands closely, the led looked dim, triggering was not consistent. Then you start searching for other people who use the unit, in order to see how they used it. Soon I discovered people where not happy:

Banggood random review of the HFS-DC06: i planned to start working with the HFS-DC06 Module. Unfortunately it does not work at all after applying the Vcc of 5 VDC. How can it happen to ship untested electronics? Please send me an replacement module as soon as possible.

So what’s the deal? More digging lead me to a conclusion: it might work on 5V, others use 12V…But the “specs” say 5V other “specs” 12V. Only one way to test. Upping the power supply a bit;

  • 6 volts = kinda works
  • 7 Volts = better
  • 8 Volts = hmm, okay
  • 9 Volts = Wow! that LED is working
  • 10 Volts = did not test

At 9 Volt everything worked stable and I got a good minimum range of 2~3 meters. At this point I can adjust the “sensitivity” potmeter just enough to be precise and not overshooting the range. The onboard potmeter can now be adjusted between 2 ~ 9 meters.

HFS-DC06H and the magic smoke.

So now we know it works. But this unit may have different specs. My second batch, released the magic smoke at 9V. What the hell is going on. Time to sacrifice some units.

What they all have in common:

But the 12V version has also a 78L05 = Voltage regulator that can take 7/20V. Plus some extra diodes. So that explains a lot about those mixed results from other users. At lower voltage these units are not reliable. LED looks dimm, triggering feels random.

In the picture you also see we have 2 types of boards. The upper 2 are the same, except the 78L05, layout is the same. The bottom one is really different. Something for BigClive to reverse engineer.

The 3 different types of the HFS-DC06H

Hardware

Our first version of “Prendre la parole” had good hardware, except for the sensor. That is going to be replaced with a ‘static’ sensor. This time we also wanted to add some UI elements: Display with status, potmeter for adjustments.

BOM

  • arduino pro mini (because: cheap)
  • DFplayer (because: sound)
  • 3 Watt 4 Ohm speaker (because: DFplayer)
  • 2 x flat potmeter (because: looks nice)
  • Oled display: 0.91 Inch 128x32 IIC (because: Oled is cool)
  • HFS-DC06 radar sensor (because: radar!)
  • DC booster (because: for some units I need it)
  • Dupond cable 2x + 4x (because: …)
  • resistor (because: they do it)
  • USB-A female (because: why not)
  • USB-B female (because: it’s different)

Lights on! @ 5 volts 350mAh

To enable reproduction and not be reliable on third party stock. Even simple armature can be discontinued over time. We made a custom modulair light design. It consists out of 4 printed parts.

Light model
  • Back nut with thread: takes the male part of the gooseneck (Galaxy black)
  • cylinder M22 screw thread (Snow white): holds the 1W LED and the 350mAh LED driver
  • inner shell for reflection (Snow white): m22 counter thread
  • outer shell: esthetic shell (Galaxy black)
Cylinder holding the 350mAh led driver and the LED can be glued with Gel-tape.
LED 350mAh drive that fits inside the cylinder
LED with Gel-tape to limit heat transfer to PLA. Assembled light attached to a gooseneck

Lights keep running

Sure nice idea to print the lights, one unit takes about 22 hours to complete, resulting in 2 effective days for 1 unit. you need to replace the filament, checking up with the status, did it fail?, is my studio burned to the ground? The result is pretty nice and everything fits like a glove, so in the end the result is what matters. But man, it sure was a printing frenzy!

Heat and stuff

I wanted the light to be a “separation of concerns”. It had a USB plug that can be plugged in any usb socket. It takes 5V and drives the 1W LED. The driver did not produce any significantly heat. The LED stabilized around 60° celcius. To hot for the PLA. There was not force on the plastic, but it could deform over time. Adding a piece of gell-tape, protected the plastic from the heat transfer. With the tape I now measured 30° celsius on the PLA. Now we are safe.

PCB and the footprint

The layout was again easy, this time I used Easyeda, just to check it out. But also the convenience of not having to source components. You can order the parts directly from the website. You pick your part and dump the footprint that matches the actual part you order, easy.

Connecting the connectors

In the previous version we used DC connectors and a cut USB cable that came out the case. This time I wanted to use solid connectors that are readily available and suitable for the application. But also idiot proof. The main power from the powerbank 5V was provided with an old fashioned USB printer cable (USB-B female), power to the lamp was using a USB-A connector. To withstand the force everything is through hole. It’s also nice to solder a big blob in those connector. Welding for whoosies ;-)

Component party

The rest of the components are just solder on the board. I did not bother adding extra female headers so I later could remove/replace individual elements. Space in the case was tight. Also soldering them takes time that would not compensate the total price. If a unit would fail, we just replace it with new one.

Not really a design

Looking at the board you see it is composition of readymades. Connecting the dots and you get this unit. It does not have many other options, only one optional sensor and one button can be added. The rest is just as is. But it works just fine.

Failure, mister Jan

In my previous projects I used KICAD, this time Easyeda. On my first order I got an email:

Many thanks for your order, but sorry to bother you to confirm a issue.
In your file,The top and bottom layer all cover with tin, If all are tin then we can not make top and bottom silk screen (since the silk screen must print up solder mask oil)…

Whuut? I totally did not understand the question. But this is what that sharp employer was trying to tell me:

Where is my soldermask!

My initial thought was, of course; Dude, just print the PCB. After receiving it, yeah failure, mister Jan.

Community failure

What I did not check is the fact people also make footprints and share them. Nice and horrible at the same time. I sourced the part from lcsc.com, used a footprint matching the part number. Not checking the creator. Thus when I first tested my unit, the potmeters were wired incorrectly. Just because the pins did not match the right connection. GND was VCC etc. The same happened to the USB connection. VCC and GND were reversed. To always check, double check the creator. Better is even to order the parts first, check them with your Fluke 87, then proceed.

Failure is alway an option

Wrong polarity

Adding a solder mask, uploading, waiting then I got the good version. Soldering everything on the board, uploading the code…Nothing. Where is my Fluke?! SThe potmeter was using a wrong footprint. Oeps and the USB connector had a reversed polarity. That I could fix by rewiring the light, potmeter was a no go. Back to the drawing board.

Third time

Then everything worked the “first” time.

Whoop Whoop ready!
How can other people have a clean desk? I never manage to do it, ever.

Case

Last time we used a stock ABS case, this time we have the power of 3d printing. Designing a case is just a parametric job; Width / Height / Depth / Holes / Cover / Backplate / Mount holes.

C.R.T. gave me the idea to flip the design. Use the “cover” to mount everything and the backplate to close the case.

Print Prusa, Print!

So the idea to print 8 cases looked nice. Remember one case takes 9 hours to complete. We needed 8 units + 2 spare just in case (no pun intended). In total 10 effective days of printing. None of the cases failed while printing. I use a stock Prusa i3 MK3S because I just want to print and not tinker around with settings, temperatures, nozzles all that stuff. I want a want my idea to be created, I’m not interested in the ‘hobby’ of 3D printing. That is why I bought the assembled Prusa i3 MK3S.

Print tolerances

As a rule of thumb I used 0.2mm of extra tolerance for non printed parts that needed to fit. The backplate had no extra margins, because the shrink would also crimp the cover; n=1

The PCB had USB ports, potmeters that would stick out the case. In order to be sure for a perfect fit. I created the pcb and speaker driver in Fusion 360. So I had something to design around.

PCB, speaker mockups
Final case design

Not a single print failed

No, just one part failed; the white cylinder where the LED booster and the LED is mounted. That part costed me 1 Kg. of filament. First I printed a bridge with a gap, oepsie. Then I added a .2mm sacrificial layer on that hole. Those prints came lose: air trapped inside popped the prints of the build plate. etc… I ended up printing them upside down in pairs of 2. Just to let only 2 fail instead of more at once.

White cylinder that failed over and over.
A fresh case ready to pickup
Mounting bracket for different corners 35/45 degree
Prints did not fail, but designs did.

M3 inserts — banggood

On my window shopping adventures, 3 years ago, I ordered some m3 brass inserts. Yes, with the thought; Hmm that might come handy… At that time I made a Apple Pencil holder and did not use these inserts. Now with the power of my TS-100 I could heat-force them into my case. To have some sturdy screw mounts. It seems that Adafruit is now reselling Mc masters inserts with a special soldering tip. You do not need this. Just use a pair of tweezers. Make sure you have ~3mm wall thickness where the insert is going to set. Else all the plastic will melt and does not have enough flesh to hold on.

Shielding the radar

Radar can penetrate wood, this means with this version we can just mount it outside the view of the visitors. Previous, when we had the Ultrasonic sensors where we needed a line-of-sight. But this radar works somewhat 180°, that was to wide. Simple metal tape in the inside of the case would give us a more directed beam.

Mounting the box

The installation is using a wooden frame that is angled. Straight mounting would mean the sensor is pointing to the ground. It also needed to be serviceable; quick mount and unmounting. We made 3 different brackets: 0/30/45 angle mounts.

The bracket slides in and is self tightening

Show me the result!

OLED display on the side
Behind the lid you can replace the SDcard and adjust the sensor.
The OLED cover is glued in place
Units ready!
Flightcase #1 with spare parts
Because gold is shiny ;)
Christian Boltanski @ tokyo opening in NACT

What about the source?

The 256 BIT shiftregister was open source. This time I’m not sure if I can. I would say yes, I created everything and don’t care. What this makes art is also the added sound files, which I don’t have. All 3d files can be downloaded.

Any improvements?

Yes, this version is bigger and better. No parts that are exposed to the elements. Easy mounting inside the jacket. But the next version is going to use a single rotary input then we ditch the potmeters. SDCard mount that would be accessible from outside, instead of first removing the lid. And the LED driver, not inside the light but somewhere inside/on the cable. Find a way to adjust the sensitivity from the UI instead of on the sensor itself. Mounting the OLED on the PCB, finding the right polarity with dupont cable is crap. I add always a mark that needs to align, not fail safe.

--

--

Jan Enning
Jan Enning

Written by Jan Enning

Frontend developer with a soldering iron

No responses yet