Last weekend at the 2018 Hackaday Superconference I gave a workshop called “Small Scale CNC/Robotics Workshop (Build a CNC Badge)”. It was a ton of work and a bit stressful, but I think it worked out about as good as I could have hoped. It was a lot of fun. Here is a quick post on how it went and what I learned.

The Idea

I have gone to a few conferences over the years including one previous trip to SuperCon. I have always wanted to challenge myself and do a talk or workshop. I wanted to inspire some people to consider getting started in DIY CNC. I proposed a 40 minute talk about how easy it is to get started if you work at a small scale. After that you get to build your first machine that is a DrawBot Badge. Badges are currently at “Peak Fidget Spinner” status, so that seemed like a fun idea. The bonus is that the badge is actually a fully functional CNC controller that can control a vast array of machines.

Workshop Approval Process

Superconference is announced early in the summer. Shortly after that, they put out the call for people to propose talks and workshops. I proposed my workshop with a suggested count of 20 people. I thought 20 would be a reasonable amount for my first time.

My workshop was approved the last week in September. Shortly after that, they announce that people can sign up for them. My conference sold out right away. They asked if I could add a few. I said I could probably add 5 more. They want a 10 attendee to 1 staff ratio. I asked my friend Jason Huggins (@hugs) to help and a Superconference volunteer also helped.

I now have only 5 weeks to order, assemble PCBs, kit everything, ship it and prepare the talk. This would prove to be a true #badgelife extreme experience.

State of the project before approval

I had a functional version of the badge with functional firmware. This controller could only run the badge and I wanted a full featured CNC controller. Having functional firmware was definitely a head start.

I didn’t want to invest significant time or order parts in case the workshop was not approved. I knew the timeline would only give me one chance at getting the PCB right. The PCB would include several features that I have never tried before. I decided to do another project that would include most of those new features. That was a good move, because I did make a few mistakes. One required a jumper wire soldered to a QFN pin, the other was easier, but ugly and vulnerable to breakage. Also, to upload firmware you had to manually trigger the bootloader because DSR is not the same as DTR (oops).

I made sure the new badge schematic was free of those issues, completed the layout of the PCB and waited for the workshop approval.

Production

As soon as I heard about the approval, I ordered the PCBs and parts. I ordered 30 sets of PCBs and PCB parts plus about 25 sets of mechanical parts. That seemed like a reasonable buffer if I had problems. Adding the extra 5 people after ordering put some pressure on that small buffer.

3D Printing

I immediately fired up my two 3D printers. I have a Lulzbot TAZ6 and a MatterHackers Pulse XE. Both are quite reliable and parts accumulated quickly. There are 7 parts per badge. That equals 210 parts. I think it only took about 2-3 rolls of filament. This was the easiest part of production and finished early.

To make the arms mount really well, I hot pressed the servo spline into them. I took apart a servo and mount a splined output shaft in an aluminum block with an old 3D printer nozzle heater. I did not actively control the temp. It it seemed to be at a good stable temp at about 8W. I used a small arbor press to make sure they press on straight.

Some parts have bearings pressed in. It is not difficult, but if you screw it up, you might break a 3D printed part. I decided to do them in advance. It only took about an hour to do them all.

PCBs

I did not want to get the PCBs professionally assembled before I had a chance to test one. I built one at home using a toaster oven. It worked perfectly. This meant the design was good and all I had to do was build the rest. Chris Gammel, suggested I use the Neoden pick and place at mHub. mHub is a Product Innovation Center in Chicago. I joined at the $200/mo level. It turned out, it was probably easier and less risky just to do it by hand. I did use their manual paste mask fixture and professional reflow oven. I had some trouble with excessive pasting, but got better over time. This meant there were solder bridges on a lot of boards that needed to be fixed. In the end, 27 of the 30 worked. 3 had mystery problems (probably the tiny QFN USB chip). I think I spent about 24-28 hours building them.

Programming and testing

The process was load the firmware, apply power, connect via web browser, load some additional files and setup unique SSIDs and passwords. That took about 10 minutes each. The final board was done about 72 hours ahead of the conference. I only had time to randomly test the rest of the circuits on the PCBs.

Shipping

Ideally you ship everything with plenty of time to spare. I was able to pre-ship everything but the PCBs. The PCBs and a few other things had to fly with me.

The Workshop

The workshop went pretty well. It started with a presentation which lasted about 40 minutes and then we started building.

The biggest problem we had was the 4 x AA battery packs were under powered and cause brownout resets on the controllers. The servos would start to move, the voltage would drop and the controller would reset. I had tested the battery packs at home. 4 x AAA did not work, but 4 x AA did. I think the cheapo AA Amazon batteries were not as good. Fortunately, I brought several high current AC-DC power supplies and a lot of people had big USB chargers. That saved the day.

There were a few missing tools, screws, lost or broken parts, but I had enough spares. There were a ton of questions during the build, but slowly the questions started to switch to people showing off drawings.

Working DrawBot Badge by @buildlog #Supercon. Recompiled firmware and recalibrated the settings. pic.twitter.com/V8dpg4tH9g — Kuba Tyszko (@kubatyszko) November 8, 2018

What I learned

Hackaday Superconference People are Awesome! It helps when the group is patient and probably smarter than I am. They all had great assembly and computer skills and powered through.

It helps when the group is patient and probably smarter than I am. They all had great assembly and computer skills and powered through. Batteries: The battery issue was the biggest problem. I had tested different batteries at home and assumed the ones I ordered from Amazon would be fine. I think I was a little nervous about it so I brought about (5) 12V 5A power supplies. That nervousness should have been something I followed up on.

The battery issue was the biggest problem. I had tested different batteries at home and assumed the ones I ordered from Amazon would be fine. I think I was a little nervous about it so I brought about (5) 12V 5A power supplies. That nervousness should have been something I followed up on. Hardware Confusion: I got a lot of questions about what hardware goes where. I should have had a decoder sheet (like IKEA does) or photo that cleared that up.

I got a lot of questions about what hardware goes where. I should have had a decoder sheet (like IKEA does) or photo that cleared that up. Extra Parts: I had plenty of extra parts, but they were unorganized. It had to dig around each time someone needed something. A nice parts organizer would have been much better where people could self-serve missing parts.

I had plenty of extra parts, but they were unorganized. It had to dig around each time someone needed something. A nice parts organizer would have been much better where people could self-serve missing parts. Backward connectors: I was stuck with the servo connectors, which are not keyed. A lot of people plugged them in backwards. Fortunately that does not break anything. The wires are color coded. I had close up photos, but adding the wire colors as text to the silkscreen would have helped.

I was stuck with the servo connectors, which are not keyed. A lot of people plugged them in backwards. Fortunately that does not break anything. The wires are color coded. I had close up photos, but adding the wire colors as text to the silkscreen would have helped. Train my helpers: I should have done a dry run with my helpers. They would have been better prepared to help.

I should have done a dry run with my helpers. They would have been better prepared to help. Order Extra PCBs: I was very close to not having enough working PCBs. The boards and parts are not that expensive. Have at least 15% extra.

I was very close to not having enough working PCBs. The boards and parts are not that expensive. Have at least 15% extra. Manage the Stress: I was a little stressed during the PCB assembly process. Some boards looked pretty rough coming out of the oven and needed cleanup. Don’t let precious time slip away. Don’t give up.

I was a little stressed during the PCB assembly process. Some boards looked pretty rough coming out of the oven and needed cleanup. Don’t let precious time slip away. Don’t give up. Ask for more time? I think if I do something like this again that requires lead times and assembly, I will put a realistic lead time in the proposal. I would want the approval a little sooner. If I had one more week that might have allowed for professional assembly. An extra hour for the time slot would have allowed for fast people to finish and leave early and the slower ones to have more time and 1:1 help.

The Docs

Everything is documented on Github.

The wiki has a lot of information too.

Here is the presentation

What’s Next?

I have no more official PCBs, but I may sell the simpler original version on Tindie. Follow me on Twitter (@buildlog) for any announcements.

I am actively thinking about doing something next year. I would like to go for output quality on this one. I also want to work on a better end to end experience with a web or phone app. If you have any interest, suggestions or want to help, let me know.

If you want to be notified of future blog posts, please subscribe.

Name Email *