tag:blogger.com,1999:blog-57742950070046084992024-02-08T11:28:13.531-08:00Tamada TechnologiesApplying computer software and hardware to finding solutions for environmental, energy and aging in place challenges.Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-5774295007004608499.post-39676292804537408712013-08-08T22:46:00.001-07:002013-08-08T22:58:07.910-07:00First thoughts on Philips Hue LightStrips<div>Bottom line, congratulations Philips! Great addition to the Hue LED lighting family.</div>
<div> </div>
<div> <img title="Philips-hue.jpg" src="http://lh6.ggpht.com/-aKwkFxMp0PA/UgSCVnDztUI/AAAAAAAAIcs/HwU-PSQ6x1A/Philips-hue.jpg?imgmax=800" alt="Philips hue" width="566" height="600" border="0" /></div>
<div> </div>
<div>Apologies upfront for my initial paragraphs focus on unpacking and my inches rather than metric measures. </div>
<div> </div>
<div>First challenge is to figure out how to remove the unit from the box without destroying the box.</div>
<div> </div>
<div>My box did not have any kind of tamper seal on the outer tab, so I could open the outer box without any sign.</div>
<div> </div>
<div>Inner carrier slides out of the main box with out any problem.</div>
<div> </div>
<div>Two tabs on the left side of the inner carrier allow you to open the top of the carrier like a book. But the lower tab is hot glued in place, just rub off the small glue bead.</div>
<div> </div>
<div>Next I was able to slide the controler unit (a white box about the same size as the old Apple IR remote) out of the upper part of the inner carrier without damaging the packaging.</div>
<div> </div>
<div>Then I was able to slide the round plastic carrier for the LED strip out of the inner carrier. Success, no damage to the packaging.</div>
<div> </div>
<div>There are two paper documents in the package, a larger white 10 page (1/2 size of a sheet of standard letter paper) manual titled 'Philips LivingColors / LightStrips Safety Instructions - Part B' with a clearly visible text stating 'Last update: 05/06/13' (yo international company Philips is that May or June??) This document has at the top of the first page a set of 11 icons that I believe are used by Google or Apple as part of the interview process for new engineers and programmers. The second part of the document, if used in a job interview, would clearly show age discrimination, as it is set in a type font that cannot be larger than 4 point type. But good news about this manual, it is just safety instructions nothing to do with setup or operation of the LightStrips. And if you care, to the education value, it is written in 29 languages!</div>
<div> </div>
<div> </div>
<div> </div>
<div>The second document, titled 'Friends of Hue Personal Wireless Lighting' is a small 2 inch by 2 inch square document, is the true 'getting started' document. Would be nice for them to say something like 'start here' on it. This document is another Google or Apple interview question, as it opens it's pages right to left and left to right. The correct answer (I think) is right to left. Lucky this manual (kind of) only has 12 languages, and they are all read left to right, which kind of corresponds to opening the document from the right. Anyway, as I said, this document is kind of multilingual, except the first six pages are all in English. Good news, the pages really don't tell you anything other than launch the Hue app on your mobile and click the button to add a new light to your system. The first really text page, that is duplicated in 12 languages, basically says cut your LightStrip to the length you want (but does not clearly show you the correct places to cut the strip, the strip itself kind of shows this), then stick it to the surface you want using the adhesive back, plug the strip into the power jack and then go back a couple pages in this manual to see how to add the strip to your system. Not a good job on instructions Philips.</div>
<div> </div>
<div> <img title="hue-lightstrips-01.jpg" src="http://lh4.ggpht.com/-gGJVOviiD-o/UgSCypFtLTI/AAAAAAAAIc0/A7HTCsJPHbk/hue-lightstrips-01.jpg?imgmax=800" alt="Hue lightstrips 01" width="600" height="450" border="0" /></div>
<div> </div>
<div>The last two pages of the manual show you that you that you should not bend the strip where a LED is located and that the maximum recommended bend is 90 degrees. The last page gives you another chance to pass the Google or Apple job interview 'icon' test and then tells you to read the 'B' second manual on safety that I described above.</div>
<div> </div>
<div>This is probably a good time to read the safety manual, because I just thought of something as I look at the strip of LED's. It is not clear to me that the voltage on the LED strip section is a safe voltage, rather than mains voltage. I am wondering what would happen if I plugged the unit into the wall socket and then decided to use by metal scissors to cut the end of the strip! At least it does look like the voltage is only 12 volts (I think DC) down from wall wart. Other than if you got at least the first two icons correct in the above mentioned safety test, the only place that it says that you should only use LightStrips in a dry indoor location is on the wall wart.</div>
<div> </div>
<div>Bottom line, Philips could have done a much better job on the setup instructions by just taking advantage of the QR code they place on the front of the box. They should add a QR code reader in the HUE app and have a simple icon in the app that says 'Add New Light' and instructs you to scan the QR code. This would take you to a useful installation video on your mobile (as opposed to the marketing one that is currently displayed on the 'Friends of Hue' page that the QR code and URL on the back of the small manual takes you to. Also Philips, make your web page recognize that you are coming from a mobile and format correctly. And make sure you grovel to Google YouTube so that your video plays on day one without stopping!)</div>
<div> </div>
<div>The unit I purchase here in the USA is a USA socket device with a rating of 100-240 volts 50/60 Hz.</div>
<div> </div>
<div>The LightStrips has 5 unique sections:</div>
<div> </div>
<div><ol>
<li>The wall wart. The USA one that I purchased is a USA 2 prong ungrounded and unpolarized plug.</li>
<li>A 38 inch 1/8 inch flexible round white cable that runs to the ZigBee control unit.</li>
<li>The ZigBee wireless control unit, a white 3 1/4 inch by 1 1/4 inch by 1/2 inch box with the long sides rounded. As I said it is about the size of the 1st generation Apple IR remote control that came with Macs. The unit has two 3M sticky tape points to attach it. The cables run in and out the small ends.</li>
<li>A second section of 1/8 inch flexible round white cable that is 96 inches long (I will wait for my second unit to cut the cable and try and figure out how to extend). </li>
<li>The LED strip, the LED's are 1 9/16 inches apart. The LED strip is 78 inches long. The transition from the 1/8 inch round cable to the flat LED strip is covered with a 1 1/2 inch piece of white heat shrink tube. There are 60 LED's on the strip. The cut points are every 4 inches.</li>
</ol>
<div> </div>
<div>The LED strip is similar to others I have seen in the current generation. It is 1/4 inch wide and 3/16 inch thick at its highest point. The strip is white with visible capacitors, LED's and cut points, along with the Philips name in off white every 4 inches. The back is a continuous strip of 3M double sided sticky tape.</div>
<div> </div>
<div>When I first powered it on, all sixty LED's came on in an orange color.</div>
<div> </div>
<div>I launched the Hue app on my iPhone and it found the LightStrips and named it 'LightStrips 1'. Clean and easy, I should have started here from the outside of the box!</div>
<div> </div>
<div>The app continued to search for lights for about another 45 seconds and then gave me a 'Done' option. This screen is another example of where Philips could do a better job on the user experience. I do not think it would be very hard to put a 'count down timer or thermometer indicator' to tell you how much longer you have to wait for the search to complete.</div>
<div> </div>
<div>The LightStrips added to my network without any problem and are working exactly like my other Hue bulbs. I will have to point you to others that are more qualified to talk about the light quality and color of the LightStrips. My initial two thoughts are as follows:</div>
<div> </div>
<div><ol style="font-size: 14px; line-height: 14px;">
<li>The LightStrips do not seem to have as fine a level control as the Hue.</li>
<li>The color of the LED's in the LightStrips do appear to be different and not as vibrant as the Hue bulb.</li>
</ol>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;">I think both of these assessments may be 'feelings' rather than any science differences in the LED's.</div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;">At USA $90, these are not going to be a main stream product for 85% of American consumers. That said, for those with a good application and the money, the Philips Hue LED system is the beacon to guide all of us to both better and more energy efficient light for all. The prices will fall, and I hope that Philips opens their technology enough to allow other quality lighting providers to work in a common system architecture. We do not need competing and different lighting control systems! The energy efficiency needs of the human race and planet need to be a higher priority than localized corporate profit. Consumers should be able to go out a buy a reasonably priced lighting device from quality providers that is 100% interoperable with all the other vendors. We do not have the luxury of time for the 'best socket' to slowly wind its way to market dominance, it is time for the big lighting corporations to get together and do the right thing together. Soap box off.</div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;">I was able to control the LightStrips with the same JSON and python code that I have been using with my original Hue bulbs. I admit I have not followed the API's closely since Philips published their official API documents, so perhaps their are more functions waiting to be exposed with these second family members of Hue.</div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;">The last set of LED strips I installed were about 5 years ago, dinosaurs in the current scope of progress. Those were from Ikea of all places, I can say I have not saved enough energy to replace those with LightStrips as yet, but for folks that are a bit behind the 'beading' edge, Philips LightsStrips might be a great place and time to start in wireless LED lighting.</div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;">Bottom line, congratulations Philips! This is a useful and quality 2nd product in your wireless LED lighting direction. You are a leader and innovator! Keep it up. All my nit picks aside, okay one more 'Friends of Hue'????? WTF?????? I am not getting it. Don't let this EXCELLENT AND TIMELY FAMILY OF GREAT AND USEFUL TECHNOLOGY get tripped up by dumb marketing slogans, bad installation experiences, price and lack of interoperability. You have the Edison Socket by the 'horns', use this wonderful position you are in to lead the world to better light!</div>
</div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;"> </div>
<div style="font-size: 14px;"><img title="hue-lightstrips-02.jpg" src="http://lh4.ggpht.com/-Rh_iAyDlIWw/UgSC0HsHPHI/AAAAAAAAIc8/XwpjCFJ67wo/hue-lightstrips-02.jpg?imgmax=800" alt="Hue lightstrips 02" width="450" height="600" border="0" /></div>
<div style="font-size: 14px;"> </div>
</div>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com2tag:blogger.com,1999:blog-5774295007004608499.post-23401853911653145822012-01-08T00:31:00.001-08:002012-01-08T01:09:10.051-08:00Initial look at the new Bluetooth wireless hardware and software, know as Bluetooth LE, 4.0 or SmartThe Apple iPhone 4S was the first hardware out the gate with support of this new wireless protocol. Now a few months later 3 or 4 Android phones are hitting the market with support as well.<br /><br />A couple things make this technology really interesting for sending data at low to mid range data rates, say from 10 bytes per second up to a hundred thousand bytes per second.<br /><br />It does look to have a few warts out the gate and there are other players in the market today and on the way. But my sense is they have put together enough of the right pieces, that in combination with the 'Bluetooth' name, market penetration and consumer understanding such that it will become the low power device connection standard. <br /><br />The first benefit is that the sensor or 'end point' devices will consume very low power, battery life should range from multi-days to years and the power source need not be more that one AAA battery. Or even smaller, for example hearing aid batteries. And not to far out devices powered by solar and also using other energy harvesting methods.<br /><br />The second benefit is that it is under the Bluetooth wireless family name. With Billions of phones and computers currently in the market with Bluetooth 2.x built-in, so many consumers know how Bluetooth is able to make a wireless headphone or data transfer connection today. This is a consumer adoption barrier reducer. Although Bluetooth Smart is really a combination of new wireless hardware and software that only shares some common data structures, high level API architectures and runs in the same frequency range as the current Bluetooth 2.x technology. To make it clear, a 'Bluetooth Smart' device will not communicate with ANY of the existing Bluetooth 2.x phones, devices or adapters in computers, cars or anything else prior to the iPhone 4S. More on these family incompatibilities in a bit. <br /><br />Bluetooth sits in a 'distance between devices' area between 'under a foot' to 15 feet. This is a space that the current Bluetooth devices have done a very good job of providing 'cable-less', reliable and low cost connections. Bluetooth Smart improves that with lower cost and lower power while improving the connection setup speed and simplicity. There is and will be overlap with this technology and Wifi on the high speed and distance side and the new emerging NFC ( near field communication ) technology on the close in financial transaction side. However the strength of Bluetooth Smart will keep it in control of this zone around your phone and computer. And it is going to open up wireless communication by many other devices in this zone. Examples include household appliances, door locks, sensors, medical devices, fitness devices and many yet to be thought of applications.<br /><br />Another huge benefit that Bluetooth Smart has, has nothing to do with technology, but rather that the benevolent technology dictator, Apple, [ or happy walled garden, if you prefer a positive spin on Apple's control ] has now opened Bluetooth Smart on the iPhone 4S and most likely all future iOS hardware to all hardware and software developers. Prior to iOS version 5 and the iPhone 4S only limited types of wireless data transfers in and out of iOS devices was allowed. Now a iPhone 4S can send and receive any type data from a custom iOS app with no restrictions placed on it by Apple [ although the app will still need to be 'approved' by Apple for sale in the App Store ]. So what does this mean? It means that a hardware developer can build one device that will communicate with Apple, Android and other phones and devices, as long as they have the Bluetooth Smart hardware and software support. Examples of this include health and fitness equipment [ I am wearing a Bluetooth Smart heart rate sensor as I write this ]; gaming devices, it will now be possible to write a app or game that will easily communicate between a iOS device and an Android device. There is no doubt that leading edge wireless connected devices [ The Internet of Things ] will often first appear in the Apple iPhone space, now these devices will be able to appear on the larger market [but often lower priced] Android market at the same time [ the availability of the app on the device is the only gate ].<br /><br />All of these positives make me believe that Bluetooth Smart is going to be the standard going forward in this 'zone' and we are about to see a big wave of new wireless connections between things.<br /><br />The roll out of devices with Bluetooth Smart is going to take a couple years, that is the turn over period of many 'smart phones' today based on carrier contract length and the technology price/pain obsolescence curve. The hardware development kits are starting to rollout and get on the radar screen of companies and developers with ideas. The first Bluetooth Smart devices have hit the market already, including the Wahoo heart rate belt I am trying. The ramp up of more of these devices will take about twelve to eighteen months, and getting the software bugs and battery life tuning will take about the same period. So the two year window [ starting from 4th Qtr 2011 ] of mass adoption seems about right.<br /><br />To some of the challenges that the adoption faces......<br /><br />First, there is the good/bad thing that is the name Bluetooth. Yes, many current phones have Bluetooth. However, they will not talk to devices with this newer Bluetooth Smart hardware. New phones that are rolling out, including the iPhone 4S have both the old and new Bluetooth radios and software built in. This will allow them to talk to both type devices. Devices that have this ability are given the Bluetooth marketing name 'Bluetooth Smart Ready'. Get the difference? The word 'Ready' at the end signifies that the device has the hardware and software to talk to Bluetooth 2.x and Bluetooth Smart devices. So, having devices around for a number of years to come that only take old Bluetooth 2.x is going to be one of the challenges to adopting this new Bluetooth Smart. I think the naming of the technologies is not very clear, though I am not sure I can think of a better set of names that would make it clear to the consumer market. Plan a lot of devices returns and tech support hours during this transition period. <a href="http://www.bluetooth.com/Pages/Smart-Logos.aspx">Here</a> is a web page at the Bluetooth industry group that tries to explain the terms and technologies.<br /><br />Another challenge is from the other wireless technologies either encroaching on this zone or directly compete with it. The biggest [and perhaps the only ] direct competitor is a wireless technology called <a href="http://www.thisisant.com/">ANT+</a>. It has been used in the sports and fitness areas for the last 18 months. It is probably an equally good wireless technology as Bluetooth Smart, it just did not get traction in the other areas of use in this 'zone'; for example wireless audio, headphones speakers. Not getting adaption in this large use case has limited its adoption. A number of Android phones have ANT+ technology built into them today, probably millions of phones, but a vast majority of the phone owners have no idea it is there. Most of the ANT+ hardware vendors are moving to Bluetooth Smart, but this transition will be a small slow down. Mostly, I think, will be due to media sound bites playing up this 'dead end' for some users and their devices.<br /><br />The other direct challenger in this area is the Zigbee/802.15.4 technology. They have been a long time player in this space, the longest I think and perhaps have the strongest technology. However, other than their new standards in the home remote controls and home energy market [ smart meters ] they have not been able to gain a foot hold in the consumer space. I do not think they will either, perhaps too bad. But perhaps one of the examples of the better technology not winning. <br /><br />The 'encroachment' challenges may come from the WiFi hardware manufactures. They have been promising a WiFi radio that will cover the current WiFi use cases as well as the current Bluetooth ones. And do all of the same 'new' low power/low cost stuff as good or better [ their belief ] as Bluetooth Smart. But these radios have seemed to be 'right around the corner' for at least the last year. I think they will produce a hardware device that may meet all of these goals, but I think will be too late to market. Wifi will need to scale across a very large data transfer range, from gigabits to bits while doing this with compatibility [ at least in name like Bluetooth ] and power budget. I don't think WiFi will win, but I think we will see devices and this will add to the transition confusion of Bluetooth Smart. At the other end, I do not see the NFC/RFID technologies trying to move 'up' into the Bluetooth zone, the technology does not seem to support the data rates and power budgets that Bluetooth use cases need. There is talk that Bluetooth Smart will try to move down into the NFC zone, specifically for financial transaction applications. This battle is still to be fought, however NFC has a strong foot hold and seem to be getting support from the credit card companies. There are other battles going on around who owns this market, other than the encryption chip technology, I do not think this will be decided by wireless chip vendors.<br /><br />Another thing that I think will cause some bumps in the Bluetooth Smart adoption is the current licensing and developer tools costs. While the cost of Bluetooth has been going down for the consumers, these price reductions have come due to more sales of phones and other devices not due the Bluetooth license and tools costs being reduced. As the open hardware trend is expanding, Bluetooth licensing remains proprietary. I think this closed development community will stifle innovative ideas for use of this ubiquitous connectivity of devices. <br /><br />I have been experimenting with a Texas Instruments prototyping kit for Bluetooth Smart, it is based on their CC2540 chip family. I have several devices that I have wired up talking to a iPhone 4S and desktop computers using the Bluetooth Smart system. I do not have a Android device as yet with the Bluetooth Smart hardware. I've been following the developer forums at TI and a couple of other hardware manufactures that have Bluetooth Smart chip sets just now in the market. It is still a learning period of a lot of developers [ and hacks like myself ], but much progress is being made. At least by those that have deep enough pockets for the compilers and license fees.<br /><br />Get ready for a MASSIVE explosion of The Internet of Things [ #IoT ] in the next couple of years, our phones, tablets, appliances and transportation devices are going to be connected to tens of other devices during the day and night.<br /><br /><img src="http://lh5.ggpht.com/-d__fxc1HGhU/TwldK98wEqI/AAAAAAAACMQ/JSss0uldivs/cc25401.jpg?imgmax=800" alt="TI CC2540 Development Kit" border="0" width="450" height="600" style="float:left;" /><img src="http://lh5.ggpht.com/-YKnq5wSOX48/TwldMi_tUSI/AAAAAAAACMY/xMfP1UtdLtk/iOS-CC2540.jpg?imgmax=800" alt="TI iOS CC2540 Demo" border="0" width="400" height="600" style="float:left;" /><br /> Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-50997739350701301942011-12-18T20:21:00.001-08:002011-12-18T20:27:18.865-08:00Updating TI Beagleboard to 3.x Linux from Angstrom Embedded DistroI've have one of these neat TI Beagleboard for a couple years, have not used it for a while. TI recently released a new hardware implementation of this family called the Beaglebone. This device looks to be more useable for hardware interfacing, so I picked up a couple to explore. At USD 90, the price of the Beaglebone shows the continued downward price curve of powerful embedded hardware.<br /><br />I dusted off the older Beagleboard to do some comparisons with the newer Beaglebone hardware. So first off I decided to get the distro version as close as possible. Angstrom appears to be most used and updated distro for the family, but the Android folks look to be getting some steam up.<br /><br />Here are my notes on getting the most current Angstrom distro running on the Beagleboard.<br /><br />The one big gotcha that may trip up forever n00b's like me was the change of the TTY port naming conventions. The correct port name for the serial port on the Beagleboard is:<br /><br /><pre>ttyO2</pre><br /><br />that is a capital OOOOOO as in Oscar not a zero!<br /><br />After Linux kernel version 2.6.36 the naming convention appears to have moved from:<br /><br /><pre>ttySx</pre><br /><br />--to--<br /><br /><pre>ttyOx</pre><br /><br />I'm sure there is a really good reason to slipstream this change in, but not only is it not clearly announced / documented around the various Linux and embedded internet resources [one of those "weed 'em out events perhaps?"] but using the capital 'O' character seems to be making for more opportunities for mistakes by confusing it with the number zero '0'.<br /><br />The standard instructions to create a SD card with the two partitions containing the u-Boot and linux kernel on the first FAT partition and the remaining core Linux core OS files on the second [one of several types] Linux/Unix formatted partition is straight forward and does not vary from prior configs.<br /><br />The main two changes to get the console output and the a serial terminal login prompt are as follows:<br /><br />1) change the Linux bootargs console value to be:<br /><br /><pre>console=ttyO2</pre><br /><br />REMEMBER THAT IS A CAPITAL O NOT A ZERO!<br /><br />my basic u-Boot environment variable 'bootargs' is as follows:<br /><br /><pre>bootargs=console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw rootwait</pre><br /><br />2) Before you put the SD card into the Beagleboard, or after via the X Window session that comes up by default, edit the inittab file in /etc and change the following line from:<br /><br /><pre>S:2345:respawn:/sbin/getty 115200 ttyS2</pre><br /><br />--to--<br /><br /><pre>S:2345:respawn:/sbin/getty 115200 ttyO2</pre><br /><br />this will give you a login prompt on the Beagleboard's serial port.<br /><br /><strong>Results and experiences to date.</strong><br /><br />I am still testing the 3.x kernel on the Beagleboard, so far so good. The serial port might be exhibiting some slow down after a the machine is up for a while. I need to get more data on this. Unfortunately, most of my focus is on the new Beaglebone, so the '..board' is getting the 'old dog' treatment. The puppy is the center of attention.<br /><br />I updated the two boot modules of the Beagleboard to what I believe is the most current version. You get these by putting the MLO and u-boot.bin files on the FAT boot partition when you download the latest build of Angstrom. There are couple of thinks to be aware of with these upgrades. The version of these files that are in the flash memory of the Beagleboard are the older version until you use the u-boot commands to re-flash them. The instructions to do this are straight forward and worked fine. The 'gotcha' here comes in that the commands in u-boot have changed considerable and the boot scripts are stored as environment variables in the flash. So your old boot scripts will work with with your old SD cards and when you boot these files from flash [by removing the SD card or holding down the 'user' button during power up]. However, when you boot with the newer u-boot, thinks quit working. And, unfortunately, it appears to be even worse than the new versions don't work the same as to older version. It appears that the documentation and perhaps some of the commands do not work as documented that you will find on the 'help' sites on the web. I have not got my arms around these 'additional' issue yet so take this with a grain of salt, but do watch carefully as commands run. One example of what I am talking about is the 'mmc' command family to work with the SD card. There is much discussion of a 'mmcinit' command, but I could not find that command anywhere. What I did find is that before reading from the SD card, it is a good idea to do a 'mmc reset' each time before loading a file or doing a directory of the mmc. Below is my before and simple v1 'after' environments:<br /><br />-- before version of environment variables that booted a October 2009 Angstrom Linux --<br /><pre style="font-size: 12px; line-height:1.2em;"><pre>OMAP3 beagleboard.org # printenv<br /><br />bootcmd=if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nandboot; fi; fi; else run nandboot; fi<br />bootdelay=10<br />baudrate=115200<br />loadaddr=0x82000000<br />console=ttyS2,115200n8<br />vram=12M<br />dvimode=1024x768MR-16@60<br />defaultdisplay=dvi<br />mmcargs=setenv bootargs console=${console} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait<br />nandargs=setenv bootargs console=${console} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=/dev/mtdblock4 rw rootfstype=jffs2<br />loadbootscript=fatload mmc 0 ${loadaddr} boot.scr<br />bootscript=echo Running bootscript from mmc ...; source ${loadaddr}<br />loaduimage=fatload mmc 0 ${loadaddr} uImage<br />mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}<br />nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}<br />stdin=serial<br />stdout=serial<br />stderr=serial<br />dieid#=1c04000300000000040323090e01600d<br /><br />Environment size: 1056/131068 bytes<br />OMAP3 beagleboard.org # </pre><br /><br /><br />-- simple 'after' version that boots the Angstrom November 2011 3.x Linux --<br /><br /><pre>OMAP3 beagleboard.org # printenv<br />baudrate=115200<br />beaglerev=Cx<br />bootaddr=0x80300000<br />bootargs=console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw rootwait<br />bootcmd=mmc rescan 0; fatload mmc 0 ${loadaddr} uImage; bootm ${bootaddr}<br />bootdelay=10<br />buddy=unknown<br />buddy2=unknown<br />dieid#=1c04000300000000040323090e01600d<br />filesize=338778<br />loadaddr=0x80300000<br />stderr=serial<br />stdin=serial<br />stdout=serial<br />video=omapfb:2M,vram:4M<br />vram=12M<br /><br />Environment size: 412/131068 bytes<br />OMAP3 beagleboard.org # <br /></pre><br /><br />Here is what is running on the Beagleboard now:<br /><br /><pre>Linux beagleboard 3.0.8+ #1 Tue Nov 1 21:14:19 CET 2011 armv7l unknown<br /></pre><br /><br />Some useful web sites:<br /><br />Good basic setup instruction of the Beagleboard. Old so it does not address the problems I highlighted above, but still a good anchor to go back to:<br /><br />http://www.ibm.com/developerworks/linux/library/l-beagle-board/<br /><br />Beagleboard web site:<br /><br />http://beagleboard.org/<br /><br />Angstrom Linux for Beagleboard latest version. NOTE: go to the Amazon AWS mirror of this web site to get much faster download of files:<br /><br />http://www.angstrom-distribution.org/demo/beagleboard/<br /><br /><strong>Summary...</strong><br /><br />Pretty frustrating waste of time I had as a n00b here because the 'in the know' folks that are maintaining this stuff did not take five minutes to document some of the rather major changes. Glad I have it working! The Beagleboard and Beaglebone are great training ground for the amazing world of embedded connected inexpensive devices we are moving to. <br /><br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-78084029106697666852011-05-30T20:17:00.001-07:002011-05-30T21:04:51.622-07:00Simple learning example for digital to analog on Arduino with MicroChip MC 4921<p>The Arduino hardware only provides PWM pseudo-DAC support. I had the need to create a simple set of signal wave forms, so I though I would try and accomplish it with the Arduino. I had a AdaFruit Wave Shield v1.1 sitting around, a neat device that does a number of things, but primarily focused on playing back audio files from it's attached SD card reader. I looked around for some code to create wave forms with its on board MicroChip MC 4921 12 bit DAC, but found nothing that was written directly for the Wave Shield. Several folks have posted info on using the MCP 4921 with the Arduino in projects, so I follow their leads and hacked up the code I needed. Below is a simple first step I used to learn to talk to the DAC chip, might give others a starting point. It also shows the basics for storing data in the program code memory of the ATMEL x28 processors. The sine table is far too big to fit in data memory on the Arduino.<br /><br />Thanks to the folks cited in the comments below for their work.</p><p> </p><pre style="font-size: 12px; line-height:1.2em;">// DAC-programming01<br />// 30-May-2011<br />// direct programming of Microchip MCP 4921 12 bit D to A on the AdaFruit WaveShield v1.1 <br />// Dave Proffer<br />//<br />// demonstrates programming the MCP4921 to generate several different wave forms<br />// look like about 0.666 hertz or 1.5 seconds per cycle on Dumilanove with ATmega328 16 Mhz<br />// sine wave generated by : http://www.daycounter.com/Calculators/Sine-Generator-Calculator.phtml<br />// initial MCP 4921 code from: http://www.csulb.edu/~hill/ Prof. G. C. Hill at CSULB<br />//<br /><br /><br />#include <avr/pgmspace.h><br /><br />#define DATAOUT 4 //MOSI<br />#define SPICLOCK 3 //sck<br />#define SLAVESELECT 2 //ss<br />#define LDAC 5<br /><br />#define ledPin 13<br /> <br /> word sensorValue;<br /> word interval;<br /> byte data = 0;<br /> <br />// this sine wave table, 1024 12 bit words is too big for the RAM of the Arduino, so we use the ATMEL rountes to store in in the much larger program non-vol mem<br /> PROGMEM prog_uint16_t sineLookup[1024] = <br />{<br />2048,2060,2073,2085,2098,2110,2123,2135,2148,2161,<br />2173,2186,2198,2211,2223,2236,2248,2261,2273,2286,<br />2298,2311,2323,2335,2348,2360,2373,2385,2398,2410,<br />2422,2435,2447,2459,2472,2484,2496,2508,2521,2533,<br />2545,2557,2569,2581,2594,2606,2618,2630,2642,2654,<br />2666,2678,2690,2702,2714,2725,2737,2749,2761,2773,<br />2784,2796,2808,2819,2831,2843,2854,2866,2877,2889,<br />2900,2912,2923,2934,2946,2957,2968,2979,2990,3002,<br />3013,3024,3035,3046,3057,3068,3078,3089,3100,3111,<br />3122,3132,3143,3154,3164,3175,3185,3195,3206,3216,<br />3226,3237,3247,3257,3267,3277,3287,3297,3307,3317,<br />3327,3337,3346,3356,3366,3375,3385,3394,3404,3413,<br />3423,3432,3441,3450,3459,3468,3477,3486,3495,3504,<br />3513,3522,3530,3539,3548,3556,3565,3573,3581,3590,<br />3598,3606,3614,3622,3630,3638,3646,3654,3662,3669,<br />3677,3685,3692,3700,3707,3714,3722,3729,3736,3743,<br />3750,3757,3764,3771,3777,3784,3791,3797,3804,3810,<br />3816,3823,3829,3835,3841,3847,3853,3859,3865,3871,<br />3876,3882,3888,3893,3898,3904,3909,3914,3919,3924,<br />3929,3934,3939,3944,3949,3953,3958,3962,3967,3971,<br />3975,3980,3984,3988,3992,3996,3999,4003,4007,4010,<br />4014,4017,4021,4024,4027,4031,4034,4037,4040,4042,<br />4045,4048,4051,4053,4056,4058,4060,4063,4065,4067,<br />4069,4071,4073,4075,4076,4078,4080,4081,4083,4084,<br />4085,4086,4087,4088,4089,4090,4091,4092,4093,4093,<br />4094,4094,4094,4095,4095,4095,4095,4095,4095,4095,<br />4094,4094,4094,4093,4093,4092,4091,4090,4089,4088,<br />4087,4086,4085,4084,4083,4081,4080,4078,4076,4075,<br />4073,4071,4069,4067,4065,4063,4060,4058,4056,4053,<br />4051,4048,4045,4042,4040,4037,4034,4031,4027,4024,<br />4021,4017,4014,4010,4007,4003,3999,3996,3992,3988,<br />3984,3980,3975,3971,3967,3962,3958,3953,3949,3944,<br />3939,3934,3929,3924,3919,3914,3909,3904,3898,3893,<br />3888,3882,3876,3871,3865,3859,3853,3847,3841,3835,<br />3829,3823,3816,3810,3804,3797,3791,3784,3777,3771,<br />3764,3757,3750,3743,3736,3729,3722,3714,3707,3700,<br />3692,3685,3677,3669,3662,3654,3646,3638,3630,3622,<br />3614,3606,3598,3590,3581,3573,3565,3556,3548,3539,<br />3530,3522,3513,3504,3495,3486,3477,3468,3459,3450,<br />3441,3432,3423,3413,3404,3394,3385,3375,3366,3356,<br />3346,3337,3327,3317,3307,3297,3287,3277,3267,3257,<br />3247,3237,3226,3216,3206,3195,3185,3175,3164,3154,<br />3143,3132,3122,3111,3100,3089,3078,3068,3057,3046,<br />3035,3024,3013,3002,2990,2979,2968,2957,2946,2934,<br />2923,2912,2900,2889,2877,2866,2854,2843,2831,2819,<br />2808,2796,2784,2773,2761,2749,2737,2725,2714,2702,<br />2690,2678,2666,2654,2642,2630,2618,2606,2594,2581,<br />2569,2557,2545,2533,2521,2508,2496,2484,2472,2459,<br />2447,2435,2422,2410,2398,2385,2373,2360,2348,2335,<br />2323,2311,2298,2286,2273,2261,2248,2236,2223,2211,<br />2198,2186,2173,2161,2148,2135,2123,2110,2098,2085,<br />2073,2060,2048,2035,2022,2010,1997,1985,1972,1960,<br />1947,1934,1922,1909,1897,1884,1872,1859,1847,1834,<br />1822,1809,1797,1784,1772,1760,1747,1735,1722,1710,<br />1697,1685,1673,1660,1648,1636,1623,1611,1599,1587,<br />1574,1562,1550,1538,1526,1514,1501,1489,1477,1465,<br />1453,1441,1429,1417,1405,1393,1381,1370,1358,1346,<br />1334,1322,1311,1299,1287,1276,1264,1252,1241,1229,<br />1218,1206,1195,1183,1172,1161,1149,1138,1127,1116,<br />1105,1093,1082,1071,1060,1049,1038,1027,1017,1006,<br />995,984,973,963,952,941,931,920,910,900,<br />889,879,869,858,848,838,828,818,808,798,<br />788,778,768,758,749,739,729,720,710,701,<br />691,682,672,663,654,645,636,627,618,609,<br />600,591,582,573,565,556,547,539,530,522,<br />514,505,497,489,481,473,465,457,449,441,<br />433,426,418,410,403,395,388,381,373,366,<br />359,352,345,338,331,324,318,311,304,298,<br />291,285,279,272,266,260,254,248,242,236,<br />230,224,219,213,207,202,197,191,186,181,<br />176,171,166,161,156,151,146,142,137,133,<br />128,124,120,115,111,107,103,99,96,92,<br />88,85,81,78,74,71,68,64,61,58,<br />55,53,50,47,44,42,39,37,35,32,<br />30,28,26,24,22,20,19,17,15,14,<br />12,11,10,9,8,7,6,5,4,3,<br />2,2,1,1,1,0,0,0,0,0,<br />0,0,1,1,1,2,2,3,4,5,<br />6,7,8,9,10,11,12,14,15,17,<br />19,20,22,24,26,28,30,32,35,37,<br />39,42,44,47,50,53,55,58,61,64,<br />68,71,74,78,81,85,88,92,96,99,<br />103,107,111,115,120,124,128,133,137,142,<br />146,151,156,161,166,171,176,181,186,191,<br />197,202,207,213,219,224,230,236,242,248,<br />254,260,266,272,279,285,291,298,304,311,<br />318,324,331,338,345,352,359,366,373,381,<br />388,395,403,410,418,426,433,441,449,457,<br />465,473,481,489,497,505,514,522,530,539,<br />547,556,565,573,582,591,600,609,618,627,<br />636,645,654,663,672,682,691,701,710,720,<br />729,739,749,758,768,778,788,798,808,818,<br />828,838,848,858,869,879,889,900,910,920,<br />931,941,952,963,973,984,995,1006,1017,1027,<br />1038,1049,1060,1071,1082,1093,1105,1116,1127,1138,<br />1149,1161,1172,1183,1195,1206,1218,1229,1241,1252,<br />1264,1276,1287,1299,1311,1322,1334,1346,1358,1370,<br />1381,1393,1405,1417,1429,1441,1453,1465,1477,1489,<br />1501,1514,1526,1538,1550,1562,1574,1587,1599,1611,<br />1623,1636,1648,1660,1673,1685,1697,1710,1722,1735,<br />1747,1760,1772,1784,1797,1809,1822,1834,1847,1859,<br />1872,1884,1897,1909,1922,1934,1947,1960,1972,1985,<br />1997,2010,2022,2035<br />};<br /><br /><br /> <br />void setup() {<br />// -------------------------------------------------------------<br />// default pins on Wave shield connected to DAC<br />pinMode(DATAOUT, OUTPUT);<br />pinMode(SPICLOCK, OUTPUT);<br />pinMode(SLAVESELECT, OUTPUT);<br />pinMode(LDAC, OUTPUT);<br /><br />// seems to put the DAC in known state, but zero worked too!<br />// sendIntValueSPI(1000);<br /> sendIntValueSPI(0);<br /> <br />// basically keep this line low for the DAC to output signal is what I read<br />digitalWrite(LDAC,LOW);<br /><br />// start serial interface<br />Serial.begin(9600);<br />}<br /><br />// this is the routine that clocks a word of data to the DAC using SPI type transfer logic <br />void sendIntValueSPI(int value) {<br />// -------------------------------------------------------------<br /> <br />// initiate data transfer with 4921<br />digitalWrite(SLAVESELECT,LOW);<br /> <br />// send 4 bit header<br />sendSPIHeader();<br /> <br />// send data<br />for(int i=11;i>=0;i--){<br />digitalWrite(DATAOUT,((value&(1<<i)))>>i);<br />sendSPIClock();<br />}<br /> <br />// finish data transfer<br />digitalWrite(SLAVESELECT,HIGH);<br />}<br /><br />// top of first byte of pair is commands for DAC<br />void sendSPIHeader() {<br />// -------------------------------------------------------------<br />// bit 15<br />// 0 write to DAC *<br />// 1 ignore command<br />digitalWrite(DATAOUT,LOW);<br />sendSPIClock();<br />// bit 14 Vref input buffer control<br />// 0 unbuffered *<br />// 1 buffered<br />digitalWrite(DATAOUT,LOW);<br />sendSPIClock();<br />// bit 13 Output Gain selection<br />// 0 2x<br />// 1 1x *<br />digitalWrite(DATAOUT,HIGH);<br />sendSPIClock();<br />// bit 12 Output shutdown control bit<br />// 0 Shutdown the device<br />// 1 Active mode operation *<br />digitalWrite(DATAOUT,HIGH);<br />sendSPIClock();<br />}<br /><br />// basic clock of each bit with is routine<br />void sendSPIClock() {<br />// -------------------------------------------------------------<br />digitalWrite(SPICLOCK,HIGH);<br />digitalWrite(SPICLOCK,LOW);<br />}<br /><br />// some simple wave forms for testing<br /><br />void loop() {<br />// -------------------------------------------------------------<br /><br /><br />/*<br />// triangle wave<br />for (int i=0; i<25; i++)<br />{<br /> sendIntValueSPI(i*160);<br />}<br />for (int i=24; i>=0; i--)<br />{<br /> sendIntValueSPI(i*160);<br />}<br />*/<br />/*<br />// precision triangle wave<br />for (int i=0; i<=4095; i++)<br />{<br /> sendIntValueSPI(i);<br />}<br />for (int i=4095; i>=0; i--)<br />{<br /> sendIntValueSPI(i);<br />}<br />*/<br /><br />//sine wave lookup<br />for (int i=0; i< (sizeof(sineLookup)/sizeof(int)); i++)<br />{<br /> // according to the doc, you cannot simply access data stored in the program mem like you would in data mem, so you must use the ATMEL functions to move data so you can use it.<br /> <br /> unsigned int tabVal = pgm_read_word_near(sineLookup + i);<br />// Serial.print(i);<br />// Serial.print(", ");<br />// Serial.println(tabVal);<br /> sendIntValueSPI(tabVal);<br />}<br /><br />/*<br />//square wave<br /><br />interval = 0;<br />for (int i=0; i < 50; i++) sendIntValueSPI(interval);<br />interval = 4095;<br />for (int i=0; i < 50; i++) sendIntValueSPI(interval);<br />*/<br /><br /><br />// for (interval=0; interval < 4096; interval++)<br />// {<br />// sendIntValueSPI(interval);<br /><br />// }<br />}<br /><br /></pre><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-83834485703323253922011-01-06T17:27:00.001-08:002011-01-06T17:30:11.082-08:00Dual monitor setup ideas, great price on a useful base monitor stand: Planar 997-5253 at Buy.com<p>This week [1st week January 2011], Buy.com has a pretty good deal on a desktop monitor stand that will get a dual monitor setup working for your desktop. <a href="http://www.buy.com/prod/planar-997-5253-00-black-dual-monitor-stand-for-lcd-displays/q/loc/111/207642650.html">Here is the link that is good for a least a week more</a>. I paid thirty dollars more for the same unit at Amazon.com a while back, this is 'all in' with same shipping options and taking into account that Buy.com charges CA sales tax where Amazon.com does not. I am amazed at the shipping efficiency that Buy.com has, I ordered a 2nd one of these from Buy.com yesterday with their cheapest shipping option, free, and it was delivered via Fedex Home Ground the next afternoon. Clearly your physical location relative to Buy.com's logistics sites will make a difference, but wow!</p><p>I'm a big fan of portrait monitor orientation as you can see by the second picture below. What is nice about the Planar dual monitor stand is that is able to handle monitors up to 24 inches in either landscape, portrait or a combination. The ability for Windows, Linux and Mac OS X to handle multiple monitors and monitors turned 90 degrees [or 270 degrees] has greatly improved over the years. I still find Apple's OS X operating system to handle it the best 'out of the box'. Much of their advantage is that they control both the hardware and video display drivers. In Windows and Linux you often have to deal with one or more third party video card drivers to get it working. That said, my configurations on Ubuntu Linux 10.02 work really well. I have been using nVidia cards for a while and they works solidly, but do expect to spend more time in the setup phase than you will on OS X.</p><p>The <a href="http://www.planar.com/products/accessories/">Planar 997-5253</a> stand is really easy to setup and is very stable on your desk. I'm using 21 inch monitors in portrait orientation and there is no way they will tip over. In the past, I've used stands that attached to the sides of desks or into drilled holes. While these are the ultimate in stability, they are more difficult to get a good ergonomic setup.</p><p>The price and selection of LCD monitors is wide open now, so you have to shop around for price point, size and display quality. The most important item for the dual monitor setup is to make sure the monitors you buy have the ability to remove their standard base and mount via the industry standard 'VESA 100 mm by 100 mm' or 'VESA 75 mm by 75 mm' third party mounting option. Be careful with some of the lower cost LCD monitors, as they do NOT have this option. Apple's LCD monitors do not have this option either, though people have hacked the Apple monitor mounts to make them work. So for a OS X dual monitor configuration; Mac Mini, Mac Book Pro, or Mac Pro I recommend using non-Apple monitors. You might wonder how you drive multiple monitors on a Mac Book Pro or Mac Mini, if you search Google.com, you will find a number of people that have made this work using various configurations of the internal video card and cables. For my configuration on a MacBook Pro, I went with a external USB video card device from <a href="http://www.displaylink.com">DisplayLink.com</a> . Their latest OS X drivers support display rotation, the video quality on the DisplayLink device that I have not as high a quality as the built in video card of the MacBook Pro, but has been fine for my old eyes and has been running solidly with no memory leaks or crashes. On the Linux machine, where I do most of my work, I use nVidia video cards that have dual monitor support build in. The Apple MacPro has similar video cards available. Having a powerful video card with dual DVI or HDMI monitor support is the ideal machine to run. But I can say that my MacBook Pro configuration, which is really a THREE monitor solution, since the display on the notebook works as well. It is solid and a good setup for email, coding and document review.</p><p><img src="http://lh6.ggpht.com/_j3RNBDRBfUM/TSZr-SCSoeI/AAAAAAAABZo/9QiRywPlosQ/buydotcomplanardealjan11.jpg?imgmax=800" border="0" alt="buydotcomplanardealjan11.jpg" width="600" height="436" /></p><p> </p><p> </p><p> </p><p><img src="http://lh5.ggpht.com/_j3RNBDRBfUM/TSZsEmAsrCI/AAAAAAAABZw/d6Fhk_bUkfk/dual-monitor-example.JPG?imgmax=800" border="0" alt="dual-monitor-example.JPG" width="600" height="448" /></p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com13tag:blogger.com,1999:blog-5774295007004608499.post-53590348853620026792010-12-21T14:05:00.001-08:002010-12-21T14:05:14.955-08:00Another iPad problem, or rather a 'feature' -- the mute switch<p>I ran into another issue on the Apple iPad that is another interesting reflection on software and Man-Machine Interface issues that are becoming more and more prevalent and important in our lives.</p><p>It appeared that all of a sudden several of my video playback apps on my iPads quit playing audio. The video was streaming fine, but in total silence. Being a standard human user, I immediately and it turns out incorrectly jumped to the conclusion that the apps that were silent had some type of bug.</p><p>After taking a step back and turning my 'logic brain' back on, what I have found is that the apps that were silent are the ones working correctly. And the combination of my incorrect operation of a new function on the iPad and other apps incorrectly ignoring this function is the root cause of the 'silence' I was encountering.</p><p>With the new release of the iPad's iOS operating system, Apple changed the function of a small switch on the upper right side of the iPad. The switch is just above the volume up/down buttons. Prior to the 4.2.1 release of iOS, the switch locked the screen orientation, so that rotating the iPad did not cause the screen to change orientation. With the latest release of iOS, this orientation lock function was moved to a software button located in the 'task bar' of the iOS system and the function of the physical switch was change to a sound mute function. Moving the switch to the down position, mutes the sound output. Moving the switch up, un-mutes the iPad and allows the volume up and down buttons to change the sound level.</p><p>There has been considerable debate online about these changes in these user interface functions. Even to the extent that for jailbroken iPads, there is a way to put the functions back to their original definition. When I started to use the new functions, I found the new definitions to be more useful, but this one of the challenges that UI developers face, there is NOT one standard way that people are comfortable with.</p><p>And I believe that this 'multiple ways of doing things' challenge is what has lead, at least partially, to the problem that I encountered with the sound playback on the iPad.</p><p>What I have found, is that there a number of apps that are ignoring the mute switch position and generate sound output regardless of the position of this switch. Apps that are ignoring the mute switch, include Apple's own YouTube app and Netflix. I think the first problem is that there is a way outside the operating system to ignore the switches function. Especially in such a controlled hardware/software environment as the iPhone/iPad world, being able to 'repurpose' this hardware does seem to be a bug from Apple's perspective. Second, is that apps are either ignoring the mute switch on purpose or have failed in their updates to correctly adapt to this change in system level UI functionality.</p><p>So what I've found, is that thru my own poor 'ass-umptions' that the apps that were silent were the ones with the problem and due to the combo of apps ignoring the new function and Apple allowing this to occur I see another big occurrence of software causing a lot of consternation in the daily lives of people operating electronic devices. We face some big issues as software continues to rule!</p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-1369412251563660472010-12-21T13:21:00.001-08:002010-12-21T13:21:08.959-08:00iPad button problem, looks like a software issue<p>This issue I have recently encountered on one of my iPads supports the unfortunate fact that there is a lot of computer and electronic hardware that gets returned because the products seem to exhibit hardware problems. When in fact, there are either software bugs or 'software features' that make it appear that there are problems with the hardware, but the hardware is just fine.</p><p>I started to see the home button on the front of the iPad to quit responding. You would push it and nothing would happen, so you could not exit apps, bring up the task manager or any other function that required the button to respond to a push. The problem was very intermittent, sometimes it was completely non-functioning and other times worked fine. I tried cleaning the button area and removing the iPad from the Apple case, at first this seemed to improve the issue. But then it came back. The button does appear to be a mechanical button, unlike the capacitive buttons that many of the Android devices use.</p><p>I should note here that, sad but true, I own three iPads, and this unit was the only one showing the problem. This was reenforcing my belief that I had a hardware issue on just the one iPad.</p><p>I searched Google and found others with similar symptoms. A number of people were going to the Apple store and getting their iPads replace. I decided to make an appointment with the local Apple Genius Bar at the Santa Barbara store. I went in and the helpful technician was able to duplicate the problem with me there, though I sensed she remained skeptical. Her next step was to request that the iPad be totally reset, wiped and reinstalled as a new iPad. We did this in the store and I gave it another 'button pushing' spin, with the iPad cleared of all apps and data. I thought that I could reproduce the problem still, but it seemed to have significantly reduced. The technician at this point was willing to swap out my iPad for a replacement unit. She was multitasking and helping another person at the same time, so I continued to test by button. After about 10 minutes, I told her that I felt the problem might have been fixed, and before swapping the hardware I wanted to reinstall my data and apps and test the unit further.</p><p>The Apple Guru continued to be very helpful and said that since we had done this first 'software' reset step, and the fact was logged in the Apple Support system for this iPad, I could come back and go directly to the hardware swap step.</p><p>Well, two weeks later, I will report that I have NOT seen the problem again. It has been a real PIA to reinstall apps and data in the unit. The Apple Guru recommended NOT restoring the backup image to the iPad. I think this has been the right route to the solution, it does appear that something in the operating system or in one of the apps I installed was causing the button to misbehave. I had installed beta releases of the iOS operating system on this machine along the way to its current state with a production release of iOS 4.2.1 (8C148).</p><p>If the problem is due to a bug in one of the apps I have on the machine, or an interaction between two or more apps, I may not have yet hit this ignition point. And there is still a small possibility that the problem is mechanical hardware related and has just gone into hiding.</p><p>However, as I said at the beginning of this post, I feel strongly that my experience and what I read in the press support the fact that there is a huge number of electronic returns that are working just fine from a hardware perspective. Electronic hardware today is amazingly robust! But us humans are extremely fickle and quick to point the finger at incorrect sources of problems. This combined with the unfortunate fact that it is often simpler, quicker and less expensive to use a 'swap' rather than diagnose and fix route to the solution is a sad truth that poor software is causing.</p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-51978794795205174262010-12-01T07:48:00.001-08:002010-12-01T07:58:01.581-08:00Case improvements for iPhone 4 and iPad<p>Putting your iPad, iPhone or Galaxy Tab into a protective case seems to be a have to do. Other than the antenna problems of the iPhone 4, I am sometimes wondering why I spend this extra money. But I do and I can cite than I've not broken or badly scratched the viewing part of any of these devices as yet, so I should take that as positive value for the investment.</p><p>One of the shortcoming of many of the 1st generation of these cases is that they block, or at least make access difficult, the ports and buttons. I have learned to do as much testing with plugs and connections early after buying a case.</p><p>It is good to see generation 2 of these cases starting to come out. These upgrades are starting to do a better job of allowing access to the connections. A leader in this area is the company <a href="http://www.speckproducts.com/">Speck</a>, they have a new iPhone 4 case and a iPad case that at least allows access to the Apple connector. Have a look at the photo of their new iPhone 4 case below. I was not able to find a good picture of the functioning of the case on the Speck web site, however the web site <a href="http://www.coolbeta.com/speck-candyshell-flip-iphone-4-case-lets-you-dock-iphone-with-protection/">CoolBeta</a> does a good job of showing it off for them.</p><p>The case might work as a stand by itself as well, although no report on this function. I hope that companies like Speck continue to innovate in these areas, these accouterments could really add value to the devices. This should make me feel better about the amount of money I spend on these accessories!</p><p> </p><p>Update, the Speck web site does have a picture of the operation of the <a href="http://www.speckproducts.com/candyshell-flip-1488.html">CandyShell Flip</a>, but only for their pink version. Guess my 'guy eyes' just did not jump to the pink one, rather the black on.... :-)</p><p> </p><p><img src="http://lh3.ggpht.com/_j3RNBDRBfUM/TPZuSA1sj7I/AAAAAAAABWc/h3BrppdbYao/candyflip-iphone4.jpg?imgmax=800" border="0" alt="candyflip-iphone4.jpg" width="450" height="581" /></p><p> </p><p>Here is another example of a 'added value' case for the iPhone, one that adds a hard keyboard. Again <a href="http://www.coolbeta.com/thinkgeek-tk-421-iphone-keyboard-case/">CoolBeta</a> does a good job of showing a picture that tells the story. This add on is from <a href="http://www.thinkgeek.com/gadgets/cellphone/e66e/">ThinkGeek</a> . Adding hardware peripherals to phones and tablets is going to be another area where cases will augment the core device.</p><p><img src="http://lh3.ggpht.com/_j3RNBDRBfUM/TPZwh0WR8tI/AAAAAAAABWs/X1m-6-ZmwYA/hardkeyboardcaseiphone.jpg?imgmax=800" border="0" alt="hardkeyboardcaseiphone.jpg" width="345" height="271" /></p><p> </p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-10128814526365267492010-11-28T23:49:00.001-08:002010-11-28T23:53:21.719-08:00Samsung Galaxy Tab Android Tablet, continued Part 3<p>I did not use the device very much in the last day. But here are a couple points I did find memorable. You will see a number of Galaxy Tab vs. iPad comparisons below, and I will report that I give the nod on most of them to the iPad. As I indicate, I need to give the Galaxy Tab some more time, I have used the iPad for almost seven months now and it has a real experience lead. And that does not always equate to being better:</p><p>* Voice command of the Android phone is very good for web and information searching. Using the combo of the Android 'microphone' and Google cloud to both convert your speech to text and do the search is a real powerful set. To my comparison mode with Android vs. iPad/Phone in this area, the Apple voice command system seems focused on two areas; voice dialing and iPod music control. Yes you can do other commands with Apple voice command, but is seems less useful and reliable once you leave the dialing and iPod control commands. On the Android, I've yet to figure out what [if any] commands will do a voice call. I think you can do it but is not obvious. However web searching and other commands like SMS texting are as close to 'natural' as I've seen on a voice controlled device to date.</p><p>* The power button location is on the right side on the Galaxy Tab. I need to be careful of my long time iPad owner bias, but so far I do find the iPad power button location on top more fluid.</p><p>* My comparison of hard buttons of the two tablets continues to the 'Home' button. So far, I find the iPad's concaved home button easier to 'find' and also it serves a better roll in helping 'orient' the tablet when you first pick it up. I use the power button on the Galaxy Tab for this orientation task [you often do this when you pull the tablet out of a bag or from a table where you have no idea how it was put down]. I realize that both tablets do have a autorotation function to make 'any side' up. But on both, I find this slows me down.</p><p>* More on buttons. On my first Android phone, the T-Mobile G1, the four standard 'hard' buttons had physical feel and feedback. On the Droid and Galaxy Tab, these are capacitive buttons with no feel. See the pictures below. I'm sure as I use the Galaxy Tab more, I will remember my finger placement, but having the feedback here is very nice in a mobile device. There is a usability factor that I am starting to get a stronger understanding of when you use a mobile device. When you first start a set of steps on a mobile device you often start using the device in an unstable or awkward position, having buttons and other physical feedback items gets your brain through these insecure first few moments of interaction and lets you get to the 'value' steps faster.</p><p><img style="float: left;" src="http://lh5.ggpht.com/_j3RNBDRBfUM/TPNa7jqv57I/AAAAAAAABVk/8UB6S70T0xU/android-droid.jpg?imgmax=800" border="0" alt="android-droid.jpg" width="393" height="220" /></p><p><strong>Motorola Droid</strong></p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p><img src="http://lh4.ggpht.com/_j3RNBDRBfUM/TPNa88zR5DI/AAAAAAAABVs/UaJ7gBCS17U/android-galaxytab.jpg?imgmax=800" border="0" alt="android-galaxytab.jpg" width="363" height="148" /><strong>Samsung Galaxy Tab</strong></p><p> </p><p><img src="http://lh5.ggpht.com/_j3RNBDRBfUM/TPNa99g-a-I/AAAAAAAABV0/H6T9U10iWgE/android-g1.jpg?imgmax=800" border="0" alt="android-g1.jpg" width="365" height="273" /><strong>T-Mobile G1</strong></p><p> </p><p> </p><p>* On a side note of the four physical buttons that are installed on almost all Android phones, different hardware manufactures seem to have the license to place the buttons in whatever order they want. Granted, not many folks are going to be regularly using two different Android devices, but I am. And as you can see between the Droid and Galaxy Tab pictures above, Motorola and Samsung have put three of the four buttons in different locations. G1 is different as well. Very difficult on my memory!</p><p>* On the auto-rotation function on the Galaxy Tab, I find it a bit more 'squirrely' then on the iPad. Both can be pretty annoying and I often find I've locked the orientation on both devices and then just 'deal' with turning the tablet. To this 'solution', that is why right now I find the iPad a bit quicker from 'on to usefulness' with its physical home button.</p><p>* <a href="http://www.belkin.com/hk/IWCatProductPage.process?Product_Id=533931">Belkin Grip Vue</a> silicon [or something like silicon] case. $29.95 at Best Buy. I like the product for two reasons; first the fit, finish and functionality of this cover is outstanding. This is not a full case for the Galaxy Tab, it only covers the back and edges of the unit. Nothing over the glass front. But it significantly enhances the 'grip-ablity' of the device. Second, kudos to Belkin for selling something that I doubt costs them more than dimes to make for THIRTY DOLLARS! Far too much markup, but what can you do.</p><p>I first purchased one of these for an iPad, I do want to report that the fit and usefulness of the Grip Vue is better on the iPad. On the Galaxy Tab, it does fit snugly but warps out along one edge and the fit around the power and volume buttons are not as useful as on the iPad. Also, because the iPad has more mass, the security you get after you start holding the iPad in the Grip Vue is greater. Still on the Galaxy Tab I feel better about 'one handing' it with it in the Grip Vue, but I really felt that way on the heavier iPad.</p><p>* Keyboard feedback. I am not sure as yet how to control this feature, but as you press 'keys' on the on screen keyboard on the Galaxy Tab, you get a 'vibrate' feedback. This is much better than the 'click' audio feedback on the iPad or iPhone. It does not tell you you're hitting the right key, but for some reason the vibrating feedback makes me more confident while typing.</p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-36060426758707419402010-11-26T18:22:00.001-08:002010-11-26T18:22:56.441-08:00Samsung Galaxy Tab Android Tablet, continued Part 2<p>Here are my notes after two more days of exploring the Samsung Galaxy Tab Android Tablet. I've still not gotten to creating a UI's that take advantage of the larger screen space, hopefully over the weekend.</p><p>Plenty of rumors on the Android forums of other Android tablets coming soon and about the next two versions of the OS; 2.3 and 3.0. The tease from the Notion Ink people about the Adam tablet is pretty impressive. If it lives up the pretty pictures and price rumors then that might be a really exciting unit.</p><p>Experiences:</p><p>* Video players for Android, there is a real lack of players that support the various media formats that are out there. The hardware in the Galaxy Tab does not support many format, or so I am told by a number of the free players I've tried. There are couple of players that do software decoding of formats. The one I am using the most now is something called RockPlayer. It plays two formats that the build in player 'Video' version 0.16.04P1 did not identify as playable. The OGG video seems to play okay, but the .MOV format video that I recorded with the iPhone does not play very well.</p><p>* Google's App Innovator Android app development environment. I installed this under Ubuntu 10.04 and Chrome. It took a little work to get it install, most of the roadblocks I encountered I had already figured out as part of installing the standard Eclipse based Android development environment under Linux. App Innovator is similar to the old Apple HyperCard. It is a nice start as a tool for educating student on software development ideas using the Android platform. I've been following the discussions for it since it first went into public beta, about 4 months ago I think. It is a solid first step, the biggest problem I see with it so far is what I see a fairly slow roll out of updates. I realize that it is only 1 year old or less, but in this fast paced world it really need to move to stay on the radar.</p><p>* Battery life has been good, not as strong as the iPad but a solid 6 hours before you start to worry about running low or get any messages.</p><p>* Only one total lockup that required a hard reboot [Done by holding the power button down for 10 seconds or more]. I was trying out 3 or 4 of the twitter apps that are available, I think I did not successfully kill one before launching another. While I have had two of them running in the past, I think the background downloading tasks go in a fight.</p><p>* I do find myself actively killing tasks that are in the background on a regular basis. The build in task manager feature that is in this copy of Android 2.2 does that very nicely. Frustratingly, the build in task manger of the 2.2 version on my Droid phone does NOT have this feature. I picked up the habit of using the 3rd party task killers on Android a long time ago on my T-Mobile G1 and Android 1.6, perhaps I do not need to do this as much anymore, but the behavior is ingrained in my. Interestingly, I do the same on the iPhone, though not as regular. Even there, I do find apps that suck battery life in the background at times. Apple advantage is that they allow less types of processing in the background so apps have fewer opportunities to screw up.</p><p>* I upgraded the Barnes and Noble Nook e-book reader when it was offered by the Android Market, as a result the Nook app can no longer open its books. The original version that came installed seemed to work fine. I emailed the Nook support and got a reply asking me how I could have possibly have either gotten the Nook reader on an Android Tablet or how I got the Android Market running on a Android Tablet.... I gave them the details and have not heard anything back.... Frustrating that their tech support was both poorly informed and so sure that what I was experiencing could not possibly be occurring.</p><p>* I've downloaded and done some basic exploration with about 50 apps so far. The built in apps from Google [and their add on ones, like Google Sky, Googles] are solid and very comfortable to use on the Galaxy Tab. The Twitter apps are all good solid performers, on par with the iPhone/iPad apps. The only area they are a little behind on are web page link previews. A couple have this but not as evolved as the same on iOS. All the remained apps [and a couple games] work fine. No screen issue with any apps so far. And only a couple don't 'scale up' on the Galaxy Tab. I still have a more iPhone apps that do not scale to the iPad on iOS! I find programs like Epocrates, a medical app that does medical news, drug interaction and pill identification as well as several other useful function the type app that I think is going be really effective on the 7 inch form tablet.</p><p> </p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-87235603591561963002010-11-23T19:49:00.001-08:002010-11-23T19:49:14.744-08:00Samsung Galaxy Tab Android Tablet First Impressions<p>I picked up a Samsung Galaxy Tab Android tablet at the Santa Barbara AT&T store today. These are my first impressions of the device.</p><p>I've been using the Apple iPad since it first came out in April of this year and I still think it is a fantastic device and the leader of this new mobile wireless form factor that is taking off. It was clear to me when Steve Jobs announced the iPad in January of this year that the tablet device was going to be an amazing next step in the evolution of computing. I felt at that time that there would be a big rollout of these tablet devices and today I am trying my first Android tablet, the Samsung Galaxy Tab:</p><p><img style="float: left;" src="http://lh3.ggpht.com/_j3RNBDRBfUM/TOyLOcAVzII/AAAAAAAABUM/zm-iyDejJyo/ATT_Galaxy_Tab_front1_4.jpg?imgmax=800" border="0" alt="ATT_Galaxy_Tab_front1_4.jpg" width="400" height="400" /></p><p> </p><p>I picked up one of two units that were delivered to the AT&T store in Santa Barbara. I had dropped by yesterday and they had not yet received any units. Cost out the door was USD 706.86.</p><p>They do not have any accessories in stock. I found this the case on release day for the AT&T iPhone 4 at their stores as well, I think they are really missing the boat on profits in these accessories on launch day. Best Buy really understands this.</p><p>I played around with the Verizon and Sprint version of the tablet yesterday at Best Buy before dropping by the AT&T store to see if they had any. Best Buy was well stocked with both the Verizon and Sprint units and accessories.</p><p>I reviewed the costs of the unit via the various wireless providers and decided to go with the AT&T version for two reasons:</p><p>1) Even though it was the most expensive to purchase, the fact that the service plan is completely without strings, like the Apple iPad's service, is a big plus. On a 2 year plan, it appeared to me that the subsidy only comes out to about USD 10 to 15 dollars per month and the lowest cost plans seemed to be in the USD 30 up amounts [plus the taxes]. So even purchasing a subsidized unit would still cost ten or more dollars per month from the other carriers.</p><p>2) I figured that a unit on the GSM network such as AT&T would be more flexible, for international travel and possible resale than the USA centric CDMA units.</p><p>I walked out of the AT&T store with the device in hand and went over to a nearby Starbucks to give it a first spin. This is where I ran into my first problem, after getting a cup of coffee. I open the box to find the unit powered on and on a screen that said 'Downloading.... do not turn off Target!!!' The salesman at the AT&T store did not power the unit on and the SIM card was already installed. In hindsight, I should have had the guy at least turn it on. The box was sealed when he bought it out to the counter, so I'm not sure where or when this update started. I waited for 15 minutes to see if the screen changed, there was no progress indicator. After that period, I crossed my fingers and powered the unit off. When I powered it back up, it came up to a normal initial setup screen with no problems. But not a good first impression, hopefully others are not seeing similar.</p><p>So I got it up and running to the initial Android desktop and played around with it a bit. As I had found the day before at Best Buy, the unit is very spry and responsive.</p><p>My next step was to purchase a 1 month of wireless service on the unit. This I found a bit difficult to get done on the device, partly due to my lack of experience with 'typing and swiping' on it and part due to the fact the registration was done in the web browser window, not in a dedicated and formatted web window as I remember the iPad AT&T service registration being done. After three tries reentering my info, I finally was successful.</p><p>I found the unit to be at 50% charge level after I rebooted it from the 'downloading' screen, so I plugged it in to a wall socket at the Starbucks and did all of my initial 2 hours of testing while the unit was powered on A/C. I find the supplied cable to be a bit short, the one with the iPad seems to be longer. The A/C adapter is a nice small size with an exchangeable wall plug for international use, however like the Apple unit, it is a unique format that will require buying adapters from Samsung. However, it is 100 to 240 volt universal. The prongs on the A/C adapter do not fold down like some of the Apple units do, I realize this easier for the USA plug format, but is a nice feature to see on A/C adapters.</p><p>The unit got to a full charge in less than the two hours I spent at the Starbucks. It connected to the free AT&T Wifi service at Starbucks fine, although the first time it did require me to acknowledge the service agreement in the browser, I did not think the iPhone and iPad require this at Starbucks. I will see if it continues to require this in the future.</p><p>I downloaded several apps and synced my two Google accounts while at Starbucks. One of the apps I tried was Skype, which made a phone call just fine over the wifi. The USA versions of the Galaxy Tab do not include any voice calling via mobile, so it was nice to see that VOIP service seem to work fine. I tested to see if Skype would make a call over the AT&T wireless network and NOPE, Skype says that 'In the USA, voice calls are only available via Wifi'.</p><p>The Android market worked fine, both on the Wifi and AT&T network, I was able to purchase 'Doodle Jump' via my Google account.</p><p>After getting used to the size and operation; web browsing, email and apps are working well. To Steve Jobs point, that this size screen will not be as effective for the basic productivity functions I will agree. However, there are other aspects of this size device that I do think beat out the iPad. The smaller size is easier to carry and for some operations including video, audio and dedicated apps I have the feeling and so far my experience support that this size device will find a useful niche. The iPad can get a bit awkward at times and tiring to use for extended periods. I think the Amazon folks research that ended the up at this size for the first Kindle book reader is correct, so that Steve is not 100% accurate in his statement that this size device is not useful.</p><p>My second negative experience came when I tried to register the device at the Samsung web site, when I went to enter the serial number of the unit in the registration form, the web site came back and said that it was not a valid serial number. I used the online chat service at the Samsung web site and with the help of the 2nd level tech on chat I was able to register the unit using the IMEI number rather than the serial number as was requested.</p><p>So my only two real knocks on the overall experience so far are not related to the operation of the Galaxy Tab or Android, but rather due to the overall initial fit and finish of the service aspects of the experience. But, these are important, as many returned and unused technologies are due to these side problems. Apple continues to do a fantastic job of making sure the complete experience is good, they really understand this.</p><p>I am now into the 5th hour of operation of the device, figuring two hours of that were on charger, I have been on battery for 3 hours and the battery level indicator says that 31% of the battery remains. I have been using the GPS, navigation, wifi and music player functions for a considerable part of this time on battery. So my initial impression is that I will see about 5 to 6 hours of continuous use under medium to high power use functions. Not as good as the iPad.</p><p>I have not found any screen size issues with apps running on the Galaxy Tab, a number of reports knocked the unit and apps for not being formatted for the larger screen. The apps I've tried, from games like Angry Bird to productivity apps like Facebook and Twitter are very useable. As a matter of fact, having the fonts size up is a good thing for folks like myself with diminishing near vision. I have not seen any pixelated fonts or images so far. Some of the startup splash screens do show the 'blown up' effect, but once the apps are running Android 2.2 is doing a good job of scaling fonts, text and menus. Overall, the Android 2.2 experience on the tablet format is good. I do think it is missing some usability functions that Apple refined for the iPad in iOS, but these lacks have not been as big as I had heard they were.</p><p>I am going to use the Galaxy Tab more over the next days and refine my impressions and then I will move to the really interesting aspect for me, developing apps for this device. The combination of the size and the far more openness to connectivity of the Android platform are the parts that make me think that some very powerful uses of this platform can be done. This is where I think the Android tablets have an advantage over the closed Apple iPad. While for general use, the walled garden of the iPad is a good thing. For specific vertical uses of the tablet format, being able to control and mod the Android devices will be extremely powerful. That combined with the refining of the Android software that is occurring will give Apple a real run for leadership. Fundamentally the hardware is going to be very similar from all vendors, the advantage that Apple has had in the area of unique and leading edge hardware is reducing. They may well still lead out the gate, but the window of this lead is narrowing with each new hardware release.</p><p>I will close out this initial post on the Samsung Android Galaxy Tab by giving it a 4 and 3/4 star out of five rating. I will use the iPad as my 5 star perfect score for comparison. Not because I think the iPad was perfect the day it came out seven months ago, or even today, but it is fair to say that it is the standard that other tablets will be measured against for the next year or so. That is fair, as it was first out the gate.</p><p>I think that Android tablets in the 7 inch form factor is going to be very popular and my initial impressions are very positive. Congratulations to Samsung and Google!</p><p> </p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-19757777949026449582010-05-09T15:55:00.001-07:002010-05-09T15:55:31.152-07:00Craig Hockenberry benchmarks original iPhone vs. the iPad<p>I realize that the form factor is considerable different between the iPhone and the iPad. However guessing that a not too power reduced A4 chip will most likely be in the next iPhone this year the performance increase in two and a half years is as Hockenberry says 'Holy crap!'. I would like to see how this compares with the Moore's law performance increase in desktop computing over a similar period.</p><p>More here:</p><p><a href="http://furbo.org/2010/04/03/benchmarking-in-your-lap/">Benchmarking in your lap by Craig Hockenberry</a></p><p><span style="font-family: 'Lucida Grande', Tahoma, Arial, sans-serif; font-size: 12px;"></span></p><h3 style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; padding-top: 25px; font-size: 12px; border-bottom-width: 2px; border-bottom-style: dotted; border-bottom-color: #dfe8ea;">Native performance: Original iPhone vs. iPad</h3><table style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;" border="0"><tbody><tr><th>Test</th><th>iPad/3.2</th><th>iPhone/2.0</th><th>Faster by</th></tr><tr><td>100,000 iterations</td><td>0.000035 secs.</td><td>0.015 secs.</td><td>428x</td></tr><tr><td>10,000 divisions</td><td>0.000010</td><td>0.004</td><td>400x</td></tr><tr><td>10,000 sin(x) calls</td><td>0.000012</td><td>0.105</td><td>8,750x</td></tr><tr><td>10,000 string allocations</td><td>0.004321</td><td>0.085</td><td>20x</td></tr><tr><td>10,000 function calls</td><td>0.000338</td><td>0.004</td><td>12x</td></tr></tbody></table><p style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;">The most remarkable change is when you compare the original iPhone to the iPad. Using the numbers from my original tests and the results above reveals an improvement of several orders of magnitude in just over 2½ years. I believe the technical term for this is “Holy crap!”</p><p style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;"><strong>Note:</strong> I don’t remember if the original tests were optimized builds, or if it was even possible to get gcc to do them with a jailbreak toolchain. Even if they weren’t optimized like the current tests, the performance increases are still stunning.</p><p style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;">All-in-all, a remarkable achievement by Apple’s engineers, especially when you consider that the battery life of these devices has gone up, rather than down.</p><p style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;"> </p><p> </p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-63925851949893050732010-05-09T10:18:00.001-07:002010-05-09T10:18:00.629-07:00Checking out two new apps, MarsEdit 3.0 on OSX and Note Taker HD on iPad<p>I've been experimenting with two new applications, <a href="http://www.red-sweater.com/marsedit/">MarsEdit 3.0</a> on OSX and <a href="http://www.softwaregarden.com/products/notetakerhd/">Note Taker HD</a> on the iPad.</p><p>I've used Dan Bricklin's software since VisiCalc on the Apple. It is great to see him writing apps for the iPhone and iPad. Note Taker is an app that lets you write notes just like you were writing with a pen on paper. No attempts to OCR but many interesting technologies to make writing in a 'e'-format the same [or better] than on paper. I have tried various technologies in this area for years, but until Note Taker HD and the iPad I've found all far from the mark of replacing my trusty <a href="http://www.mead.com/webapp/wcs/stores/servlet/product3_10051_10006_124771_-1_false_10051">Mead Composition</a> books. The first one I tried was a predecessor to the <a href="http://www.adesso.com/en/component/content/article/59-notetaker-and-graphic-tablet/158-cyberpad.html">Adesso CyberPad</a>, CrossPad by A. T. Cross Pens and IBM. I do not think much has improved since device until the iPad and Note Taker HD.</p><p><img style="float: left;" src="http://lh5.ggpht.com/_j3RNBDRBfUM/S-buPtcQD0I/AAAAAAAABNA/NfeUZ01xiBY/mead-comp-book.jpg?imgmax=800" border="0" alt="Mead Composition Book" width="400" height="400" /></p><p> </p><p> </p><p>There is still much to be tuned in working with the user interface on the iPad, and Note Taker HD is in the middle of these as many apps are on the iPad. But over all this is a fantastic application. I am still up in the air as to whether typing notes on the iPad or writing them is the right future. Or perhaps a combo of the two is the way to go. Note Taker HD does not attempt to handle typed text currently and I do not know if this is on Bricklin's radar. All of the combo apps I have tried so far are far from a good solution. A third aspect is recording audio as well as writing or typing notes. Note Taker HD, again, does not attempt this and I do not know if it will, some or the note pad type apps do include this feature. I have used a simple hardware voice recorder for many years, but to be able to keep audio and your written notes in sync right from the recorded point is a very useful future.</p><p>I have done some test writing with Note Taker HD to get familiar with its operation. There are two edit modes, called Edit 1 and Edit 2. Edit 2 seems to be the way to go for note taking, picture a little 'zoomed' in window that moves along as you write. This is one area were some work is needed, the operation and smoothness of using Edit 2 can be improved, it still gets in the way of pure writing like you do on paper. It needs to be invisible as you write.</p><p>I am looking forward to taking Note Taker HD on a real world</p><p> </p><p><img style="float: left;" src="http://lh5.ggpht.com/_j3RNBDRBfUM/S-buQr2QRAI/AAAAAAAABNI/jPb4hbj0lBY/CrossPad.gif?imgmax=800" border="0" alt="CrossPad.gif" width="252" height="195" /></p><p> </p><p> </p><p> </p><p>drive and sharing my experiences.</p><p> </p><p> </p><p> </p><p> </p><p><img style="float: left;" src="http://lh3.ggpht.com/_j3RNBDRBfUM/S-buRtDicNI/AAAAAAAABNQ/pX75bwFc96s/notetaker-hd.jpg?imgmax=800" border="0" alt="notetaker-hd.jpg" width="400" height="533" /></p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>I am writing this post with the new 3.0 version of MarsEdit for OS X, Daniel Jalkut at <a href="http://www.red-sweater.com">Red Sweater Software </a> had a great application for writing blog entries and this new version is an outstanding upgrade. I will write about it more as I learn its new features.</p><p> </p><p> </p>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-37706815204606848332010-03-30T19:19:00.001-07:002010-03-30T19:21:18.635-07:00Internet of Things and Games talk by Jesse Schell at DICE conference February 2010This is a funny and though provoking talk by a smart game designer <a href="http://www.schellgames.com/people/">Jesse Schell</a> about using games and point chasing with the ubiquitous sensor future of the 'Internet of Things'. Two key points he makes. First, humans love to compete in games. And second, the connected world of much of what we touch and do during the day is going to have sensors attached that will report our actions to someone. It is coming, as he says there is no doubt about that.<br /><br /><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/8FSsztwbRW0&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8FSsztwbRW0&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com1tag:blogger.com,1999:blog-5774295007004608499.post-80242220832333887362010-01-26T18:05:00.000-08:002010-01-26T18:05:50.642-08:00Sony PS3 hacked: ""I rigged an FPGA button to send the pulse. Sometimes it kernel panics, "<a href="http://www.theregister.co.uk/"><span style="font-family: Times, 'Times New Roman', serif;">The Register</span></a><span style="font-family: Times, 'Times New Roman', serif;"> is </span><a href="http://www.theregister.co.uk/2010/01/27/playstation_exploit_released/"><span style="font-family: Times, 'Times New Roman', serif;">reporting</span></a><span style="font-family: Times, 'Times New Roman', serif;"> that a very smart hacker has been able to open up the Sony PS3. What is interesting here is what appears to be his combination of a hardware, software, old school 'keep pounding on the door till you get in' solution.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br />
</span><br />
<span class="Apple-style-span" style="line-height: 21px;"><span style="font-family: 'Trebuchet MS', sans-serif;">"I rigged an FPGA button to send the pulse. Sometimes it kernel panics, sometimes it lv1 panics, but sometimes you get the exploit!! If the module exits, you are now exploited."</span></span><br />
<br />
With the increase of open source hardware debuggers coming available, the 'old' clip of the young John Conner in the movie <a href="http://en.wikipedia.org/wiki/Terminator_2">Terminator 2</a> sticking his 'hacked' ATM card into the ATM machine and getting money is here.Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-53125039147492147762010-01-26T14:20:00.000-08:002010-01-26T14:20:48.125-08:00RFID passport privacy issues uncovered: A Traceability Attack Against e-Passports<a href="http://www.cs.bham.ac.uk/~tpc/Papers/PassportTrace.pdf">This paper</a> by Tom Chothia and Vitaliy Smirnov at the University of Birmingham shows another example of why open source vetting and more transparency are necessary before massive Internet of Things systems are rolled out.<br />
<br />
Their conclusion:<br />
<span style="font-family: 'Trebuchet MS', sans-serif;">'Our work shows the inherent dangers of using RFID tags in personal items.'</span>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com2tag:blogger.com,1999:blog-5774295007004608499.post-36223702760274622722010-01-26T11:00:00.000-08:002010-01-26T11:00:56.415-08:00Berg Insights research: 1.4% of world wide wireless connection are machine to machine (M2M)The research firm, <a href="http://www.berginsight.com/">Berg Insights</a>, did a <a href="http://www.berginsight.com/News.aspx?m_m=6&s_m=1">study at the end of last year </a> that finds that 1.4 percent of wireless communications is from one machine to another. And this is predicted grow by 26% per year. In the USA, Berg says the current percentage of wireless <a href="http://en.wikipedia.org/wiki/Machine_to_Machine">M2M</a> connections is 4.3%.<br />
<br />
This is the '<a href="http://en.wikipedia.org/wiki/Internet_of_Things">Internet of Things</a>' growing at a very fast pace. This research only focuses on the mobile/cellular market, so the <a href="http://en.wikipedia.org/wiki/Machine_to_Machine">machine to machine communications</a> in other frequencies [WiFi, Zigbee, Dash7] are even larger.<br />
<br />
From Berg's research paper:<br />
<br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><span class="Apple-style-span" style="font-size: small;">New M2M initiatives launched by major mobile operator groups are expected to have a positive influence on demand, stimulating new large-scale projects. Regulatory developments are predicted to have a major impact on the telematics industry. The EU is expected to propose formal legislation for the introduction of eCall by 2014 but in Brazil the fate of Resolution 245 is more uncertain. Another significant development to watch will be the progress of the Dutch government’s plans to introduce a nationwide electronic road charging system for all motor vehicles.</span></span>Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-84933265253112155272010-01-25T15:29:00.000-08:002010-01-25T15:29:59.095-08:00More on bad embedded software coding and coding practices<a href="http://electronicdesign.com/content.aspx?topic=faulty_code_will_lead_to_an_era_of_firmware_related_litigation&catpath=embedded-software">Good article here in Electronic Design</a> about litigation that is starting to occur around embedded systems code. Just have a look at this line of code the author of that article found:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"><b>y = (x + 305) / 146097 * 400 + (x + 305) % 146097 / 36524 * 100 + (x + 305) % 146097 % 36524 / 1461 * 4 + (x + 305) % 146097 % 36524 % 1461 / 365;</b></span><br />
<br />
<span class="Apple-style-span" style="font-size: small;"><span style="font-family: 'Trebuchet MS', sans-serif;">In the original listing, there were no comments on this line to help. I eventually learned that this code computes the year, accounting for extra days in leap years, when given the number of days since a known reference date. But we still don’t know if it works in all cases, despite its presence in an FDA-regulated medical device. The Microsoft Zune Bug was buried in a much better formatted snippet of code that performed a very similar calculation.</span></span><br />
<br />
This is a follow up to <a href="http://blog.tamadatech.com/2010/01/ti-zigbee-chips-easily-hacked.html">my post about the poor code that TI shipped</a> out with their Zigbee products. I saw posts today that they are shipping updated code, but how long will it take to get it rolled out.<br />
<br />
This article really highlights how important good training, good review processes and I think much more open source review is needed as we move forward to the Internet of Things.Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-91379748748263603172010-01-23T23:28:00.000-08:002010-01-29T23:00:59.224-08:00TI eZ-430 Chronos watch based wireless door lockZiyan Zhou and Zachery Shivers are two smart young guys studying at Rochester Institute of Technology. They have created a <a href="https://ziyan.info/2010/01/secure-wireless-door-lock/">very nice project</a> based on the low power <a href="http://focus.ti.com/docs/toolsw/folders/print/ez430-chronos.html?DCMP=Chronos&HQS=Tools+PR+chronos-pr#description">TI 430 microcontroller and 9xx mHz wireless chips</a> from Texas Instruments. I beat up on TI in a previous blog entry for their shoddy code review that allowed a big security bug to slip through in their Zigbee chips. Despite that fail, TI creates some very nice hardware that is enabling the <a href="http://en.wikipedia.org/wiki/Internet_of_Things">Internet of Things</a>. This project by Zhou and Shivers is a great example of what is going to explode in the coming months and years. They do a very nice job of reviewing security issues in their design. Give their project and the others at the <a href="http://www.designmsp430.com/default.aspx">TI430 low power design contest web site</a> a look, good stuff! Vote for the one you think is tops, my vote was to Ziyan [Joe] and Zach.Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com2tag:blogger.com,1999:blog-5774295007004608499.post-35419020943196313492010-01-18T23:07:00.000-08:002010-01-18T23:56:13.160-08:00TI Zigbee chips in SmartMeters easily hackedIt was very sad to see this article about the shoddy job that was done in creating a solid <a href="http://en.wikipedia.org/wiki/PRNG">PRNG</a> for the Zigbee smart meters that the TI chips are installed in. Apparently a large number of the current meters have the TI Zigbee hardware:<br />
<span class="Apple-style-span" style="color: #303030; font-size: 18px;"><a href="http://www.theregister.co.uk/2010/01/15/smart_meter_crypto_flaw/">Texas Instruments to patch smart meter crypto blunder</a></span><br />
<br />
You have to wonder about the quality of any other software coming out of that group. Were is the QA, code review? This reenforces my opinion that open source is the best path for much of the systems development going on now. Unless you can afford a Space Shuttle software development effort, I do not see other good routes to good software. This was such a basic blunder, with so much very recent history of similar shorts cuts causing WiFi systems to be vulnerable how could this happen?<br />
<br />
This guy, <a href="http://travisgoodspeed.blogspot.com/">Travis Goodspeed</a>, and a couple of others are doing a real service getting these issue out in the light. And I am guessing with no help from the likes of TI, Zigbee or others.<br />
<br />
While it not clear if this mistake will make it any more possible for hackers to 'bring the grid down'. It sure looks like it will slow the deployment of energy saving and GHG reducing solutions for residential and commercial buildings and that is bad enough.<br />
<br />
Come on, you can do better!Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-59458735182899362032010-01-03T22:33:00.001-08:002010-01-03T22:33:46.084-08:00Eco-Home sustainable urban living demonstrated since the 1988I had the wonderful experience of touring <a href="http://www.ecohome.org/pages/index.html">Julia Russell's Eco-Home</a> in Los Angeles before Christmas. Julia's 1911 Craftsman home has been a demonstration project showing that it is possible to retrofit existing homes in an urban location and have a very low environmentally impact. I know this is old news to pretty much anyone living outside the United States. But for folks in Los Angeles, this is a must visit project. <br /><br />Julia and one of her docents, Judy, gave a fantastic tour and lecture of the property, xeriscaping, garden, its history and the products and technologies used.<br /><br />I've posted a few photos from the <a href="http://www.flickr.com/photos/deepphoto/sets/72157623010037601/">tour here on Flickr</a>.<br /><br />I encourage you to contact Eco-Home to set up a tour, <a href="http://www.ecohome.org/pages/tour_sched.html">here is the link for 2010 tour info</a>.<br /><br />Julia has indicate that she may retire from the Eco-Home project in 2010, so get a tour date as soon as you can. It is a wonderful education.<br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-41410710847309464692010-01-03T01:14:00.001-08:002010-01-03T01:25:13.768-08:00Zwave Home Automation, Leviton RS232 Serial Interface RZC0P basic wiring for USB Serial AdapterI've started to work with a ZWave home automation control product from <a href="http://www.leviton.com/OA_HTML/ibeCCtpItmDspRte.jsp?item=173512§ion=15188&minisite=10026">Leviton, the RZC0P-1LW</a>. This device allows the control of <a href="http://www.z-wave.com/modules/ZwaveStart/">Zwave</a> based wireless home automation devices via a RS-232 interface.<br /><br />The Zwave system is a proprietary system requiring a licensing agreement with <a href="http://www.z-wavealliance.org/modules/AllianceStart/">Zwave Alliance group</a>. Joining this group and paying some level of fees gives a developer access to programming and related information. The lowest level of membership in 2009 appears to be the Affiliate Member with an annual fee of USD300 and perhaps the requirement to purchase a USD500 hardware development kit.<br /><br />There are a couple of other ways to programmatically work with Zwave devices, there are several home automation software and hardware systems that put one or more layers on top of the Zwave proprietary protocol. Doing a Google search of home automation and zwave will give you a list of these product. There are even a couple of open source projects that have reverse engineered parts of the Zwave control protocols and devices.<br /><br />And a third way, in a sense a mini home automation layer, is to use one of these RZC0P devices in an existing Zwave network. As far as I can tell so far, the RZC0P cannot be the primary controller of a Zwave network. And every Zwave network requires one of these primary controllers to add, delete and manage the devices in a Zwave network. However, the RZC0P can be included as what is called a secondary controller. And a small amount of documentation has been created by Leviton to show you how to do basic functions to Zwave devices via ASCII commands to the RZC0P.<br /><br />I've studied the Zwave products, vendors and public information for a couple of years. More on what I have found about it and my opinions later.<br /><br />But for now, I wanted to share some tech work I did to get the RZC0P running on a small Zwave network I have set up to explores of of the uses of these devices for both Aging In Place and Energy Management.<br /><br />I am not a RS-232 expert nor an electrical engineering guru. But I have spend enough time in both of these areas that I knew that I had a problem talking to the RZC0P pretty quickly. I had the documentation on the ASCII commands and the RS-232 configuration requirements. Using these, I hooked the RZC0P up to a IBM Thinkpad with a build in RS-232 port and was able to start communicating with the device right a way. The problems came with I tried to move my testing to a Apple OS X computer with a KeySpan USA-19HS USB serial adapter. I wanted do my testing using the Python language and tools and was more comfortable with using these tools on Linux and OS X. <br /><br />The problem I encountered was that I could not get the RZC0P to respond to commands when attached via the KeySpan USB serial port. I did not try the KeySpan USB adapter on the Windows machine, but I suspect from reading some posts on the web that I would have found a similar problem. I found several other people that indicated they were only successful in communicating with the RZC0P using a serial port directly attached to the Windows machine.<br /><br />At first I suspected that I was not correctly toggling some of the RS-232 control signals, however the devices cable and documentation point to, but do not directly spell out, that only TX, RX and Signal Ground pins are required on the cable and no software or hardware handshaking is done.<br /><br />A further interesting fact appear as I played around with various terminal emulators on OS X and cable combinations. At various points of these changes, the RZC0P would start communicating. I struggled to find the pattern that made it work.<br /><br /><br />Well bottom, apologizes for my long route to my conclusion here.. I suspect that the RZC0P has some bug or non-standard implementation of RS-232 electrical interface. I found that if I used a RS-232 break out box between the Keyspan USB serial adapter and the RZC0P, with just the three pins, TX, RX and Signal Ground connected, the unit would work consistently. I could plug and unplug it, power it off and it would always come right up and communicate with the Mac software. So what was special about this RS-232 break out box?<br /><br />The breakout box connects a set of LED from the TX and RX lines to signal ground via pull up resistors. This allows you to visually see the signal states change on these and other lines on the RS-232 specification. The breakout box I was using is a totally passive unit that adds no power or logic to the RS-232 signals it monitors.<br /><br />So my conclusion is that the signal ground and RX/TX lines on the RZC0P are wired internally in some way that caused the logic circuit to not correctly start RS-232 communications without some electrical connection/kick between the RX/TX lines ad signal ground line.<br /><br />My solution to the problem was to build a mini 9 pin DB-9 Male to Female adapter that recreated the passive monitoring circuit I found in the RS-232 breakout box.<br /><br />I am guessing there is a better and simpler solution to this problem, but this seems to be working, and you get some visual feed back of the communications occurring via the two LEDs. Below is a picture of the finished adapter.<br /><br /><img src="http://lh4.ggpht.com/_j3RNBDRBfUM/S0Bf2pdtHrI/AAAAAAAABF0/o2UGefGWZvg/aw9345lzw.jpg?imgmax=800" alt="aw9345lzw.jpg" border="0" width="405" height="250" /><br /><br />Here are the parts and steps:<br /><br />Parts:<br />Male 9 pin DB-9<br />Female 9 pin DB-9<br />2 - 560 ohm 1/4 watt resistors<br />2 - LED<br />wire to connect pin 2 to pin 2, male to female DB 9<br />wire to connect pin 3 to pin 3, male to female DB 9<br />wire to connect pin 5 to pin 5, male to female DB 9<br /><br />Steps:<br />Connect pin 2 to pin 2, male to female DB 9<br />Connect pin 3 to pin 3, male to female DB 9<br />Connect pin 5 to pin 5, male to female DB 9<br /><br />Connect pin 2 on the male DB-9 connector to one lead of a 560 ohm 1/4 watt resistor<br />Connect the second lead of the 1st 560 ohm resistor to the anode lead of the 1st LED<br />Connect the cathode lead of the 1st LED to pin 5 on the male DB-9 connector<br /><br />Connect pin 3 on the female DB-9 connector to one lead of the 2nd 560 ohm 1/4 watt resistor<br />Connect the second lead of the 2nd 560 ohm resistor to the anode lead of the 2nd LED<br />Connect the cathode lead of the 2nd LED to pin 5 on the female DB-9 connector<br /><br /><br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com11tag:blogger.com,1999:blog-5774295007004608499.post-13249362322901733512009-12-18T12:35:00.001-08:002009-12-18T21:03:21.031-08:00Review by Walt Mossberg @ WSJ of USB connectable Diabetes MeterOne of the areas I am interest in is easy to use medical measurement devices. Weight, blood pressure, temperature, glucose, pulse, breathing, sleep patterns are among the measurements that can be recorded as part of proactive medicine. These will let us Age In Place much more successfully.<br /><br /><img src="http://lh5.ggpht.com/_j3RNBDRBfUM/SyvkvRmMONI/AAAAAAAABE4/D9f5wFeEVls/AW78U0E794.jpg?imgmax=800" alt="AW78U0E794.jpg" border="0" width="262" height="174" /><br /><br />Walt Mossberg has a review of a device that is a small first step toward easy to use and record products, the <a href="http://online.wsj.com/article/SB10001424052748704541004574600202639835872.html?mod=djemTECH#articleTabs%3Darticle">Bayer Contour USB blood glucose meter</a><br /><br />A key piece that is missing from this device, is wireless upload, you have to connect it to your PC via USB. The technology in the area of low power wireless short range communication has really shot forward. I think any device that does not easily transfer its measurements wirelessly to a personal computer or some home health gateway is not useful enough to really jumpstart proactive medicine.<br /><br />As Walt points out, the other major missing aspect of this device is it lack of ability to upload it's reading to one of the Personal Health Record systems, for example <a href="http://www.healthvault.com/">Microsoft HealthVault</a> or <a href="https://www.google.com/health">Google Health</a>. This is key so that a person's doctor and caregivers can have near real time information about these measurements.<br /><br />So this is the right direction, just not enough of a step forward yet. Give Mr. Mossberg's text or video review read/listen.<br /><br />I am excited about wireless devices that will help us live a much more healthy and happy total life.<br /><br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-56249404258556384952009-12-15T22:10:00.001-08:002009-12-15T22:15:27.185-08:00User interfaces and online personal healthcare record web sitesI have been experimenting with the main online electronic personal medical records web sites. Mostly with Microsoft and Google's offerings. I have found both to be 'works in progress'. Microsoft's HealthVault is on the top of my list right now and the most mature and useable by normal, non-techies.<br /><br />That said, the HealthVault product received a BIG negative rating mark from me today. I went into the site to add some blood pressure values and found that without notice they had modified their Silverlight based blood pressure data entry widget. I have no idea of all of the changes they made, right away just looking at the GUI you could sense a subtle change in the look. But the negative mark is give for transposing the SAVE and CANCEL button location! What DUMB move to make. It shows me that these developers still do not understand the human aspect of the user interfaces they develop and the profound changes that a change like this in a medical application could have.<br /><br />On this day of the first flight of the Boeing 787 Dreamliner, I can only think of the heads that would roll if a SAVE and CANCEL button were reversed on the flight deck before first flight!<br /><br />A lot of work and education needs to be done in order to get electronic medical records moving forward successfully.<br /><br />I have followed Microsoft's work on HealthVault for almost a year now, they are working hard to make a good product. So want to be positive and give them a lot of 'that a boys [and girls]'. But this change today is a example of the experience they need to gain.<br /><br />I have using this data entry widget on a daily basis for six months now, and noticed when they converted from Adobe Flash tool to Microsoft's Sliverlight. That change, in itself, showed the same lack of experience in code updates and the effect on the application's user. They are still catching up to the speed of operation of the Flash based widget.<br /><br />I am very sure that in the picture below, the two buttons shown are transposed from were they were located yesterday.<br /><br /><br /><img src="http://lh6.ggpht.com/_j3RNBDRBfUM/Syh4-GFlZZI/AAAAAAAABEY/ryNkGBvh6Qk/WX669787F7.jpg?imgmax=800" alt="WX669787F7.jpg" border="0" width="886" height="143" /> Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com0tag:blogger.com,1999:blog-5774295007004608499.post-60596538739107839462009-12-13T22:52:00.000-08:002009-12-13T23:59:35.495-08:00Using the Nordic nRF24L01+ 2.4GHz transceiver with AdruinoI picked up a <a href="http://www.nordicsemi.com/index.cfm?obj=product&act=display&pro=94">Nordic nRF24L01+</a> <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=691">breakout board</a> and <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8602">keychain remote FOB</a> from <a href="http://sparkfun.com/">Sparkfun.com</a> a while ago to see about using it as part of a <a href="http://aginginplace.com/">Aging In Place</a> electronics project. Finally got around to experimenting with the pair this weekend. It was a cathartic break from working a plumbing problem.<br /><br />I could not find much info on using it with the Arduino platform. To get my feet wet I just moved an example program written for AVR PIC to Arduino's language. I have posted it below.<br /><br />The <a href="http://www.nordicsemi.com/">Nordic communication chips</a> seem to be a good product for low power, long life remote control. The questions of range and clashes with other products in the 2.4GHz bands are still open.<br /><br />The steps to talk with the Nordic chips are very straight forward. It uses the SPI communications for interfacing and has a simple interrupt architecture for status [the code below does not use the interrupt]. The Sparkfun breakout board is a nice starting point as it allows hookup to either 5 volt or 3.3 volts products by providing onboard voltage for the Nordic. And the Nordic chips are natively able to talk 5 or 3.3 volt.<br /><br />I will compare some of these functions and price points with some of the other similar products out there. The Texas Instruments wireless products are one set that I want to compare.<br /><br /><blockquote><br /><pre><br /><tt><br />// nfr2401_02<br />// 13-December-2009<br />//<br />// learning how to communicate with a Nordic nfr2401 wireless communications module.<br />// this program will set up a nfr2401 as a receiver and receive data from the key presses on a Sparkfun Nordic nfr2401 keyfob.<br />//<br />// parts:<br />// Transceiver nRF24L01+ Module with Chip Antenna Sparkfun sku: WRL-00691<br />// Nordic FOB Sparkfun sku: WRL-08602<br />// Arduino Deiecimila<br />//<br /><br />// based on Nordic-FOB-Tester-v10.c written by Nathan Seidle at Sparkfun.com in 6-19-2007<br />// based on article and code 'Interfacing a Serial EEPROM Using SPI' at Arduino.cc by Heather Dewey-Hagborg<br /><br />// SPI registers defined in basic Arduino:<br />// SPCR SPI Control Register<br />// SPDR SPI Data Register<br />// SPSR SPI Status Register<br /><br />/* Arduino SPI register info<br />Data registers simply hold bytes.<br />For example, the SPI data register (SPDR) holds the byte which is about<br />to be shifted out the MOSI line,<br />and the data which has just been shifted in the MISO line.<br /><br />Status registers change their state based on various microcontroller conditions.<br />For example, the seventh bit of the SPI status register (SPSR) gets set to 1<br />when a value is shifted in or out of the SPI.<br /><br />The SPI control register (SPCR) has 8 bits, each of which control a particular SPI setting.<br /><br />SPCR<br />| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |<br />| SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 | SPR0 |<br /><br />SPIE - Enables the SPI interrupt when 1<br />SPE - Enables the SPI when 1<br />DORD - Sends data least Significant Bit First when 1, most Significant Bit first when 0<br />MSTR - Sets the Arduino in master mode when 1, slave mode when 0<br />CPOL - Sets the data clock to be idle when high if set to 1, idle when low if set to 0<br />CPHA - Samples data on the falling edge of the data clock when 1, rising edge when 0<br />SPR1 and SPR0 - Sets the SPI speed, 00 is fastest (4MHz) 11 is slowest (250KHz)<br /><br />*/<br /><br />#define DATAOUT 11 //MOSI<br />#define DATAIN 12 //MISO <br />#define SPICLOCK 13 //SCK<br />#define CHIPSELECT 10 //CS, also called SS slaveselect<br /><br />#define NFR_CE 9 // nRF2401 sets the chip to RX or TX mode<br />#define NFR_IRQ 8 // active low interrupt from nRF2401<br /><br />byte clr; // temp to hold discardable SPI return data<br /><br />byte data_array[4]; // holds data in packet received from Key FOB<br /><br />byte incoming; // holds status register of nfr2401<br /><br />int button_presses; // holds count of number of times a button had been pressed on FOB [since battery replaced]<br /><br /><br />// routine to send and receive a byte on SPI<br /><br />char spi_transfer(volatile char data)<br />{<br /><br /> SPDR = data; // Start the transmission<br /> while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission<br /> {<br /> };<br /><br /> return SPDR; // return the received byte<br />}<br /><br />// main arduino setup routine<br /><br />void setup()<br />{<br /> Serial.begin(9600);<br /> <br /> Serial.println("Configuring the nRF2401.");<br /><br /> pinMode( DATAOUT, OUTPUT);<br /> pinMode( DATAIN, INPUT);<br /> pinMode( SPICLOCK, OUTPUT);<br /> pinMode( CHIPSELECT, OUTPUT);<br /> <br /> pinMode( NFR_CE, OUTPUT);<br /> pinMode( NFR_IRQ, INPUT);<br /><br /><br /> //interrupt enabled,spi enabled,msb 1st,master,clk low when idle,<br /> //sample on leading edge of clk,system clock/4 rate (fastest)<br /><br /> SPCR = (1<<SPE)|(1<<MSTR);<br /> clr=SPSR;<br /> clr=SPDR;<br /> delay(10);<br /><br /><br /> digitalWrite(CHIPSELECT, HIGH); //disable SPI comm with device<br /> digitalWrite(NFR_CE, LOW); //chip disable the nRF2401 <br /> <br /><br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device <br /> spi_transfer(0x20); //enable RX irq, CRC enabled, be a receiver<br /> spi_transfer(0x39);<br /> digitalWrite(CHIPSELECT, HIGH); //disable SPI comm with device<br /><br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x21); // disable auto-acknowledge<br /> spi_transfer(0x00);<br /> digitalWrite(CHIPSELECT, HIGH); //disable SPI comm with device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x23); // set address width to 5 bytes (default, not really needed)<br /> spi_transfer(0x03);<br /> digitalWrite(CHIPSELECT, HIGH); //disable SPI comm with device<br /><br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x26); //air data rate 1 Mbit, 0dBm, setup LNA<br /> spi_transfer(0x07);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x31); // 4 byte receive payload<br /> spi_transfer(0x04);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x25); // rf channel 2 (default, not really needed)<br /> spi_transfer(0x02);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x2a); //set RX pipe 0 address<br /> spi_transfer(0xe7);<br /> spi_transfer(0xe7);<br /> spi_transfer(0xe7);<br /> spi_transfer(0xe7);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device<br /> spi_transfer(0x20); // RX interrupt, power up, be a receiver<br /> spi_transfer(0x3b);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /><br /> Serial.println("Done setting up.");<br /> digitalWrite(NFR_CE, HIGH); //receiver enable the nRF2401 <br /><br />}<br /><br />// main arduino program loop<br /><br />void loop()<br />{<br /> Serial.println("Startup up communications with nRF2401.");<br /> Serial.println("Waiting for message from Nordic Key FOB.");<br /> <br /> // loop forever<br /> while(1)<br /> {<br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device <br /> incoming = spi_transfer(0xff); // get nRF2401 status register contents<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> // transmission received from FOB<br /> if (incoming & 0x40)<br /> {<br /><br /> // get data from nRF2401<br /> digitalWrite(NFR_CE, LOW); //disable receiver in the nRF2401 <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device <br /> spi_transfer(0x61);<br /> data_array[0] = spi_transfer(0xff);<br /> data_array[1] = spi_transfer(0xff); <br /> data_array[2] = spi_transfer(0xff);<br /> data_array[3] = spi_transfer(0xff);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> <br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device <br /> spi_transfer(0xe2); // flush RX FIFO<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /><br /> digitalWrite(CHIPSELECT, LOW); //enable comm with SPI device <br /> spi_transfer(0x27); // clear RF FIFO interrupt<br /> spi_transfer(0x40);<br /> digitalWrite(CHIPSELECT, HIGH); //disable comm with SPI device<br /> digitalWrite(NFR_CE, HIGH); //receiver enable the nRF2401 <br /> <br /> // figure out which key on FOB was pressed<br /> <br /> switch( data_array[0] )<br /> {<br /> case 0x17: Serial.print("Left button "); break;<br /> case 0x1e: Serial.print("Bottom button"); break;<br /> case 0x1b: Serial.print("Right button "); break;<br /> case 0x1d: Serial.print("Top button "); break;<br /> case 0x0f: Serial.print("Center button"); break;<br /> default: Serial.print( "No button! "); break;<br /> }<br /> // display the total number of times that a button had been pressed on the FOB<br /> // since battery in FOB replaced<br /> button_presses = (data_array[1] << 8) + data_array[2];<br /> Serial.print(" pressed ");<br /> Serial.print( button_presses, DEC );<br /> Serial.println(" times.");<br /><br /> // wait a bit before checking for another key press packet, may need some adjusting. <br /> delay(10);<br /> }<br /> }<br />}<br /><br /><br /><br /></tt><br /></pre><br /></blockquote><br /><br />Dave Profferhttp://www.blogger.com/profile/18419001582131810353noreply@blogger.com2