<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;DUUER38yfSp7ImA9WhNTEk8.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004</id><updated>2012-10-14T08:06:46.195-07:00</updated><category term='Bluetooth'/><category term='RS232'/><title>Microcontroller Hacking</title><subtitle type='html'>Follow the journey as I create fun and useful microcontroller projects and experiments (aka failures).  I hope that you will find the projects and lessons useful in creating and adapting your own ideas.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;DUYAQX8-cCp7ImA9WhNTEk8.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-6990324655472798071</id><published>2012-10-02T17:58:00.000-07:00</published><updated>2012-10-14T08:05:40.158-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-10-14T08:05:40.158-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='RS232'/><category scheme='http://www.blogger.com/atom/ns#' term='Bluetooth'/><title>Serial Communication with Microcontrollers</title><content type='html'>With my temperature sensors working, the next step is to start getting data back to the PC/Mac/RPI (Raspberry PI).&amp;nbsp; Right now, data can be sent back via to ways:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;RS232 via a standard USB serial port (and the supporting max232 circuit)&lt;/li&gt;
&lt;li&gt;RS232 over Bluetooth&lt;/li&gt;
&lt;/ul&gt;
I reached one of the milestones in programming where I really needed to see real time debugging information.&amp;nbsp; The first step was to wire up a standard serial port and start dumping data to Putty (o'l standby).&amp;nbsp; Interestingly enough, on one of my shopping sprees I ran across a $9 Bluetooth serial module and I could not be happier.&amp;nbsp; I have scrapped my legacy MAX232 -&amp;gt; USB in favor of a Bluetooth module that accepts 3V-5V input (FYI, I think it outputs 3V signals).&amp;nbsp; It could not have been simpler to plug in the module, run GND, 5V and a line from the PIC.&amp;nbsp; A few minutes later, it is discovered on the PC and the serial port is added as COM6.&amp;nbsp; Nice.&amp;nbsp; Now that is one less cable between the PC and bread board.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-5uHk1JGh4dM/UFNfk-tBAcI/AAAAAAAAAIk/7x4r1V9Uo80/s1600/BT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-5uHk1JGh4dM/UFNfk-tBAcI/AAAAAAAAAIk/7x4r1V9Uo80/s1600/BT.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-wW59b5WLKtM/UFNe1MSxnjI/AAAAAAAAAIc/l8-v9I_t62M/s1600/BT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The tricky part is that these devices default to 9600bps.&amp;nbsp; In reality, this is a very reasonable number for most applications.&amp;nbsp; However, I needed to drop it down to 4800bps due to the clock speed I am running.&amp;nbsp; The trick to that is that the BTM can only be configured via the terminal when the BT link is not active.&amp;nbsp; To do that requires connecting the BTM to the host via serial TTL.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-jRrf7SIJohM/UGuM1jRP9aI/AAAAAAAAAJI/qx11SKPBD3U/s1600/usbttl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://1.bp.blogspot.com/-jRrf7SIJohM/UGuM1jRP9aI/AAAAAAAAAJI/qx11SKPBD3U/s320/usbttl.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Fortunatly, there is a lot of information out there on configuring this BTM.&amp;nbsp; A quick google for, "Bluetooth and linvor" will turn up a wealth of resources for customizing the BTM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-PvASiAXoOWE/UGuMrjsR24I/AAAAAAAAAJA/Q4AWkRNNRBs/s1600/sku_149859_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-6990324655472798071?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/6990324655472798071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/10/serial-communication-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/6990324655472798071?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/6990324655472798071?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/10/serial-communication-with.html' title='Serial Communication with Microcontrollers'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5uHk1JGh4dM/UFNfk-tBAcI/AAAAAAAAAIk/7x4r1V9Uo80/s72-c/BT.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEUEQHk8cCp7ImA9WhVWFEw.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-5793210675984587326</id><published>2012-04-23T07:49:00.002-07:00</published><updated>2012-04-25T20:50:01.778-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-25T20:50:01.778-07:00</app:edited><title>Why the AVR is better than the PIC</title><content type='html'>It has only been a few short weeks since I took the plunge back into microcontroller programming and already I have regrets.&amp;nbsp; Back in earlier posts, I listed a few reasons that I am sticking with the PIC.&amp;nbsp; Since then, I have solidified my position even more by purchasing a PICkit2, and installed the CCS and Microchip C compilers.&amp;nbsp; Sadly, my frustration continues and it has absolutely NOTHING to do with the chips and everything to do with the development environment.&lt;br /&gt;
&lt;br /&gt;
20 years ago, the devices were so small (RAM/ROM/Flash) and there were so few variants that developing in assembly was not too bad.&amp;nbsp; With the variations of chips today, it would be foolish to write almost anything for these microcontrollers in assembly.&amp;nbsp; If you are old enough, or hard core enough, you know that writing reusable and modular (library) code in assembly is akin to stabbing a pencil in your own eye (it hurts).&amp;nbsp; A simple example would be to imagine upgrading code on a PIC that had a single W register to a PIC with 4 W registers.&amp;nbsp; Sure you could just migrate the code, but all that optimization that could be leveraged is lost!&amp;nbsp; Hence, we have C.&lt;br /&gt;
&lt;br /&gt;
I will be the first to admit from a hardware size, what I have at hand is pretty nice.&amp;nbsp; I have a handful of powerful and flexible PICs at my disposal.&amp;nbsp; However, the compilers are really starting to wear me down.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The free compiler (from Hi-Tech) is almost worthless when the optimization expires&lt;/li&gt;
&lt;li&gt;The available C compilers are between $150 and $500&lt;/li&gt;
&lt;li&gt;Don't forget about maintenance&lt;/li&gt;
&lt;li&gt;Due to copy write restraints, I cannot share with my readers how I customized the code to fit a particular situation&lt;/li&gt;
&lt;li&gt;If the reader does not have the compiler, my source code is all but worthless&lt;/li&gt;
&lt;li&gt;You help $timulate the economy by buying a new compiler for each chip family (16 vs 18 vs 24).&lt;/li&gt;
&lt;/ul&gt;
So, in short, here I sit trying to squeeze coding into a tiny device and all I can do is produce bloated code files.&amp;nbsp; And let me assure you, there is a difference.&amp;nbsp; My once simple temperature with RS232 will no longer fit onto the device.&amp;nbsp; Previously, it was only filling up 70% of the code space.&lt;br /&gt;
&lt;br /&gt;
Of course hindsight is 20/20.&amp;nbsp; Right now, as I look over my shoulder I wish I would have dropped $50 on the AVR Dragon instead of the PICkit2 (mind you, the PICkit2 really is a fantastic setup).&amp;nbsp; So, I implore you to not follow my path and shift (or start) with the AVR as soon as possible.&amp;nbsp; And, I hate to say it.&amp;nbsp; I don't think you (or I) will look back and think we made the wrong decision.&amp;nbsp; Look at some of the benefits:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;tried, true and free compiler with GCC&lt;/li&gt;
&lt;li&gt;-O 3 (gcc's optimization flag)&lt;/li&gt;
&lt;li&gt;The $ that would be spent on the compiler can go towards a logic analyzer, Oscope or a bench power supply&lt;/li&gt;
&lt;li&gt;Ability to switch among device types w/o buying a new compiler for each&lt;/li&gt;
&lt;li&gt;Ever growing list of user created libraries that you can freely copy, change, enhance, and share&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;1-wire&lt;/li&gt;
&lt;li&gt;I2C&lt;/li&gt;
&lt;li&gt;USB&lt;/li&gt;
&lt;li&gt;Manchester encoding&lt;/li&gt;
&lt;li&gt;RS232&lt;/li&gt;
&lt;li&gt;Wireless modules&lt;/li&gt;
&lt;li&gt;List is long and keeps growing&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;AVRfreaks as a resource (yes, they are a wee bit hostile towards PIC people)&lt;/li&gt;
&lt;li&gt;Hobbyist and Magazine support is bar none&lt;/li&gt;
&lt;li&gt;Let's not forget the quick and simple Arduino &lt;/li&gt;
&lt;li&gt;I consider all the other items (price, features, pin count, availability) to be the same&lt;/li&gt;
&lt;/ul&gt;
Am I switching?&amp;nbsp; Not right now.&amp;nbsp; But be assured when I run out of my supply of PIC's, the inventory and tools will be refreshed with AVR's. &lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
Am I wrong or am I missing something obvious?&amp;nbsp; Post below and let me know.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-5793210675984587326?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/5793210675984587326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/04/why-avr-is-better-than-pic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/5793210675984587326?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/5793210675984587326?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/04/why-avr-is-better-than-pic.html' title='Why the AVR is better than the PIC'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEUARnY9fSp7ImA9WhVWFEw.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-1685944732322567395</id><published>2012-04-22T18:38:00.001-07:00</published><updated>2012-04-25T20:50:47.865-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-25T20:50:47.865-07:00</app:edited><title>Starting out with the DS18S20 Digital Thermometer</title><content type='html'>When I first started this project, the DS18S20 thermometer started out as a real winner.&amp;nbsp; Looking at some of its key features, how could it get much better?&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Communicates over a simple 1-wire interface.&amp;nbsp; No waste of I/O ports&lt;/li&gt;
&lt;li&gt;Multi-drop and individual addressing allows more than one device to share the same I/O pin&lt;/li&gt;
&lt;li&gt;Cheap (my weak spot)&lt;/li&gt;
&lt;li&gt;&amp;nbsp; ±0.5°C resolution&lt;/li&gt;
&lt;li&gt;Digital communications means the devices can sit at the end of a long bus run w/o loss of accuracy&lt;/li&gt;
&lt;/ul&gt;
Look at how simple this device is to hook up to the circuit.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-6U-_HG0E6HE/T5RbtZxsuBI/AAAAAAAAAH4/VJvKjwU2YrY/s1600/DS18S20.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-6U-_HG0E6HE/T5RbtZxsuBI/AAAAAAAAAH4/VJvKjwU2YrY/s1600/DS18S20.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
All that is needed is a standard 4.7KOhm resistor.&amp;nbsp; It only took about 5 minutes (thanks to the included libraries from the compiler) to start talking to the device.&amp;nbsp; In about 30 minutes, I was able to put together a simple program that would continuously read the temperature and send the data over RS232 to my PC.&amp;nbsp; The next step was to add a few sensors to the bus and see about addressing them individually.&amp;nbsp; &amp;lt;crash&amp;gt;&amp;nbsp; Turns out that my frugal nature of using a 15+ year old part bit me.&amp;nbsp; Each device is addressed via a 48bit number.&amp;nbsp; While keeping track of 1 or 2 of these nifty devices would not be a problem, any more than that and the C84 is out of RAM.&amp;nbsp; In all fairness, just about any reasonable microcontroller is going to quickly run out of RAM keeping a track at 6 bytes per device.&amp;nbsp; Secondly, I discovered that the firmware required to discover all the devices on the bus is not that small either.&amp;nbsp; By the time I extended the code to enumerate the bus, I used up almost 100% of my 1K of my EEPROM.&amp;nbsp; Fortunately, there are still an abundance of I/O pins on the device that have not been used.&amp;nbsp; So, for my design I am going to limit the number of DS18S20's to 5 (RA0-RA4).&amp;nbsp; If I really need to expand the number of temperature sensors, a simple solution of a MUX (151) and an analog switch (4066) would be where I would turn.&amp;nbsp; Using pins RA0-RA3 tied to a 74HC151, and the mux's outputs tied to 2 74HC4066's RA5 can be used for all the DQ lines (perfect since it needs a pullup anyway).&amp;nbsp; With that in place on the breadboard, the PIC can now easily address 8 thermometers w/o any complicated 1-wire coding.&lt;br /&gt;
&lt;br /&gt;
The down side is that the project cost has just gone up by $2 as has the complexity of the board.&amp;nbsp; If I were going at this greenfield, I would be much better served putting the extra $2 into the PIC device I was going to use.&amp;nbsp; A $4 PIC would provide a few hundred bytes of RAM and about 8K of FLASH.&amp;nbsp; With a device that size, the issue of the firmware size and 6 byte device address storage would be removed and  and there&amp;nbsp; would be no need for external components.&amp;nbsp; Oh well, glad I keep a drawer full of shoe horns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-1685944732322567395?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/1685944732322567395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/04/starting-out-with-ds18s20-digital.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/1685944732322567395?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/1685944732322567395?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/04/starting-out-with-ds18s20-digital.html' title='Starting out with the DS18S20 Digital Thermometer'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-6U-_HG0E6HE/T5RbtZxsuBI/AAAAAAAAAH4/VJvKjwU2YrY/s72-c/DS18S20.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEUNSX06eSp7ImA9WhVWFEw.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-7381267312138534394</id><published>2012-04-16T19:33:00.000-07:00</published><updated>2012-04-25T20:51:38.311-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-25T20:51:38.311-07:00</app:edited><title>PICyStiX</title><content type='html'>One of the first things I HATE about bread boarding is the setup nightmare.&amp;nbsp; How many times must I wire up a power LED, reset circuit, ISCP, xtal, and it goes on and on.&amp;nbsp; My first task is to design a PIC carrier &lt;a href="http://embedded-lab.com/blog/?p=4260" target="_blank"&gt;similar &lt;/a&gt;to what this individual did.&amp;nbsp; Thanks to China, we all now have inexpensive board manufacturing at our disposal and I am about to take full advantage of it.&amp;nbsp; My only constraint is that I am cheap (really, ask my wife).&amp;nbsp;&amp;nbsp; &lt;a href="http://iteadstudio.com/store/index.php?main_page=index&amp;amp;cPath=19_20" target="_blank"&gt;Iteadstudio&lt;/a&gt; will make 10 5cm X 5cm&amp;nbsp; PCB's for $10.&amp;nbsp; Who can beat that!&amp;nbsp; With a little mind optimization, I was able to design a PIC carrier card in 2.5cm X 5cm.&amp;nbsp; Great!&amp;nbsp; Now I can cut the PCB in half and get twice the number of PICyStiX.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/--m-iaTmU8yY/T4zOw-or6nI/AAAAAAAAAHo/D5DQgPY_m2w/s1600/PicStickV1-3D.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="3D PIC16F carrier board" border="0" height="301" src="http://3.bp.blogspot.com/--m-iaTmU8yY/T4zOw-or6nI/AAAAAAAAAHo/D5DQgPY_m2w/s320/PicStickV1-3D.PNG" title="3D PICyStiX" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
It only took about 12 days to from order to mail man at my door step.&amp;nbsp; I was like a kid at Christmas opening the heavily packing taped package from China.&amp;nbsp; After I gnawed, sawed, ripped and cut the package opened, I ran to the garage, scored the board with a box knife, snapped a couple in half and started soldering.&amp;nbsp; Boy was I excited to get going!&amp;nbsp; 30 minutes later, I had 4 PICyStiX in hand and was off to my eagerly awaiting bread board. My only issue was that I was out of the correct size of momentary switches.&amp;nbsp; Luckily, I had a handful that would fit, if ever so snugly.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-t5-Fb9pe4uY/T4zPg1CZkXI/AAAAAAAAAHw/-c6ahZhHtYY/s1600/PicStickV1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="PIC carrier board" border="0" height="191" src="http://2.bp.blogspot.com/-t5-Fb9pe4uY/T4zPg1CZkXI/AAAAAAAAAHw/-c6ahZhHtYY/s320/PicStickV1.PNG" title="PICyStiX" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;lt;insert failing warp drive sound&amp;gt; Oh no!&amp;nbsp; I forgot to pour the ground plane before I sent off the board.&amp;nbsp; Back to the garage to start soldering in 7 jumper wires (it could have been worse).&lt;br /&gt;
&lt;br /&gt;
Engines online!&amp;nbsp; After an hour of tedious soldering, my four PICyStiX were ready to be retested.&amp;nbsp; This time they worked.&lt;br /&gt;
&lt;br /&gt;
I have since populated, fixed and tested 8 boards.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;2 PIC16C84&lt;/li&gt;
&lt;li&gt;2 PIC16F628&lt;/li&gt;
&lt;li&gt;2 PIC16F54&lt;/li&gt;
&lt;li&gt;2 PIC16F88&lt;/li&gt;
&lt;/ul&gt;
In the end, the worst thing I discovered is that the new PIC16F parts actually have three additional I/O pins (RA5,RA6, and RA7), that I did not run to the headers.&amp;nbsp; On the better side of the coin, I have some very handy modules to use and a couple fantastic lessons learned.&lt;br /&gt;
&lt;br /&gt;
I have already started on version 2.0 that will bring all 16 IO pins to headers (Vcc and Vss too).&amp;nbsp; If you are interested in the schematic and gerber files, just post a note below.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-7381267312138534394?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/7381267312138534394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/04/picystix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/7381267312138534394?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/7381267312138534394?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/04/picystix.html' title='PICyStiX'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/--m-iaTmU8yY/T4zOw-or6nI/AAAAAAAAAHo/D5DQgPY_m2w/s72-c/PicStickV1-3D.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CE4EQ3g8fSp7ImA9WhVXFk8.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-8277507169451679819</id><published>2012-04-15T22:03:00.001-07:00</published><updated>2012-04-16T17:35:02.675-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-16T17:35:02.675-07:00</app:edited><title>Requirements</title><content type='html'>Before I get too far down the road, I need to establish some high level specs.&lt;br /&gt;
The end product will:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;measure incoming water temperature (EWT)&lt;/li&gt;
&lt;li&gt;measure outgoing water temperature (OWT)&lt;/li&gt;
&lt;li&gt;measure return air temperature&lt;/li&gt;
&lt;li&gt;measure supply air temperature &lt;/li&gt;
&lt;li&gt;measure supply humidity&lt;/li&gt;
&lt;li&gt;measure outside temperature&lt;/li&gt;
&lt;li&gt;log the data &lt;i&gt;somewhere somehow &lt;/i&gt;&lt;/li&gt;
&lt;li&gt;display the data on an LCD (of course)&lt;/li&gt;
&lt;/ul&gt;
It will be nice to have: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;measure KWh usage for whole house&amp;nbsp;&lt;/li&gt;
&lt;li&gt;measure KWh usage for HVAC&lt;/li&gt;
&lt;li&gt;pulse monitor for water meter (have one sitting in the closet)&lt;/li&gt;
&lt;li&gt;keep track of seconds the burner in the water heater is running&lt;/li&gt;
&lt;li&gt;RTC for data tagging&lt;/li&gt;
&lt;/ul&gt;
Devices:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;DS18S20 temperature sensor (few in the drawer)&lt;/li&gt;
&lt;li&gt;PIC16C84 (if we cannot smash the code in there, we will buy a bigger one)&lt;/li&gt;
&lt;li&gt;HSU-07 humidity sensor&lt;/li&gt;
&lt;li&gt;16x20 LCD (need a good cheap source)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.goodluckbuy.com/serial-bluetooth-rf-transceiver-module-rs232-w-backplane-enable-and-state-pin-1.html" target="_blank"&gt;Bluetooth serial module&lt;/a&gt; (these ain't the dark times with cables and stuff)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;span id="goog_261685844"&gt;&lt;/span&gt;433MHz wireless modules&lt;span id="goog_261685845"&gt;&lt;/span&gt;&lt;/a&gt; (just in case)&lt;/li&gt;
&lt;li&gt;74HC138 will slim down the 1-wire&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.goodluckbuy.com/2pcs-fire-sensor-module-flame-sensor-smart-car-parts-.html" target="_blank"&gt;Flame sensor&lt;/a&gt; - Cool!&lt;/li&gt;
&lt;/ul&gt;
Misc:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Google for data &lt;a href="https://developers.google.com/google-apps/documents-list/" target="_blank"&gt;logging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DesignSpark for PCB creation (seriously, I tried Eagle and could not figure it out).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-8277507169451679819?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/8277507169451679819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/04/requirements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/8277507169451679819?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/8277507169451679819?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/04/requirements.html' title='Requirements'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEQBQHw_cCp7ImA9WhVWFEw.&quot;'><id>tag:blogger.com,1999:blog-3165125754109101004.post-2222336749407449391</id><published>2012-04-15T17:48:00.000-07:00</published><updated>2012-04-25T20:52:31.248-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2012-04-25T20:52:31.248-07:00</app:edited><title>Going Geothermal</title><content type='html'>In December of 2010, I finally made the decision to replace my aging HVAC and update it to a vertical closed loop geothermal system (Yes, it was expensive.&amp;nbsp; But, it was the right thing today and I wish more people would made decisions based on the future and not the hear and now).&amp;nbsp; While researching geothermal, I ran across individuals using Web Energy Logger to monitor their home ecosystems. For the longest time, I watched this &lt;a href="http://www.welserver.com/cgi-bin/show/WEL0043" target="_blank"&gt;house &lt;/a&gt;up in Plano and was been envious of not only the monstrous floor plan, but of the kick ass WEL monitoring system that is installed.&amp;nbsp; This simple event rekindled my interest in the PIC microcontroller and dusting off my BSEE (paper only). &lt;br /&gt;
&lt;br /&gt;
Back in the mid 90's, while I was working at a small engineering company in Austin, TX, I spent an entire summer designing small control modules with the legendary PIC16C54 and PIC16C71.&amp;nbsp; Wow!&amp;nbsp; Things sure have changed.&amp;nbsp; Back then there were few alternatives (enjoyable) to PICs and they were quite the fan fair.&amp;nbsp; Today, the playing field is a tight battle among Microchip PIC, Atmel AVR and the TI MSP430 series of microprocessors.&amp;nbsp; With my rediscovered interest in microcontrollers (and being off the scene for so long, I figured I would dabble in each of them a bit).&amp;nbsp; Rather than bother with that story, let's just say old habits die hard (you always retreat to what you know).&lt;br /&gt;
&lt;br /&gt;
If you are interested (if not skip on), this basically sums up my decision to stick with the PIC.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;I already know PIC assembly (but that ain't hard and I have no intention of using it)&lt;/li&gt;
&lt;li&gt;Free C compilers are available for all of them&lt;/li&gt;
&lt;li&gt;I don't use a Mac or Linux, so those are not driving factors&lt;/li&gt;
&lt;li&gt;The prices are about the same&lt;/li&gt;
&lt;li&gt;The MSP430 is too modern at 3.3V &lt;/li&gt;
&lt;li&gt;I already had a PIC programmer and two PIC16C84s laying around (yea, I typed 'C')&lt;/li&gt;
&lt;/ul&gt;
In all honesty, if I were to start all over, I would have picked the AVR, just for the social popularity.&amp;nbsp; But, here we are and here we go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3165125754109101004-2222336749407449391?l=pichacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pichacker.blogspot.com/feeds/2222336749407449391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pichacker.blogspot.com/2012/04/in-december-of-2010-i-finally-made.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/2222336749407449391?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3165125754109101004/posts/default/2222336749407449391?v=2'/><link rel='alternate' type='text/html' href='http://pichacker.blogspot.com/2012/04/in-december-of-2010-i-finally-made.html' title='Going Geothermal'/><author><name>John M. Johnson III</name><uri>http://www.blogger.com/profile/12291213662584832668</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>