tag:blogger.com,1999:blog-78070090541009054622024-03-05T00:22:07.543-05:00The Bumbling ElectronI am not new to electronics. I've been interested since I was 10 years old. I've never worked professionally in electronics but I know more than the average person. I've built a number of Heathkits (am I showing my age?) and have been hacking arduinos since they first appeared. Before the arduino I did not have any real exposure to MCUs. I thought that it was time that I shared my learning with the community at large.mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-7807009054100905462.post-84652743988486744962023-08-12T13:11:00.004-04:002023-08-12T13:11:56.765-04:00Follow me on mastodon<p><a href="https://twit.social/invite/5ZAeCpGM" rel="nofollow" target="_blank">Follow me on mastodon</a> </p>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-68806860059664594412023-08-12T11:08:00.002-04:002023-08-12T13:00:06.673-04:00FLET: A python GUI based on FlutterI am always on the lookout for new (easier) ways to create GUIs for python. Recently I ran across the <a href="https://flet.dev/" rel="nofollow" target="_blank">FLET</a>. Also available on <a href="https://github.com/flet-dev/flet" rel="nofollow" target="_blank">github</a>.
<div><br /></div><div>Their description is</div><blockquote><div><h1 class="hero__title" style="box-sizing: border-box; color: #008dfb; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 50px; line-height: var(--ifm-heading-line-height); margin-top: 2rem;">The fastest way to build Flutter apps in Python</h1><p class="hero__subtitle" style="box-sizing: border-box; color: #555555; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 24px; margin: 0 0 var(--ifm-paragraph-margin-bottom);">Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.</p></div></blockquote><p>As an experiment I decided to create a simple login form.</p><blockquote><div style="background-color: #131314; color: #ebebeb;"><pre><span style="font-family: courier; font-size: xx-small;"><span style="color: #ed864a;">import </span>flet <span style="color: #ed864a;">as </span>ft<br /><br /><span style="color: #ed864a;">def </span><span style="color: #ffcf40;">main</span>(<span style="color: white;">page</span>: <span style="color: white;">ft.Page</span>):<br /> <span style="color: white;">page</span>.title = <span style="color: #54b33e;">"Login"<br /></span><span style="color: #54b33e;"> </span><span style="color: white;">page</span>.window_height = <span style="color: #33ccff; font-weight: bold;">200<br /></span><span style="color: #33ccff; font-weight: bold;"> </span><span style="color: white;">page</span>.window_width = <span style="color: #33ccff; font-weight: bold;">500<br /></span><span style="color: #33ccff; font-weight: bold;"> </span><span style="color: white;">page</span>.window_always_on_top = <span style="color: #ed864a;">True<br /></span><span style="color: #ed864a;"><br /></span><span style="color: #ed864a;"> def </span><span style="color: #ffcf40;">cancel_click</span>(<span style="color: #b3b3b3;">e</span>):<br /> <span style="color: white;">page</span>.window_destroy()<br /><br /> <span style="color: #ed864a;">def </span><span style="color: #ffcf40;">login_click</span>(<span style="color: #b3b3b3;">e</span>):<br /> <span style="color: #ed864a;">if </span><span style="color: white;">txt_user</span>.value == <span style="color: #54b33e;">"admin" </span><span style="color: #ed864a;">and </span><span style="color: white;">txt_pwd</span>.value == <span style="color: #54b33e;">"admin"</span>:<br /> <span style="color: white;">dlg</span>.content = ft.Text(<span style="color: #54b33e;">"Login Successful"</span>)<br /> <span style="color: #ed864a;">else</span>:<br /> <span style="color: white;">dlg</span>.content = ft.Text(<span style="color: #54b33e;">"Login failed"</span>)<br /> <span style="color: white;">dlg</span>.modal = <span style="color: #ed864a;">False<br /></span><span style="color: #ed864a;"> </span><span style="color: white;">dlg</span>.open = <span style="color: #ed864a;">True<br /></span><span style="color: #ed864a;"> </span><span style="color: white;">dlg</span>.update()<br /> <span style="color: white;">page</span>.update()<br /><br /> <span style="color: white;">dlg </span>= ft.AlertDialog(<span style="color: #aa4926;">title</span>=ft.Text(<span style="color: #54b33e;">"Login"</span>)<span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">content</span>=ft.Text(<span style="color: #54b33e;">"---"</span>))<br /> <span style="color: white;">txt_user </span>= ft.TextField(<span style="color: #aa4926;">value </span>= <span style="color: #54b33e;">""</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">label</span>=<span style="color: #54b33e;">"User ID"</span>)<br /> <span style="color: white;">txt_pwd </span>= ft.TextField(<span style="color: #aa4926;">value </span>= <span style="color: #54b33e;">""</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">password</span>=<span style="color: #ed864a;">True</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">can_reveal_password</span>=<span style="color: #ed864a;">True, <br /></span><span style="color: #aa4926;">label</span>=<span style="color: #54b33e;">"Password"</span>)<br /> <span style="color: white;">btn_cancel </span>= ft.FilledButton(<span style="color: #aa4926;">text</span>=<span style="color: #54b33e;">"Cancel"</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">on_click</span>=cancel_click)<br /> <span style="color: white;">btn_login </span>= ft.FilledButton(<span style="color: #aa4926;">text</span>=<span style="color: #54b33e;">"Login"</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: #aa4926;">on_click</span>=login_click)<br /> <span style="color: white;">action_row </span>= ft.Row(<span style="color: #aa4926;">controls</span>=[<span style="color: white;">btn_cancel</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: white;">btn_login</span>])<br /> <span style="color: white;">page</span>.add(<span style="color: white;">txt_user</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: white;">txt_pwd</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: white;">action_row</span><span style="color: #ed864a; font-weight: bold;">, </span><span style="color: white;">dlg</span>)<br /> <span style="color: white;">page</span>.window_center()<br /><br />ft.app(<span style="color: #aa4926;">target</span>=main)</span></pre></div></blockquote><p> This results in the following window</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtY6-zIyBBKlbxOeJHqrZEqsx7GenS9rIorr2atyPWLh41N6R69x0jYjzvrV0qdDbiNgm-sRfcjv-M1ahP0R1nDgFO6OOdHBazh9YP3ifD7kAwL_FT_DNFsWvINLdm9vvjRmKBJEJ2b6MONZH8mbkJviyoK3UttjIUcgoxKXE0qpTNhtmn-XFrt5D2XM85/s510/login.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="241" data-original-width="510" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtY6-zIyBBKlbxOeJHqrZEqsx7GenS9rIorr2atyPWLh41N6R69x0jYjzvrV0qdDbiNgm-sRfcjv-M1ahP0R1nDgFO6OOdHBazh9YP3ifD7kAwL_FT_DNFsWvINLdm9vvjRmKBJEJ2b6MONZH8mbkJviyoK3UttjIUcgoxKXE0qpTNhtmn-XFrt5D2XM85/s320/login.png" width="320" /></a></div><br /><p>A jupyter notebook is <a href="https://drive.google.com/file/d/1GjugQ_S5L-wyhq9LClaipZlN0RCVMat1/view?usp=drive_link" rel="nofollow" target="_blank">here</a>.</p><p><br /></p>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-21967424956453026342023-01-20T12:57:00.001-05:002023-01-20T12:57:27.878-05:00Hydrogen Will Not Save Us. Here's Why.<iframe width="480" height="270" src="https://youtube.com/embed/Zklo4Z1SqkE" frameborder="0"></iframe>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-89705201645852543652022-11-22T06:47:00.001-05:002022-11-22T06:47:05.424-05:00<p> </p><a rel="me" href="https://twit.social/@mainmeister">Mastodon</a>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-52565236210389710302018-10-01T11:39:00.001-04:002018-10-01T11:39:31.586-04:00The ARCHIVE.ORG Manual LibraryThe site <a href="https://archive.org/">https://archive.org</a> maintains lists of <a href="https://archive.org/details/manuals" target="_blank">manuals</a> for many types of vintage devices. Here is a list of some of the more interesting computer and consumer oriented ones.<br />
<br />
<br />
<ul>
<li><a href="https://archive.org/details/computermanuals" target="_blank">Computer Manuals (Hardware and Software)</a> </li>
<li><a href="https://archive.org/details/consolemanuals" target="_blank">Console Manual Collection</a> </li>
<li><a href="https://archive.org/details/electronicsmanuals" target="_blank">Electronics Manuals</a> </li>
<li><a href="https://archive.org/details/hp_manuals_various" target="_blank">Manuals: Various HP Manuals</a> </li>
<li><a href="https://archive.org/details/synthmanuals" target="_blank">Synthesizer Manuals Collection</a> </li>
<li><a href="https://archive.org/details/tvmanuals" target="_blank">Television Manuals</a></li>
<li><a href="https://archive.org/details/laptopmanuals" target="_blank">Laptop Service Manuals</a></li>
<li><a href="https://archive.org/details/printer-manuals" target="_blank">Printer Manuals</a></li>
<li><a href="https://archive.org/details/gamemanuals" target="_blank">Computer Game Manuals</a></li>
<li><a href="https://archive.org/details/synthmanuals-roland" target="_blank">Synthesizer Manuals: Roland</a></li>
<li><a href="https://archive.org/details/iFixit_manuals" target="_blank">iFixit_manuals</a></li>
<li><a href="https://archive.org/details/xboxmanuals" target="_blank">XBOX Manuals</a></li>
<li><a href="https://archive.org/details/manuals-apple" target="_blank">Apple Computer Manuals</a></li>
<li><a href="https://archive.org/details/service-manual-dell" target="_blank">Laptop Service Manuals: Dell</a></li>
<li><a href="https://archive.org/details/yamaha_bike_manuals" target="_blank">Manuals: Yamaha Manuals</a></li>
<li><a href="https://archive.org/details/manuals-misc" target="_blank">Miscellaneous Manuals</a></li>
<li><a href="https://archive.org/details/trs80manuals" target="_blank">Tandy Radio Shack TRS-80 Manuals</a></li>
<li><a href="https://archive.org/details/manuals_radioshack" target="_blank">Manuals: Radio Shack</a></li>
<li><a href="https://archive.org/details/service-manual-acer" target="_blank">Laptop Service Manuals: Acer</a></li>
<li><a href="https://archive.org/details/atari8bitmanuals" target="_blank">Atari 8-bit Computer Manuals</a></li>
<li><a href="https://archive.org/details/printer-manuals-hp" target="_blank">Printer Manuals: HP</a></li>
<li><a href="https://archive.org/details/playstationmanuals" target="_blank">Console Manuals: Playstation</a></li>
<li><a href="https://archive.org/details/printer-manuals-epson" target="_blank">Printer Manuals: Epson</a></li>
<li><a href="https://archive.org/details/segasaturnmanuals" target="_blank">Console Manuals: Sega Saturn</a></li>
<li><a href="https://archive.org/details/atari2600manuals" target="_blank">Console Manuals: Atari 2600</a></li>
<li><a href="https://archive.org/details/synthmanuals-yamaha" target="_blank">Synthesizer Manuals: Yamaha</a></li>
<li><a href="https://archive.org/details/manuals-handheld-games" target="_blank">Handheld Game Manuals</a></li>
<li><a href="https://archive.org/details/printer-manuals-brother" target="_blank">Printer Manuals: Brother</a></li>
<li><a href="https://archive.org/details/3domanuals" target="_blank">3DO Interactive Multiplayer Manuals</a></li>
<li><a href="https://archive.org/details/ataristmanuals" target="_blank">Atari ST Manuals</a></li>
<li><a href="https://archive.org/details/service-manual-toshiba" target="_blank">Laptop Service Manuals: Toshiba</a></li>
<li><a href="https://archive.org/details/megacdmanuals" target="_blank">Mega CD Manuals</a></li>
<li><a href="https://archive.org/details/colecovisionmanuals" target="_blank">Console Manuals: Coleco ColecoVision</a></li>
<li><a href="https://archive.org/details/synthmanuals-korg" target="_blank">Synthesizer Manuals: Korg</a></li>
<li><a href="https://archive.org/details/segagenesismanuals" target="_blank">Console Manuals: Sega Genesis and Mega Drive</a></li>
<li><a href="https://archive.org/details/segadreamcastmanuals" target="_blank">Console Manuals: Sega Dreamcast</a></li>
<li><a href="https://archive.org/details/printer-manuals-canon" target="_blank">Printer Manuals: Canon</a></li>
<li><a href="https://archive.org/details/service-manual-gateway" target="_blank">Laptop Service Manuals: Gateway</a></li>
<li><a href="https://archive.org/details/service-manual-ibm" target="_blank">Laptop Service Manuals: IBM</a></li>
<li><a href="https://archive.org/details/vic20manuals" target="_blank">Commodore VIC-20 Manuals</a></li>
<li><a href="https://archive.org/details/service-manual-hp" target="_blank">Laptop Service Manuals: HP</a></li>
<li><a href="https://archive.org/details/service-manual-compaq" target="_blank">Laptop Service Manuals: Compaq</a></li>
</ul>
mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0Toronto, ON, Canada43.653226 -79.38318429999998243.2856095 -80.028631299999986 44.020842499999993 -78.737737299999978tag:blogger.com,1999:blog-7807009054100905462.post-10939483932622226972018-09-21T11:52:00.001-04:002018-09-21T11:52:33.582-04:00Abseil - an open-source collection of C++ library code designed to augment the C++ standard library<blockquote>
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google’s own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.</blockquote>
<a href="https://abseil.io/about/"></a>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-20900607084672335282018-03-30T10:17:00.001-04:002018-03-30T10:17:54.052-04:00Enjoy the Music.com High-End Audio, Hi-Res Audio (HRA) & Music Industry News<a href="http://www.enjoythemusic.com/news/#undefined.gbpl.uxfs.hpvt.cmfs">Enjoy the Music.com High-End Audio, Hi-Res Audio (HRA) & Music Industry News</a>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-73589905477913968792018-03-14T21:56:00.001-04:002018-03-14T21:56:09.942-04:00The Science Websites That We Read Every Day<a href="https://www.livescience.com/61995-best-science-websites.html?utm_source=lst-newsletter">The Science Websites That We Read Every Day</a>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-70263139377007648362016-10-24T11:15:00.001-04:002016-10-24T11:15:12.853-04:00Reddit ShowerThoughts message popupThe ShowerThoughts sub-reddit on <a href="https://www.reddit.com/r/Showerthoughts/">https://www.reddit.com/r/Showerthoughts/</a> is all about those awesome epiphanies we all seem to get when we are in the shower. It is one of the few moments today when we are totally alone with our selves. No phones (unless you are on of the unlucky ones to own a waterproof bluetooth device).
This python 3 applications uses the linux libnotify-bin program to pop up any new messages through out the day. This uses the os.system method to execute the notify-send command with title and message from the reddit post.
Download on <a href="https://github.com/mainmeister/showerthoughts">github</a>
Hope you enjoy
mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-73361558389748440652015-04-06T09:25:00.001-04:002015-04-06T09:43:55.071-04:00<a href="http://www.soundandvision.com/content/jay-z-relaunches-tidal-parade-musicianowners">Jay Z Relaunches Tidal with a Parade of Celebrity Artists</a>
Tidal states about 2.5 million songs. Even if you count conservatively, some songs are counted more than once because they appear on multiple albums, say 750,000 unique title/artist combinations.
My own flac file collection is just shy of 1 TB and it is less than 3000 titles.
There is no player out there that can hold anywhere near the files I have in my own personal collection, let alone all of the titles in the Tidal library.
Also, the new Meridian format, MQA, will be available soon on Tidal which give even better then cd quality. Even at $29.99 a month that would be worth it as long as the number and types of titles available in MQA warrant that pay level.
I want to thank Tidal and Jay Z for what they are attempting to do here. Even if all they accomplish is to raise the level of awareness of higher quality audio to the masses, along with My. Young and his PONO/music service, it was worth the exercise.
Your avid supporter
William Mainmainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-19042714032195156362015-01-19T19:55:00.000-05:002015-01-19T19:55:59.739-05:00Tidal HIFI is now sounding great in CanadaIf you have the data plan to handle it, <a href="http://tidalhifi.com">http://tidelhifi.com</a> has streaming FLAC files at 1411 kbps - Lossless which is the equivalent to an audio CD at 16 bit/44.1 khz. They do provide three levels of streaming however. Standard Quality, High Quality and HIFI. These stream as follows
Standard quality:
96 kbps (AAC +)
High quality:
320 kbps (AAC)
HiFi:
Flac 1411 kbps - Lossless
(16/44.1 khz)
I listen to standard quality when I am out and about on my cell phone. When I am in WIFI either on the phone or one of my other computers I listen using HIFI.
The cost is $19.99/month CAD which is about double everyone else on the streaming game. For me it is worth the expense. You will have to decide that for yourself. There is a free 7 day trial.mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-79230384798689409602013-12-02T09:37:00.001-05:002015-04-06T09:45:03.788-04:00A giant magnet's 3200 mile voyage<object id="flashObj" width="300" height="225" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1&isUI=1" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=2566146436001&linkBaseURL=http%3A%2F%2Fscience360.gov%2Fobj%2Fvideo%2Fac81e305-a7c9-478c-bcca-cfffdade62cb%2Fgiant-magnets-3200-mile-voyage&playerID=680955538001&playerKey=AQ~~,AAAAnibSDYk~,b1PLRaAcEQT3RBHmuWZjKTSNFGfmpEbK&domain=embed&dynamicStreaming=true" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9?isVid=1&isUI=1" bgcolor="#FFFFFF" flashVars="videoId=2566146436001&linkBaseURL=http%3A%2F%2Fscience360.gov%2Fobj%2Fvideo%2Fac81e305-a7c9-478c-bcca-cfffdade62cb%2Fgiant-magnets-3200-mile-voyage&playerID=680955538001&playerKey=AQ~~,AAAAnibSDYk~,b1PLRaAcEQT3RBHmuWZjKTSNFGfmpEbK&domain=embed&dynamicStreaming=true" base="http://admin.brightcove.com" name="flashObj" width="300" height="225" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object><p>Muon g-2, the world's largest electromagnetic ring, is traveling in one piece from Brookhaven National Laboratory on New York's Long Island to Fermilab outside Chicago. It's arrival may lead scientists to the next big discoveries in particle physics.<br /><br />Provided by the Natiional Science Foundation</p>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-79124854703615604002013-09-30T19:37:00.003-04:002013-09-30T19:37:48.419-04:00Phil Plait at TAM 8: Don't Be A DickIf you are already a skeptic then you will find a lot of good points in this talk. If you are not a skeptic then you will find some very scary notions. It will challenge you to re-examine your belief system. But this us actually a good thing. I don't mean to tell people what to believe but I still think that everyone should question everything and learn to become a critical thinker.<br />
<iframe allowfullscreen="" frameborder="0" height="270" src="//www.youtube.com/embed/FrFRbGjUtJk" width="480"></iframe><br />
<span style="background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13.142857551574707px; line-height: 10.285714149475098px;"><br /></span>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-45506814569799103492013-09-16T08:36:00.001-04:002013-09-16T08:36:37.088-04:00element15<object id="flashObj" width="480" height="270" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1&isUI=1" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=1662392934001&playerID=1361944270001&playerKey=AQ~~,AAABPSuWGVE~,e48IldkKVVh5lUVTuK7xtxqAn-dkG_2U&domain=embed&dynamicStreaming=true" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9?isVid=1&isUI=1" bgcolor="#FFFFFF" flashVars="videoId=1662392934001&playerID=1361944270001&playerKey=AQ~~,AAABPSuWGVE~,e48IldkKVVh5lUVTuK7xtxqAn-dkG_2U&domain=embed&dynamicStreaming=true" base="http://admin.brightcove.com" name="flashObj" width="480" height="270" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object><p>Our community is the largest of it's kind in the world, making it the perfect environment for the turning even the smallest seeds of inspiration into big ideas that shape the future.</p>mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-67984991150487827832013-09-09T11:43:00.003-04:002013-09-09T13:51:27.890-04:00LCD Serial Display - Parts List<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61mELJPPKC-rgfETIkHi4DCZuHnaKFun0gVkIvWcUeMIO5D-ZesmOUBDcteoC7FkXn0KZYll-L1Nsn6zrXwnwAu2FKVyE39Gak-Ytv6eCfU6ynDSZhvZXGb4greZgQvu_SHlwMNklItPY/s1600/LCDDisplay1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="" border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61mELJPPKC-rgfETIkHi4DCZuHnaKFun0gVkIvWcUeMIO5D-ZesmOUBDcteoC7FkXn0KZYll-L1Nsn6zrXwnwAu2FKVyE39Gak-Ytv6eCfU6ynDSZhvZXGb4greZgQvu_SHlwMNklItPY/s1600/LCDDisplay1.JPG" title="First Draft prototype" width="460" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">First draft of a working prototype</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<ol>
<li>Arduino UNO</li>
<li>Breadboard</li>
<li>10K POT</li>
<li>2K Resistor</li>
<li>Single strand hook-up wire</li>
<li>USB Cable</li>
<li>LCD Display 5 x 7 dots plus cursor, 5 x 8 dots or 5 x 11 dots, dot matrix LCD (TN and STN mode.)</li>
<li>Break-away male header strip</li>
</ol>
<div>
<br /></div>
<div>
My decision to use the UNO was purely convenience driven. Any of the available arduino boards can be used for this project. At the end I will convert to using a bare processor in place of the development board. A typical arduino development board can be had for as low as $9. Some, like the nano, are breadboard pluggable.</div>
<div>
<br /></div>
<div>
There are a veritable glut of LCD display modules available. I paid $6 for mine at a local electronics retailer here on Toronto. You can get them from any of the on-line electronics stores as well. Chances are you'll pay more for shipping than for the display. <a href="http://store.reuseum.com/Orion_Daewoo_16x2_LCD_Display_p/111611-001_lcd_display.htm" rel="nofollow">Orion Daewoo 16x2 LCD Display Module 16216L-B-F30</a> is available for $2.99 plus shipping. This version does not include a backlit display. Here is a typical <a href="https://docs.google.com/file/d/0B_nAL5taY6ipVG5PdWpGRjRzb2M/edit?usp=sharing">PDF data sheet</a> for this type of display.<br />
<br />
One of the things you will need to plug the display into the breadboard is a 16 pin header strip. 40 position break away headers can be purchased for less than $1 each. I'd suggest you get 4 <a href="http://www.adafruit.com/products/400">male</a> and 4 <a href="http://www.adafruit.com/products/598">female</a> headers if you are ordering on-line. They are extremely useful in all type of projects and you'll find you use them up rather quickly.<br />
<br />
If you do not already have a breadboard, you can purchase kits that include a breadboard and a selection of pre-cut jumper wires. A good starter breadboard is the <a href="http://www.adafruit.com/products/64" rel="nofollow">half-sized breadboard</a> from AdaFruit Industries in New York City. A good supply of <a href="http://www.adafruit.com/products/153" rel="nofollow">jumpers</a> can also be had.<br />
<br />
The USB cable usually comes with the arduino development board while the resistor and the <a href="http://www.adafruit.com/products/562">POT</a> can be purchased from any electronics supply. Digi-key has a good selection of <a href="http://www.digikey.ca/product-search/en?FV=fff40026%2Cfff800f7%2C1140050&k=resistors&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=0&pbfree=0&rohs=0&quantity=&ptm=0&fid=0&pageSize=500">resistor kits</a>.<br />
<br />
Here is a wiring diagram of the basic circuit.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg92cgVGY1p9SZV9IM94FxVDO9SA1Tp2Ya2Fzs8PDUquKCBJWFrg3bxTFeuzm4BvYtbt-xQAX2Ymg2YU8xLnGGiRDTdzaTZunBGaHxWV_A27DgVdiumQrrs63TSWpZfGekqiboVOx7QJrmE/s1600/STATUS_DISPLAY_bb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="528" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg92cgVGY1p9SZV9IM94FxVDO9SA1Tp2Ya2Fzs8PDUquKCBJWFrg3bxTFeuzm4BvYtbt-xQAX2Ymg2YU8xLnGGiRDTdzaTZunBGaHxWV_A27DgVdiumQrrs63TSWpZfGekqiboVOx7QJrmE/s1600/STATUS_DISPLAY_bb.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://docs.google.com/file/d/0B_nAL5taY6ipaWxWUEZFNzNYamM/edit?usp=sharing">Wiring Diagram</a></td></tr>
</tbody></table>
<br />
First you will need to solder a 16 pin male header to the display board. This will allow you to plug the display into the breadboard. The header pins look like this when you get them.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiExkxmvxwxCCEYCYJh6tOrF2LmUR-M2FytTUf2e5JpE-Y5tM0TqmioxTWT6G7-jO3oj2ARcVvP14zjgCkoGM3wmwdlO_7RlKTqVdI_pjgb7n1wHw2I89KN-LejZerRTolxI34yrE5Tvdq-/s1600/budget-male-headers.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiExkxmvxwxCCEYCYJh6tOrF2LmUR-M2FytTUf2e5JpE-Y5tM0TqmioxTWT6G7-jO3oj2ARcVvP14zjgCkoGM3wmwdlO_7RlKTqVdI_pjgb7n1wHw2I89KN-LejZerRTolxI34yrE5Tvdq-/s1600/budget-male-headers.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Typical 40 pin Male Header Strip</td></tr>
</tbody></table>
You will need to cut a length of 16 conductors using diagonal cutters. The shorter side inserts in the the row of sixteen holes in the top left corner of the display board from the bottom. They should look like this.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11D7iGMV7IL-UmnJ_omxOFu6FedbrDbmcMxmYh02J9OH55qpy0Uedht-iAbwHcQk5ofidOxkdOovmWP1glvLmYv0cGsqiV5lu4buZu0IuIXy84pDbilulxVdbQTESSBYI28kKw9DWaots/s1600/DisplayHeaders.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11D7iGMV7IL-UmnJ_omxOFu6FedbrDbmcMxmYh02J9OH55qpy0Uedht-iAbwHcQk5ofidOxkdOovmWP1glvLmYv0cGsqiV5lu4buZu0IuIXy84pDbilulxVdbQTESSBYI28kKw9DWaots/s1600/DisplayHeaders.JPG" width="320" /></a></div>
In the next post I'll start to cover the software required for both the MCU and the Python code.<br />
<br />
Virtually yours,<br />
<br />
Wee Willy Wonderful</div>
mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0tag:blogger.com,1999:blog-7807009054100905462.post-27109683615852820582013-08-29T23:41:00.000-04:002013-09-09T09:48:21.182-04:00Our first project - The serial display<h2>
The Purpose of Bumbling Electron</h2>
<div>
I decided to create this blog to document my journey through making useful devices using micro-controllers. My rational is that other people will benefit from my mistakes as I fail my way to success.</div>
<div>
<br /></div>
<div>
I will build projects that span multiple blog entries. At first I am going to write a blog entry when ever I finish some work on a project. I might have one or more projects on-going at any time. If warranted I'll post on some regular schedule.</div>
<div>
<br /></div>
<h3>
My First Project</h3>
<div>
<br /></div>
<div>
My first project is a 2 line by 16 character LCD display that connects and is powered via USB. This can be used to display status information about the computer or even help in displaying debugging information while developing software. If you want to get creative you could easily write a script that pulls weather information from the world wide web and displays the current temperature, humidity and other weather related information. Getting excited?</div>
<div>
<br /></div>
<div>
When attached to the computer, the display will appear as a serial device. I am using Linux but you could develop under Windows or Apple OS. If you have an android device with a host USB adaptor you can use that.</div>
<div>
<br /></div>
<div>
Choice of language includes the ubiquitous Windows BAT file, Python, JavaScript; basically any language that can write to the serial port. What you write is up to you. Controlling the output will depend on certain ASCII codes that are non-displayable characters. These are interpreted by the display as commands. For example, ASCII code zero (0) will cause the display to clear and the cursor to position itself at the beginning of the first line. An ASCII code of one (1) will allow you to position the cursor to any position on the two lines of the display. The next two ASCII codes following the ASCII one will be the line (0 or 1) and the column (0 to 15). Other codes will allow you to scroll left or right, turn the back light on and off, blank the display or even reboot the device.</div>
<div>
<br /></div>
<div>
I am also thinking on adding a piezo electric beeper to allow the ASCII bell character (8) to sound a beep. That way you can signal an event audibly.</div>
<div>
<br /></div>
<div>
I look forward to building the LCD display and sharing it with you.</div>
<div>
<br /></div>
<div>
Wee Willy Wonderful</div>
mainmeisterhttp://www.blogger.com/profile/12706911170996038222noreply@blogger.com0