Vera UI7 on Android….wtf!?

Are you a Vera user? If so, you’ll probably have heard complaint after complaint about Vera UI7 and how many users are not planning on upgrading despite it being released over a year ago. If you’re not a Vera user… stick around anyway!

A quick little background note, I have installed and configured a couple of Vera’s through work for clients who wanted to do alarm integration with it, so I have used both Vera UI5 and Vera UI7, but I’m not going to compare the two (not today anyway). Being a self proclaimed Android developer, I wanted to concentrate on what I see as wrong in specifically the app (though most of my suggestions probably apply to the web interface, and the Apple app as well).

Wasted Space

I see this time and time again on the forums. Everyone complains about the wasted space (both in the Web and Mobile UI). And I agree 100%! This is my BIGGEST pet peeve with the app, and I think it’s because it would be so simple to fix. Take a look at the screenshot below.


Everything highlighted in red is what I would consider a complete waste of space, whether its from excessive padding/spacing, or the laziness of using a linear layout where a relative layout would look much cleaner.

Using Too Much Space Per Device

Again we’re talking about wasted space that affects the overall layout of the app. I should note that I’m rocking a Huawei Nexus 6P to take these screenshots. For those of you that don’t know… the Nexus 6P boasts 2k resolution (1440 pixels by 2560 pixels) on a 5.7″ screen… so there’s a huge amount of screen real estate to be used here.


Despite the resolution and screen size I have, I can only fit 2 devices on the screen at the same time. Really? 2 devices? It may not seem too bad when you only have a handful of devices, but I have just over 30 devices on my controller. It doesn’t really matter if I sort by room or type, I still spent minutes scrolling to find the devices I’m looking for.

Displaying Useless Information/Controls

The Android SDK provides so many options to make things easier when designing a UI. Specifically I want to discuss the option to press and hold (or double click if you prefer that instead). Utilizing this in the Vera UI7 you could certainly clean up un-needed info and controls, specifically the “Relay” icon, battery stats, and the “Favorite” button. Instead, press and hold the device, it could then show you more relevant info (eg. that it’s a relay or battery life) in a separate pop up window and give you an option to set as a favorite in there.


It doesn’t seem like a huge amount of space, but because of the linear layout, you could easily get rid of a whole horizontal row and compact it that much more.

Why A Dedicated Row For Dimmer Percentage?

I don’t even know why I have to ask this… but an entire row used just to display the dimmer percentage? Really? Just put it BESIDE or ON TOP of the slider itself! Enough Said!


Missing Features In The Vera UI7 App

I shouldn’t even have to bring this up. This should be like app design 101. But why would you give features available in the Web UI that aren’t available in the app itself? And I’m not talking about third party apps here…


Specifically my thermostat is what bothers me the most. There are two features in the Web UI for thermostats that are missing from the Vera UI7 app. The first is the ability to do decimal setpoints. I can increase or decrease the set point in the Web UI by 0.5 degrees in either direction. I can also do it directly on the thermostat itself. But not in the app, it only changes in whole numbers.  The other missing option is the fan control, want to force the fan on from the app? Forget it, it’s not happening. Yet this feature is in the Web UI. Again utilizing a press and hold (or double tap) feature (see above), or even cutting the width of the existing buttons in half it would be extremely simple to add additional features.

Final Thoughts

Don’t get me wrong… the Vera is an amazingly capable controller especially at the price point, but the Vera UI7 app definitely needs a little refining around the edges. Take a look below for a comparison of the space that could be saved with only a few suggestions that I have provided (almost half the the number of pixels required to display and control the exact same devices). I want to specifically note that I did NOT resize ANY UI controls, I only removed the dead space and unnecessary padding everywhere. With a little more work, and some resizing of the UI elements, it would have been extremely easy to cut the width of a lot of the devices needed in half as well and even display 2 devices per row. If Vera is smart, they will really spend a little more time with the UI on their apps to make a much more pleasant user experience.



Rooting Galaxy Note 3 (and Other Galaxy Devices)

After upgrading my Galaxy Note 3 to Lollipop, I ended up losing my root access. That just won’t do, so it’s time to cover rooting the Galaxy Note 3!

What Is Rooting?

Root itself is a user account within Linux that has elevated permissions. It’s similar to an Administrator account when working with Windows. A root account has permissions to read/write/execute any file on the Linux/Android platform and is often required to run any sort of custom rom on the device. The process of gaining access to this account is called “Rooting”

What About My Warranty?

First off, I take zero responsibility about this. If you brick your phone while rooting your device, don’t come blaming me. If you have a Samsung device, even if you don’t brick it, it’s very likely you’ll trip Knox and your warranty will be toast as well (though the device can function normally after Knox is tripped, as long as you aren’t using Knox). Some people have had luck with warranty work after Knox was tripped, but don’t count on this.

Screw Warranty! What’s The Advantage?

There’s lots!

  • Running custom firmware/rom such as CyanogenMod
  • Ability to theme literally anything you can think of
  • Complete control of the kernel and CPU
  • Full application control (eg. removing all the default bloatware)
  • Overclocking/Underclocking
  • And so much more

Alright, I’m In, Lets Do it!

You’ll have to download the latest version of CF-Autoroot from the Chainfire site located here. Notice their disclaimer as well, they will not take responsibility for damage to your device, just like me!

You’ll also want to take care to download the appropriate version for your device. I have the Canadian version of the Note 3 so my model is SM-N900W8. Your Note may be (and very likely is) different. Luckily CF-Autoroot also includes Odin which is the software we will use to flash the files.

extract-cf-autorootNext we need to extract the CF-Autoroot files and Odin. This should leave us a folder with all the files we need to proceed.


Then its time to put our device into downloading mode. On the Galaxy Note 3, you do this by first powering it off then pressing and holding the Volume Down, Home button, and power all at the same time. You’ll see a warning that this can cause issues. Press the Volume Up key if you want to continue at your own risk (because I can’t say that enough right? :) ).


You should now see a giant Android with the text “Downloading…” as well as some device status info. This lets you know you’re now in downloading mode. It’s hard to see in the image, but my phone does have Knox tripped, which means no warranty. Plug your device into the computer you previous extracted the files to and let the computer install the drivers for your device.


Next open up Odin. You should see in the top right corner a Com port listed in blue. This tells us the device has successfully connected. Click the button that says PDA, then select the CF-Autoroot file. Odin should now look just like the image above. Hit Start and let Odin do its thing (your phone will reboot a few times at this point, just let it do its thing).


If all is good, you should see the message “RESET!” in Odin along with a green box.


When your device finishes booting up, head into the Apps section and you should now see an app called SuperSU. Congrats! Your Galaxy Note 3 is now rooted!

HTTP GET Parameters with Arduino

For a while now Kevin B has been working on writing a library for communication using the NRF24l01 radio with the Arduino’s. The idea is to use them for home automation purposes. But of course that’s only one piece of the puzzle… what good is home automation unless it’s also internet ready?


I took it upon myself to start looking into that portion, since it’s right up my alley (between server-side scripting such as PHP along with a database such as MySQL, and the API needing to working with Android of course).

Kevin’s thought was to use RS-232 between the Arduino and a Raspberry Pi or Seagate Dockstar. At first it seemed like a great idea until I started reading up on different methods to make this work.

Using Python + PHP

This seems to be the most popular recommendation, but I’ve never touched Python before. The idea was to have Python and LAMP running on a Raspberry Pi while connected to RS-232 and send/receive commands that way. Seemed simple enough, but boy was I wrong. Python boasts being extremely easy to learn for people new to programming, but after seeing a handful of examples, I didn’t even want to touch it. Maybe it’s from years of Java and over a decade of PHP, but my brain just didn’t want to even look at Python never mind understand it. NEXT!

PHP with Serial Library

My next thought was that there must be a library to do RS-232 communication through PHP alone. There were a few limitations that bothered me though. First, PHP is a server-side scripting language. It’s not really meant to run in loops forever waiting for serial data to be received in the same way an Arduino runs in a loop forever. Most web servers (such as Apache) come default with a 30 second max execution time, so if your script runs for more than 30 seconds the server will just terminate it anyway. There is also the issue that the Arduino resets every time you open a serial connection with it, which means even if you don’t loop the PHP script and just call it when needed, the serial data will be reset as soon as the script runs… not good. Kevin pointed out that this is due to DTR signal on RS-232 pulling the reset pin to ground, which isn’t an issue if using a Pro Mini without DTR connected, but in my case I had planned to use one of my Arduino Duemilanove boards as the base station (USB is built on board, so “it is what it is”).

Too Many Layers

Lastly since RS-232 doesn’t do any form of acknowledgements it means there would have to be another software layer in between to control and confirm data. At this point just to get the Arduino to talk to a web server, there was waaay too many points of failure for me:

arduino-pi-rs232The Simple Solution


Then it hit me… the route I should have been going all along. An ethernet shield. This will take care of nearly all the problems. The Arduino can act as a web server, and with a bit of programming we can have it serving data or receiving and processing data. Using HTTP response headers, we already have a form of acknowledgements built-in. And lastly, later down the road I could actually remove the Pi from the picture completely if I wanted and instead use my VPS located off site, or even control multiple houses from a single server without the need of separate Pis everywhere or being limited by the processing power of the Pi.


So I plugged my Ethernet shield into my Arduino, along with a battery source for power (my USB ports weren’t giving enough current to keep it powered on by itself), and off to the races I went.

HTTP GET Parameters with Arduino

While not secure by any means, HTTP GET provides an easy solution. The idea is simple. Commands can be sent from the Pi by a GET parameter in the URL to the Arduino, the Arduino can then parse this data and do whatever needs to be done and then output the result (eg. Success or Fail). The Pi can wait for the output/result, and then process whatever it needs to do (eg. informing the user of the result).


First we need to set up the network information for the shield. The Ethernet library does support DHCP, but its easier to use a static IP for testing.

Next we setup the ethernet server on port 80 (default HTTP port) as well as a string to store the GET parameter in.

The setup() function is pretty straight forward. Remember we can’t use pins 10 through 13 for any thing else as they are used for Ethernet. Unfortunately the NRF also needs some of those pins though, so I will have to look into using a SoftSPI library or figuring out how to use the SS pin (slave select) down the road.

Next is the loop() function. We’re going to check and see if there is a client trying to connect, if there is then we are going to send out a standard HTTP response header and start the processClient function

The processClient function is where the magic is going to happen. An HTTP request will end with a blank line, so we need to keep track of this so we know when were done processing data. We also need to find the “?” so we know where the HTTP GET begins. Once we found the “?”, we simple start looping through the characters one by one and store them into the string we created earlier: HTTPget.

Lastly we want to print the result onto the page, close the connection, and clear out our HTTPget variable so we can use it again on the next connection

 Putting It All Together

The End Result

The final result is being able to read HTTP GET parameters with Arduino. The Arduino will output it onto the page for the client (in this case a browser) to display. And the HTTP response header working perfectly.


Bias Lighting On A Budget

Over the weekend I decided to pull out some of my cheap strip LEDs and put them to good use with a little bias lighting!

What is bias lighting?

Don’t feel bad, up until a few days ago I hadn’t heard of it either! Bias lighting is the effect that can be achieved by placing a light source behind your television. Surprisingly, this has been around for a very long time but is only now becoming more main stream with things like the Phillips Ambilight+Hue system, as well as more and more manufactures placing some form of lighting directly in the rear casing of TVs. But there’s no need to buy a $2000 TV just for some lights (average price of an Ambilight TV at time of writing).

How does bias lighting work?

Well the short form is, you place lights behind your TV and quality supposedly gets better. But what’s really going on?


Take a close look at the optical illusion above. If you look at the grey bar in the middle, you’ll probably notice that the right side looks darker than the left side. You might be surprised to find out that the bar is actually the exact same shade all the way through and does not change. Our eyes perceive the right side as a darker grey due to the lighter background. This is essentially one of the things bias lighting does. By placing lighting behind your TV, your contrast should appear much more dominant.

The other thing it helps with is eye strain. During light changes our eyes adjust to either allow or block light. Ever notice that when you wake up in the dark and look at something bright, it can be somewhat painful? This is because our eyes iris’ are fully open to allow in the most amount of light possible. By adding light very quickly, our eyes do not have time to adjust and too much light is let in (which can be painful). By adding a consistent light source behind your TV, the light changes are less stressful on the eyes making a more pleasant viewing experience.

K, I want it now!

The great news, its super cheap and easy to do it yourself.


I started with taking my 40″ Dynex off the wall and laying it face down on the floor. If you like your TV, it’s probably a good idea to place something soft underneath so you don’t scratch the screen (this is my “cheap” TV so I didn’t care that much).

20150412_131330Next I took my strip LEDs (cool white of course) and stuck them to the back of my TV. I did actually measure, but of course I only measured once and one section didnt line up too nicely… luckily it wont be seen once back on the wall.

20150412_132621Now its just a matter of soldering the strip lighting together with some wire. In my case (see above) I don’t care a whole lot about the back of the TV so I chose to solder the lights after they were attached to the TV. If you aren’t a fast solderer or if you are worried about melting the plastic on the TV, I would suggest pulling the lights back up a little bit away from the plastic before soldering. Once you have them soldered, you of course want to test them before hanging the TV again. Using a simple 12v power supply directly to the LED lights should power them up.

20150412_135739Final step, rehang your TV and plug the LED lights in!


Does it really make a difference?

This is a trick question… beauty is in the eye of the beholder, and I’m certainly not a media expert. Personally, I do feel the blacks were blacker while watching a movie, but color wise I’m not so convinced that there was a major change. I did notice that my eyes did not feel as strained as compared to watching a movie in dark, which is a nice feeling when you’re just trying to relax. In the end, for the 30 minutes it took to complete and the $5 in supplies (thank you eBay) it’s totally worth it just for the “nerd factor” alone!

UPDATE – MAY 30, 2016: Ian Barlow in the comments below has posted a website for a much more serious DIYer looking for a more professional setup with bias lighting. Make sure to check it out here!

Setting up Raspbian on a Raspberry Pi

A while back I made a trade with a co-worker for an old netbook in exchange for a Raspberry Pi Model B+.  In case you haven’t heard of the Raspberry Pi (…what rock have you been hiding under!?!), its a small credit-card sized computer, originally designed as a low cost  and low power solution for schools to teach kids more about programming in languages such as Python. But because of its small platform and low cost, it quickly became very popular in the hacker community as well. My Raspberry Pi has just been sitting on the shelf for a little while now, I figured it was time to blow off the dust and power it up.


My OS of choice is of course Raspbian which is based off of Debian. I dont have any experience with NOOBs Installer yet and just opted for the Raspbian image (998MB) off the downloads section of Rasberry Pi Foundation website.


The image comes compressed in a zip archive, so youll need to unzip it once the download is finished and store the image somewhere easily accessible.

Loading The OS

The next step is to stick your SD card into your reader, I’m using a laptop with a built in reader (but a USB reader should be the same) and an 8GB SD card.

I will be using a utility called Win32 Disk Imager which I have used before, but conveniently this is what the Raspberry Pi Foundation also recommends.


Once downloaded, you’ll have to run the installer and do all the boring stuff… accept the license agreement, pick an installation directory and so on. To make it easier, make sure you check the box that places an icon on your desktop.

Important: To start Win32DiskImager, make sure you right click the icon and select “Run as administrator“. The software requires elevation to run and simply will not work properly if you don’t do this.


With the software now open, click the folder icon and browse to the directory where you saved the Raspbian image file. Select your Device as well (make sure you pick the correct drive, otherwise you will overwrite whatever is on that drive). When you’re ready to go, click the Write button and let the software do its thing.

 Power It Up


So we got the SD card loaded with the OS, pop that sucker into the Raspberry Pi and plug in your USB keyboard, ethernet cable, HDMI to your monitor or TV, and connect it to power.


Right away you should see Raspbian start to boot up on your screen. If you’ve never used a Linux distro before, this may look new to you, but its all normal ;)


Once loaded, the Pi will automatically start its first time configuaration. Highlight “Expand Filesystem” and hit enter. This is going to ensure that we are using the full size of the SD card. Next you’ll also want to change the password. Scroll down to “Change User Password” and follow the prompts to enter the new password (the default user is “pi“).


Next lets enable SSH for remote access to the Pi. Scroll to “Advanced Options” and hit enter. Then scroll until you have “SSH” highlighted and hit enter again to enable it. Select “Back”  at the bottom, and “Finish” to reboot the Pi.


When the Pi boots back up, look for a line that says “Your IP Address“, were going to need this to SSH into it. If you already disconnectd your monitor at this point, you can of course get the IP from your router DHCP client list, or by scanning with Wireshark.

SSHing into the Pi

If you’ve made it to this point, you should be able to unplug the monitor and keyboard from your Pi and put it anywhere you want. If you’re on Windows like I am, you will also need an SSH client. I recommend PuTTy.


To connect with PuTTy simply enter the IP address of the Pi that you wrote down earlier, and select SSH (Port 22) and hit “Open“.

putty-rsa-key-rasbianSince this is your first time connecting to the Raspberry Pi, you should see a security alert dialog explaining that the RSA2 key does not match what is stored on the computer. This is normal for the first time connecting, so click “Yes“.


Enter you username (default is “pi“) along with the password you set up during the installation configuration, and you’re now SSHd into your Pi. From this point, its up to you what to do with your Pi, but before getting too ahead of yourself I would recommend making sure everything is up to date by running the following command:



Bypass Installer Lockout on PC5010 (DSC)

I have a co-worker that picked up an old DSC PC5010 alarm panel (for free, you can’t go wrong right…) and since I had fun writing about the Honeywell Lynx Touch Backdoor, I figured I’d give this a go and see what happens. The problem… the panel had installer lockout enabled.


You can tell when a panel has installer lockout enabled because you will hear a distinct 8-10 clicks from a relay when the panel is initially powered up (see video directly below). When the panel is locked out like that it blocks the ability to default the panel back to factory (even by hard wire reset), so unless you have the installer code, you’re SOL…

My panel is locked out, am I really SOL?

Maybe not. We actually have a tool at my workplace called “The Instant Unlocker” with the sole purpose to unlock panels. It consists of a device you place on top of the microcontroller on your panel which will allow it to “decode the installer code” and unlock your panel. The problem? This device isn’t cheap ($170USD for the starter kit) PLUS you need to purchase “unlock charges” at $35 per unlock (sheesh, everyone has their hands in your pockets these days)! So scratch, I’m too cheap to pay that much!

So what is option two?

Option two involved 3 names I stumbled on throughout forums. Apparently there is was only 3 people at one point (not including DSC themselves) that were capable of unlocking these panels. These days, I could only find 1 of those 3 people with an “active” website (I use the term “active” lightly, the site is hosted on a subfolder and looked like it was made in the early 90s). That being said, the site has a HUGE amount of electronic security information on it, which is just awesome, feel free to check it out here. They charge $20 per board to unlock, which is reasonable. My problem with this place (aside from the outdated website) is they won’t do just 1 board, and have a MOQ of multiple boards to do unlocks for you.

OK so are you going to tell me how or what?

I’m sorry, I know I get carried away sometimes. The great news is, there’s an alternative to bypass installer lockout on the PC5010 (and possibly others) for FREE. Yes. FREE. All you need is a small piece of wire, and an IC clip.


The PC5010 has a microcontroller made for DSC alarm panels (DSC R333200666V202). Now finding a pin out for that chip was near impossible. Though I stumbled upon some information that pin 25 on that IC is a data pin. Someone else claimed that grounding that data pin on power up will make the panel think that its brand new. To my understanding, this works by blocking the microcontroller from being able to read the EEPROM data on power up, therefore reverting to a “like new” state in which it’s not locked out and the installer code is reset to default (5010). I figured the panel was no good as it sits, so might as well give it a try.

The process is simple. Connect your IC clip to pin 25 on the DSC micro controller chip, and connect the other end into any of the common ports by your zones.


Power up the panel (if it works, you should NOT hear the installer lockout clicking). Enter installer mode using the default code (*8 5010). This next part needs to be done fairly quickly. Disconnect the IC clip to allow the chip to write to the EEPROM again and change your installer code by entering 006 (for section 006 obviously) and typing your new installer code. Exit programming by hitting # a few times. You can confirm this worked by powering down the panel, when powering it back up, try your NEW installer code to get into programming.

Note the panel will still have installer lockout enabled at this point, you CAN disable it. To do this, enter Installer Programming again (*8 and enter your NEW installer code that you picked above). Enter section 991. It will prompt for your installer code again, enter it, then press 991 again. Installer lockout should now be disabled!

Here’s a full uncut video showing that this does indeed work.

Update January 30/2016

I can’t believe how popular this post has been, so thanks to everyone who has visited, and hopefully this has helped you in some way! As a small update, I would like to confirm that this exact same method also works on PC1555 boards as well!

Installing Android Studio

In one of my older posts, Getting started with the Android SDK, I made a mention of Android Studio and how it would be replacing the Eclipse ADT plugin. Well sometime since then, it looks like the switchover has indeed happened and its time for me to ditch Eclipse take a leap into Android Studio.

Downloading Android Studio

Now that there is only one option to choose from, Google has streamlined the download process significantly since my last post.


Simply head over to the Android Developer page, and click Download Android Studio. Do your usual reading of the license agreement (you all do that, right?), accept, and you should be downloading all 800MB of Android Studio goodness!

Installing Android Studio

Like I said, they’ve streamlined this process quite significantly. No more extracting, no more renaming folders, and no more copying files around into different folders. Its a single executable file. Double click, and BAM, you’re on your way! The installer is supposed to walk you through downloading JDK now as well, which was not the case before. I don’t have any experience on that part though… I already had JDK from the previous installation of Eclipse and ADT.


You’ll want to make sure you install all the components (Android Studio, Android SDK, and Android Virtual Device. Follow the rest of the prompts and you’ll be on your way.


Opening Android Studio for the first time

When you open Android Studio for the first time, there is additional configuration that it takes you through. The first will be whether or not you want to import existing Android Studio projects. If you’re just getting started then likely you’ll have nothing to import.


Next it will start to download the latest version of the SDK Tools, unzipping them, along with any additional components needed. The nice thing about this again was that its all streamlined… once it started going, it required little to no interaction from me… sweet!

Welcome to Android Studio


That’s it! Start a new project, or import projects from your old Eclipse workspace. Hopefully I will make some time to play around with it soon and post on my findings!

Temperature Sensing with DHT11 on Arduino

Ahhh temperature sensing, something so simple yet can be integrated into so many different projects. How about a temperature controlled RGB LED? Or perhaps an Arduino controlled thermostat? Heck, even a full blown weather station! Your imagination is the limit.

There are a few different choices when it comes to temperature sensing such as a completely water proof analog temperature probe to digital sensors. I will be focusing on the DHT11 which is a very affordable (~$1) digital temperature and humidity sensor. Its good for sensing 20% to 80% humidity within 5% accuracy, and 0c to 50c within 2% accuracy, which is more than enough for any indoor projects. If you want something a little more capable and accurate, the DHT22 is another option for digital sensors.



The DHT11 has 4 pins in total as seen above (with 0.1″ spacing – perfect for breadboards). VCC, a Data pin, and Ground. Pin 3 is not used.


Wiring it up is fairly straight forward. Start by connecting VCC on the DHT11 to VCC on your Arduino, and Ground to GND. Next connect the DHT11 data pin to pin 10 on the Arduino. Lastly, we need a 10k (Brown Black Orange) resistor in parallel to the DHT11 connected between the VCC and Data pins. This is our pull up resistor.

Now its just a matter of uploading our sketch and checking the output in the serial monitor

Now, with a little heavy breathing on the sensor, we should be able to see it change every few seconds (specifically the humidity… its a little harder to breath temperature changes), but they both will work!


Serial console with Arduino Pro Mini

As I was doing some debugging in the serial console with my Arduino Uno R3, something occurred to me… The serial console is absolutely invaluable for debugging, yet in my first Arduino post (Getting started with Arduino) I did not even mention it at all.

If you’re using the Arduino Uno or Duemilanove for example, the serial console is fairly straight forward as you just use the same USB cable you use to program with. These boards differ from the Pro Mini as they already have a Serial to USB converter on board.

However, when working with the much more affordable Pro Mini, there is no built in Serial to USB, so things get a little more interesting.

First things first, lets create a simple sketch that will setup the serial console with Arduino, and send a message to the serial console

Next, you’ll need to get your hands on a couple of things.


  • USB to TTL Adapter
  • Set of 4 female to female “dupont” cables

Both of these can be found on eBay for dirt cheap if you don’t already have them.

The Arduino as well as the USB adapter should have their pin out silk screened on to their boards, and should look like this

arduino-to-usbttl-pinoutDepending on which Pro Mini you have, you’ll want to wire them together using the correct voltage (3.3v or 5.0v are both available on the USB TTL adapter). In my case I have a 5v Arduino Pro Mini, so I will tie VCC to 5.0v, and GND to GND. If you have the 3.3v version of the Pro Mini, then you need to tie VCC with 3.3v instead. The data wires need to “cross-over”, so the RX connects to TX, and TX to RX. This way, when the Arduino is transmitting the USB TTL adapter is receiving, and vise versa. All said and done, you should have something that looks like this.


Still with me? Awesome! Now plug everything in and upload your sketch to your Arduino using your USBasp programmer, (hopefully you’re using Codebender) select your com port/speed and click “Open Serial Monitor”. With any amount of luck, you should see some text printing in your serial console!



Build your own Arduino starter kit

I have a friend that keeps asking me about micro controllers and costs associated with getting started. He has no prior programming experience, and doesn’t own a soldering iron. By the sounds of it, he’s a little on the fence (rightfully so) and isn’t sure whether he should try it or not. Totally understandable when starting with something new. So I figured hey, lets break it all down and see just what it would take to build your own Arduino starter kit!

Before I get into the actual costs I just want to point out that while previous programming experience is handy when it comes to Arduino, its not at all necessary! The Arduino community is literally huge (250k+ members worldwide, 2 million posts) which means finding a sketch and wiring examples that do exactly what you want it to do (at least when you are first getting started) is going to be very easy. My recommendation when starting out is to concentrate on small projects with the thousands of ready made examples (blinking, fading, controlling, etc.). This will allow you to familiarize yourself with the platform (uploading, debugging, etc.). Once you have a solid base is when the real fun begins and you can let your imagination run wild!

Its also important to remember that Rome was not built in a day. You will at some point be stuck in a position where you have to get your hands dirty and start customizing the code yourself. And while I am by no means an expert on the subject, I consider myself a problem solver so by all means leave your messages or questions in the comments and I will definitely try to help out as much as possible!

Build your own Arduino starter kit costs

This list is just my personal recommendation. Feel free to customize it, or add/remove as you wish (or leave suggestions in the comments). My goal is to keep the kit under $20CAD ($15.87USD… man, our dollar sucks right now), so my prices will be based mostly off eBay. You of course can purchase from wherever you like, but prices will vary obviously.

Arduino Pro Mini ($2.77)
This is the Arduino board itself, the heart of all your projects. It has the atmega328 chip, comes in 5v (16Mhz) or 3.3v (8Mhz) versions, and at this price its almost cheaper than buying the atmega328 chip by itself!

USBasp Programmer ($2.24)
The Arduino Pro Mini doesn’t contain on board USB circuitry, so we need an external programmer to upload the sketches.

USB to TTL Adapter ($1.03)
Without on board USB, we also need something to debug through serial, so a USB to TTL adapter becomes necessary for debugging and communicating through serial

Assorted LED Pack – 100pcs ($1.25)
No project would be complete without some sort of flashing lights. You can find packs of 100 assorted colors of 3mm LEDs for cheap, usually containing 20 of each color (Red, Green, Blue, Yellow, and white)

Assorted Resistor Pack – 600pcs ($3.62)
Resistors are tricky… you never know what values you will need until you know what voltage you’re working with and what the limitations are of the devices you plan on using them with. Best bang for your buck is to buy a kit of assorted. You can find kits that contain 20 resistors of 30 different values.

Male 40 pin Headers – 10pcs ($0.99)
They come in handy making your own “adapters”, for example an easy to use programmer cable.  Some devices need headers soldered on before you can use them as well, so its safe to grab a couple of these since you’ll need them sooner or later.

Mini Breadboard ($0.99)
You’ll need somewhere to start wiring up your projects. Since the Arduino Pro Mini is so tiny, a mini breadboard will usually cut it for small beginner projects, but it will only cut it for so long so a full sized breadboard should be on your “not so beginners” parts list.

Breadboard Wires  (40pcs M to M – $1.74, 40pcs F to F $1.42)
You could have every part in the world, but unless you have wires to connect everything together you wont make it very far. Male to Male are the more important ones, but Female to Female have their uses as well.

PN2222A Switching Transistors – 10pcs ($1.25)
The Arduinos do have current limitations. About 20mA per output, and 200mA total. If you draw too much current from an output pin, or from all the pins combined, you risk blowing up the whole board. Transistors (and MOSFETS) will let you draw higher amounts of current directly from a power supply while only using a small amount of current from an output pin to control it. The PN2222A is a general purpose transistor that can handle up to 40v and 600mA, so its a good place to start for low current applications (eg. LEDs).

Character LCD HD44780 ($2.51)
An LCD is cool to start learning with. They are super easy to wire up, and I mean come on… its a friggin’ LCD! It doesn’t hurt to have one in your starter kit for their affordable price.

And there you have it, it’s simply that easy to build your own Arduino starter kit – a very basic starter kit – that will have you flashing or fading LEDs, building very basic LED cubes, and writing to LCD screens in no time. For a grand total of $19.81, you’ve got nothing to loose!! Sweet!