Shift Register Board Rev C – Vias everywhere!

Hindsight is 20/20, that’s for sure.

I’m currently waiting for Revision B of my 74HC595 Shift Register Boards in the mail. I’m eager to get them because they’re my first manually routed boards so I want to see if they turn out right. The revision is a minor one with the only real changes being a connection that was missing in the first revision and breaking out the Output Enable pin.

I plan on using 3 or 4 of these boards for an update to the Light Show. I only checked yesterday to see if I had enough shift registers. I don’t. I started looking around for some more and I quickly realized that using the SMD version of the 74HC595 would have been cheaper. That’s why I’m looking at another revision already…

SRrevCI’m not sure how likely it would be for me to get these made since I already have the new boards coming in but I was really excited to start this design anyway because I haven’t use SMD components very much. The only board I have used SMD components is my AMS1117 board, but the circuit was so much simpler… and at the time, I was new to Eagle so I just used the auto-router.

It’s an interesting adjustment for me to have everything start on the top layer of the SMD ICs. I ended up adding a lot of vias. There are vias that are only there to make a gap for the fill to reach some of the pins. I’ll have another go at it to try and clean some of that up.

Since I’m still new to Eagle, I like to go to websites like Adafruit and browse the boards to see how they’re laid out. I’d like to make my boards as pretty as theirs. That’s one of the reasons I’m trying the rounded corners again, which I didn’t do in Rev B for whatever reason…

Thanks for reading! If the mail service is good, the new Rev B boards should be here in a couple of days. Fingers crossed!

Creating a VB Interface for Arduino Tutorial Website Update!

4When I put up the “Interfacing Arduino with Visual Basic Tutorial” website, there was a lot of pressure from people to put up information on this topic so I didn’t put a lot of effort into the website itself. After some thought, I decided to give the website a makeover that would make it both nicer looking and easier to learn from. You can check it out at Let’s take a look at what’s new.

New Name. New Colors. New Layout.

2A lot of small changes have added up to a great redesign. The tutorial name has changed to “Creating a VB Interface for Arduino”. The new website feels a lot warmer with a blue and white color scheme, with a little gray too. I’m using Google Code Prettify to display the snippets of code on the website, instead of the screenshots of the IDE from before. The tutorial is now split up into pages so that there are less large walls of overwhelming text.

The Menu

1The menu gracefully slides out to display an index of all of the pages on the website. As you’ll see, it’s a lot easier to find certain concepts used in the program. The idea is that, if you’re not willing to go through the entire tutorial, you can easily find a certain concept that you’re looking for to implement in your project.


3I’m really excited to add a couple special features to the website. Some of the tutorial pages have quizzes at the end of them that ask questions that can be answered from what was talked about in the code descriptions. I hope you have fun with it.


The other special feature is Bookmark. Basically, if you plan on going through the entire tutorial but can’t do it in one sitting, with the Bookmark feature enabled, all you have to do is bookmark the homepage of the website instead of bookmarking the page you’re on. When you revisit the homepage next time, you’ll get a little notification letting you know where you left off.

I was thinking of other options to add to the website, but I think this one feature is enough for a site like this.


Please let me know what you think! Leave a comment or send me a message!

Thanks for visiting!

Eye on the power

I added in the battery level code from into my ESP8266 program and it works like a charm. The code uses a reference voltage in the Atmega328p microcontroller to get a reading of Vcc going into the ATmega328p. For the ESP8266 project, that would be the 5v output of the AMS1117 board. In my testing with the dead-ish battery yesterday, I found that the system started to fall apart once it dropped below 5v. The LCD backlight would start flickering and the sending of data seemed to fail more often.

I already have the system sending me emails if it gets bad values from the DHT22 sensor or the ESP8266 fails at sending to both ThingSpeak and my webhost in the same cycle. It was easy enough to add a little more code so it would send me emails at certain voltage levels. I’ve got it sending emails to me when it drops to 5, 4.8, 4.6, and 4.4 volts.

Screenshot_2015-01-24-00-02-03I got this email when I retried the battery for the third time after bringing it in from outside in yesterdays outdoor trial. If I give the battery a rest, it’ll be able to power up the system again but it’ll die after a short period. The lowest threshold email I got was for 4.6v before the battery died again.

I don’t expect this project to go battery powered again but this is definitely something I’m glad I found and I hope it finds a place in other projects.

At this point, I feel like the project is over. It’s been a great learning experience working with two programming languages, my custom PCBs, and seeing the community that has gathered around the ESP8266. It doesn’t have to be over though… Solar power, anyone? Perhaps in the future.

Like I mentioned a couple posts ago, I have other projects coming up, including some experiments with some RF transmitter and receivers, and my custom shift register PCBs that should come in next week if the postal service is consistent with the last two times I ordered from Dirty PCBs.

 Thanks for reading!

ESP8266 Capsule now live, OUTSIDE!

Yesterday, I put the ESP8266 project into an enclosure. It uses a 9v battery style connector for power so it can be powered directly with a 9V battery or with a wall power supply. It’s too cold to run wires through the window (not that I would do it in the summer either, because bugs) so it’ll go battery powered whenever I want to put it outside.

It’s short notice, but my ESP8266 project will be put outside and will send data live starting at 1PM EST today until the battery runs out. It will be using a 9v battery that I’ve been using while prototyping other things so I’m not sure how long it will last. The project will be placed in a bag to protect it from moisture, even though it’s not raining today. I don’t want to take any chances.


View the data at Thing Speak and my ESP8266 webpage.

Presenting the ESP8266 Capsule!

This project went exceptionally well. With just under two weeks of prototyping and 3.5 straight hours of soldering, the ESP8266 Capsule is complete! The project as I’ve been showing you in previous posts has been crammed into an enclosure (a food container). Let’s take a look at how the soldering went.

IMG_0001The only plan I had was a very rough schematic of the project. I skipped the perfboard planning on paper which is something I started doing with my projects that ended up on perfboards. I thought the circuits were simple enough to wing it… While that’s was somewhat true, it was challenging at times but it all worked out.

IMG_0002I pulled apart the prototype since I had the schematic to work with. I used fresh ATmega328p and AMS1117 boards since I like to have a couple rough assembled ones laying around for prototyping with.

I used some cut jumper wires that still have the female connector on it to connect up the LCD. The ones I used were actually cut off of the old Box project that was sacrificed for this project. I like to think of this as the Box 2.0 since it’s pretty much the same thing, except it gains an internet connection but loses the real-time clock.

IMG_0003This was about halfway through the soldering process. I got increasingly concerned with all of the connections flying out everywhere. They’re that long just for assembly. They would be cut down when it was time to connect everything together.

IMG_0004The first test was scary, as it usually is. The LCD lit up but didn’t show anything. After a few minutes, I realized the potentiometer that adjusts the contrast of the text was turned all the way down for some reason. I thought it would have stayed the same since it was directly taken from the prototype.

The only real issue was with the photoresistor. One of the legs had a loose connection that I had to touch up with my soldering iron a couple more times to get right. I would have liked to hot glued parts of this project but I don’t think I have enough glue for my glue gun. I put some tape in hopes that it’ll help things stay in place. Everything is so tightly packed in there, mostly because of the female connector for the LCD connections, so things aren’t shifting around too much inside.

IMG_0006This is the final product. The sensors are mounted on the top with the LCD underneath it. Beside the LCD is a switch to turn on and off the LCD backlight.

It looks very similar to the Light Timer Project since it uses the same kind of enclosure and LCD. I’d like to think I’ve progressed since then. There are no breadboards tucked in there, and I’m using some custom PCBs… That’s progress to me!

IMG_0007I find that inexpensive switches are hard to find so my previous projects usually never had one unless I had a switch I pulled from an old toy or something. My switches from China finally came in yesterday. They’re cheap and don’t fit in a breadboard, but they work great in the project.

Now that it’s in the enclosure, it can be moved around, especially since it can still be powered by batteries. I’m thinking of leaving it outside for a day and watch the data come in. It’ll be a designated day I’d announce since I’d have to pick a good day to do it. The enclosure is hardly weatherproof, and the power in contacts are fully exposed. I could put it in a bag, but I think that would affect the humidity readings. I’ll let you know.

Thank you for following along with this project! Stay tuned for more projects coming soon!

Here are some links for this project: MYSQL Database Live DemoThing SpeakGitHub Repository

Moving on

It’s kind of depressing when you think about it, but my ESP8266 project is held up by two little switches I need that are somewhere in the mail. It’s going to sit off to the side until those switches come, so I thought I’d shift gears and give you a quick preview of what’s coming up.

RF Transmitter and Receiver

IMG_0001I’ve never been much of a communications guy. Protocols and accommodating for noise and interference and all that has always been confusing/boring to me, but I seem to be tip-toeing toward it these days. I received two RF transmitter and receiver pairs in the mail today. I didn’t have a project idea in mind when I ordered them, but they’re so cheap that I figured it would be would be nice to have lying around if I did come up with something one day. I’m still drawing up a plan, though I think it’s only natural that I try to use that temperature sensor that was originally destined for the ESP8266 project. I haven’t done enough research to see what is and what is not doable with this pair so I can’t confirm anything just yet.

bbIn the ESP8266 project, I have three mini-breadboards that each have a main purpose on them: One for my AMS1117 power regulator, one with the sensors, and one with the ESP8266 module. I decided to try and combine two of them so I could free up one so I could use it to play with the RF pair. I managed to cram the AMS1117 and ESP8266 onto one mini-breadboard… As long as it still works, it’s fine. I hope that this project will be on a perfboard soon anyway.

74HC595 Shift Register Boards Rev B / Light Show 7

I hadn’t mentioned it before but I sent the next revision of my 74HC595 boards to get manufactured and they are on their way to me right now. I’m pretty excited to see how they turn out because they are my first manually routed board.

I’m also excited because it’s part of some upgrades I want done to the Light Show Project before I start programming a new show. These new shift register boards break out the Output Enable pin which allows for some PWM control. The backdrop will definitely have that, but I’m also considering having all LEDs in the project controlled by shift registers, including the fountain LEDs which have always been controlled directly from the Arduino. There are advantages and disadvantages to that but, either way, I plan on taking a close look at how everything is wired.

In addition to working on the wiring, I’m still looking for ways to make it even bigger. For every version of the show, I watch the show and pick out things that I want to focus on. What I realized with Light Show 7 is that it’s not designed very well to watch on a widescreen… We’ll see what comes of that.


Thanks for reading! Stay tuned for more!

Information everywhere: Take 2!

Last night, I worked on my ESP8266 project code so that the data would be sent to both Thing Speak and the MySQL database on my webhost. After working out some reliability issues, the information from my ESP8266 project is now in three places: Thing Speak, an LCD, and a MySQL database on my webhost.

IMG_20150119_010336Since I’m using my ATmega328p breakout, I can’t see what’s happening in a serial monitor, but I was able to print out messages on the LCD that helped me debug. The problem was that it was sending values fine to my webhost but it kept failing at sending anything to Thing Speak except for one lucky time. I recall seeing some delay when closing the TCP connection when the project was still on the Arduino Uno so I tried adding delays to give it some time to close the TCP connection to my webhost before attempting the Thing Speak transmission. After some trial-and-error with the delay value, it finally became reliable.

The new code is available on GitHub. I also took the time to clean up the folders so that it’s easier to find the different versions of code.

I’m still waiting on some mini slide switches in the mail before I can put everything into an enclosure. I had a beefy switch in my spare parts bin that I was going to use for the input power but I measured the input current during a full cycle with the LCD on. It seems to go between 50mA and 100mA, 100mA presumably whenever it’s taking a measurement from the DHT22 and when it’s sending data through the ESP8266. I had the impression that the ESP8266 drew more current than that so I’m pleasantly surprised it stays that low. The mini switches I’m waiting for have a current rating of 500mA so that should be fine for the power supply.

Thanks for reading!