Creating the Smart Home Universal Remote

It’s been a while since I last made a smart home device, not because my home is fully automated or because there wasn’t a need for another device, but because I still live in a rented unit and didn’t want to to spend the time making and setting up custom devices that would need to be torn down in the future.

Well the other day I realized that I could build another home automation device without a long-term stationary placement requirement! Not too long ago I built voice integration into my smart home system using the Amazon Echo (check out the articles here). While this worked well for moments without ambient noise, it failed to work well during parties, while watching movies, or while listening to music on my sound system. Obviously I needed another way to interact with these smart home devices and the current method of pulling out a phone or tablet, unlocking it, then switching between apps just didn’t appeal to me. What I really wanted was a universal remote that could also talk to my smart home devices.

So I started designing and planning out the features that I would want in my smart home controller and it had to be wireless charged (because replacing batteries or being tethered to a wall is archaic). Here’s the requirements I came up with:

Essentially, the goal is to get it all placed inside of an enclosure like this:

universal-button

Here’s a video of the very early prototype’s functionality:

As well as a more in depth Hackster post:

https://www.hackster.io/anthony-ngu/universal-smart-home-remote-wirelessly-powered-896f3c

OpenSCAD (Required for the Maker)

Today after finishing the prints for the parts I need for my 3D printer model, I realized I had made a huge mistake. I hadn’t checked the measurements for the holes / rods and since I had gone with the US alternatives to the metric measurements, some parts just wouldn’t work. DOH!

This led to my next realization. The open source community provides the files in easily configurable SCAD files not Autodesk files or STL (STL would have been alot more difficult to edit although it can be taken and printed immediately).

In case you didn’t know, the beauty of SCAD files is that they are essentially programs. OpenSCAD is pretty much the open source standard for creating 3D objects before exporting them into STL format. It is a functional description Red and Yellow Cubes SCADlanguage that dictates the characteristics of the object that allows for reusable variables and one configuration file with the power to change your whole print library! Here’s an example that creates these two rectangular blocks:

If you have been reading my blog posts, I had started using Autodesk Fusion 360 and I thought it was one of the best programs for 3D modeling. Little did I know that the open source community didn’t hand out files consumable in Autodesk and the power behind SCAD files in the open source community is how easily the objects can be customized especially since altering a bunch of STL files would take serious time in Autodesk Fusion 360.

Solving Problems with 3D Printing Models

I recently stumbled upon a bizarre issue. I had this 3D model I had created in Autodesk Fusion 360 and it looked great, albeit strange due to the supports I added around it.

Model

It rendered properly on MakerBot Desktop, and I figured that I could just print it without issue and come up with something similar to my design and then perfect it later. Here’s what I ended up with:

lightbox_actual

Woah where’s the cavity? Why is it filling it in? I took a look at the print preview and how the slicer was splitting up the layers only to find that it had filled in the box!

rendered

I couldn’t figure out why the rendering showed it with a cavity but the printer was receiving instructions to fill it in. I thought that it might be the combination of Autodesk Fusion 360 and Makerbot Desktop software that is the problem, so I called them to ask about it. It turns out that it happens across the board from time to time with different 3D modeling software. Prints don’t necessarily turn out the same way they’re rendered, especially with more complex designs. (That’s how I learned to always check the print preview on a 3D printer. No one wants to spend a couple of hours on a wasted print.)

The Solution:

I heard about a repair tool that might help called Netfabb, so I decided to try it out and see how well it would perform. I can’t speak for the full downloadable tools, but I found out that they have a cloud service (https://netfabb.azurewebsites.net/) which will allow you to upload your STL files, repair them, and then download the fixed version (free as long as it’s for non-commercial use). This fixes some of the issues you might be seeing with your prints. (Remember to double check them through the print preview though)

It’s time! Building a 3D Printer: RepRap Prusa i3 Box Frame

I’ve thought a lot about getting a 3D printer but never felt that I could justify buying one for $300-$1000 when I would just be using to print small things here and there. However, lately I have been spending my spare time building devices in the IoT space rather than just the Web/Mobile space and have found myself thinking that it would be cool to prototype parts for them myself. After some research, I have decided to build a Prusa i3 Box Frame 3D printer instead of buying a PrintrBotMakerBot, or even one of the Kits with all the parts included. By building one and finding sellers for the parts myself, I hope to gain an in-depth understanding of the technology behind the current 3D printing revolution, the pros/cons of the various designs, and hopefully be able to add/replace parts for a potentially EPIC 3D printer. I know it is going to be a huge endeavor, but I look forward to building one myself!

Sources:

File:I3-box frame.png

Components:

  • RAMPS board mounted on an Arduino MEGA board
    I chose this as opposed to the Sanguinololu because I didn’t want to spend the time to solder parts together myself.

    • 1 extra heater / thermistor channel (three in total)
    • Optional SD card reader

  • 4 Pololu stepper motor controller boards
    (For this reason is it advised to close the potentiometer on each stepper motor controller by turning counter-clockwise all the way and then open the potentiometer about ¼ th of the way. When you discover one of your steppers does not provide enough torque you can open the potentiometer of that stepper motor controller at little bit further.)
  • 5 Stepper Motors (bipolar NEMA17 motors)- 2 for the Z-axis, 1 for the X axis, 1 for the Y-axis, 1 for the extruder
  • 3 mechanical switches for end stops
    At the start of a print job all three axes have to be moved to their starting or homing position. This is the zero position of the Cartesian robot. The axes can’t move any further than zero (they can’t move to a negative position.)

    • For the X-axis this should be the position where the nozzle reaches the left-hand side of the print plate.
    • For the Y-axis this should be on the back-side of the axis so that the print plate is moved to the back far enough that the nozzle ends up on the forward of the print plate.
    • For the Z-axis this should be the position where the nozzle barely touches the print plate. When printing the software will make sure the Z-axis is lifted a little before printing the first layer.
  • ABS plastic filament (since PLA is biodegradable and will supposedly dissolve in water, I would rather not have this) will need a heatbed

Building Tools:

  • Digital Caliper to calibrate the frame and axes (always remove the battery when storing & always reset the caliper to zero before making measurements)
  • Spirit level for general calibration
  • Plumb line

Software:

  • Arduino software: this application allows you to install the printer firmware onto the ATMega microprocessor. This installation is required each time you want to update the firmware.
  • Firmware: there are several firmwares available for RepRap printers. The firmware is installed on the ATMega microprocessor and handles the G-code instructions received from the PC. Part of the configuration of the printer has to be done in the firmware.
    • Sprinter: modern firmware with support for SD cards and easy configuration
    • Teacup: claimed to be faster than Sprinter, more elaborate configuration options
  • Skein software: the most popular application to slice STL files into G-code is called Skeinforge. You need this piece of software each time you want to print a part. (Alternatives are Slic3r or Pronterface which is also a host software)
  • Host software: there are also several host application available for RepRap printers. This application is responsible for communicating with the electronics of the printer before and during print jobs. It prepares the printer before starting a print job and then also starts the actual print jobs.

After a good amount of research, I have come up with the basics for my first build:

Bill (Rounded the price of each)

$44 – Combo Kit of Sainsmart Mega2560 + 5 A4988 Drivers + RAMPS 1.4
$27 – SainSmart Smart LCD Controller (SD Slot)
$45 – 5 NEMA 17 Stepper Motors
$22 – MK3 Aluminum Heatbed
$16 – 3 Mechanical Switches + Cables (for Endstops)
$9 – 2 meters of GT2 Belt + 2x 20 tooth Timing pulleys
$14 – 12xLM8UU, 4x608ZZ, 2x623ZZ bearings
$65 – J Head Mk V-BV .5mm Nozzle 1.75mm filament
$15 – 1/2″ by 2 ft. by 4 ft. Sande Plywood (This may be sub-par wood)
$14 – 3 x 5/16″ by 36″ round rod (smooth)
$2 – 36″ by 1/4″ 20 threaded rod

$3 – 36″ by 5/16″ 18 threaded rod
$3 – 36″ by 3/8″ 16 threaded rod stainless steel

$4 – #6 3/4″ SPAX Multimaterial Fastener (Screw) 2x(45 pc)
$3 – 5/16″ Washer Bag(25pc)
$3 – 5/16″ Hex Nut Bag(25pc)
$3 – 3/8″ Washer Bag (25pc)
$3 – 3/8″ Hex Nut Bag (25pc)
$292.74 – Total so far (Added the actual price and rounded at the end)

Altering the materials:

  • Frame (Got Home Depot to cut it in half and plan on using a Laser cutter from my local Garage to cut the rest out of the wood)
  • Smooth Rod, Threaded Rod, Nuts, and Washers (Cut these rods with a Circular Cold Cut Saw at my local Garage)
  • Printed Plastic Parts & Extruder (Used a friend’s 3D printer and one from my local Garage)
  • Various nuts and bolts (Waiting on the printed parts to finalize what is needed)

THE 3D Modeling Software: Autodesk Fusion 360

If you are looking to start working on 3D modeling/rendering Autodesk Fusion 360 Ultimate is an awesome professional grade 3D modeler which is pretty much free (until you start making money). On top of the ability to use 3D modeling software on your computer, it gives you the ability to use the Web to do the same thing or mobile applications! They have great tutorials and everything about your projects or profile is hosted in the cloud so that you can access it from anywhere. Just check out some of the awesome things that people are making!
AutodeskFusion360Gallery

Don’t be scared by the “free for 30 day trial” message. They aren’t going to limit the functionality of their software; it doesn’t require a credit card to sign up. They don’t want you to be paying money if you aren’t making more profit than the cost of their subscription.

AutodeskFusion360ForFreeIf you sign up and select the startup entitlement, you can use Autodesk Fusion 360 Ultimate free for one year after which you will be asked to start a paying subscription if you are making money or continue under the startup entitlement for another year.