3D Printing and Design STEM Academy Summer Camp

In addition to Outside the Box, I also did a 3D Design and Printing class for the OSU STEM Academy this summer. This time I had Margaret Mellinger, the 3D print guru from the OSU Library, as a co-teacher. This class was 3 hours a day for 5 days and had fifteen students. I was told there was a wait list of at least that many more!
We started each class off with a short instructional or inspiration video:
We also had a guest speaker, Kevin, an intern working with Margaret who does model rocketry and is working on a 3D printed Ironman mask. The students started with some tutorials in the web-based Tinkercad. We followed that up with taking a look at 123 Design. Later in the week we also looked at OpenScad. All these projects are free to use, and students were encouraged to continue their design work at home.
The kids had an hour of print time to work with, and they came up with some creative projects. They learned how to design for efficient prints, how and when to add supports, and how to slice projects into smaller units for printing. We also uses a Makerbot scanner to scan in small objects, and an X-box Kinect scanner to scan in a student.
In all, I think it was a very successful class. We learned a lot, and we got a lot of good feedback from both students and parents. I can't wait to do it again! Here is to the future of 3D design. . .







My First 3D Design and Printing Class

For this summers Outside the Box pre-college classes at Oregon State University I pitched an idea for a 3D design a printing class. Based on my experience with 3D printing in the Maker Exploratorium, I knew there was some interest, but when the kids signed up and the choices were sorted, I had nearly 60 students signed up over four different classes.

We had two Printrbot Simple Metal printers on hand, one mine, and the other a loaner from the OSU Valley Library.
The students were given an hour of print time to do with as they which. This is about enough for an object 2 inches by 2 inches. Some students created a number of small objects like ear rings.
Others created large single projects using all their time. Several gals created mult-room houses with removable roofs.
On the final day, for the older class, we broke out an X-Box Kinect scanner and replicated a couple of students.
While there were a number of super-creative project, including helicopters, tanks, stealth planes, spaceships, Minions, Eva, and Wall-E, my favorite two were puzzles. One was a cube puzzle and the other an enclosed "black box" maze.
We learned quite a bit about designing to minimize support, using filament as design elements (whiskers, canes, axles). We also learned a lot about post-processing prints including support removal, hot-glue gun repair and shaping. I also learned a lot about file and print queue management. For a first-time offering, I think the class went well.  I can't wait to do it again!

Maker Exploratorium 2015 Edition


We finished the third round of my offering for Oregon State's Adventures in Learning pre-college program. Here is the course description:
We are all makers at heart. We just have to find our passion. Explore electronics with Arduino microcontrollers. Learn how computers work with Raspberry Pi. Learn how to program in Scratch, JavaScript and Python. Incorporate computing in textiles with soft-circuits. Take apart an appliance to see how it works. Create art from junk. Explore and utilize online maker resources. Go home with the skills and confidence to follow your passion.
For this session we had seventeen young makers age 10 to 12. I had one college assistant, a mechanical engineering student named Jeremiah. This was the first class of the day and met for eighty minutes, Monday through Friday, for two weeks.

I like starting classes by showing showing short videos each day.  We start with Dale Dougherty's TED talk entitled "We are Makers".  He points out that there are lots of different types of makers, and that everyone is a maker of some sort or another.  I also showed videos about how everyone should learn to program, and that sometimes it is frustrating but worth it, and how you have to be persistent.

This time around we broke the kids in to four groups, and assigned a different activity for each group. Each group rotated to a new activity every day. This made it easier to monitor the intensive activities like soldering and required less hardware for activities like Arduino.  The first four projects were:
  • Blinky LED circuit where we learn a little bit about electrical circuits and how they work.
  • How to blink an LED with a programmable Arduino.
  • Some simple programming in Scratch.
  • 3D design with Tinkercad.
The 3D printing has come a long way since last year, when all they did was customize a coin which we then had the Valley Library print out for us. This year we had our hands on two printers, one mine and the other a loaner from the Valley Library. The students were given 15 minutes of print time, enough to print out an object about one square inch in size, and allowed to design anything they wanted. We had lots of MineCraft objects, a chess piece, and a replica of the Parthenon. I also taught dedicated 3D printing classes which you can read about here.

 Projects for the second series of rotations included:
 I also brought in my Maker-Faire turtle robot for the kids to play with and a Raspberry Pi.

The final two days we finished up the soldering projects, dissembled a laptop, created junkbots from the parts, and had the parents in to learn what the kids were doing. It was an exhausting and exhilarating week. I learn new things every time I teach. Hopefully the kids do too!

Turtle Programming in Real Life

For the 2015 Eugene Mini-Maker Faire, I want to try something a little different and a bit more interactive. I had been toying with the idea of a low-cost, 3D printed robot. Using Python code to create real-world "Turtle-like" graphics sounded like a killer application.

The history of Turtle robots goes back a bit farther than I originally realized. William Grey Walter created a pair of light-sensing robots called "Elmer" and "Elsie" in the 1940s! These were designed to explore artificial intelligence at very simple levels and while not controlled by programmable digital computers, they exhibited some very distinctive life-like behaviors.

Walter's 1948 robot named "Elsie".
MIT's 1970 robot named "Arthur". In the 1960 and 70s, professors at MIT, most notable Seymour Papert, explored using robots and the programming language LOGO to teach computer science. The idea that complex algorithms can be executed using simple instructions is a powerful concept common to a number of fields of study.

Enter the 21st Century. 3D printing is hitting the main-stream. Open Source projects like Python are making programming easier for everyone. And Open Hardware philosophy have us sharing both code and design files freely. Time for another era of Turtle!

I will post more about the robot's construction elsewhere. It suffices to say that it is powered by a Raspberry Pi Model A+ running Linux with code written in Python! The beauty of this is that you can write and test your Python Turtle commands on your computer or in a browser before they even get to the robot.

Lets look at what it takes to create a box in Turtle:

Don't just sit there. Try these out for yourself at www.skulpt.org! With any luck, you will see something like this:
You will have to add a t.shape("turtle") command if you actually want to see the Turtle.
Python powered, 3D-printed, yet to be named Turtle robot.



If I've got you hooked, your next challenge is to figure out how to change the "square" code to create a hexagon. I'll give you a hint.  For the square, 360 degrees divided by four sides equals 90 degrees. Those number should look familiar. Next, how would you create a star pattern? That one took me a bit to figure out, and there is certainly more than one way to do it.

Your next hurdle, if you want to print your name, is to create letters using Turtle commands. Let us look at one way to create a letter "A" in a 2 x 4 grid (that keeps right-angle math simple).

One tidbit that is helpful is that the distance across the corners of a 10cm block is 14.1cm.


Well, there you have a preview of my Maker Faire booth. Hopefully participants will go home with a piece of paper containing their first initial created by a program they wrote and executed by a robot while they watched! And new-found appreciation for programming!

I'll have some pictures of the event posted at www.facebook.com/groups/corvallisareamakers/.

Ken Verses the PrintrBot Z-Stop

TLDR:
  • PrintrBot Simple Metal printers experience  a lot of Z-stop circuitry failures, which can be easily diagnosed and repaired.
  • This only applies to Rev F PrintrBoards which had an inferior transistor. This can cause either the probe to fail, or the transistor to fail, either of which result in the printhead only moving upward when homing.
  • DO NOT reflash your firmware unless you have made hardware changes to board, as it likely came with the correct firmware on it already, and is only behaving in the best interest of your printhead when it doesn't get the correct signals! 
My PrintrBot Simple Metal in Action.

The first big decision when jumping in to 3D printing is choosing the printer.  I decided on PrinterBot Simple Metal based on Make Magizine's review and the fact is was an Open Source / Open Hardware project. The second decision was whether to buy one assembled, or build it from a kit. I went with a kit because I wanted to learn a little about what was going on under the hood and hopefully be able to repair or modify it if needed. Of course, if you really want to dig deep, you can build one from scratch, but I am not that glutton for punishment.

The first big obstacle I had to overcome was the fact that when I tried to print something, the printhead (extruder) would only move up, and not down. As beginners, we always have to struggle with simple concepts that experts seem to take for granted.  This is even more a problem when we haven't seen it working correctly in the first place and so have no experience if what you are seeing it normal or not. I had to struggle with this for a bit before coming to an understanding that the Z-stop probe circuity was not working, and that the printer firmware, in an effort to protect the extruder, would not move down without the right signal.

Googling this problem indicates that it is happening to a lot of people, and that I am not the only one struggling to figure out why. Lets take a look at the circuitry, since understanding that will go a long way toward troubleshooting the problem.

The first concept to understand is that the Z probe inductively detects the build plate, and will emit a 12 volt signal when it is within about 4 mm of ferrous metal. This, combined with the Z offset you determined during your initial calibration, tells the printer where the extruder is in the Z-axis (up and down), and also, by probing three different spots during start up, how to compensate for the level of your bed plate. This is really an awesome feature, and well worth the trouble is has provide me so far.

The second concept that is tricky is that the Printrboard uses the 12 volt signal from the probe control a 5 volt signal by applying the voltage to the base of a transistor. I am more used to using a 5 volt signal being used to control a higher voltage through a transistor, and not the other way around, but hey, it works as long as they have a common ground.

And, if this did not hurt you head thinking about it, there is one more twist. The microcontroller (MCU) is providing the 5 volt signal to the collector of the transistor using an internal pull-up resistors, so that when the probe turns the transistor on, it allows a path to for the 5 volt signal to ground, which the MCU detects as a Z-stop trigger. A bit convoluted and confusing, especially to a beginner.

OK, now that we have a rudimentary understanding of how things should work, lets think about how they can go wrong. If a probe fails, and provide 12 volts at all time, the 5 volt signal drops to ground, causing the MCU to think a Z-stop is triggered regardless of proximity to the build plate, and will only move the probe upward. This is what was happening when I first built my kit, and it is fairly easy to diagnose. If you issue a M119 gcode instruction, it will report "TRIGGERED" when the Z-probe is connected (regardless of proximity to metal), and "OPEN" when the probe is disconnected because the transistor turns off. Printrbot sent me a new probe, and my 3D printing journey was quickly back on track. Seeing how many other folks had experienced the same problem, I bought a backup probe.

Imagine my consternation when the "always moving up" issue surfaced again several months latter right before I was to give a 3D printing seminar at OSU's Beaver Bar Camp! Double that when connecting the new probe failed to solve the issue! Back to the drawing board of understanding. The M119 command would again showed "TRIGGERED" with the probe connected, but also "TRIGGERED" with the probe disconnected. A multi-meter check of the transistor showed that the probe was indeed sending the correct 12 volt signal when metal was present, but that the collector pad, which should have shown 5 volts without the probes signal present, showed 0 volts regardless, indicating the transistor must have failed and grounded out.

Replacing a surface mount transistor is probably not in most beginner's skill bucket, and PrintrBot offered to send me a new board despite my being outside of the one month warranty period for kits. I assume they are sending boards repaired with a better (biased) transistor, and that lots of people have had this issue since the original transistor was unbiased (like I know what that really means). I do know how to read schematics and BOMs (bill of materials), so I ordered the correct transistor for 14 cents (plus about three dollars shipping). I also know from past experience, that surface mount soldering is more art than rocket science, and after snipping away the old transistor and cleaning up the pads, quickly had the new one in place and the printer running again. I also took the time to print an enclosure and relocate the PrintrBoard to the side of the printer since I did not like always having to reach under the build plate to connect the power and USB cables and reach the SD card.

Ain't pretty, but it works!
New Print Enclosure.

So, here are my lessons learned:
  • There is pride in building something, even from a kit.
  • There is pride in fixing something, even when you had to have others help.
  • PrintrBot Simple Metals are still awesome printers, despite having some flaws.
  • PrintrBot as a company is awesome for how it is handling the problems.
  • Open Source / Open Hardware is awesome because even if you don't built it from scratch, you can certainly determine how it should work and diagnose why it isn't.

I also, with some tips from PrintrBot, learned how to print without the functioning probe, and although I scratched my bed several times attempting it, it never hurts to have a backup plan when the workshop is about to start:
  • Shim your build plate so that it is reasonably level. You can do this by finding which corners are the  highest by manually lowing the z-axis and using a piece of paper as a feeler gauge. Shim the low corners using paper or aluminum.
  • Modify your "start" gcode to remove the "G28 X0 Y0 Z0" homing commands, and change the "G29" probing command to the "G90" start from here command.
  • Check your current Z offset using "M501" and write it down for future use if you don't move or replace the Z-probe during repairs (you have to re-calibrate if you do).
  • Remove your Z offset using "M212 Z0" followed by "M500" (the opposite of what you did to calibrate it).
  • Use the software manual control to home X and Y.
  • Use a piece of paper as a shim and rotate the lead screw manually to place the extruder one paper width above the build plate. I do this with the extruder at working temperature.
  • Start your print, being prepared to pull the plug if it the extruder starts to grind into the built plate.





A Good Week for a World-Wide Maker . . .


A man from Australia checked in to share the progress on his model railroad that was inspired by my Dawson Station. He is using my backdrop photos, but has taken it a step further by using Google Earth footage of the mill to help plan the layout.

My "Message in a Chip" Instructable has had more than six thousand viewers in about two weeks. I've helped someone from Finland interface with the chips and sent a couple of them to a school teacher in Canada who wants to use them for a Mother's Day project for his students.

A lady (from Netherlands, presumably), contacted me about the magnification program I wrote for my niece. After trying it, she responded, "this truly is brilliant, really, to me you are a genius! You solved the problem i had been struggling with for the past 15 years." You can see how talented she is in this video:



And finally back on the home front, I made some progress on a soft-circuit prototype that I think will cut the cost of my workshops in half!

It was a very good week . . .

Raspberry Pi Cable Management

The Raspberry Pi is an awesome project, but I've had trouble implementing it into our after-school program, probably because I dread hooking everything up. I think I've solved that problem, and will share the broad strokes with you here.

People are always impressed when you tell them it is a $35 dollar computer, but what that gets you is just the circuit board. You are going to need the following:
  • A HDMI or DVI monitor. Smaller is better for portability. VGA is a no-go since the cable to go from VGA to HDMI is too expensive. Fortunately, you can get suitable monitors at the thrift store for $15 - 25 (make sure it is DVI, not VGA). Onboard speakers is a plus (Sonic Pi!). A suitable new monitor can be had for $100 (example: http://amzn.com/B004N5AH1U).
  • The appropriate video cable. Shorter is better. If you obtained a DVI monitor, you would need a DVI to HDMI cable like http://amzn.com/B000QYZZFK.
  • A USB hub if you have a Model B Pi, which only has two USB ports, and you want to add a WiFi dongle. A plus is if the hub can power the Pi (one less connection). You can see a confusing list of hubs at http://elinux.org/RPi_Powered_USB_Hubs. I've had luck with this Belkin Slim-line: http://amzn.com/B005A0B3FG
  • USB Cables. Shorter is better. Right-angle connectors is a plus. You need:
  • WiFi adapter. If had luck with the Edimax: http://amzn.com/B003MTTJOY
  • A power strip, especially if you are powering more than one Pi, and an extension cord depending on how close to the outlets you are.
  • 4 GB SD Card.
  • Protective case for the Pi. An opening over the GPIO header and camera connector is a plus.  http://amzn.com/B008TCUXLW
  • Oh, and lets not forget a keyboard and mouse.


So, depending on the monitor you obtain, you are closer to the $100 - 200 range by the time you are done. Still a bargain in my book.

I've set four of these up, each with a different monitor and USB hub, so I can't provide detailed instructions. For attaching the Pi Case to the monitor, I removed the monitor back and drilled matching holes in both the case and the back and attached them together with tie-wraps. Depending on the hub, you can use the same tie-wrap method. I've also used two-part epoxy, or double-back tape may do the trick.

Since you have to take the monitor back off to attach the case, you might as well see if there is room to run the USB power and data cables from the hub to the Pi inside. Drill holes large enough for the smaller USB connector and thread them through. 

Even with the shorter 3-foot video cable, you still have about two and a half feet too much. I just loop it around the monitor mount and tie-wrap it together.

The final detail I add is to wrap and tie-wrap the USB hub power cable and the monitor power cable together. Since I had different hubs, I didn't want to have to figure out which cable went with each set up each time.

So there it is. Your mileage may vary. Let me know what you come up with. In the future I'll detail my experience with MineCraft and Python on the Pi!