MarsEdit “Hello World”

 

I recently downloaded MarsEdit so that I can edit this blog off-line. I think I have things setup correctly, so here is the “Hello World” for MarsEdit. 

I think it only right if I test out if the text will make it across the ether, I should make sure it will upload some media as well. So lets toss up a picture. 

The Bench

Here is my bench. I cleaned it up a bit before snapping the picture. 

 

Well, off to hit the Publish button. 

Cleanup

A quick post. While I am working on a new post from a project, I have spent the past couple of days doing some administrative work on the site. While I have had it up and running for a spell, it needed some of that tender, loving care to get pages, post, and the such in an order I am getting to like.

In recent hacker news, some inmates REALLY wanted some internet access. So they took it upon themselves to make sure they could get not just the internet, but local prison systems as well. You can read about it here.

 

LM386 Audio Amp

Since entering the wonderful world of electronics, I have had an itch to make an audio amp. Probably one reason is that I am sans a real audio system right now and I am digging the hardware aspect of the hacking more than the software.

I started reading and wow there is a lot out there in amp world; but like with the Arduino I am pacing myself. I settled on a project, you can check it out here.

At the same time I am using this article to learn the math behind it all. Geesh, it has been more than a few years since I have used some of those brain cells and there are new things to learn, which is cool.

Here is the board with the hardware installed on it. So far things are looking good.

Here it is all wired up!! I wish I could say I fired it up, but putting the last wire in at around 1:45am my eyes were a little crossed. I am going to wait to get a good nights sleep then double-check my connections and continuity before applying power.

I will be sure and let you know how it turns out.

Uptime

Recently I have had a nagging thought about where a file was. It is a screenshot I took of our Cisco Modem/ISDN banks, AS5300’s, showing their uptime. I have to say they were pretty impressive for the day and as the screenshot shows, this one had nary a problem for quite a stretch. They served us well. I forget what year we took them down. I will check and see if I still have that email chain and post the date.

What is your best uptime?

Omega2 Finally Arrived!!!

After many months of waiting and more than a few weeks of forgetting I had help Kickstart it, a box was on my front porch Monday about lunch time. I had the grand unboxing of it. I am here to share my first bit of time spent with it.

 

Now that was over a week ago, hopefully I will pry away some time to start working with it here in the VERY NEAR future.

Spare parts Pipe Lamp

Recently I had to replace the hot water heater in our house. Thankfully it was a slow leak from the bottom so major catastrophe. While I was working on it I kept looking around at the pile of parts I have collected from various plumbing projects.

Hey why not one of those pipe lamps one sees all over the place these days. Why not. I was able to use about 90% of what I had. I had to purchase a length of 1/2″ copper tubing for the arms, 3/4″ to 1/2″ threaded adapter, and the switch for the faucet. I used this Instrucable for the faucet switch.

Even though I am pretty much flying by the seat of my pants on this one, I start off by laying things out to get a general idea of where I am heading.

The threaded parts are put together. There wasn’t a way to tighten them all the way up and be in the right directions. As such I took a spot of super glue to the threads. To date it is holding up well. And as seen in the upper right-hand corner I am dry fitting the sleeved parts before sweating them.

And the legs are together and sweated.

The 90% are added to the ends. I really need to cut short sections of copper pipe for the feet. They need to be raised 1/16″ to have the base at true level. I was tired at the time and didn’t fuss with that part. It will be done before it is put at it resting place.

And here is the base of the lamp.

Switch and lamp next. I am still working out how I want the lamp part to flow, this is turing out to be a bit of a pain for me – it just doesn’t look right yet. Hence no pictures. I have a 45 and 2 90’s, plus a short section of already sleeved pipe to hold the light fixture.

I will update this when it is complete. For now I have other projects to attend to. This one was one that hit me one day replacing a hot water heater at noon and made it this far by 2:30am. The tale will continue.

 

Side Project – MacPi Plus

Raspberry Pi Model 3 into a Mac Plus case 

My Raspberry Pi has been sitting on my bench in a little plastic box. It seems so naked and bare; it needed something to spice things up. And I needed another project on my list, like I am not sure what, but it has ended up on my list.

I have had an old Mac Plus case laying around for years. It has served as a desktop bookcase to recently a collecting bin for cables. The face plate was made into a cheesy, but geeky picture frame. It took some time to clean it up a bit. I didn’t go through all of the trouble to really scrub it down. I like a little of the aged, plastic, patina, look to it, but it does look scads better than it did.

My first goal for this project is to see how much I can use that I have laying around. I have rounded up most of the parts I need.

  • Mac Plus Case
  • Raspberry Pi – bought
  • SainSmart 7″ TFT LCD – bought
  • USB hub, powered
  • SD card slot extender
  • Ethernet cable extender

I am sure I will need some more bits and parts as time wears on, but for now this will get me started.

While working on getting the screen working with the Pi (what a pain, but this will be another post later) I have been laying to how to put things together. The first order of business was the screen. I was trying to find a 4:3 aspect monitor, but didn’t like what I found. I started looking at the Raspberry Pi “compatible” screens. I originally wanted to get the larger 8″ screen, but after measuring a couple of times, I was sure it wouldn’t fit. So I decided on the 7″ screen.

I need a way to mount the screen to the inside of the face plate. What to use? It took me a day or so of rummaging around to find something that seemed appropriate to use. Somewhere in my travels I had a rather large pass-through card, but the right size for holding the screen and with a little Dremel work on the connectors it fits in the face plate.

I took a piece of cardboard and traced the outline of the screen opening on the faceplate. I then added another piece of paper representing the screen to help figure out the placement of it and the screws.

I have to drill the holes in the plate to attach it to the face plate as well as 4 more holes to mount the screen.

 

Well, that is it for now. Check back as I will be updating as I keeping plugging along on this one. Like I said it is a side-project. While not pretty, the bare Pi and VNC work fairly well for the work it currently does, but it deserves a nice Macinficantion.

Flying Weather bits – the ESP-01 and sensors

The last few years I have been helping support an enterprise wireless network of 2,000+ access points. It is an interesting, challenging, nightmarish world wireless/RF is. When I started my Arduino adventure it was nice to be grounded in what I was working on. The wires carried all of the data I needed. I just need to make sure the wire was connected, not like those nasty RF signals that bump into other signals that might mess with this or that.

Alas, during my 1st weather project, while I was running back and forth with my data written to a SD card, I thought how much easier this would be if only I could do this with wireless.

In my research, I found information scattered hither and yon, each yielding news clues. I will try and link to those sites (I have remembered and bookmarked) throughout. I will post, what I thought, are the more important bits and pieces.

Project Goal

My requirements are simple. Use a DHT22 to take temp and humidity readings every 5 minutes. Take that data to a central point and log it with the ability to graph and compare it. Initially using USB and a converter for power, moving to own power supply.

** NOTE: I am going to be also working with a BME/P280 to see how to setup and work with I2C on the ESP-01. There are a couple of methods I will point out later on. 

I have seen where people use cloud services to keep their data. I have taken this into serious consideration, but am leaning towards a local solution. I have seen one that look promising, Domoticz. It is open source and can be run off of multiple platforms. I have recently received my Raspberry Pi 3 so I am going to try and it get it working there, but that is another day and another post.

Down to business

I crawled down into my abyss of a workbench and dug around. I knew that there was this 8266 thing what was supposed to do wireless and that I could hook it up to my Arduino. And in one of my orders I had tossed on a couple of different ESP8266 modules. There are plenty to choose from. I chose these 2 because they seemed pretty popular and I couldn’t beat the price. I have the ESP-01 and ESP-12E. The later is in the form of the NodeMCU v1.0 board with plenty of pins to work with. The ESP-01 is a simple, 8-pin module, yet with all the power of the 12E. After about 20 minutes of digging how to get the Arduino to talk to the EPS, I found out I could just write my code to the ESP and use it as both the processor and wireless device. Jack Pot! A temp sensor is always seems to be laying around somewhere and a DHT22 will work prefect.

A Quick BOM

  • 1 x ESP-01S
  • 1 X DHT22 (or whatever temp sensor you have around – be sure and sure the correct libraries.)
  • 1 x USB – UART convertor

 

The ESP-01

The ESP-01, as I have stated is the lowest, if you will, of the ESP8266 family. There is still plenty that can be done with it. Below is a diagram I found on deviantart of the pinouts.

For programming reference, pins TX and RX are GPIO 1 and 3. I found this useful when trying to get my I2C setup working. See my link at the end.

Also, the ESP-01 is pretty picky about its’ 3.3v limitation on pins. One of my first times working with it went up in the puff of magic smoke. Good thing I always oder at least 2.

Here is one of the sources I found for pin information. It is a very useful Instructable on the ESP-01.

The Plan

Here is a schematic of it from my notes. I was at work and the pencil and paper were quicker. I haven’t had the time to whip it up in Fritz’ yet.

I took to the internet and dug up a wiring diagram for the ESP for programming it. I like to take multiple approaches to this part of the process. There is the quick and dirty, plug it in and get it going and then the old school way I will call it. I did old school first.

** an error was pointed out to me during this project. The CH_PD pin should be pulled high during operation and low for programming. Currently I have mine floating, but will fix it in the next revision. It does work, but I am not sure what impact it may have in extended operation. I will update my documentation when I get it in Fritzing. 

In this example, the ESP is wired to an Arduino Uno. The two buttons are for Reset and Flash. Don’t mind the second ESP in the background, it was for another experiment.

Here is one of the sites I found useful in my quest for an ESP programmer.

*schematic from allaboutcircuits.com Next was the quick and dirty way, which wasn’t so quick an dirty in the end. Even it took some work. The board I got doesn’t have the CH_PD pin set to ground, which is required for programming. No problem since I have two of them, I took one of them and soldered a short wire connecting CH_PD pin to the Ground pin. I have it labeled for quick ID and use it for programming and the other for quick testing.

Coding

Next was how to make this little devil do something. Through my research much of the code can work, along with some of the Arduino libraries. Work has been done so that one can write a sketch and upload it through the Arduino IDE. There are other toolchains one can use as and they work quite well.

I found a couple of quick sketches where I poked around the code, uploaded them to see what and how they worked. I find that between reading the .h file of the library and an short example is the best way to learn what one can get done. I started to work on a sketch that would take a reading every minute and post it to a web page. Pretty simple and straight forward, but that is all I need right now. I only have a temp sensor and ESP.

On one of the forums I found a link to ESP Easy and it aims to be what the name claims. Essentially it is a sketch that one uploads to a ESP module. From there connect to it via wireless to initially set it up for the local wireless and then reconnect to it to control the configuration of devices and the such. Really quite fun to play around with. I need up using this for the time being. I was able to put something together over a couple hours in the lab.

Here is the link to the github for setting up the Arduino IDE for use the the ESP8266 family. The quick and dirty to setting it up is as follows.

  1. Quit the IDE or install the Arduino IDE from the Arduino website.
  2. Launch the Terminal.app.
  3. Enter in the command sudo pip install pyserial and hit return.
  4. Enter in the command sudo pip install esptool and hit return.
  5. Start Arduino and open Preferences window.
  6. Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs by separating them with commas.
  7. Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your specific ESP8266 board from Tools > Board menu after installation).

The ESP is wired on the breadboard by the following. This will be the same wiring used on the protoboard final.

ESP

  •         Gnd -> Gnd
  •         Vcc -> 3.3v (from USB converter)
  •        Pin GPIO2 -> Signal from DHT22

DHT22

  •        Gnd -> Gnd
  •        Vcc -> 3.3V
  •        Signal -> GPIO2

Well, it is working on the breadboard and pretty cool for a first time ESP project. It would look pretty silly in it current state hanging from the wall. Time to go digging around in my Sanford and Son section of the lab. I dug up one of the covers that was used in an original Apple Airport. Seems like it will fit the bill. With two brass standoffs and some hot glue I mounted everything neat and orderly.

For this first station I have it mounted outside the door of my lab in the basement. It fires right up and works like a charm.

Here I took a brief fork in my academic travels. I took a day off from the above project. I did a little writing, working with the Nodemcu (but that is another post altogether), and thinking about the next sensor module I wanted to put together. I have it breadboarded and it works, it should be easy enough to put it on a protoboard; so he says.

I start with the basic layout. I think it is nice during this stage to start to think about how one would layout the traces for a PCB. My mind is already thinking that I might get 3-5 made as I need a few more for my project. The connections are as follows:

 

I layout and dry fit all of the components. For this version I didn’t have any female headers laying around so I solder the ESP-01 module directly to the board. I layed out the wire for the programming pins so I can make any changes I might want to it.

I used 24awg solid core wire for the wired connections.

My original plan has my own power supply. It is mostly working, but I have a leak somewhere. The power supply is straight forward. I use a LD1117 to convert 5v down to 3.3v. The capacitors are added to help smooth the power line. And of all times my Fluke is down, so this is on the sidelines right now. In the mean time, I am using the USB-Serial converter for my power supply. It provides an nice, steady 3.3v.

Here is the final product. The ESP comes up and I can connect to it via the web, but the sensor is not providing data. I have check my connections and voltages and the are working, but now it is time to dive deeper into hardware troubleshooting when it is all soldered together.

Well, after a pat on my back when it all powered up and the blue light started to blink, my smile quickly left. I launched the browser and went to the IP address and got nothing from the sensor. I know that it worked on the breadboard, what it up here? It was too late, time to head to slumber and figure it out tomorrow. A second look the next day and it popped out at me pretty quick. I soldered the signal wire at the wrong end of the resistor. Instead of pulling a little power from the Vcc line, it was getting flooded. 

Once I made the change, things are up and going. In the mail today, the charger/battery boards showed up. The last thing is to solder it up and connect the battery. I will be leaving in indoors for a couple of days while I work on a case for it for outside. I am not yet lucky enough for a 3D printer, but plenty creative with what I have buried away.

I also got some feedback on my power supply. There seems to be an issue with one of the caps I am using. Tonight I will replace it and see if that fixes it. I will be sure and update this and let you know.

I2C and the ISP-01

And on an ending note (???) one of my next remote sensors will include an I2C sensor, the BME280. It adds the feature of barometric pressure as well as the temperature and humidity. It is pretty straight forward. I have used it on the Arduino Uno. It was figuring out how to implement I2C on the ESP-01 that had me scratching my head for a spell.

Then I stumbled upon the magic pins web site. This is a great site on using the available pins on the ESP-01. With some creativity there is quite a bit one can pull out of the small module.

My current attempt at getting this to work is using the TX and RX pins for the I2C. I have it drawn up and ready to try. I will be back with more when I have it working.

From breadboard to here ya’ go. . .

Early on in my adventures in the Arduino / micro controller world one of my goals has been to usher an idea from paper, to breadboard, to protoboard, to real PCB board. After a long night of soldering, I decided to take a break and start to post my adventure.
I learned early start simple and build on what you know. In that vein I took the idea of making digital dice. To date I am up to the proto-board phase. I am making an actual “digital die” I can give as presents for this Christmas season. By next year I will have time to figure out the CAD software I will need.

I had an idea how to start the project, this will be simple. I grabbed my Arduino Uno, 7 LEDs, and my breadboard. 7 lights, 7 pins, and away I went. After a giggle of joy over seeing it work, I stared at it wondering how I was going to make a box that looked reasonable to fit the Uno. That idea was quickly nixed. In my readings and forum lurkings I had heard of the different chips in the ATmel family of microprocessors. With a little digging I soon found the ATtiny85 which seemed like it would fit the bill I was looking for. Small footprint and just a few pins. Dang, I have 7 LEDs with 7 pins and this little guy sure doesn’t have enough, or does it.

While awaiting my ATtiny order, I used the time to research a little more about this new turn I took (with little foreknowledge save it should work). I also waded through the data sheet for the ATTiny family to find out more of their capabilities. You can find the information here. There is a method to control more than 1 LED pre pin. The method is known as Charliplexing. Here is an example to get you going.
My apologies for a lack of pictures here early on. I was too involved to remember to take any.
With a little more knowledge in hand it is time to draw out how one might control the LEDs. Knowing how a die is made with the numbering scheme as dots we need a total of 5 to replicate what an actual one looks like and how they will light up in turn. With 4 pins I can control the 7 LEDs to make the 6 numbers.


JustNotesv1JPG.jpeg

scheme.jpg
Now that I had my little 85’s in hand I took to the breadboard to see what I could come up with. It took a couple of tries to a) double and triple check my wiring (make sure ground is going to ground!) b) at the same time learning how to program the ATTiny.
So, here is where there is a branch. I am going to take a quick detour on the ATtiny85. The ATT85 is part of the Atmel family of microprocessors. The ATT85 has fewer pins, less memory, and slower than what you find on the Arduino Uno board. None of these are an issue for this project and in all ways a big plus as I want this project to be small in size. There are breakout boards and programming boards one can use to program the ATtiny85 and there is the use-what-you-have-it-works-pretty-darn-well method too. I went with the later of them. Here is one of the sites I researched when planning on how to get my code on the ATTiny85.

The wiring is pretty straight forward, just follow the diagram. If it is your fist time trying this out, the blinking LED exercise if a good one; if for nothing else getting you used to setting up and uploading code to it.

On the right hand side of my breadboard you can see the ATTiny85, wire up and running the die code. In this version I am using a button switch instead of the motion switch.

It works. I have my ATtiny85 programmed with my die code, wired up to the LEDs, and it is working! I have that giddy feeling all over again, but than the sigh. Even if I get a small breadboard it still won’t look quite right. I guess it is time for another plunge and learning experience. That is a good deal of why I started tinkering in this digital world.

I knew what was next, I had to solder it all on some protoboard. You know those green or tan sheets with holes (well some have holes predrilled) that you can solder little parts onto. I made out my list of parts and pulled them all before I began. This hasn’t been your weekend type project. Between family, work, and other of life’s bits it has taken me a few weeks by now. And those boats from China really are slow!). And it has taken me more than one try to get to this point.


This is my first try at a full-on, solder it up type project. I didn’t think I would get it right on the first try, but Oye Vey! It almost worked, but my voltage readings were waaaaaay low by time I measure at the LED pins. Oh well, I will not be deterred and try again.

It is time to move forward, remembering mistakes made, and get it right this time. Before this attempt, I went to a good friend of mine who is an EE and quite the hardware hobbyist. He gave me a couple of quick, and very informative soldering lessons. During my lesson I learned that my lead-free solder was causing me some issues as it takes a higher heat to use and even slightly higher heat to reflow. Before tackling this next part, I was sure to procure some leaded solder and it makes a difference.

The first thing I started to thing about, beyond the predetermined layout for my LEDs, was how to best wire them. My end goal being a manufactured PCB, so why not use this exercise to start to think in that mode. All LEDs have 2 leads, one for ground and one for power. I started by arranging as many LEDs as I could with the ground pin on the outside of the board. This way I can chain them together to create an easy ground path.

The only one I needed to worry about was the inner LED. In its’ case I bent the ground pin over to the main ground path. It reached with some to spare.
Now I started to look at connecting the power for the LEDs. Where I could, for aesthetics, I ran a straight wire on top of the board. This keeps the wire count below down and gives it a nice look (I think).
Working with the back I tried to keep the lines as clean as possible too. The backside is a little more of a challenge.

In a yet another branch, while on my travels, it was noted that the ATtiny13 might work in this case as well. The memory footprint is smaller, but than the sketch for this project isn’t that big to begin with. I ordered a few in one of my bundles. Since I have a socket on the board, it will be easy to test!
I have four pins left to solder and apply power for the big test. That will be tonight. I will be sure and let you know how it goes.
Keep up with my progress over at wrightmac.net I am not done yet. 🙂
BOM (Bill of Materials)
1 Protoboard
1 ATTiny85 (read a little lower for more on this choice)
7 LED, 5mm
1 Motion switch
1 Various 24AWG solid core or stranded wire
1 Soldering iron