Easy Kitchen Backsplash

 

before 1

after

After our first kitchen backsplash experience, my mom wanted to do something similar. Our first project was very involved and required special tools, etc. She wanted to do something simpler. We stumbled on a solution that requires no special tools. The only tools we used were a pair of ordinary scissors.

While roaming the big box hardware stores, we found some neat peel and stick vinyl backsplash tiles.  These were perfect for the job at hand!  They have faux glass relief over printed stones which looks so much like a piece of glass that you can’t tell the difference until you touch it. They only come in two patterns of the same colors.

Tip 1: Get as much variety as you can  in the sheets. We only had two options so we got half with the first pattern and half with the second. 

We also grabbed a few faux pressed tin sheets along with the plastic edging and a corner piece.  We used this behind our stove in our house. It is really easy to install and looks great. It’s also fairly easy to clean as well.  We didn’t realize how useful the edging pieces would be. We ended up edging the entire top and bottom of the backsplash with them.  We also grabbed some silicone and spray adhesive to stick things to the wall.

supplies

tiles  glues

The first step was to match the tiles with the granite my mom has in her kitchen.  This was easy since these big box stores carry a variety of granite. We just held up the tile to the samples of granite and picked what we liked best. The tiles we chose look like a better match in person, for some reason the white balance on my camera ended up making the tiles look more blue than they really are.

matching

When we got back to the house, we started right away with the stove area. My mom wanted to cover the side wall as well as the back with the faux pressed tin. This worked out well because the side wall was exactly as wide as one of the tin sheets.  We used the remainder of the Simple Mat but could have just as easily used the silicone to stick this to the wall. We cut some of the edging with scissors (no special tools required, yay!) and glues that with silicone to the top and front edges of the tin. In the back corner, we used a corner piece made specially for this material. It makes a smooth transition in a 90 degree bend. The back wall was a little wider, so we ended up using more than one sheet of the tin. We used some more edging on the right-hand side to clean up all the edges. Here you can see the finished product. It looks really nice!

stoveArea

We then placed a few sheets temporarily on the wall to see which direction we liked the tiles to run. I thought vertical tiles gave the illusion of more space.

determine orientationThen came the hard part. The tile sheets only come in two different patterns.  In order to make the wall look random, we had to do some cutting.  I’m not sure if vertical tiles made this part easier or harder. I remember at our house, this was the most time consuming portion. We spent just about the same amount of time randomizing the pattern in both cases, but installation of these tiles was WAY faster.

in progressSince the tile sheets come in a specific pattern of a row of thick tiles, then two rows of thinner ones, we split each sheet into 4 pieces.  This allowed us to mix and match not with only the two options we were given, but now we had 8 options to mix and match.

Tip 2: When cutting these sheets, be sure to cut in the center of the grout area to allow yourself the ability to cover overlap and make the grout look seamless.

Tip 3: Before you press the sheets to the wall, spray the wall with adhesive.

Since the sheet didn’t cover the whole wall, we had to add a portion of another sheet on top of the bottom row. The pattern of stone lengths on the sheets forced us to arrange the  in a certain way. We ended up using more sheets than we would have liked because of this. We also ended up replacing a single row of stones, and even in some cases individual stones to keep the pattern random.

To keep all the grout looking seamless, we used metallic sharpies in some of the gaps between the stones before pressing the stones to the wall. Since the grout on the sheets is a silver color, we used the silver Sharpie, but we also ended up using both the gold and bronze in certain areas as well. Hence:

Tip 4: Use Sharpies to hide where the grout doesn’t overlap.

sharpies

After we finished both walls, we wanted to hide the cut stones at the top and the edges. For this we simple bought a lot of extra plastic edging pieces for the faux pressed tin. Being the same as what we used by the stove, it really tied everything together well.  We simply used silicone adhesive to glue these in place.

Tip 5: Use the plastic edging to tie together the whole look.

edging detail

Overall Verdict:

The makers of these tiles did a good job. When you press the grout from one tile to another, the seam disappears almost completely. Also, the stones are made of a flexible rubbery material which is easy to cut with scissors.  This was really easy to work with when we did our second row of these sheets because we had to cut some stones in half. It took no time at all.  I would liked to have seen a little more variety in the stone patterns, but overall it worked out well for us.

I have to say that while it took us a while to do this job, it was nowhere near as tough as the when we used actual tile and grout. I wish I had come across these sheets earlier!  Randomizing the pattern still took just as long, but once you stick the tile on the wall you are done. There’s no grouting to deal with which means no mess or extra work. We also don’t have to seal this material which is usually done after grouting to prevent staining. This stuff is waterproof since it is on a vinyl sheet so it protects the wall just as much as real tile.

Overall, I enjoyed this project MUCH more than real tile. It was cheaper, cleaner, and took fewer steps. The end result looks great. I would argue that for a novice, this is better than using real tile because the grout lines and stones are perfectly straight.  Even using the stones attached to mesh sheets on our first kitchen makeover left room for the stones to wiggle and inconsistent grout widths. This product wins in almost every category so far. If I remember, I’ll post an update in a few months to a year to let you know the long-term results.

 

 

 

 

 

NAND to Tetris Free Online Class at Coursera

If you are interested in electronics and haven’t heard of this class, where have you been?  This class is a great introduction to how digital electronics works and for the first time (as far as I know) they’ve opened it up to the public online. It is free to audit the course and they just started March 14th, so it is still Week 1! Here’s the introduction video for the class which gives a great overview of it.

So why is this class so great? Well it starts off with a single piece of electronic digital logic, think of it as a 2×1 lego piece.  Then you use connect some of these together to build other more functional lego bricks, like a 2×2 brick, then a 2×4 brick, etc. Eventually you end up building your own Central Processing Unit (CPU), then you learn to code it in Assembly language (the lowest human-readable programming language),  then you build up to eventually a full blown computer with keyboard and monitor connections that you can write video games like pong, tetris and slightly more complicated things. That’s about as close to starting from scratch as you can get.  The real name of it is “the Elements Of Computer Systems” but everyone called it “From NAND to Tetris in 12 easy steps”.  NAND is the type of digital logic gate that you start with.

I know it  sounds super hard, but it isn’t!

This class is so well laid out that you can do it in your spare time.

The first half of the book is on their website for free, but you can buy the book for about $30. That’s one of the cheapest textbooks I know of, and it is a really good book to have for reference. The Massively Open Online Course (MOOC) is free to audit, but if you want an official Coursera certificate showing you took it, it’s only $50 or so. Some workplaces let you use that for Professional Development credit. This is some of the most fun PD credit I know of. If you aren’t familiar with MOOCs or Coursera, imagine hundreds or even thousands of people all around the world watching videos that are released about once a week with a lecture and homework assignment. Everyone can communicate in an online forum to help each other out. You can even get your work graded (in some classes). Many courses are free, some you have to pay for. Coursera is one of many places offering these kinds of classes. Heck, MIT and other universities have been posting their courses online for free for years now. MIT will let you earn a fancy certificate too (for a cost).

My tips:  I used Logisim to build circuit and simulate the logic gates, but you don’t have to. All the software you need is available for free on the class webpage. If you are familiar with FPGA devices, you can build this computer for reals on a cheap FPGA development board like this guy. Either a Xilinx board with Vivado to build and simulate or Altera boards (<– warning, I’ve never used this one before) using Quartas software to design and simulate it should work. This little CPU isn’t super complicated. I warn that actually building it on one of these boards is no easy task, you’ll have to design stuff that is not covered in the class to get it to work with your particular board.

Join the class now before they get too far ahead!

How to: FabTinyStar Programmer

actual boardThe FabTinyStar is a small ISP programmer for AVR chips started at FabLab Amsterdam. You can use it with AVRdude or even from within the Arduino IDE. It is a super cool little USB programmer for AVR chips. You will need something to program this programmer with, so if you happen to have an Arduino that uses the FTDI chip for serial communications, you’re in luck because you can use that as a programmer (just match up the pins on the connector headers) to get the  FabTinyStar up and running. Typically a FabLab has one or two “professional” AVR programmers, then each student builds their own FabISP or FabTinyStar.

The FabTinyStar has gone through multiple revisions, so I’m showing only what I have tested and got working. Zaerc has a good multipart tutorial on FabTinyStar version 12 as well.

Why would you want to use this over the regular FabISP?

  1. Fewer parts (no crystal)
  2. No need to desolder or break off any jumpers after you burn the FabTinyStar Firmware, simply burn the fuses and you are ready to go
  3. It has a switch to power the target board (no need to use external power for the target board)
  4. It has an LED to show that it is connected and powering the target board
  5. It has an LED to show it is programming correctly. This little bit of feedback is awesome for debugging!
  6. The neat-factor of having an 8-pin awesome custom AVR programmer.

To build this device, you can download all of the EagleCAD files and Firmware here. You can use a variety of PCB fabrication techniques to make your own boards. I’ll leave that part up to you. I milled my PCB but you can etch it just as well.

Below I’ve shown the header pinouts for the ISP pins. I recommend you leave off the bottom two pins of the header (USB D+ and USBD-) because if you solder them on there, you can’t use the regular 6-pin header for programming or connecting up circuits.
fabTinyStar-013_lay

Firmware:

In Windows machines, I install the Arduino IDE which will come with AVRDUDE. Search through the installation folders of the Arduino IDE to find the AVRDUDE executable program.  I then typically use AVRdudess or another AVRDUDE GUI to program it using the following settings:

 

FabTinyStar Drivers:

Before using the FabTinyStar, you must install the appropriate driver in Windows. There are a couple of good guides out there (namely the one on Adafruit) but the one that is closest to the FabISP you just built is here at Sparkfun. Following that guide will install the drivers. To check this driver is recognizing correctly, open the device manager in windows and confirm that “libusb-win32 devices–>USBTiny” appears (and disappears when you remove the device).

When using the FabTinyStar, you might need to flash the target chip multiple times, or you might get a “verification error.”

Installation was simple, but not being super familiar with windows, I hit a couple of stumbling blocks. Here are the steps I got to work on Windows 7.

  1. Download the Windows driver for USBTiny (which the FabISP is a type of)
  2. Unzip the folder to the desktop or somewhere accessible.
  3. Plug in the FabISP
  4. Start–> control panel–> hardware and sound –>Device Manager
  5. Once here, right click on the FabISP icon in the “unknown devices” tree
  6. Select “update driver”  or something to that effect
  7. Select the option to manually select the folder the driver lives in and locate the driver to install it.
  8. Also, install the ATtiny hardware files:  Download them here, and unzip them into your ~/My Documents/Arduno folder.
  9. I also manually added “FabISP” to my programmer.txt file.  You *could* just select “USBTiny” in the Arduino Tools–Programmer menu, but I wanted mine to say “FabISP”.
  10. So when you are ready to test this, open the Arduino IDE, select File–>Examples–> 01Basics–> Blink
  11. Change the pin number on line 10 to the one you LED is connected to (Arduino doesn’t use “PORTB.1” for instance, so look at the map at the bottom of this page to see what number your pins are.  You can use that type of addressing if you want, but most Arduino programs don’t).

 

Using this programmer with custom-built AtTiny circuits in Arduino.

The following is a quick summary of this page at HighLowTech to serve somewhat as a mirror, but mainly as a cheatsheet on how to setup and use AtTiny chips with the FabISP in theArduino IDE..

You can use these programmers in the Arduino IDE to program your boards directly, without using the Arduino bootloader on the target chips.To use Arduino IDE, you can install the AtTiny board library from HighLowTech. I don’t use the built-in function for add-on in Arduino’s IDE because it has never worked for me on any machine I’ve tried it on. Typically, I find it easiest to simply download the Arduino library for 1.6.x  (here’s my copy as a backup) and install it manually by copying the “attiny” folder in the zip file to my arduino’s hardware preferences folder. On my machine this is the path: C:\Users\ALaptop\Documents\Arduino\hardware. I had to create the “hardware” folder inside “Arduino”, but then I just restarted the Arduino IDE and could see the change had taken by finding Tools–>Boards–>AtTiny.)

On Mac or Linux, find the Arduino IDE installation and copy the library to the hardware folder.

How to use this new library:

Restart Arduino (or open it if you hadn’t already) and select “Tools–> Boards”  and now you should see a AtTiny entry.   I’m showing what it looks like in Arduino 1.6.4.  Different versions might look a little different, but you should be able to get the same results pretty easily.

board

Once you select “AtTiny” as the board, you will see different options under “processor”.  Select the chip you are using here.

Chip

 

After selecting the particular chip, you can select the clock frequency and whether it is internal or external. If your design uses a resonator or crystal, it is external.

clock

Also, when you select “Tools–> Programmer” you should see “USBTiny” listed.  Select that as well.

programmer

The first time you connect a particular AtTiny chip to this setup, you’ll need to burn the fuses.  The way to do that is plug your USBTiny into the computer, plug your target board (your custom design with an AtTiny) into the USB Tiny, Select the appropriate Chip, Board, and Crystal.  Then select Tools–>Burn Bootloader.”  After this is done, just the target board is ready to accept the arduino code you write.

bootloader

Not all functions of arduino are possible since the AtTiny series chips have fewer capabilities, but most stuff works fine. If you want to drive servos easily with the AtTiny chips, you can use the 8-bit servo library found here

Keep in mind the following pinouts for the AtTiny 44 and AtTiny45 (or 84/85) when writing your arduino code.

ATtiny45-85

ATtiny44-84

Photo Credit: All glory goes to High-Low Tech

Testing it out:

echoHelloWorldFlashy

You can build a simple multi-use board I made as an example.  Download the EagleCAD files and Arduino code for that project here. I originally made the PCB and the code for my FabAcademy page. Check those links for more detailed info.

Open the Arduino IDE and start a new project. Paste the following code in it and set it up to program an AtTiny44 with a 20MHz external clock. PLug in your FabTinyStar, connect the example board and compile and download the code.:

 

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(7, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Book Review: “Hot Seat” by Dan Shapiro

Since we placed an order for the GlowForge laser cutter (more on this in another post), we got a pre-released copy of the Dan Shapiro’s upcoming book on Startups and Entrepreneurship “Hot Seat  The Startup CEO Guidebook” Dan is the CEO of Glowforge and has a string of successful startups behind him such as Ontela (now Photobucket), Sparkbuy which he sold to Google, and Robot Turtles which is a board game designed to teach children as young as 4 years old about programming and logical thinking which he did as a kickstarter and which is now available in Target stores.

“Hot Seat” is basically a cheatsheet on startups broken into 5 parts. Founding, Funding, Leadership, Management, and Endgame. Dan explains his history and cites specific people and examples of practices that will help you navigate the dark waters of a startup.  The first section of the book is all about Founding. There are some great tips here I wish I used in my previous business ventures. Founding is a dirty and scary thing for every startup. You want to think about contingencies from the start. Dan recommends to do this before you even incorporate.

In the first section of the book, Dan gives advice on everything from who should be a cofounder to even providing a template for a decision matrix on what projects your startup should focus on. He also gives great examples of how shares might be calculated for different types of cofounders, answering the question of “How much is each cofounder really worth?”.  These kinds of things are what make this book awesome. Dan also freely gives advice that I’m sure he learned the hard way. Some of this advice is common sense, but there are plenty of gems you’d only learn from a good mentor.

Each section has several chapters in it. Again, the information comes straight from Dan’s personal experience. For the Funding section, there are slides directly from the pitch deck of some of Dan’s successful ventures.  He breaks down what to put on each slide, and how to best present it. Arguably, this could be considered style more than anything else, but with a record such as his, and the fact that he now is an investor in other startups I’m going to go out on a limb and say it’s more than just style. There ae several other chapters in the funding section that explain the differences between different types of investors and what each of their motivations are, which is what you need to keep in mind if you are pitching ideas to them.

In the Leadership section, he discusses the different duties of a CEO, and how to cultivate a good company culture. I think anyone applying for a new job or even considering changing jobs would find this section interesting because you can tell a lot about how day-to-day interactions reflect the culture. The CEO is the taproot of the company’s culture and is the archetype all the other management will follow. It says a lot about a company if everyone is constantly gossiping…

While I’m not a CEO right now, I am in a newer management position at my full-time gig. I found the management section of this book very helpful. I’ve memorized some of it as one-liners that I can repeat to myself to help me learn this new set of skills. My favorite and most obviously useful advice in this section was on “playing the CEO ‘Inspire’ card”. This section also gives great general tips on hiring, whether you should buy or lease furniture, how to deal with a board of directors.

The final part of this book discusses the Endgame. What are the different types of acquisitions? Who do you negotiate with?  It stresses how important it is to have done things correctly and thoroughly from the beginning of the startup.  Technically, the entire goal of any startup is to either be bought or to reach critical mass and go “Google” on the market and end up buying other startups. Either way it is important to know what to expect. Dan gives the example from his previous company Sparkbuy’s acquisition by Google and breaks down the different parties involved and somewhat what to expect in negotiations.

Overall, I really enjoyed Dan’s book. It gave more gritty details than any of the other books on buiness and startups I’ve read. The devil is in the details and while this book stops short of giving you legal advice, you get insights on how things are supposed to work.  Personally, it reaffirmed my intuitions on getting a business started correctly and having contracts in place for the “big day”; be it an exit, acquisition, or other huge event for you or the company. The book will be available in paperback May 2015 and

Playing with Google Apps Scripts

OCRcoverGoogle Apps Scripts (GAS) is an interesting tool that you can use to automate tasks using functions built into Google’s powerful APIs.  Personally, I couldn’t find a ton of info on the syntax and what-not for the language, but it seems to be javascript with some caveats. (It doesn’t like linebreaks in the code, you use only a single quote for Strings, and it will ignore newline characters in strings “\n”).  Oddly though you can’t use the javascript examples from Google’s developer API examples directly (or at least I didn’t have any luck).

As an example project, something I’m working on required me to read the text out of an image then highlight keywords. I broke this down into three steps.

  1. Acquire an image
  2. Use Optical Character Recognition (OCR) to read text
  3. Search and highlight keywords

Background:

I’ll start with giving you access to the finished project code. To run it,  you will have to “File–>Make A Copy” of the project. Then follow the steps on this webpage word-for-word to Activate the DriveAPI and developers console and you’ll be fine.  Sometimes the developers console site doesn’t want to load, just keep trying it until it works. When you want to run the code, you click on “Publish–>Deploy as web app”. The first time you’ll have to set who you will allow to have access to the app. They will also have access to your google drive if you allow them to execute as your account so be careful. Once you’ve set this, click “Deploy”.  Then you’ll get the link to the web app.  The first time you run it you will have to give it access rights to your google drive.

The Guts and Explanation:

OcrTestForm

Luckily while searching, I stumbled across the blog of Amit Agarwal which if full of great example code.  For step one, the simplest solution I could find was his code example that uses a custom HTML form upload an image to your google drive account.   This might seem like overkill. Why didn’t I just use the fileID of something already in my google Drive?   Well, in this particular application, the user might be uploading multiple files from a camera on a mobile device. This form setup seemed to be a simple web-based uploader which gives me complete access to the guts of what’s going on.  This will help me get the fileIDs easily for different files.

For the second step, the OCR, I had attempted multiple times and methods for getting an Android native OCR library to work. Every tutorial I found was highly dependant on the version of Android SDK or Eclipse I had, or I would just hit a dead end when I tried to compile. Plus, those would only work on Android, not every device. I really wanted a web app. That’s actually how I stumbled upon Google Apps Scripts again.  I had played with it a bit in the past, but this time, after finding some great example OCR code from Amit’s website, I found GAS much more accessible. I added this code to the HTML form example from Step 1 above and tweaked it a bit.

In the original OCR code snippet the script reads an image, then creates a Google Doc with the image followed by the text that it recognized. This file is saved this into the root folder of google drive.  Since the uploader code (from Step 1) saved its picture into a subfolder, I made the OCR code save into that same folder.  The way to do this is to add a “parents” ID tag to the properties of the OCR file.  Since I already had the folderID from the uploader code, that was pretty easy to sort out. This was not super easy to figure out. As I said, I couldn’t find a lot of info on GAS language and this was one of the things that took me a while to find. By looking at how Google’s other services save a file into a subfolder, I was able to do the same thing in GAS.  You can see the results below.

OceTestDriveFolder

I tweaked the form code to print out the URL of the newly created Doc file with the searchable text.  I couldn’t figure out how to get logging to work in GAS at all.  Every time I tried to run something that should print to the console, a console would briefly appear, but disappear before I could read anything. So I just stuck with having the form print the URLs. Then I could copy and paste them into the address bar to visit the document.

The third step was searching for keywords within the text.  Again, someone else had done the hard work for me.  I simply tweaked the code and pasted it as a function into my script.

To test the code I printed a page of public domain POE-etry and took a picture of the page with my cellphone to simulate how a user might do.  To make sure that I’d get a lot of hits on my text search, I hardcoded the keywords for the search to be the rhyming sounds in the poem.  In this case –oor and –ore.  Then I uploaded the image to my Google Drive using the HTML form. After a couple of seconds (it takes a couple of seconds to upload) all I needed to do was open the newly created OCR DOC file and see how well the OCR worked.

As I said before, the Google Drive’s OCR process pasts the image into the file, then translates the image to text. Even in normal room lighting at night time it was really good at translating the text and easily searchedand highlighted the keywords I hardcoded. Here’s the resulting file.