tag:blogger.com,1999:blog-75340608793243998562024-03-04T20:26:35.041-08:00Free Geek Vancouver Volunteer BlogAUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.comBlogger79125tag:blogger.com,1999:blog-7534060879324399856.post-72066118830043112292014-04-30T23:01:00.001-07:002014-04-30T23:01:53.419-07:00Happy Earth Month! Happy Earth Month, everyone! Did you celebrate? If you did, you joined over a billion people across 192 countries in raising awareness for environmental protection and preservation. Earth Day began in the 1970's and has become an inspiring annual event. Go team!<br />
<br />
Free Geek commemorated Earth Day 2014 by participating in VCC’s Green Living Fair, where we helped attendees learn how to reduce their carbon footprint through ethical recycling.<br />
<br />
How did you participate? Whether you finally recycled those bottles under your sink, remembered to bring your eco bags to the grocery store, brought your electronics in to Free Geek, or attended an event, we want to hear about it. Feel free to share with us in the comments, or on Facebook.<br />
<br />
Want to learn more about Earth Day and how you can live green all year long? Visit <a href="http://www.earthday.org/">www.earthday.org</a> or <a href="http://en.wikipedia.org/wiki/Earth_Day">http://en.wikipedia.org/wiki/Earth_Day</a> for more information and links.<br />
<br />
<br />
When one tugs at a single thing in nature, he finds it attached to the rest of the world.<br />
<br />
-- John Muir<br />
<br />
<br />
<br />
Cheers,<br />
FGV<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-30209067204003232052014-04-01T19:17:00.000-07:002014-04-01T19:17:45.010-07:00<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal">
This post is all about people. In March, we celebrated the donation of another hardware grant to a local elementary school, and we
partnered with First United Church in the DTES, donating computers for use in
their resource centre. As always, we had a wonderful time getting involved in
the community, and it got us thinking – we’ve profiled quite a few people and
organizations, but never ourselves, and we thought we’d quite like to say
hello. </div>
<div class="MsoNormal">
So, this month, we bring you our first ever profile of a FGV
staff member. Mike, who heads up Free Geek’s laptop department, took his turn
in the hot seat and answered the same set of questions we pose to our Volunteer
of the Month. Read on for more about Mike.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
How long have you been at Free Geek? What’s your
department?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I
started as a volunteer in April of 2011, going through our Build Program and
ending up in Laptop Build by June. In March of 2012 I was hired as the Laptop
Build Coordinator, temporary part-time. By September I was on permanent staff,
part-time, then by December 2012 full time.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
What prompted you to start volunteering?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Doctor's
orders. No, really. Stop obsessing about finding work in your old career, she
said. Volunteer somewhere and you'll get your confidence back. She was dead
right about that.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I
had an idea of getting into some kind of tech support, since I knew a lot about
software. About hardware, though, I knew virtually nothing. Free Geek turned
out to be the best place to learn that.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
What has been the best part of your experience at Free
Geek?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
At
the beginning, it was the staff and the community of volunteers. Everybody
helps you, nobody judges. It's not where you came from, but what you can do and
what kind of person you are that count. Do you want to stretch your wings, try
something new? Go for it, we'll help. Do you have a tweak, a trick, an
improvement you want to try? Do it: if it works we'll keep it, if it doesn't,
hey, no worries.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Later
on, as staff, the best part was the rare privilege of teaching in the best
classroom situation you can imagine (one on one, with all the resources right
at hand), and the still more rare privilege of building something unique and
worthy.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Where do you hope to go with the skills and
knowledge you have gained?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I'm
not going anywhere. I'm staying right here. This is one of the very few jobs
I've had where I look forward to going into work every day. I get to work with
a lot of really first-class people, genuine citizens in the classic sense of
the word, and that's a jewel beyond price.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Please tell us anything you would like to share
about your hobbies and interests.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Books,
movies, history, politics, science, science fiction, British detective dramas,
Stan Rogers, how the human brain works, why people believe in things that
aren't true, and at the bottom of it all, origins. Of people, names, memes, myths, customs, nations,
technologies, matter, energy, mind, the cosmos. Endlessly fascinating.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Any final comments?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Free
Geek is a really unusual organization, an experiment really. An enterprise that
operates on the premise that cooperation achieves more than competition,
equality more than hierarchy, altruism more than greed. Sometimes experiments
fail, but not this one, I think. I'm proud to be a part of it.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFoihOkVCVMEhv5ZWkLiTbI6fqmFZOCb7bWeMr3dbpL1YzpT3BthB8fCNM-OT1yFM-29PkY5S0-e-CBre2_GKd0EroQRpOVu6WTpXcFeFoC3y8t-9ONObqWJ-W0lf5u3z73r98PA0EssUY/s1600/dad.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFoihOkVCVMEhv5ZWkLiTbI6fqmFZOCb7bWeMr3dbpL1YzpT3BthB8fCNM-OT1yFM-29PkY5S0-e-CBre2_GKd0EroQRpOVu6WTpXcFeFoC3y8t-9ONObqWJ-W0lf5u3z73r98PA0EssUY/s1600/dad.jpg" /></a></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<br />
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
We
couldn't agree more. Free Geek is very proud to have someone with Mike’s
experience and dedication on staff.
Recently, Mike also acted as the FGV ambassador during the filming of a
documentary at the Free Geek warehouse. Stay tuned for more on that in our next
post!<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Of
course, we can’t go without mentioning our Volunteer of the Month. Meet Roxana!
<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
How
long have you volunteered with Free Geek? What's your department?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Since
October, 2013. I spent most of my time in hardware and RAM testing. I’ve
recently moved to laptop build.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
What
prompted you to start volunteering?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Because
of my environmental convictions. I want to help the environment. Free Geek lets
me do this in a very tangible way.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
What has been the best part of your experience
at Free Geek?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
The
staff are very supportive and professional. They reflect better ethics than the
mainstream.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Where
do you hope to go with the skills and knowledge you have gained?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I
would like to help others. I would like to in the future help my friends fix
their computers, and have more knowledge in this direction.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Please
tell us anything you'd like to share about your hobbies and interests.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I
like to spend time in nature (hiking). I like to watch documentaries, read, and
sew by hand.<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
Any
final comments?<o:p></o:p></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
I
just want to say thank you for this opportunity.</div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEShJTlggkhV5NxjDilL4ixQ7y3jC7_3SwAvUT2A7ks7aoeYfHpZoJZuBawrzWd9HplXkFJDNc7EAbDEq6aswedCkTO8e-JFRYDeqnutiWA6Dc2Y-WkpplRI95WiBg2fIMkr0_lN8vBS-/s1600/roxana.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEShJTlggkhV5NxjDilL4ixQ7y3jC7_3SwAvUT2A7ks7aoeYfHpZoJZuBawrzWd9HplXkFJDNc7EAbDEq6aswedCkTO8e-JFRYDeqnutiWA6Dc2Y-WkpplRI95WiBg2fIMkr0_lN8vBS-/s1600/roxana.jpg" height="320" width="240" /></a></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Thank you for your commitment to Free Geek, Roxana. We’re
happy to have you on the team <span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
That wraps it up for this month, but as always, stay tuned
and connect with us on social media to keep your finger on the Free Geek pulse.
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Cheers, <br />
<br />
FGV</div>
<br />
<div class="MsoNormal">
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-34742528075813164662014-02-28T16:29:00.000-08:002014-02-28T16:29:28.301-08:00We’re feeling famous here at Free Geek! We've been mentioned in the media twice this month, and we could not be more excited to get word of Free Geek out to the community.<br />
Firstly, an article in the Georgia Straight highlighted Free Geek’s use of Bitcoin as a payment method in the thrift store. What is Bitcoin? In the simplest terms, it’s virtual cash, and may be the future of money as we know it.<br />
<br />
The article included comments from Free Geek’s sales coordinator Tim Adkins, who discussed Free Geek’s use of the service. Because Bitcoin operates using open-source technology, our use of it in the thrift store reinforces our dedication to accessibility and free and open-source software for our organization, our volunteers, and members of our community. Three cheers for Bitcoin, and to Tim for bringing Free Geek into the spotlight.<br />
For more information, <a href="http://www.straight.com/life/589191/bitcoin-empowers-nonprofits-vancouver">check out the article here.</a><br />
<a href="https://bitcoin.org/en/faq">Click this link for more about Bitcoin</a>.<br />
<br />
Our second mention came just a few days after the Bitcoin article. A press event was held in the Free Geek warehouse to publicize the staggering success of the Cell Phones for Seniors campaign that we covered in our last post. To date, the campaign has collected over 1,700 phones, all of which are being stored in the Free Geek warehouse as they await processing by our staff and volunteers. Due to the generosity of the donations, we have a lot of work ahead of us, but we are steadily making progress, and we know that this combined effort will make a great difference to people that receive the refurbished phones.<br />
<a href="http://www.vancouversun.com/news/Downtown+Eastside+cellphone+donation+campaign+exceeds+expectations/9532369/story.html">Click here to read the full article.</a><br />
We also took a few behind-the-scenes photos of our own for you to check out....<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik5w_BAin1vHlP8Oo-hU6h04eBwFZR9lNPrWShlpRC9hftiB9Gxyx-kK86vjTCvinXLNDFxvZPsQ0ifgkocZAbn5b87eUXK9PV1bj5jmpe6_jAAGSSWU2KRNWXrwh2E187LH71SShBZbri/s1600/P2200776.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik5w_BAin1vHlP8Oo-hU6h04eBwFZR9lNPrWShlpRC9hftiB9Gxyx-kK86vjTCvinXLNDFxvZPsQ0ifgkocZAbn5b87eUXK9PV1bj5jmpe6_jAAGSSWU2KRNWXrwh2E187LH71SShBZbri/s1600/P2200776.JPG" height="213" width="320" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr_0orn0GJ0fS8s1zZ1ONefFNffQxBmYynL9a3gdvrEcqLHVPg97G0lJ6LmOrU5mZX-TGNsWfwlB5gXBdUJc7zxlqkoSLfZaRjM5UtRjkeueNC1TFlvT1pFt7d3EOr1fhnsl965WAA9vll/s1600/P2200780.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr_0orn0GJ0fS8s1zZ1ONefFNffQxBmYynL9a3gdvrEcqLHVPg97G0lJ6LmOrU5mZX-TGNsWfwlB5gXBdUJc7zxlqkoSLfZaRjM5UtRjkeueNC1TFlvT1pFt7d3EOr1fhnsl965WAA9vll/s1600/P2200780.JPG" height="213" width="320" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizgOioM4HinisZ4RdTIYPDgvkDEysFqAdJ16DRgg8ik7l8G0hWpaeUEDWRMkxO6kMw8okCCa_G65760gxNHcMYCbu1vUYN5yorkUbH3eFIlhykqLPOT6tnSzM_IaqcsRxQxzuC_uC14vFW/s1600/P2200782.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizgOioM4HinisZ4RdTIYPDgvkDEysFqAdJ16DRgg8ik7l8G0hWpaeUEDWRMkxO6kMw8okCCa_G65760gxNHcMYCbu1vUYN5yorkUbH3eFIlhykqLPOT6tnSzM_IaqcsRxQxzuC_uC14vFW/s1600/P2200782.JPG" height="213" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
We were happy and proud to host this event and celebrate the success of the campaign, thank you to everyone who helped make it happen! </div>
<br />
<br />
Speaking of feeling celebrated, let us take a moment to spotlight our Volunteer of the Month, Brian!<br />
Brian has been a member of Free Geek Vancouver for six years, donating his time at our weekly Open Help Night, where members of the community can seek help with their open-source software issues or hardware problems.<br />
Brian started volunteering with us because he likes the ideas behind Free Geek, namely, the recycling program, the education, and the ethical components. He says the best part of his time at Free Geek has been meeting people, and the shared experiences Free Geek offers. As for where he might go with the skills and knowledge he has gained during his time with us, Brian says, “Because I am one of the most experienced technical volunteers, I see myself here as giving back rather than getting ‘from’ Free Geek in terms of education and help. But I still learn while I’m here.” He continues, “I've enjoyed my time at Free Geek and I look forward to continuing my experience and meeting new and interesting people through this.”<br />
In addition to helping others in the community, Brian’s interests and hobbies include ham radio, and open-source advocacy.<br />
Thank you for your dedication and enthusiasm, Brian. Here’s to another six years!<br />
<br />
<br />
That’s all for this month, folks! Join us next month for more, and be sure to keep an eye on our social media for articles, insights, and geeky good humour.<br />
<br />
<br />
Cheers, FGV<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-7353504374192088272014-01-30T21:18:00.001-08:002014-01-30T21:19:25.755-08:00<div class="MsoNormal">
<span style="font-family: Cambria, serif;">Hello again and Happy New Year!
Here at Free Geek we are back to business as usual after a relaxing holiday
season, and we’re excited to take a crack at 2014.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Our first community project of
the year is already in full swing, and we’re eager to share it with all of you.
Free Geek is working in partnership with the Vancouver Parks Board and Commissioner
Sarah Blyth on Cell Phones For Seniors, a campaign which aims to donate cell
phones to elderly residents of the DTES, so that they may be able to contact
emergency services. The campaign started in December, and has received a
wonderful response - Vancouverites have donated over 1500 new and used cell
phones to the cause. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">What’s our part in all this? The
phones, of course! Free Geek will be receiving and processing all the donated
cell phones to prepare them for donation to seniors, as well as ethically
recycling any phones that don’t make the grade. We’re honoured to have been
chosen to help our community in this way. <o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUu5ll5-YNkKaWJTA-IkBVu_rS9yJDJLBQiK0DAwh7aa2ho_bJ5wTkSfg976-clICO9oqc8WmseNPwmSVLw82hIvqq4QhVy_byNGrBMM8KFfBoFbbCizVxIM0aShD4UvzIu9K4FimTBAL/s1600/2014-01-11%252B15.53.58%25281%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUu5ll5-YNkKaWJTA-IkBVu_rS9yJDJLBQiK0DAwh7aa2ho_bJ5wTkSfg976-clICO9oqc8WmseNPwmSVLw82hIvqq4QhVy_byNGrBMM8KFfBoFbbCizVxIM0aShD4UvzIu9K4FimTBAL/s1600/2014-01-11%252B15.53.58%25281%2529.jpg" height="320" width="320" /></a></div>
<div class="MsoNormal" style="text-align: center;">
<span style="font-family: Cambria, serif;">These boxes are full of phones! </span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrZ6H1GbgJWTPnG8lswGFrxxYHq128zzEGwq8ifBz6-kXFdmS7STf4hd602vF1S1mHkY7_obaVhWX4sN9-UMg6qAUU1wrT_b5S51DRSD6OLxjtvWi01q8xamTSfSTRmkpIO_G8PV7LHyw/s1600/2014-01-11%252B14.44.00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrZ6H1GbgJWTPnG8lswGFrxxYHq128zzEGwq8ifBz6-kXFdmS7STf4hd602vF1S1mHkY7_obaVhWX4sN9-UMg6qAUU1wrT_b5S51DRSD6OLxjtvWi01q8xamTSfSTRmkpIO_G8PV7LHyw/s1600/2014-01-11%252B14.44.00.jpg" /></a></div>
<div style="text-align: center;">
So are these! </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDRrEr7aUUnWQpFGTL7Tp4b0Rv4kLXZVRocF3txVCKDRq416lg9w5TZrrruYG4iIiX5kOSeF6nbtJXX1z4Xm4qDQnEie6E5EtV4bjK9GPJvzrhNmX1GE1Kbr0r6BbE7ovsmNTedkGYSiwU/s1600/2014-01-11%252B14.42.33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDRrEr7aUUnWQpFGTL7Tp4b0Rv4kLXZVRocF3txVCKDRq416lg9w5TZrrruYG4iIiX5kOSeF6nbtJXX1z4Xm4qDQnEie6E5EtV4bjK9GPJvzrhNmX1GE1Kbr0r6BbE7ovsmNTedkGYSiwU/s1600/2014-01-11%252B14.42.33.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
And these! </div>
<br />
<div class="MsoNormal">
<span style="font-family: Cambria, serif; text-align: center;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Cambria, serif; text-align: center;">Free Geek’s regular operations
are still going strong as we process the phones, and we are actively taking on
volunteers for the new year. Never volunteered? Keep reading for a rundown on
all of Free Geek’s volunteer departments – there are lots of job-applicable
skills to be learned and lots of fun to be had, Free Geek style.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Shipping & Receiving<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Every laptop, computer, cell
phone, mouse, hard drive and power cord that comes into Free Geek starts its
journey in Receiving. As a volunteer in this department, you will learn to
classify and sort all the items that come through the door. You will also prep
certain items for shipment to our downstream recyclers. Keep your eyes peeled
for the weird and wonderful, as well as rare tech finds. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Dismantle<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Many of the items that Free Geek
receives are too old or too broken to be reused. These items are moved into the
dismantle department where volunteers take these items apart and separate the
various components. Raw materials such as steel, aluminum, copper, plastic, and
wires are sorted into bins to be recycled. Computer hardware such as hard
drives, RAM, and expansion cards are set aside for further testing.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Evaluation<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">From receiving, potentially
reusable desktop computers move to the Evaluation department. As a volunteer,
you will learn to test each computer’s functionality, and decide whether it is
suitable for refurbishment, or recycling. This department will also teach you
about the inner workings and components of computers. Computers found to be
suitable for refurbishment are known as “keepers” and are set aside for
builders to work on.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Testing<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Volunteers in this department
test a variety of computer hardware including hard drives, RAM, video cards,
network cards, routers, and peripherals. Testing procedures are taught to
volunteers who assess the health and functionality of the hardware. Donated
hard drives receive extra attention; they’re processed to ensure that any
personal data is either physically destroyed or thoroughly erased. All hardware
that passes the testing phase can then be reused, donated, or sold in our
thrift store.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Desktop Build<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">In this department, volunteers
are taught to refurbish “keeper” desktop computers that have passed initial
evaluation. This often involves swapping or upgrading components with tested
and reusable hardware. To ensure the durability of our computers, volunteers
learn how to perform quality control procedures. Fully refurbished computers are
either given to our volunteers through our “Adoption Box Program,” donated to community-based
organizations through our “Hardware Grants Program,” or sold in our thrift
store. In terms of education, this department is a gold mine. Although the work
is detailed and challenging, plenty of Free Geek staff and experienced
volunteers are on hand to help you as you go.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Laptop Build<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">This department is much like
Desktop Build, except that volunteers work on laptops. Working here can be
especially challenging, as laptops are smaller in size and quite delicate. And,
when something goes wrong, their proprietary nature makes diagnosis and repair
more difficult. Nevertheless, determined volunteers with patience and good
detective skills can volunteer here.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Thrift Store<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Much of our refurbished
electronics end their journey in the Free Geek thrift store, where we have a
need for friendly and helpful sales staff to assist our customers in their
purchase decisions. If you are looking for retail experience to pad your
resume, or you are a people person wanting to help others find solutions to
their tech queries, this is the place for you! <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">If any of these departments sound
like they would suit you, come on down for an orientation and learn more about
us. Orientations take place every Wednesday at 4pm, and every Saturday at 2pm
and 4pm. An orientation takes about 45 minutes<a href="https://www.blogger.com/blogger.g?blogID=7534060879324399856" name="_GoBack"></a>. No need
to make an appointment; just come in a few minutes before the hour and let us
know you’re there. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;">Because they are the backbone of
our organization, we have decided to pay tribute to Free Geek’s Volunteer of
the Month in each blog post. Allow us to introduce you to Stanley, January’s
honoree. We asked Stanley to answer a few questions about his time at Free
Geek.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;">How long have you volunteered with Free Geek? What's
your department?<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="background-position: initial initial; background-repeat: initial initial; color: #222222; font-family: Arial, sans-serif; font-size: 10pt;"> </span><span style="background-position: initial initial; background-repeat: initial initial; font-family: Cambria, serif;">3
years. I prepare the motherboards and circuit boards for recycling and then box
them for shipping.</span><span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;">What prompted you to start volunteering?<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="background-position: initial initial; background-repeat: initial initial; font-family: Cambria, serif;"> I'm retired, and have been
active all my life. I didn't want to sit around my apartment all the time. I found out about Free Geek on the
internet.</span><span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;">What has been the best part of your experience at
Free Geek? <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span class="apple-converted-space"><span style="background-position: initial initial; background-repeat: initial initial; font-family: Cambria, serif;"> </span></span><span style="background-position: initial initial; background-repeat: initial initial; font-family: Cambria, serif;">I've
met some new friends here, and learned about the properties of different
metals.</span><span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;">Where do you hope to go with the skills and
knowledge you have gained? <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="background-position: initial initial; background-repeat: initial initial; font-family: Cambria, serif;"> I'd like to try and build my own
computer. I've been looking after my son's old computers, but I'd like
to try to work on new ones.</span><span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<br /></div>
<div class="MsoNormal" style="background-color: white; background-position: initial initial; background-repeat: initial initial;">
<span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-fareast-font-family: "Times New Roman"; mso-hansi-theme-font: major-latin;">Please tell us anything you'd like to share about
your hobbies and interests, other than volunteering.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background: white; font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-hansi-theme-font: major-latin;"> I look
after my son's and his friends computers. I'm hooked on computers. I used to go motorcycle bush riding.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4uSewXwT4T6Gk7H6R3SE_P-Atl5VDfJT6k2yGu4iw-qRguKDRnrxWyAXbGZRdcYTiUC4_Xl7_2tcYTW1pwnbTdL76jRGWB-ns4ZL5KAVYF0xY3b1cErLIhi3vE0FDVdM6LuD2iHXjmtzQ/s1600/stanley-free-geek.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4uSewXwT4T6Gk7H6R3SE_P-Atl5VDfJT6k2yGu4iw-qRguKDRnrxWyAXbGZRdcYTiUC4_Xl7_2tcYTW1pwnbTdL76jRGWB-ns4ZL5KAVYF0xY3b1cErLIhi3vE0FDVdM6LuD2iHXjmtzQ/s1600/stanley-free-geek.jpg" height="240" width="320" /></a></div>
<br />
<div class="MsoNormal">
<span style="background: white; font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-hansi-theme-font: major-latin;">Since joining Free Geek in March 2011, Stanley has committed
over 1400 hours of his time to our organization. His long and consistent
volunteer record is worthy of recognition– thank you for your dedication,
Stanley!<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-hansi-theme-font: major-latin;">See you all next month! Please be sure to check our blog and social
media for updates on events and Free Geek news.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background: white; font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-hansi-theme-font: major-latin;">Cheers, <o:p></o:p></span></div>
<br />
<div class="MsoNormal">
<span style="background: white; font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-bidi-font-family: Arial; mso-hansi-theme-font: major-latin;">Free Geek Vancouver </span><span style="font-family: "Cambria","serif"; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin;"><o:p></o:p></span></div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7534060879324399856.post-44249609455447606362013-12-22T18:56:00.000-08:002013-12-22T18:56:20.167-08:00Happy Holidays from Free Geek<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<br />
<div class="p1">
Whew, what a year! As 2013 draws to a close, we at Free Geek are looking forward to the holiday season. We hope this has been as great a year for you as it has for us. With the help of the 788 volunteers we’ve welcomed this year, we have been able to accomplish so much, including tackling veritable mountains of electronics with our (gloved) hands. Just look at these numbers!</div>
<div class="p1">
<br /></div>
<div class="p1">
12,262 pounds of wire</div>
</div>
<div class="p3">
11,280 pounds of e-waste<br />
9,536 pounds of circuit boards<br />
6,301 pounds of steel<br />
3,736 pounds of hard drives<br />
3,583 pounds of batteries<br />
2,943 pounds of fans<br />
2,904 pounds of transformers<br />
2,745 pounds of motherboards<br />
2,280 pounds of aluminum</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8xTXYJZAA2cjSKHjec2smJ59QCqO54nAw5QMQaaJ-DH4zbZzrRcru_GwDW8HeNRdKYAAEDrDJ9r8SekvS6Xpm8B63hOO4ItBRha5bYqHdF0pYHSVnc9Qco7xe6jzo5NHtEZkzKlyItD5L/s1600/wire-bin.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8xTXYJZAA2cjSKHjec2smJ59QCqO54nAw5QMQaaJ-DH4zbZzrRcru_GwDW8HeNRdKYAAEDrDJ9r8SekvS6Xpm8B63hOO4ItBRha5bYqHdF0pYHSVnc9Qco7xe6jzo5NHtEZkzKlyItD5L/s400/wire-bin.jpg" width="400" /></a></div>
<div class="p3">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmcZ1iQno2Ud5lmtaKovIBwSt2-F8x8MGHu076N3Ri4VcjhE6DT56ySWlVJ-aeW1up5-KOFZEG10TfItk2J90wjTDZbhV4rswFLu7knklLxiyyTBTErw3F16U9l5Iz2A58UkL0wzYR2Cl6/s1600/box-of-motherboards.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmcZ1iQno2Ud5lmtaKovIBwSt2-F8x8MGHu076N3Ri4VcjhE6DT56ySWlVJ-aeW1up5-KOFZEG10TfItk2J90wjTDZbhV4rswFLu7knklLxiyyTBTErw3F16U9l5Iz2A58UkL0wzYR2Cl6/s400/box-of-motherboards.jpg" width="400" /></a></div>
<div class="p4">
<br /></div>
<div class="p1">
<div class="p1">
All this adds up to a dizzying total of 57,570 pounds of e-waste, roughly the equivalent weight of two Metro Vancouver buses packed with commuters at rush hour – quite the haul.</div>
<div class="p1">
<br /></div>
<div class="p2">
We are proud to say that we, along with our indispensable team of volunteers, have refurbished, resold, or ethically recycled every item listed and saved it from its fate in a landfill. Cheers to Free Geek, and three cheers to all our volunteers! Your commitment and enthusiasm made this achievement possible. We look forward to working with both new and familiar faces in 2014.</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWD8px3FSznss1p8GF77sHfxnzTMFPZx5lFhzbeKnzWQFfs1CLPQWq9YkEwYsvtssgX5dnRCF8jqPod7bfuf6-C5mDagiNhXwHFswvSv41Jtzlmkp-8CFtmvWXtNPNCYk1gjjda6WBTzYZ/s1600/working-in-build.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWD8px3FSznss1p8GF77sHfxnzTMFPZx5lFhzbeKnzWQFfs1CLPQWq9YkEwYsvtssgX5dnRCF8jqPod7bfuf6-C5mDagiNhXwHFswvSv41Jtzlmkp-8CFtmvWXtNPNCYk1gjjda6WBTzYZ/s400/working-in-build.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq_OtPSRfVQ22Czap0oOONHaDDJMw26I2erimQQcfsypSLyNFK_k7nXJX4h8AALQPx3SWlS-n5E3hp-TghUGBLduzv98YK7Alipr6S1452zKwea6MudOxaF0r9fUQWpkQSQXKSsznYP_Ee/s1600/RAM-testing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq_OtPSRfVQ22Czap0oOONHaDDJMw26I2erimQQcfsypSLyNFK_k7nXJX4h8AALQPx3SWlS-n5E3hp-TghUGBLduzv98YK7Alipr6S1452zKwea6MudOxaF0r9fUQWpkQSQXKSsznYP_Ee/s400/RAM-testing.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmF6rFYAAPbao72PH45HnafkbhIKHEn9wy6wcFjosPm0HKW1IN4AlE9sQEBE23DDJ-KSi4pg0KE1aMcVSHCbKB5lX0k62P3NrcdCnHvZRjubIpWp4WlQpIt-KpsV6XmSTjbGxpu6U4CPSR/s1600/dismantle-bench.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmF6rFYAAPbao72PH45HnafkbhIKHEn9wy6wcFjosPm0HKW1IN4AlE9sQEBE23DDJ-KSi4pg0KE1aMcVSHCbKB5lX0k62P3NrcdCnHvZRjubIpWp4WlQpIt-KpsV6XmSTjbGxpu6U4CPSR/s640/dismantle-bench.jpg" width="425" /></a></div>
<br />
We are also very excited to greet the upcoming year with projects that will help us to further educate and inform our community about ethical e-waste recycling. Look for us at community events and trade shows in and around Vancouver – we are still finalizing the particulars, but we will keep you posted on Facebook and Twitter, as well as here on our blog. We are planning monthly blog posts to keep our volunteers, followers and fans abreast of all that is happening. Make sure to check back for the latest news, and as always feel free to contact us with your questions.<br />
<div class="p1">
<div class="p1">
<br /></div>
<div class="p1">
Best wishes from the Free Geek Vancouver family. We hope you all have a wonderful holiday season, and a safe and happy New Year.</div>
</div>
<div class="p2">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvubhe90pHz9EM_rxp0cDWqfzjULtML8OKJekd84sozMfZLULuvlfKKEN0G3F85TexvHXCTGj1yXBrFbB1j9JbonTT5L8Iue05kB2mP1XaJmwGcqQaE3NXQKPkxYbALfo7VGUwQvckcWI9/s1600/christmas-tree.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvubhe90pHz9EM_rxp0cDWqfzjULtML8OKJekd84sozMfZLULuvlfKKEN0G3F85TexvHXCTGj1yXBrFbB1j9JbonTT5L8Iue05kB2mP1XaJmwGcqQaE3NXQKPkxYbALfo7VGUwQvckcWI9/s640/christmas-tree.jpg" width="425" /></a></div>
</div>
Adrianhttp://www.blogger.com/profile/17551943007195195145noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-80629433323738155342013-04-16T21:52:00.001-07:002013-04-16T21:53:25.155-07:00Free Geek Toronto<span style="font-family: Arial, Helvetica, sans-serif;">I was in Toronto at the beginning of March, and while I was in town I paid a visit to <a href="http://freegeektoronto.org/">Free Geek Toronto</a>. They are located in a west end neighbourhood called The Junction. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Here are a few pictures that I took:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<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/AVvXsEj3Xh85VD648BpJDArIZaCDcnBUZ6v5gNVcOMZtru2S7pbEuWQS8cVKYv2GXFVVLXUN5eGOhyBkRspSEtcP0o4bOqyRDxCp8UoBShL3kGpIV1QiHoJUWAV7psLITn5aCNF8_CU9wapisB8/s1600/FreeGeekTorontoAlleyEntrance.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Free Geek Toronto alley entrance" border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Xh85VD648BpJDArIZaCDcnBUZ6v5gNVcOMZtru2S7pbEuWQS8cVKYv2GXFVVLXUN5eGOhyBkRspSEtcP0o4bOqyRDxCp8UoBShL3kGpIV1QiHoJUWAV7psLITn5aCNF8_CU9wapisB8/s400/FreeGeekTorontoAlleyEntrance.jpg" title="Free Geek Toronto alley entrance" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The entrance is through an alley, the sign was slightly buried in the snow.</td></tr>
</tbody></table>
<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/AVvXsEhqzwnF4Rt4_A3R0Njq_dXcjQ44bIKEoLkiverSSYZX6HERP1IHn0tid10PT3ieftYkALFXzu18mR-oiqMVSLpGfgKczYartz-lf-Mlb10pZjAUGVpcYiEfHlEVXflyQrdrNNDWSJO0VGk/s1600/FreeGeekToronto.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqzwnF4Rt4_A3R0Njq_dXcjQ44bIKEoLkiverSSYZX6HERP1IHn0tid10PT3ieftYkALFXzu18mR-oiqMVSLpGfgKczYartz-lf-Mlb10pZjAUGVpcYiEfHlEVXflyQrdrNNDWSJO0VGk/s400/FreeGeekToronto.jpg" width="300" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Main entrance</td></tr>
</tbody></table>
<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/AVvXsEibDyAkdW-09qgdT4UC9Rpo2eIh5d70aOGdw5jynYtLBSjKwlw_oL5cubTjBFD3mXnZytFG5MghdNsVwravY3AHN7XTT1W0enS-juypSCxsFaTjFOOd7vglkTGwzh-_t4Qup7BbJoCvks4/s1600/FreeGeekTorontoStore.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDyAkdW-09qgdT4UC9Rpo2eIh5d70aOGdw5jynYtLBSjKwlw_oL5cubTjBFD3mXnZytFG5MghdNsVwravY3AHN7XTT1W0enS-juypSCxsFaTjFOOd7vglkTGwzh-_t4Qup7BbJoCvks4/s400/FreeGeekTorontoStore.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The store area. </td></tr>
</tbody></table>
<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/AVvXsEjh4z9Xnze4kXiL26aO6aJjlbNWNftg4APOWxRVjxAyxl028UPIMzYEVv_C-nPKQBtnk0gumAMDCzoMEz02312odlkLcJzJLxjtCJKkXM59XYF3cawDiWOxDMTFiDGqVAgCb0yS6mHeB9Q/s1600/FreeGeekTorontoBuildArea.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh4z9Xnze4kXiL26aO6aJjlbNWNftg4APOWxRVjxAyxl028UPIMzYEVv_C-nPKQBtnk0gumAMDCzoMEz02312odlkLcJzJLxjtCJKkXM59XYF3cawDiWOxDMTFiDGqVAgCb0yS6mHeB9Q/s640/FreeGeekTorontoBuildArea.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A build station.</td></tr>
</tbody></table>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>J Henry Simpsonhttp://www.blogger.com/profile/04379184521403204439noreply@blogger.com2tag:blogger.com,1999:blog-7534060879324399856.post-91589882400884332612013-04-12T21:07:00.001-07:002013-04-12T21:07:34.749-07:00I found this posted on the Free Geek Vancouver <a href="https://plus.google.com/u/0/115817559902423787732/">Google+</a> page, it's pretty awesome:
<a href="https://www.youtube.com/watch?feature=player_embedded&v=rrQ1r8ROE2Y">Free Geek Commercial</a><br />
<br />
Go watch the video, the you tube counter is only at 50 right now, let's see if we can double that! Who said we don't think big at Free Geek.<br />
<br />
Brought to you by <a href="http://www.orangepeelproductions.com/">Orange Peel Productions</a>. Thanks organge peel for the awesomeness.<br />
J Henry Simpsonhttp://www.blogger.com/profile/04379184521403204439noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-9521476899152541282013-04-06T12:32:00.001-07:002013-04-06T12:32:53.888-07:00General Meeting Tuesday April 9thThe next Free Geek general meeting will be at the Free Geek Vancouver warehouse.
Tuesday April 9th, 2013
6:30 pm to 8:30 pm.
J Henry Simpsonhttp://www.blogger.com/profile/04379184521403204439noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-58216655961053551472013-04-06T12:30:00.001-07:002013-04-06T12:30:59.277-07:00Free Geek on Google+Hello Free Geek Followers,
Alec has been busy being a dad, and hasn't had time to update this blog recently. My name is Justin Simpson, I am the newest Free Geek Vancouver board member, and I offered to help out by posting to this blog.
For those of you interested in Free Geek Vancouver, if you use Google+, check out the <a href="https://plus.google.com/u/0/115817559902423787732/posts">Free Geek Vancouver page</a> there.
We'll continue to update this blog too, so stay tuned.
Justin
J Henry Simpsonhttp://www.blogger.com/profile/04379184521403204439noreply@blogger.com1tag:blogger.com,1999:blog-7534060879324399856.post-46201911729527860842013-01-05T13:18:00.001-08:002013-01-05T13:18:43.025-08:00New BlogUnfortunately I haven't been able to volunteer at Free Geek in the last few months -- I have a baby daughter who demands and deserves as much free time as I can muster. While I still have projects on the go, their connection to Free Geek Vancouver has become tenuous enough that I've decided to separate them from this blog.<br />
<br />
Please consider dropping <a href="http://www.cassettepunk.com/">www.cassettepunk.com</a> into your feed reader. I'll be documenting my projects there. I'll continue to contribute to this blog when I have the chance to drop in, and will be soliciting contributors from the volunteer community to keep it lively.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cassettepunk.com/wp-content/uploads/2013/01/nickelbanner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nickelmatic" border="0" height="69" src="http://cassettepunk.com/wp-content/uploads/2013/01/nickelbanner.png" title="Nickelmatic" width="400" /></a></div>
<br />
The first new project I've described at cassettepunk.com is <a href="http://cassettepunk.com/blog/2013/01/05/nickelmatic/">Nickelmatic</a>, an automated Nickelback lyric generator.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-31695285824037564362012-11-19T22:11:00.001-08:002012-11-19T22:11:49.886-08:00Culture CrawlThanks to everyone who came out to say hi and see the wackiness at this year's <a href="http://www.eastsideculturecrawl.com/artists/asmecher">Eastside Culture Crawl</a>! This is easily one of my favourite events in Vancouver, but it's the first time I've ever participated as an artist.<br />
<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/AVvXsEjhGnx5x8LhwISx_Pstloq-WxbVGcSiV0gNA2SkkqUQob_zDoB0jK2CAh_mer9LMkTSX6qYWBkUvipS1nfXy3RQCtx8VdiZCHFZE-YfkTPsxFEaLG-PbPRjENU390uaAUT4jIewEWMj5hYH/s1600/cc.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhGnx5x8LhwISx_Pstloq-WxbVGcSiV0gNA2SkkqUQob_zDoB0jK2CAh_mer9LMkTSX6qYWBkUvipS1nfXy3RQCtx8VdiZCHFZE-YfkTPsxFEaLG-PbPRjENU390uaAUT4jIewEWMj5hYH/s320/cc.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Photo c/o Katrin</td></tr>
</tbody></table>
<br />
<br />
<a name='more'></a>The roster of projects ended up being pretty diverse. In addition to those documented on this blog...<br />
<ul>
<li><a href="http://freegeekvancouver.blogspot.ca/2011/06/old-gear-lives-on-hack.html">Craniophage Compaq Portable III</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2011/06/another-hack-wiretap-picture-frame.html">Wiretap Picture Frame</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2011/08/cassettepunk-mp3-player.html">Cassettepunk MP3 Player</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2012/02/dymaxion-auto-matic-buckminster-fuller.html">Dymaxion Auto-Matic Buckminster Fuller</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2012/07/ill-advised-arcade-game.html">Challenger</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2012/10/midi-drum-keyboard.html">Midi Drum Keyboard</a></li>
<li><a href="http://freegeekvancouver.blogspot.ca/2012/10/phonetendo.html">Phonetendo</a></li>
</ul>
...there were a number of other bits & pieces...<br />
<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/AVvXsEitH-n6AXV-kHffq3XCXP7AN30ziJfwX0atS1LVDAe0KmnvUfC3Ep87bUZQRvQryPIloh5fHtZg8iLBlUBrk6xL4uLIg0PLQG0JGnz4vjNjMfEk6N9JVannfa2-scaWlB61w_6JULzuN9QW/s1600/candlestick.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitH-n6AXV-kHffq3XCXP7AN30ziJfwX0atS1LVDAe0KmnvUfC3Ep87bUZQRvQryPIloh5fHtZg8iLBlUBrk6xL4uLIg0PLQG0JGnz4vjNjMfEk6N9JVannfa2-scaWlB61w_6JULzuN9QW/s320/candlestick.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Vacuum tube candlestick</td></tr>
</tbody></table>
<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/AVvXsEg_mSiRtcobKskjMi6JjYsYrngZObfCvlJuGUAmiIAebZKaoejFJ00eIbarVXZZMfjVoeXp8PKtK3O7G6qDps9szWv3cEGir-NgGbt8kAFupWVpwd5Gi9i0URv5NlqeiCE3WYEhUHUYVc_L/s1600/pocketwatch.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_mSiRtcobKskjMi6JjYsYrngZObfCvlJuGUAmiIAebZKaoejFJ00eIbarVXZZMfjVoeXp8PKtK3O7G6qDps9szWv3cEGir-NgGbt8kAFupWVpwd5Gi9i0URv5NlqeiCE3WYEhUHUYVc_L/s320/pocketwatch.jpg" width="318" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pocket watch speaker</td></tr>
</tbody></table>
<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/AVvXsEhhW-YLVG8NO18nZm8ZbjIDJ6CKTe51gatgTr32fBmN2TSwM4iLHongxAg0ALOaaUO5ljnP3Imc07mIO29XuDLiOWFKtgC9sE34aEAH8VPLjwAufjVOEwdiTCgp6b-NSPxMEo9xz7fSSwer/s1600/forktal-postcard.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhW-YLVG8NO18nZm8ZbjIDJ6CKTe51gatgTr32fBmN2TSwM4iLHongxAg0ALOaaUO5ljnP3Imc07mIO29XuDLiOWFKtgC9sE34aEAH8VPLjwAufjVOEwdiTCgp6b-NSPxMEo9xz7fSSwer/s320/forktal-postcard.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fractal fork (with Ingo Breig)</td></tr>
</tbody></table>
...and much more.<br />
<br />
This is the first time I've shown my work in the flesh and the experience was tremendously gratifying. The Culture Crawl is mostly home to "traditional" art forms -- sculpture, painting, photography, etc. -- and people were not expecting to see technology manipulated in this way.<br />
<br />
After a brief introduction, though, pretty much everyone "got it" and enjoyed the exhibit. I met some really interesting people and had some great conversations. (For example, I hadn't thought to spoonerize Buckminster Fuller's name.)<br />
<br />
With all the creative nerdy energy flowing in Vancouver (think Red Gate [rip?], <a href="http://vancouver.hackspace.ca/">Vancouver Hackspace</a>, and of course <a href="http://freegeekvancouver.org/">Free Geek Vancouver</a>) I wonder why there isn't more hacker/maker representation at the Culture Crawl. The <a href="http://vancouver.makerfaire.ca/">Mini Maker Faire</a> had plenty. I can only speculate that it might be a voluntary separation of arts by genre, and that strikes me as a tremendous missed opportunity. Until this year there wasn't even a New Media category on the Culture Crawl website. Now there is, so let's get cracking.<br />
<br />
I strongly encourage anyone working creatively with technology to consider exhibiting their work next year -- it's a huge amount of exposure (I'd estimate 500 people tromped through for a look), not to mention a firm kick in the ass for anyone who needs an extra push to get motivated.<br />
<br />
Deep thanks to Ingo for everything; Graeme and Brad for their help manning the fort; Steph (<a href="http://mortarandpistil.com/">congratulations</a>!), Heather, Curt, and others for helping keep me fed; Diane and Nick for the plinths; and especially Aida for letting me turn the house upside down for a weekend. Thanks to all the friends who stopped by, whether or not I recognized you in my overcaffeinated and underfed state.<br />
<br />
Thanks to all the strangers who stopped in and humoured me. I hope you got humoured too.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com4tag:blogger.com,1999:blog-7534060879324399856.post-71820622103978649242012-10-28T00:14:00.000-07:002012-11-14T09:57:17.901-08:00PhonetendoI came across one of these in a local thrift store for $8:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRBqyV_Uj-9IfS2ayXX6x2XKw_lVqyM594ZtEEBWIOFt1Y0m0QJ80_Fw2gsyBY9p9-_phAl_nZ3UKEyBjg7gyy-HC3sBy7rUrA9z3AmaklY8uLexypx-n4A4_l53sPcQhtsBrILYdQyLjB/s1600/2012-10-23+16.46.27.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRBqyV_Uj-9IfS2ayXX6x2XKw_lVqyM594ZtEEBWIOFt1Y0m0QJ80_Fw2gsyBY9p9-_phAl_nZ3UKEyBjg7gyy-HC3sBy7rUrA9z3AmaklY8uLexypx-n4A4_l53sPcQhtsBrILYdQyLjB/s320/2012-10-23+16.46.27.jpg" width="320" /></a></div>
<br />
Thrift stores are dangerous places to go; my powers of self-discipline can only be tested so far. Unlike the cabinet stereos that have troubled my past, this was fortunately small, cheap and clearly awesome. It begged to be adopted.<br />
<br />
<a name='more'></a><br />
<b>What is it?</b><br />
<br />
This is about to get a little heavy on the detail, so feel free to skip to the last section to see what I did with this. But anyway: <br />
<br />
This is an <a href="http://en.wikipedia.org/wiki/Iris_3000_Videophone">Iris 3000 videophone</a>, manufactured by UMEC and distributed by ACN, launched in 2007 on <a href="http://en.wikipedia.org/wiki/The_Apprentice_%28U.S._TV_series%29">The Apprentice</a>. It's apparently a standard SIP phone with various quirks and flaws, though I've got no particular interest in using it that way.<br />
<br />
Cracking it open reveals the motherboard:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrgx_V4tz-Tk7_kza691XkAZvDZNLRy1WUbrzRWS1mLxKk0mvVbClpw29aBUFkW842ubBN5FwtnlBNcc97gSoHjIc0BTtNIGUf8pAiGdbeGppCE15cuzirDA4PYkIzwbK5c3l5ibsSecXZ/s1600/2012-10-23+16.48.00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrgx_V4tz-Tk7_kza691XkAZvDZNLRy1WUbrzRWS1mLxKk0mvVbClpw29aBUFkW842ubBN5FwtnlBNcc97gSoHjIc0BTtNIGUf8pAiGdbeGppCE15cuzirDA4PYkIzwbK5c3l5ibsSecXZ/s320/2012-10-23+16.48.00.jpg" width="320" /></a></div>
<br />
On the back are composite video and audio outputs, a POTS jack, two ethernet jacks, a USB jack, a power jack, and a power switch. There are several unpopulated pads on the board, but nothing I've bothered investigating yet. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig_bnR5hwrHUbg-P9plAsn6d5uW2cRJ-WKAoMQEGRn4kGkQl9q31TaMfx5WtuWjP28QXT6A1ebFP98TwY6w6lXJA6ObZUE-wbXAVKpe8An_o6Gc4K0Z8g3hAGw2cwNP5bmI6-YLSZfbsbC/s1600/2012-10-23+16.48.32.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig_bnR5hwrHUbg-P9plAsn6d5uW2cRJ-WKAoMQEGRn4kGkQl9q31TaMfx5WtuWjP28QXT6A1ebFP98TwY6w6lXJA6ObZUE-wbXAVKpe8An_o6Gc4K0Z8g3hAGw2cwNP5bmI6-YLSZfbsbC/s320/2012-10-23+16.48.32.jpg" width="320" /></a></div>
<br />
This board was manufactured in 2009 and also goes by the name CU776. Googling this leads to the <a href="http://www.umec-web.net/en/ICP_voip_mobile.php?id=26&cid=20">manufacturer's specifications</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnjg1x5QrOw6-60Aw87mKJJQO7n1n-XuWoJ-4ZvyAXbaGwC098nG8s0hLyMfZuU1n0fR-Qt15WSrkZsTUXjtB425DCCjfXmli583ujSHo4QRPNFCQI3ZrJHdAtpJWeyp_yVPGEtrXmBW-/s1600/2012-10-23+16.48.16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLnjg1x5QrOw6-60Aw87mKJJQO7n1n-XuWoJ-4ZvyAXbaGwC098nG8s0hLyMfZuU1n0fR-Qt15WSrkZsTUXjtB425DCCjfXmli583ujSHo4QRPNFCQI3ZrJHdAtpJWeyp_yVPGEtrXmBW-/s320/2012-10-23+16.48.16.jpg" width="320" /></a></div>
<br />
Here is the <a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX27">Freescale i.MX27</a> brain that runs the unit. This is an <a href="http://en.wikipedia.org/wiki/ARM_architecture">ARM chip</a> with additional multimedia brawn, intended for the telecommunications market.<br />
<br />
Looking around the board for a few other clues about its features, we find a <a href="http://www.focusinfo.com/solutions/catalog.asp?id=230">FS453LF</a> chip:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguCnZzZtUvZwNHsAiv3m0ycG2Z2h0j1xxiw9k3SryQt78vRYC6QZzjtiUxkxjEb91r8Y4feKwSbqbh64mVEPa6DAzhO-IiG9jq0jWSZtg4jnEDSmSJlvQKSprPKd9wybMKjRXUaP8cgC3u/s1600/2012-10-23+16.48.51.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguCnZzZtUvZwNHsAiv3m0ycG2Z2h0j1xxiw9k3SryQt78vRYC6QZzjtiUxkxjEb91r8Y4feKwSbqbh64mVEPa6DAzhO-IiG9jq0jWSZtg4jnEDSmSJlvQKSprPKd9wybMKjRXUaP8cgC3u/s320/2012-10-23+16.48.51.jpg" width="320" /></a></div>
<br />
This is the TV encoder that feeds the video output at the back of the unit.<br />
<br />
There is also a <a href="http://www.wolfsonmicro.com/products/codecs/WM8731/">WM8731S</a> chip:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSmLD5sYF3cc3BFwTAagwApO8scHuvrptDZTRO9xNlL9xLmGHtN6hbt3u6msbNJ-Q0FaWwHhmhDMiGSzCutn8GYyzt0F6THwjkiNi0BMxd5NU8qR0I-M5MBEF-5mDZnfXlENGOqmhAlKrK/s1600/2012-10-23+16.49.11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSmLD5sYF3cc3BFwTAagwApO8scHuvrptDZTRO9xNlL9xLmGHtN6hbt3u6msbNJ-Q0FaWwHhmhDMiGSzCutn8GYyzt0F6THwjkiNi0BMxd5NU8qR0I-M5MBEF-5mDZnfXlENGOqmhAlKrK/s320/2012-10-23+16.49.11.jpg" width="320" /></a></div>
<br />
This is a <a href="http://en.wikipedia.org/wiki/Codec">CODEC</a> that handles the audio duties -- the speakerphone and handset. (And as you can see, the photo also contains another another of those useful-looking unpopulated headers.)<br />
<br />
The only other feature worth mentioning is the SD card slot on the side; we'll get back to that.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFRRPAlK2QrmJRHcjvYcXwsKQ4Q_KTCJdFS_hrPkUng7Sb63lbsAffQD-5vc9uiJWVhODU1zoX0K-SHPLGV1DzldCOik8n7jsMAbXTKpPmc3syrq0LVUjPjSae2LF7chSpPHBhnAWy36_2/s1600/2012-10-23+16.51.21.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFRRPAlK2QrmJRHcjvYcXwsKQ4Q_KTCJdFS_hrPkUng7Sb63lbsAffQD-5vc9uiJWVhODU1zoX0K-SHPLGV1DzldCOik8n7jsMAbXTKpPmc3syrq0LVUjPjSae2LF7chSpPHBhnAWy36_2/s320/2012-10-23+16.51.21.jpg" width="320" /></a></div>
<br />
<b>Software</b><br />
<br />
As mentioned on the <a href="http://en.wikipedia.org/wiki/Iris_3000_Videophone">Wikipedia page</a>, this phone runs Linux. That's helpful to someone who wants to hack the device in some ways but there still needs to be a way to break into it. Luckily, hackers love a challenge. I found <a href="http://www.pbxinaflash.com/community/index.php?threads/acn-iris-3000-videophone.8620/">this very useful thread</a>, which included instructions on gaining a root shell:<br />
<blockquote class="tr_bq">
$ telnet 192.168.3.2<br />
Trying 192.168.3.2...<br />
Connected to 192.168.3.2.<br />
Escape character is '^]'.<br />
<br />
<br />
Welcome to Freescale Semiconductor Embedded Linux Environment<br />
<br />
<br />
freescale login: root<br />
Password: <br />
mx27#</blockquote>
<br />
Bingo! Some exploration turned up a pretty standard embedded systems setup:<br />
<ul>
<li><a href="http://www.busybox.net/">Busybox</a> for the system tools,</li>
<li>A great big monolithic QT application for the UI, and</li>
<li>A mixture of additional tools and programs for the details.</li>
</ul>
<b>A Better Operating System</b> <br />
<br />
Luckily most of this is standard fare: V4L for the camera, /dev/fb0 for the LCD, ALSA for the audio, and /dev/input/event0 for the keypad. These are the normal ways of accessing the hardware on a Linux system, if occasionally a little musty.<br />
<br />
So it'll do fine with Linux. However, a logical next question is: will it run Debian? Busybox is a little like skim milk -- fine for other people who want to lose weight, but to be kept strictly out of my coffee. I started with QEMU, an ARM emulator, and built a Debian disk image using steps <a href="http://www.aurel32.net/info/debian_arm_qemu.php">similar to these</a>. I wrote that disk image to a 2GB SD card, popped it in the side of the phone (which was even kind enough to auto-mount it for me), and used pivot_root to flip over to it. This isn't strictly the same as booting into Debian -- I'm still running busybox's init, for example, and need to manually start any services I want to run -- but it does get me a full libc and all the apt-get I want.<br />
<br />
I did investigate the built-in bootloader and the chances of flashing the internal 128MB with a new boot image -- but decided against it; it's unnecessary for my purposes and risks bricking the phone. The other problem with that is that the kernel that ships with this phone is customized in at least a couple of ways: it has a very useful recovery mode which I've used twice to cover for my own stupid mistakes (ignore at your own risk the note in bold on the manpage for switch_root), and it has at least one custom kernel module, for which the source appears to closed. I am not a lawyer, but it sure looks to me like UMEC is violating the terms of the <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GPL</a>. So I'm stuck with that kernel and any warts it has or I will lose the functionality those modifications provide.<br />
<br />
<b>Reverse Engineering</b><br />
<br />
So a little bit of exploration left me with a few unknowns. I was especially interested in the following: how was the device sending audio to the handset and not just the speakerphone? How did it know the handset was on hook or off?<br />
<br />
There are a number of tools to help answer this kind of question, starting with a very basic examination with <a href="http://linux.about.com/library/cmd/blcmdl1_strings.htm">strings</a>, then moving to move advanced tools like <a href="http://en.wikipedia.org/wiki/Strace">strace</a> and <a href="http://www.gnu.org/software/gdb/">gdb</a>.<br />
<br />
The strings tool looks in any file for content that looks like it's human-readable and dumps it out. Using strings on a program tends to grab things like text that it displays on the screen, copyright notices, etc., but also reveals some internal details -- what hard-coded programs and files it interacts with. In this case it turned up several device files, including /dev/umec_device, and the names of some standard system tools like ifconfig, route, iptables, and amixer.<br />
<br />
The /dev/umec_device file was an immediate suspect for specialized interaction between software and hardware, but there was no information online about it, so I had to get a sharper chisel. <br />
<br />
The strace and gdb tools are generally for programmers trying to figure out why their program is going astray, but they can also be used to reverse-engineer 3rd-party programs. In particular, they can display information about interactions a program has with the system, which is exactly what interested me.<br />
<br />
The first problem I encountered was that I was running the device with a split personality. The phone software and boot scripts were running using the busybox environment, and all my debugging tools and their respective libraries were running from the Debian-based SD card. This caused a minor amount of schizophrenia as gdb tried to reconcile the two. I resolved this by killing off the phone's UI, neutering the tools it tries to reach in order to configure the network (e.g. moving /sbin/ifconfig to /sbin/ifconfig-real), and starting it again from within the chroot environment. Luckily this worked.<br />
<br />
This allowed me to look at a dump of what was happening when I took the handset off-hook or returned it to its cradle:<br />
<blockquote class="tr_bq">
printf("bard dbg: g_speaker_status=%d ev"..., 0) = 37<br />
memcpy(0xbe84cbdf, "/dev/umec_device", 17) = 0xbe84cbdf<br />
open("/dev/umec_device", 2, 00) = 18<br />
ioctl(18, -1073458425, 0xbe84cbd4) = 0<br />
close(18) = 0<br />
memcpy(0xbe84cbdf, "/dev/umec_device", 17) = 0xbe84cbdf<br />
open("/dev/umec_device", 2, 00) = 18<br />
ioctl(18, -1073458427, 0xbe84cbd4) = 0<br />
close(18) = 0<br />
memcpy(0xbe84cbdf, "/dev/umec_device", 17) = 0xbe84cbdf<br />
open("/dev/umec_device", 2, 00) = 18<br />
ioctl(18, -1073458424, 0xbe84cbd4) = 0<br />
close(18) = 0<br />
memcpy(0xbe84cbdf, "/dev/umec_device", 17) = 0xbe84cbdf<br />
open("/dev/umec_device", 2, 00) = 18<br />
ioctl(18, -1073458426, 0xbe84cbd4) = 0<br />
close(18) = 0<br />
printf("bard dbg: new g_speaker_status=%"..., 0) = 33</blockquote>
Great! Except that this isn't enough. The ioctl call is what interacts with the /dev/umec_device, and it can be called in a number of different ways. In many cases you don't pass it the actual instructions for what you want it to do; instead, you pass it the location in memory where it can find the instructions. That 0xbe84cbd4 looks suspiciously like just such a pointer, since it's passed into ioctl four times in a row. <br />
<br />
So how to figure out what's being put in that location in memory before it's given to ioctl? Googling around for such a thing, I found <a href="http://scaryreasoner.wordpress.com/2007/11/17/using-ld_preload-libraries-and-glibc-backtrace-function-for-debugging/">this</a>. It's basically a trojan horse: when you run a program, you first instruct Linux's library load code as follows: "By the way, before you load any external code, check here for it first." And you give it a special piece of code that defers to the same old library call that would've been made anyway, but logs what's happening first. Looking at the ioctl calls above, I wrote this wrapper:<br />
<blockquote class="tr_bq">
#define _GNU_SOURCE<br />
<br />
#include <stdio.h><br />
#include <dlfcn.h><br />
#include <stdlib.h><br />
#include <malloc.h><br />
<br />
FILE *preloadhackfp;<br />
<br />
static int (*next_ioctl)(int fd, int request, void *data) = NULL;<br />
int ioctl(int fd, int request, void *data) {<br />
char *msg;<br />
<br />
if (next_ioctl == NULL) {<br />
fprintf(stderr, "Wrapping ioctl.\n");<br />
fflush(stderr);<br />
next_ioctl = (int (*)(int, int, void*)) dlsym(RTLD_NEXT, "ioctl");<br />
if ((msg = dlerror()) != NULL) {<br />
fprintf(stderr, "ioctl: dlopen failed : %s\n", msg);<br />
fflush(stderr);<br />
exit(1);<br />
}<br />
preloadhackfp = fopen("/tmp/preloadhack.log", "a");<br />
fprintf(preloadhackfp, "Opened log.\n");<br />
fflush(preloadhackfp);<br />
}<br />
if (request == -1073458425 || request == -1073458427 || request == -1073458424 || request == -1073458426) {<br />
long int i = *((int *) data);<br />
fprintf(preloadhackfp, "Logged %i: %li\n", request, i);<br />
fflush(preloadhackfp);<br />
}<br />
return next_ioctl(fd, request, data);<br />
} </blockquote>
Running the phone binary with LD_PRELOAD set to load this poison pill got me a log containing exactly <a href="http://www.pbxinaflash.com/community/index.php?threads/acn-iris-3000-videophone.8620/page-9#post-92916">what I needed to know</a>. Of course, all this would've been unnecessary if UMEC wasn't violating the GPL. On the plus side, I learned some new skills here.<br />
<br />
<b>A New Purpose</b><br />
<br />
Some unknowns remain about this hardware, but this was enough for my purposes.<br />
<br />
My goals here were twofold:<br />
<ol>
<li>Make a video game that uses the phone as an interface. Well, to be honest, this isn't actually a game -- it's a close fake. It looks like a game and acts like a game, but actually it's an office assistant simulator. You are required to suffer an unpleasant environment and given menial tasks to perform.</li>
<br />
<li>Turn the video phone into a gaming platform. By setting up the SD card in a particular way -- specifically, to provide a script called "sltp", which the phone for some reason is hard-coded to look for -- you can trick the phone into running the game instead of performing its usual startup. That means the SD card is effectively a into a game cartridge and the phone into a weird-looking Nintendo.</li>
</ol>
This is a work in progress, but currently it's an <a href="http://en.wikipedia.org/wiki/Isometric_projection">isometric</a> game set in a cubicle maze. (Thanks to Clint Bellanger for the <a href="http://opengameart.org/content/cubicle-mini-tile-set">tiles</a>.) You wander around amidst your coworkers and greet them. (Thanks to "Intimidated" at freesound.org for the <a href="http://www.freesound.org/people/Intimidated/sounds/61571/">samples</a>.) You're all zombies, thanks again to art borrowed from Clint's open-source <a href="http://flarerpg.org/">Flare</a> RPG. (I had intended to use the zombie sprites only until I could scare up some suitable [so to speak] alternatives, but over time the zombies have grown charming.) Occasionally you'll receive robocalls. You can dial out but the line is always busy. Coworkers may ask you to find a lost stapler. The music is repetitive (thanks and, um, sorry, <a href="http://www.jamendo.com/en/track/532253/now">Antionio Fiorucci</a>) and you can't turn it off.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnrtBI-FGOhYhp9nCfjhB-4p-0xGYmnJos-o5tgjolGr-G8MQktDN651ftaWD5MIqLO76QjGSpRSdS9YvnDK_jL-GLoNLTN_aInHjNUjNLIS8S082hnM_vszVVu9sHdgbc-1Ym8e82w57e/s1600/1351377510.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnrtBI-FGOhYhp9nCfjhB-4p-0xGYmnJos-o5tgjolGr-G8MQktDN651ftaWD5MIqLO76QjGSpRSdS9YvnDK_jL-GLoNLTN_aInHjNUjNLIS8S082hnM_vszVVu9sHdgbc-1Ym8e82w57e/s320/1351377510.bmp" width="320" /></a></div>
<br />
The code is all new, written in C using <a href="http://www.libsdl.org/">SDL</a>. There were a bunch of new algorithms and tools to learn en route -- <a href="http://www.policyalmanac.org/games/aStarTutorial.htm">pathfinding</a> for the NPC behavior, <a href="http://stackoverflow.com/questions/892811/drawing-isometric-game-worlds">drawing isometric maps</a>, etc. -- and problem-solving varied from fun to frustrating.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/aE-_JsrnICg/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/aE-_JsrnICg?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://www.youtube.com/v/aE-_JsrnICg?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<br />
In the coming weeks I hope to add more "missions" (deliver this file to so-and-so, maybe navigating phone maze hell, and the like) but for now it proves its point and hopefully shows the potential for reuse for this device.<br />
<br />
The source code for this is posted on <a href="https://github.com/asmecher/phonetendo">github.com</a><span id="goog_195267578"></span><span id="goog_195267579"></span>. More to come, including a HOWTO describing how to build the SD card.<br />
<br />
(I'll be showing this alongside many other bits of oddness at the <a href="http://www.eastsideculturecrawl.com/artists/asmecher">Vancouver East Side Culture Crawl</a>, Nov. 16-18 here in Vancouver. Come say hi.)<br />
<ol>
</ol>
AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com27tag:blogger.com,1999:blog-7534060879324399856.post-18521246776804508382012-10-21T22:46:00.001-07:002012-10-22T10:20:28.848-07:00Midi Drum KeyboardAside from my daytime superhero duties, I'm also the drummer for <a href="http://www.theelixxxirs.com/">The Elixxxirs</a>. I've been playing the drums since I was 18 but frankly I'm pretty lazy about it -- practicing always seems to fall off the end of the list, so improvement is slow.<br />
<br />
One thing I have no trouble with is typing. Fast. I've been variously laughed at and asked to stop noisily mashing the keys by people who didn't believe I was actually typing coherently in the process. And I couldn't help but think -- what if I could apply the dexterity I get by spending my days typing to simultaneously improving my drumming?<br />
<br />
All it takes is a digital drum set, a midi to USB adapter, and a <a href="https://github.com/asmecher/mididrumkeyboard">little bit of code</a>...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ERSP-g7Qr1c?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Let's just pretend I'm being serious for a moment. One of the things you try to do when you're practicing the drums is break associations and habits. It's so easy to stick to a rock beat, but if that's all you play, you'll be hard-wiring your brain to hit the bass drum and hats on the 1 and the snare and the hats on the 3, end of story. Adding some practice that's totally random from a musical standpoint might actually be a good idea.<br />
<br />
And look at the flip side -- you can hide secret messages in your music. Most of the words they don't allow on the radio would suit 4/4 time perfectly.<br />
<br />
(It hasn't escaped my notice that I probably would've been better off spending this time actually practicing the drums instead of tinkering.)<br />
<br />
(This is the second-to-last hack I'll be posting before the <a href="http://www.eastsideculturecrawl.com/artists/asmecher">East Side Culture Crawl</a> happens here in Vancouver in November. I'll be showing many of the things I've documented on this blog; if you're in the area, and not inclined to <a href="http://hackaday.com/2012/07/29/building-the-most-offensive-video-game-ever/">wreck anything I'm displaying</a>, drop by and say hi. Watch out for one last hack to be posted in the next few weeks; it's one of my favourites and almost complete.)AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com3tag:blogger.com,1999:blog-7534060879324399856.post-11255453755332447492012-09-05T17:32:00.000-07:002012-09-20T16:09:38.994-07:00Free Geek 2012 AGM ResultsI'd like to (belatedly) welcome the directors who were elected on July 19th:<br />
<ul>
<li> Board facilitator lead: Scott Nelson
</li>
<li> Assistant board facilitator lead: Nigel Cornwall
</li>
<li> Treasurer: Nigel Cornwall
</li>
<li> Secretary: Chris Hooper
</li>
<li> HR lead: Sarah White
</li>
<li> Anti-harassment lead: Sarah White
</li>
<li> Marketing lead: Anne Der
</li>
<li> Recycling lead: Mike McManus
</li>
<li> Legal and bylaw lead: Chris Hooper
</li>
<li> Volunteer recruitment and management: Sarah White</li>
</ul>
That's 6 directors divided up amongst 10 roles.<br />
<br />
<a name='more'></a><br />
<div class="newaps">
The process this year was different, following on a fair amount of discussion on the <a href="http://lists.freegeekvancouver.org/pipermail/fg-general/">fg-general</a> mailing list. We took some cues from the Sociocratic Method for elections, as outlined in <a href="http://www.amazon.com/We-People-Consenting-Deeper-Democracy/dp/0979282705/ref=sr_1_2?ie=UTF8&qid=1346891180&sr=8-2&keywords=sociocratic+method"><span class="lrg bold">We the People: Consenting to a Deeper Democracy</span></a> <span class="med reg">by John Buck and Sharon Villines. Overall the process worked remarkably well.</span></div>
<div class="newaps">
<span class="med reg"><br /></span></div>
<div class="newaps">
<span class="med reg">The motivation for these changes was to find a better way of selecting a board from the available candidates, that would allow for critical, informed decision-making, but without causing the candidates to feel judged.</span></div>
<div class="newaps">
<span class="med reg"><br /></span></div>
<div class="newaps">
<span class="med reg">The main tool for this was the use of a set of roles which were suggested by the outgoing board, and open to modification before the selection began by the attendees of the general meeting. Each role represents a "personality" along with a skillset; however, a single director might be chosen for more than one role. Of the full list of roles, only two were absolutely required per our bylaws: the treasurer and secretary.</span></div>
<div class="newaps">
<span class="med reg"><br /></span></div>
<div class="newaps">
<span class="med reg">I would like to join the rest of the Free Geek Vancouver community in thanking the outgoing board for all of their hard work, and all the 2012 AGM candidates for their generous offers of service. Congratulations to the new board. If you see a director in the hallway, thank them -- it's hard work.</span></div>
AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-16987287710163895942012-08-02T13:29:00.000-07:002012-08-03T08:32:43.409-07:00Ill-Advised Video Game: How & WhyFollowing up on the <a href="http://freegeekvancouver.blogspot.ca/2012/07/ill-advised-arcade-game.html">Ill Advised Video Game</a> post, I wanted to describe some of the technical details and address some of the issues that came up on <a href="http://hackaday.com/2012/07/29/building-the-most-offensive-video-game-ever/">Hack a Day</a>.<br />
<br />
<a name='more'></a>There are two technical details I didn't describe in the earlier post: the Arduino-based interface to the game controls, and the game software itself.<br />
<br />
<b>Arduino-based Controller</b><br />
<br />
The control panel has a total of 12 buttons. To avoid clobbering the rx/tx lines, which can affect communication between the Arduino and the host machine, I ended up using one of the analog pins in addition to all of the available digital input pins. Each button is connected via a standard pull-down circuit as described <a href="http://arduino.cc/en/Tutorial/DigitalPins">here</a>.<br />
<br />
The Arduino sketch itself is available <a href="https://github.com/asmecher/challenger/blob/master/arduino/challenger.ino">here</a>. It's straight-forward except for a detail or two. It basically grabs the status of each of the buttons and packs it into an int-sized bit-field -- that is, two bytes where each bit corresponds to one of the buttons, with a few bits left over.<br />
<br />
However, since we're sending these integers to the host computer via a slow serial link, the two bytes will generally arrive at different times. As a quick-and-dirty way of differentiating one byte from the other, I've fixed a particular bit high in one byte and low in the other.<br />
<br />
Though it would've been possible to code the Arduino into behaving exactly like a USB game controller using <a href="http://unojoy.tumblr.com/">unojoy</a>, it was enough for my purposes to stick with straight-up serial communication.<br />
<br />
<b>Game Software</b><br />
<br />
I've posted the game software up on <a href="https://github.com/asmecher/challenger">github</a>. The initial version I've committed is poorly documented (it's only just been completed) but I'll address that soon. I'd be happy to answer any questions about this. It's inefficient (every frame is upscaled from 320x200, since my graphics chipset seems unwilling to drop that low) but it's a fairly accurate reproduction of the kind of DOS game programming I used to do back in high school with the famously coder-friendly <a href="http://www.brackeen.com/vga/basics.html">0x13 video mode</a>. (I'm still very proud of forcing some member of the officiary to sign a very official framed certificate with the name "Turdhawk" on it back in 1998, though the game itself has sadly been lost.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjhOUij6rxmE4Myihfk2LK7lUBVeeVpsGZxaRMqYhPnNPsfdf8EbWGyoqVzCeNim03h0DzYpirVOLeDMDTSH75QcDkYHmg7YvVd-PJ8x2bciMqqRRNeEdlZQbn33gF7W2Zkevvu96F2LT7/s1600/turdhawk.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjhOUij6rxmE4Myihfk2LK7lUBVeeVpsGZxaRMqYhPnNPsfdf8EbWGyoqVzCeNim03h0DzYpirVOLeDMDTSH75QcDkYHmg7YvVd-PJ8x2bciMqqRRNeEdlZQbn33gF7W2Zkevvu96F2LT7/s320/turdhawk.jpg" width="320" /></a></div>
<br />
<b>Why I Made This</b><br />
<br />
Some people at <a href="http://hackaday.com/2012/07/29/building-the-most-offensive-video-game-ever/">Hack a Day</a> were pretty upset about this project. I have friends whose opinions I greatly respect and who weren't fond of it either. Many people have an emotional response to my use of the Challenger disaster, probably based in their own memories of the event, and I suspect that emotional response makes it hard to see alternate interpretations of the project.<br />
<br />
I won't lie: I do think this is a funny project and part of that comes from the dark humour. At the same time, I don't feel that this is enormously disrespectful to the victims. I wanted to invoke the Challenger disaster as a shared event from a specific time and place, not as a personal experience. That's possible for old disasters like the Titanic -- I doubt many would have been angry if I had chosen that -- but not for fresh ones. I would never have chosen the Columbia disaster, for example. Everyone draws the line somewhere and clearly some disagree with where I've drawn mine.<br />
<br />
Would I feel uncomfortable showing this to a family member of one of the victims? Probably. Do I think it would cause them pain? No, I think they're strong people who have had a lot of years to make peace with it.<br />
<br />
This project has a lot more to say about the 1980s and video games than it says about the Challenger.<br />
<br />
I remember the 1980s for its optimism around technology. Home computers were like NASA invading our houses and it was great. Technology was marvelous, it was the solution to all of our problems, and if used with good intentions it could never be a source of tragedy. As a child I conflated science fiction, real-world space exploration, and video games at will, thanks in no small part to the <a href="http://www.youtube.com/watch?v=H7NaxBxFWSo">popular</a> <a href="http://www.astronomy.org/programs/moon/lunar-olympics.jpg">science</a> <a href="http://en.wikipedia.org/wiki/Newtsuit">culture</a> of the time. This game is a tangible illustration of the way our attitudes have changed. It vividly re-draws the distinction between NASA, where good people sometimes die, and Star Trek, where it's just the anonymous guy in the red shirt again.<br />
<br />
As for video games -- this one involves 7 deaths. That's pretty low by video game standards. Yes, they are specific ones with names and faces; I chose not to include either. Personally I think there are far better candidates to get worked up about -- the Call of Duty series comes to mind, with its paper-thin fictionalization combined with its earnest joy in murder. I don't play video games -- I'd rather create something -- and have the luxury of leaving my opinion about the morality of violent gaming mostly unformed -- however this game hardly rates on that scale.<br />
<br />
Finally, as for art, this isn't particularly ground-breaking in its use of controversial content. (I do hope it's part of a continuing push to get some kinds of hacking recognized as artistically expressive). <a href="http://en.wikipedia.org/wiki/Rick_Gibson">Sniffy the Rat</a> was way more controversial and morally questionable, and that was back in 1989.<br />
<br />
I consider the furious responses to be disproportionate to the admittedly iffy elements of the project and I'm content to ignore them. A few of the critical comments on Hack a Day were thoughtful and I
appreciate those. I hope this explanation clarifies my decision to
continue with the project.<br />
<br />
I hope to present this game at the Vancouver Eastside Culture Crawl (and possibly elsewhere) without any indication that it's not actually a genuine vintage video game. I want players to wonder to themselves about the Challenger moniker right up until the moment of explosion. Then I'd like them to have a good think about their reaction, whatever that is. Hopefully people who aren't used to hardware hacking will have their minds blown wide open as to the creative and deceptive potential of a fairly modest homebrew video game. I've enjoyed building this and would consider that to be a successful outcome.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-28697166507865468762012-07-27T19:43:00.001-07:002012-08-07T17:44:06.948-07:00Ill-Advised Arcade Game<i>Disclaimer: I know this project is a little insensitive. However, once I had the idea I couldn't get it out of my head. All pre-emptive apologies willingly tendered here.</i><br />
<br />
Let's start this project off as though I was going to build a MAME cabinet, OK? I don't want a <a href="http://en.wikipedia.org/wiki/MAME">MAME</a> cabinet and I don't play arcade games, but I'll explain that later.<br />
<br />
After a short search, I got my hands on an old cocktail arcade cabinet courtesy of long-time friends of Free Geek Vancouver, <a href="http://thehackery.ca/">The Hackery</a>. (They're just up the street from Free Geek; if you haven't been in, check them out sometime.) Here's how it looked:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBZnzBt7RL_IOnRQiZXgdZ1xGfl5ZmEYfBQFecBmVCWC9lc_FpyzO6MBroTiBHKCFYpEh7VcUL3I4J_ppRzgRVc1-d_7d2_1p0fWaEVL5SaycvnKt8DfZtkmN6u_NIrHyfb3PxlIRAH7DU/s1600/2012-07-12+20.14.07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBZnzBt7RL_IOnRQiZXgdZ1xGfl5ZmEYfBQFecBmVCWC9lc_FpyzO6MBroTiBHKCFYpEh7VcUL3I4J_ppRzgRVc1-d_7d2_1p0fWaEVL5SaycvnKt8DfZtkmN6u_NIrHyfb3PxlIRAH7DU/s320/2012-07-12+20.14.07.jpg" width="320" /></a></div>
<br />
This is Space Zap, circa 1980 or so, from Midway. If you're curious about this game, there's a pretty thorough <a href="http://www.youtube.com/watch?v=HohmJVb7wm0">video on Youtube</a> featuring a working example.<br />
<br />
<a name='more'></a><br />
<b>Teardown</b><br />
<br />
I often feel bad tearing apart old equipment. This game was not in great condition, but it was still complete, and someone with more knowledge about arcade games probably could've lavished a lot of love and attention upon it and gotten it working again. If I spend more time than strictly necessary in doting over this old hulk, it's because I'm assuaging some guilty sentiments.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPIBJaqW5-RPTf1o_91nAyKfULIZ8v2nxVbrsCfE6hyVbQSjpnfTqNCocUgt2uvaD7YU1gjofp18irTo8gG3WO_PTVGA9lAq_56g3RfgD_DCSm9SQoBrh2_p_v60dYk8F2-emy4MjYnwG8/s1600/2012-07-12+21.58.39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPIBJaqW5-RPTf1o_91nAyKfULIZ8v2nxVbrsCfE6hyVbQSjpnfTqNCocUgt2uvaD7YU1gjofp18irTo8gG3WO_PTVGA9lAq_56g3RfgD_DCSm9SQoBrh2_p_v60dYk8F2-emy4MjYnwG8/s320/2012-07-12+21.58.39.jpg" width="320" /></a></div>
<br />
I have never worked on an arcade game, so just getting inside allowed me to answer some long-standing questions. How secure is that little lock on the side panel? How do you service the game? How do you even turn it off and on?<br />
<br />
Once the pictured side panel was removed, and its mate on the other side, it's possible to remove the glass sheet from the top. Beneath that the game really starts to show its age:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNevYUKE_K0EwKtIjAF3HfoXxJ5ZfnnnpJykSnHSQH8-DLJXpvE4h53EOYLo9XLUz_zBRRjMubFEOb1XJcQVWRxsKM0A7D9rasiKSbQXDOlO_TBmu4IsVqLamRKYsy9plZUpoI79KpuWCV/s1600/2012-07-12+22.01.07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNevYUKE_K0EwKtIjAF3HfoXxJ5ZfnnnpJykSnHSQH8-DLJXpvE4h53EOYLo9XLUz_zBRRjMubFEOb1XJcQVWRxsKM0A7D9rasiKSbQXDOlO_TBmu4IsVqLamRKYsy9plZUpoI79KpuWCV/s320/2012-07-12+22.01.07.jpg" width="320" /></a></div>
<br />
Pictured is a warped cardboard surround that hides the edges of the chassis, and glued to that is my first surprise -- a colour overlay:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ8xtZ2DSzORKMmWvSKmDSLeGbNBlJBzk-apuTUpMxM7gycB4nP15SruNOJr__n43w2neNuw2Lwo4oD-y4QutYQ-FERLEpmJkWsmn1vETAEU-mLXbbHXQjqgDUeqYTSinb26o77H-rgYai/s1600/2012-07-14+17.07.28.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ8xtZ2DSzORKMmWvSKmDSLeGbNBlJBzk-apuTUpMxM7gycB4nP15SruNOJr__n43w2neNuw2Lwo4oD-y4QutYQ-FERLEpmJkWsmn1vETAEU-mLXbbHXQjqgDUeqYTSinb26o77H-rgYai/s320/2012-07-14+17.07.28.jpg" width="320" /></a></div>
<br />
Here's the trick: the game is actually black and white, but by overlaying a coloured sheet over the screen, you'd never know it. Back in the late '70s and early '80s colour equipment was a lot more expensive and complicated and in games like this without much variety in what you see on the screen a real colour setup would've been wasted. (Rumour has it that this game is technically capable of colour output, but was shipped with a B&W screen.)<br />
<br />
Beneath the colour overlay is the B&W vacuum tube...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxV4EQPkACECcYIxOufielCUiYKObvxtNO-Dcp7I0sp6NLh_cWbKI6fshLympNAPG334fB6dRvW1x63CCSMQ54YgKqWdApcmjgF1GHoH6r4qp6lSfoWs5Yufb4Sm8x8qD4Db7PwVorQdQg/s1600/2012-07-12+22.01.33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxV4EQPkACECcYIxOufielCUiYKObvxtNO-Dcp7I0sp6NLh_cWbKI6fshLympNAPG334fB6dRvW1x63CCSMQ54YgKqWdApcmjgF1GHoH6r4qp6lSfoWs5Yufb4Sm8x8qD4Db7PwVorQdQg/s320/2012-07-12+22.01.33.jpg" width="320" /></a></div>
<br />
...and there's really nothing else accessible from the top. Over to the side and the aforementioned little door:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjATfxj862EJ9ZXTyg8J1Ufbt66Mla3nNSZ3JWrq_JMWHKJamTY6PBgloFbZFvRfmqA1rA_rrWmi46A3tISbeAIsll4uxJSSq1S_VUTpmHTTnf6TQcERqnHLkZu6y-gPy4IaJllcBCky5qQ/s1600/2012-07-12+22.04.18.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjATfxj862EJ9ZXTyg8J1Ufbt66Mla3nNSZ3JWrq_JMWHKJamTY6PBgloFbZFvRfmqA1rA_rrWmi46A3tISbeAIsll4uxJSSq1S_VUTpmHTTnf6TQcERqnHLkZu6y-gPy4IaJllcBCky5qQ/s320/2012-07-12+22.04.18.jpg" width="320" /></a></div>
<br />
This one, fortunately, was unlocked so I didn't need to destroy anything to get inside.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj_nNzyRMSWp6184viG6M4gvEXNk-qyrcCeKGVL2H0mIdSBClUIOwL3S-jeqlg2jXtW686dSBN9TKZ4RGx9-6D9oLNgM2SnOpn7oKgDdtYm29w3IXtzHSTG8gQx-Ni8JMS8QAJY_SoRoa4/s1600/2012-07-12+22.04.56.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj_nNzyRMSWp6184viG6M4gvEXNk-qyrcCeKGVL2H0mIdSBClUIOwL3S-jeqlg2jXtW686dSBN9TKZ4RGx9-6D9oLNgM2SnOpn7oKgDdtYm29w3IXtzHSTG8gQx-Ni8JMS8QAJY_SoRoa4/s320/2012-07-12+22.04.56.jpg" width="320" /></a></div>
<br />
That's the coin slot, a coin counter, the lock mechanism, and a little light bulb, all with that chunky late-1970s feel. I love hardware from this era.<br />
<br />
Another mystery answered, after some prodding: how to open the chassis? If you reach inside this little door you can release a couple of catches near the top. (Nothing inside this game was shielded and one catch wasn't too far from the high-voltage flyback transformer. Those were different times.)<br />
<br />
With the catches flipped, the top of the case swings open and latches in place for servicing:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYqXdYCBYBzyt2ut9qJ_k-svHWJXWUISxGlG0K6PcknPSVVQfCiHyYLmFxIWH616RfY1hwMZxA62U_wEsWN_QSpVq2tQdL5jfEN1JhAI23Y0MG-p4Xw55z2DB5OTvwallMtDLeHjsUsAJh/s1600/2012-07-12+22.25.45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYqXdYCBYBzyt2ut9qJ_k-svHWJXWUISxGlG0K6PcknPSVVQfCiHyYLmFxIWH616RfY1hwMZxA62U_wEsWN_QSpVq2tQdL5jfEN1JhAI23Y0MG-p4Xw55z2DB5OTvwallMtDLeHjsUsAJh/s320/2012-07-12+22.25.45.jpg" width="240" /></a></div>
<br />
The CRT and its power supply and logic board stay with the top; the rest stays below. Here's a look deeper inside.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilwKmx38pVwUFGMG-K-bRevqTw0KZh8PKTA0Mdaejc5CmROjqBnEGrE9PSdWQPRMKDgeikXLKbtyCz0CCkbWPmnLNuUCp1aY7n4-uk2lUrdDs0aIZ1qakbZ6Hlc_deSDPdn4bK5kgmTXo2/s1600/2012-07-12+22.26.20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilwKmx38pVwUFGMG-K-bRevqTw0KZh8PKTA0Mdaejc5CmROjqBnEGrE9PSdWQPRMKDgeikXLKbtyCz0CCkbWPmnLNuUCp1aY7n4-uk2lUrdDs0aIZ1qakbZ6Hlc_deSDPdn4bK5kgmTXo2/s320/2012-07-12+22.26.20.jpg" width="320" /></a></div>
<br />
On the left is the power supply board, with enormous filter capacitors and some voltage regulator chips. If I had to put money on what part of the game failed, I'd say it's probably these.<br />
<br />
In the bottom of the case is the board set, which looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDSWNfY1pUEhsDv-LHoBQclLpI1sAszG3sdCkEL5fHwat8o_ZfkuURZE4Sem2TeBGActM39DzTt5SR9NcOuhK25LskVDyCkxFsc8SxM6QzsZGLYjrNycTI15bd2z4e4n65Ym80SmdbM0-/s1600/IMG_7147.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiDSWNfY1pUEhsDv-LHoBQclLpI1sAszG3sdCkEL5fHwat8o_ZfkuURZE4Sem2TeBGActM39DzTt5SR9NcOuhK25LskVDyCkxFsc8SxM6QzsZGLYjrNycTI15bd2z4e4n65Ym80SmdbM0-/s320/IMG_7147.JPG" width="240" /></a></div>
<br />
For this game, there are 5 circuit boards: game logic, a pattern board, a CPU board, and two RAM boards.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2TB8TjcHKlr3xJj-p9-F3b4MwVBfXj9zyeaGuyCSCLKdiijYMFs5H1OXUByzZXFRZf3moJGZdatR-Wd3vmqLHG0KiZuAQMypp6IWvShnRG5_ZQMrzIRnvoBBBDToNJucJdAlnHV0bUA7/s1600/2012-07-14+17.10.25.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2TB8TjcHKlr3xJj-p9-F3b4MwVBfXj9zyeaGuyCSCLKdiijYMFs5H1OXUByzZXFRZf3moJGZdatR-Wd3vmqLHG0KiZuAQMypp6IWvShnRG5_ZQMrzIRnvoBBBDToNJucJdAlnHV0bUA7/s320/2012-07-14+17.10.25.jpg" width="320" /></a></div>
<br />
The CPU and RAM boards would run a number of Midway games from the same era and only the game logic and pattern boards were game-specific. (The are lots of <a href="http://arcarc.xmission.com/PDF_Arcade_Bally_Midway/Midways_Card_Rack_System_Part_1.pdf">charming manuals</a> kicking around the Internet for this stuff.)<br />
<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/AVvXsEhX-vqTD1BHw8QnaPtsLmHfVq4n5-vUQAdpTjMkKDeFJDxD_iuJsew1YhccH_uBheNyHkPBfS7QdJeMLZK6Sw16D0PFE9JY2Ba6u_XXrAMcyN-UMQVmPGH09ZjU6c5hOaV6WxIA1U1skXGl/s1600/IMG_7160.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX-vqTD1BHw8QnaPtsLmHfVq4n5-vUQAdpTjMkKDeFJDxD_iuJsew1YhccH_uBheNyHkPBfS7QdJeMLZK6Sw16D0PFE9JY2Ba6u_XXrAMcyN-UMQVmPGH09ZjU6c5hOaV6WxIA1U1skXGl/s320/IMG_7160.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPU Board</td></tr>
</tbody></table>
<br />
The CPU itself is a Z80 chip, probably most famous for powering the <a href="http://en.wikipedia.org/wiki/TRS-80">TRS-80</a>, <a href="http://en.wikipedia.org/wiki/Osborne_1">Osborne 1</a>, <a href="http://en.wikipedia.org/wiki/ZX81">Timex Sinclair</a>, and other (in)famous computers to pioneer home computing in the late 1970s and early 1980s. It was cheap and it was everywhere.<br />
<br />
After a quick look at the manual linked above I'd guess the RAM boards are something like 8KB apiece. Nowadays, of course, we comfortably measure RAM in gigabytes -- a unit (roughly) a million times as big. RAM was expensive and software developers had to pull all kinds of tricks to make things work with the limited resources available. (Running software without enough RAM is like trying to pick something up that you're standing on.)<br />
<br />
The game board looks like this:<br />
<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/AVvXsEjvNN8uBdsumr_OCLm_e-Co-biIP9jrYdTiYWI-u-ki9YvqRI-nRRZhc1ejrGxzXF6Bpj7rddIu06X9emaa3OZoP_F7mEE3oXcKta0jxUUz9MQloaTLcLhjfbFhEk1GAKgkfzd48wDn5dRI/s1600/IMG_7163.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvNN8uBdsumr_OCLm_e-Co-biIP9jrYdTiYWI-u-ki9YvqRI-nRRZhc1ejrGxzXF6Bpj7rddIu06X9emaa3OZoP_F7mEE3oXcKta0jxUUz9MQloaTLcLhjfbFhEk1GAKgkfzd48wDn5dRI/s320/IMG_7163.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Game Board</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<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/AVvXsEh4GoIRsO-shHq3afV2ZybWtYbhOaipmNRRhXLIp_16rojsYk7Xt1Gdt5XlicC80gnW55VNQVKIFcFNo0e-TkolFB7PVZbIpvrNeMGVNEHCr9obQiLdp6Gl2XYCBOsp_hxIaxEK_hAjrrpE/s1600/IMG_7164.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4GoIRsO-shHq3afV2ZybWtYbhOaipmNRRhXLIp_16rojsYk7Xt1Gdt5XlicC80gnW55VNQVKIFcFNo0e-TkolFB7PVZbIpvrNeMGVNEHCr9obQiLdp6Gl2XYCBOsp_hxIaxEK_hAjrrpE/s320/IMG_7164.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Game Board</td></tr>
</tbody></table>
I enjoy the esthetic of this era of technology so much and trying to explain it is boring, so permit me to throw in a lot of photographs of this game with its clothes off. Then I promise I'll get to the point.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3oI7XKSOV0dIDlRjyQvn2tQqhlfVl8SWq8Y5P5bepAbwzPqKCSTAsCdTvQUZSDiaYt6eTLUN_0KmCnz-K6CcCifOrjQva9-XCmNU_nIa2WQkp79p4dQ9p0lctUpkQOeq5SvSR9cOBy366/s1600/2012-07-14+17.19.44.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3oI7XKSOV0dIDlRjyQvn2tQqhlfVl8SWq8Y5P5bepAbwzPqKCSTAsCdTvQUZSDiaYt6eTLUN_0KmCnz-K6CcCifOrjQva9-XCmNU_nIa2WQkp79p4dQ9p0lctUpkQOeq5SvSR9cOBy366/s320/2012-07-14+17.19.44.jpg" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvQcMXUV_BDS3IAr5nXM-8CrF_iXYWOQD4car1MlJHKdL3rULg_ZW3zL1xEflljAWa2vu0E82FWwgjSdwYAjzWafOXZ7o6bHNMSrBeuF6zmcU4alYjdXbqTPANa4T50oAP6JnSlBOQN_dj/s1600/IMG_7173.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvQcMXUV_BDS3IAr5nXM-8CrF_iXYWOQD4car1MlJHKdL3rULg_ZW3zL1xEflljAWa2vu0E82FWwgjSdwYAjzWafOXZ7o6bHNMSrBeuF6zmcU4alYjdXbqTPANa4T50oAP6JnSlBOQN_dj/s320/IMG_7173.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9jJXUg6x9_ANpZs8yDnOnZDNeSdYkHQ1E3PrW_zJKRMW1VCNHsdv8wPcGpsB5T38E8IC4KOUWa4YicHFPMBosPANaaGNAB6wGG3DQpmu7HC7eASbcrnwXLfpsQ-oY0fyOYr32MTFzguo1/s1600/IMG_7144.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9jJXUg6x9_ANpZs8yDnOnZDNeSdYkHQ1E3PrW_zJKRMW1VCNHsdv8wPcGpsB5T38E8IC4KOUWa4YicHFPMBosPANaaGNAB6wGG3DQpmu7HC7eASbcrnwXLfpsQ-oY0fyOYr32MTFzguo1/s320/IMG_7144.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1c21JL8yCwkP09J1-99NfXkha3JRut_xu4cpVp1s4sW_DPmEFQQpzr5DgXPr_z9EcYnm-W89tiJ-qLD8FBwcVA9tZAsjz5ZhyElLcFl0kkZOr1EpDUNgZRw1jlEqlz_QSmb8pMR3Mv9dy/s1600/IMG_7154.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1c21JL8yCwkP09J1-99NfXkha3JRut_xu4cpVp1s4sW_DPmEFQQpzr5DgXPr_z9EcYnm-W89tiJ-qLD8FBwcVA9tZAsjz5ZhyElLcFl0kkZOr1EpDUNgZRw1jlEqlz_QSmb8pMR3Mv9dy/s320/IMG_7154.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLh57k-xYop-NFlHMka16o3_aGDe_dOYNbOZwgXLE0_MXO7hbjPFGq7aAg6OVIXbk733auDJX8tE50xCHpsV3L1ix-imEnuLtjBdKSAOIy0QogmpRUHtJSTJynFH2U-NDqRXyE_aFwBCTw/s1600/IMG_7170.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLh57k-xYop-NFlHMka16o3_aGDe_dOYNbOZwgXLE0_MXO7hbjPFGq7aAg6OVIXbk733auDJX8tE50xCHpsV3L1ix-imEnuLtjBdKSAOIy0QogmpRUHtJSTJynFH2U-NDqRXyE_aFwBCTw/s320/IMG_7170.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFAi7hoqhkpioeTMmb_AbiA6K90Othml4oq4X8F98POted2cWb89dsaPBtqAlHqh3PUUxCsLxNTlIHdCwmcJpmGQyd07sBcwWvWg9hnhXNmIjSdOe_oFZrtamVYCUFguz_hapE_yujoAW/s1600/IMG_7171.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFAi7hoqhkpioeTMmb_AbiA6K90Othml4oq4X8F98POted2cWb89dsaPBtqAlHqh3PUUxCsLxNTlIHdCwmcJpmGQyd07sBcwWvWg9hnhXNmIjSdOe_oFZrtamVYCUFguz_hapE_yujoAW/s320/IMG_7171.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ636I77udMinQUPkyn_S3WvqZTkBEy0cppvyA4_9hvpPl2JRWrMNQKjuMAgx-w36b6pyOq2UI0BuTGfasjODcwXcw7B2Gs_-ox3SGQWWpLNCdj10wlM5rAhvj-K5NzdH0b490CHQuCbGO/s1600/IMG_7141.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ636I77udMinQUPkyn_S3WvqZTkBEy0cppvyA4_9hvpPl2JRWrMNQKjuMAgx-w36b6pyOq2UI0BuTGfasjODcwXcw7B2Gs_-ox3SGQWWpLNCdj10wlM5rAhvj-K5NzdH0b490CHQuCbGO/s320/IMG_7141.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC2zdbD3iFNXVPvbsyhpGKgshCldjBoaDRXlFcthSTtaVOCalwSvKbv7hyfvz0G_dXm-DRBn4FNfZeRYyDczcsOq7_aMzi-O-BibtSCIrsXlQFZSPMTGh26Vn_1dZhyphenhyphenRLIkEUTkn3UyE7O/s1600/IMG_7138.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC2zdbD3iFNXVPvbsyhpGKgshCldjBoaDRXlFcthSTtaVOCalwSvKbv7hyfvz0G_dXm-DRBn4FNfZeRYyDczcsOq7_aMzi-O-BibtSCIrsXlQFZSPMTGh26Vn_1dZhyphenhyphenRLIkEUTkn3UyE7O/s320/IMG_7138.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgnj7BWnHkrK2EKY-Pe9YE_9Aqtei_2v16B_aK7ir3PPtgmv0Q68gMRIniY3uNjNGYBDhgj7HV18yfNcOzBhwLkf5dnzbf7ja28_rK0nYr0J4GhHaCW3TRxs1Rw0_u06hRN57RtumusZko/s1600/IMG_7133.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgnj7BWnHkrK2EKY-Pe9YE_9Aqtei_2v16B_aK7ir3PPtgmv0Q68gMRIniY3uNjNGYBDhgj7HV18yfNcOzBhwLkf5dnzbf7ja28_rK0nYr0J4GhHaCW3TRxs1Rw0_u06hRN57RtumusZko/s320/IMG_7133.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUI50sskHYpROGKW8vKhNQXrn0Fx9a9bgZuh-1Gjm4A5YcI_1QQEjVLtT-4MVquXIDZ4x1VSptOuVg3IUDiLIGV7sKyiMe5obk1NOZhao9BZ8oFbwF4RBFgdqJa7qUPJKTp0MK-3eKQUgC/s1600/IMG_7125.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUI50sskHYpROGKW8vKhNQXrn0Fx9a9bgZuh-1Gjm4A5YcI_1QQEjVLtT-4MVquXIDZ4x1VSptOuVg3IUDiLIGV7sKyiMe5obk1NOZhao9BZ8oFbwF4RBFgdqJa7qUPJKTp0MK-3eKQUgC/s320/IMG_7125.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAAXotPvq4kSy8zUiB3cOWBFW4ZyoZ8Rl4J7lFy1bIlUj7jWWiERZQD5gLZ3fpJX6iASai29aMQAKBZw8iUGH69T1RmQ3cpEJDqC7tZeTM482F5yFub8izUsSi18PTdk0f0yyHbdOmTJ3J/s1600/IMG_7132.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAAXotPvq4kSy8zUiB3cOWBFW4ZyoZ8Rl4J7lFy1bIlUj7jWWiERZQD5gLZ3fpJX6iASai29aMQAKBZw8iUGH69T1RmQ3cpEJDqC7tZeTM482F5yFub8izUsSi18PTdk0f0yyHbdOmTJ3J/s320/IMG_7132.JPG" width="320" /></a></div>
<br />
So I tore out the guts, gave some to <a href="http://www.flippers.com/">John's Jukes</a> (worth a look inside if you ever walk past) and sold some to a guy in Alberta. The rest wasn't especially valuable or in very good shape so overall I can forgive myself for dismembering it. What wasn't used was, of course, responsibly recycled (thanks Free Geek Vancouver and The Hackery).<br />
<br />
<b>Assembly</b><br />
<br />
All right, down to business. First I picked up a motherboard, CPU,
RAM, and power supply from Free Geek Vancouver. I got the motherboard
cheap because its onboard network card -- and, it turns out, one of the
two PCI slots -- are dead. Not a problem; I don't need expandability and
there's always USB besides. I built the motherboard into the bottom of
the chassis and mounted the power supply to the side.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqAgRv4En9TjjviTl7fQ16Xs_B2TAL_2tfHqkHk9aO9Uv74ec_FoXjyls0pE48C0d6m5IZ_IfEuJEZmXHP-ScQz1Lh5Bv-CRywttQZG8t3f4x2QNQQMC-GMXEN-J6U80Vf6zijWbsvm1w5/s1600/IMG_7176.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqAgRv4En9TjjviTl7fQ16Xs_B2TAL_2tfHqkHk9aO9Uv74ec_FoXjyls0pE48C0d6m5IZ_IfEuJEZmXHP-ScQz1Lh5Bv-CRywttQZG8t3f4x2QNQQMC-GMXEN-J6U80Vf6zijWbsvm1w5/s320/IMG_7176.JPG" width="320" /></a></div>
<br />
Looking down from above:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvnk4sYzEegt6z2DMfybivw7xHa_tduAh4yaZWPIcuNiDk4iWqPo51KNpNOwhPnImZwPtSKe4cQAgFxGfAbt6a1ppJSg-Dk-DcJuVKS5RHszxl-N4Cf1TmsrA6Ju66pjGhYvP7KjWPrH8C/s1600/IMG_7177.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvnk4sYzEegt6z2DMfybivw7xHa_tduAh4yaZWPIcuNiDk4iWqPo51KNpNOwhPnImZwPtSKe4cQAgFxGfAbt6a1ppJSg-Dk-DcJuVKS5RHszxl-N4Cf1TmsrA6Ju66pjGhYvP7KjWPrH8C/s320/IMG_7177.JPG" width="320" /></a></div>
<br />
I tested this with an LCD panel to make sure it was working before moving on.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWMRzEdahyphenhyphen6y7M9IWS_JdcIqhGbIuZK3LtdZlnWvup0T75kJQf6OkrBdn4Chcj2GMExvrR9YDK6-pUol7UNRXyLeMtGRHRrh6VQ4XNqjD6UAQbKa5bpGW_wfK650KbFSEarDqP8FEd6AN4/s1600/IMG_7175.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWMRzEdahyphenhyphen6y7M9IWS_JdcIqhGbIuZK3LtdZlnWvup0T75kJQf6OkrBdn4Chcj2GMExvrR9YDK6-pUol7UNRXyLeMtGRHRrh6VQ4XNqjD6UAQbKa5bpGW_wfK650KbFSEarDqP8FEd6AN4/s320/IMG_7175.JPG" width="320" /></a></div>
<br />
The most challenging part was the CRT. The old screen was around 20", at a slightly unusual aspect ratio. I found that with minimal modification I could get a 19" CRT to fit -- the vertical size is almost perfect, and with some drilling, the same mounts could be made to fit.<br />
<br />
Unfortunately, this means stripping the plastic casing off the new screen to get it to fit. The plastic casing on most screens is not just cosmetic; it holds everything together.<br />
<br />
Without their plastic casing, there are two major considerations: one, the CRT: fragile, dangerous, and heavy. Two, the circuit boards, fragile and dangerous as well but at least not heavy. The problem is that they're interconnected with thousands of wires, some easy to remove and others more difficult.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7e2BZugp8wWEBS-loYyNkvqpassCpgS7yLu02wdNH4ZfCx83afjEG3xgqEwDO2D8XgreBTZWVTSPUrJYz_sKYBn8kTTNLETV0H0MzcMGr8GVVCYOzrUJLYmF6YCgbRvFjCKNG_9bDWyn2/s1600/2012-07-20+18.07.55.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7e2BZugp8wWEBS-loYyNkvqpassCpgS7yLu02wdNH4ZfCx83afjEG3xgqEwDO2D8XgreBTZWVTSPUrJYz_sKYBn8kTTNLETV0H0MzcMGr8GVVCYOzrUJLYmF6YCgbRvFjCKNG_9bDWyn2/s320/2012-07-20+18.07.55.jpg" width="320" /></a></div>
<br />
Pictured above is my first attempt: a Lacie-branded Mitsubishi display, with the back cover removed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwyB3X-KqAP3k4y01-JMxfeC9B6FiC_ZuQ4dlZBZc35cw245WdUarkDfy9w3HfhyphenhyphensdI1fDDUXwyHVKFMWSQfscSBhpJFc-Tg-hKNPGMJvGJsGK8TUnkv8mQKxDoHCZZQQX19-TNga_CANy/s1600/2012-07-20+19.04.44.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwyB3X-KqAP3k4y01-JMxfeC9B6FiC_ZuQ4dlZBZc35cw245WdUarkDfy9w3HfhyphenhyphensdI1fDDUXwyHVKFMWSQfscSBhpJFc-Tg-hKNPGMJvGJsGK8TUnkv8mQKxDoHCZZQQX19-TNga_CANy/s320/2012-07-20+19.04.44.jpg" width="320" /></a></div>
<br />
Here it is with all its boards stripped, ready to be mounted.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW2MqO3p3BD9oiyw5XTBy8d0bRFMbp9DcUXxh19xu17D_4_uwJIOvJ3AfCpDvJ74kNCvk3_MGgtBnVSbK7i_k6kDC2teq48A8xv4p_zVr8jkdpgFp1EBMfbWyN9fJ4jOr_A0IaN_wlykVY/s1600/2012-07-20+19.39.40.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW2MqO3p3BD9oiyw5XTBy8d0bRFMbp9DcUXxh19xu17D_4_uwJIOvJ3AfCpDvJ74kNCvk3_MGgtBnVSbK7i_k6kDC2teq48A8xv4p_zVr8jkdpgFp1EBMfbWyN9fJ4jOr_A0IaN_wlykVY/s320/2012-07-20+19.39.40.jpg" width="320" /></a></div>
<br />
And again, secured to the chassis with a screw in each corner.<br />
<br />
Look, I shouldn't have to say anything, but don't do this. A CRT is basically a compact collection of things that will try to hurt you: high voltages, high frequencies, possibly X-rays, sharp glass enclosing a vacuum, and sometimes even daytime televison.<br />
<br />
Well, long story short: I got all the boards re-installed, powered it up, and it never came back to life. I crammed it all back together and brought it back to Free Geek and told Dave in the warehouse not to ask any questions.<br />
<br />
He had another, fortunately: a 10-year-old Dell 19" monitor that had quite literally never been used. It still had the sticker on the front.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfmIbh0ThoD2WpkCqkiIBxg1xqPiUGshEI8B5Tbzd3x4bdS0gxtS1DgBnfuouPBD4CjYZbVfJnRXLssOFAhRB068aku19lp0aWc2elY4smA3PPXMGH2CmkDClhS56nOlACUmgINGcafqeR/s1600/2012-07-21+16.22.16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfmIbh0ThoD2WpkCqkiIBxg1xqPiUGshEI8B5Tbzd3x4bdS0gxtS1DgBnfuouPBD4CjYZbVfJnRXLssOFAhRB068aku19lp0aWc2elY4smA3PPXMGH2CmkDClhS56nOlACUmgINGcafqeR/s320/2012-07-21+16.22.16.jpg" width="320" /></a></div>
<br />
Same story: shell it... install it...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1vcZUQC4QFj0fEpzxjph1ezPZdTP3aZ0D3Ctox85d_re3lp1iD4wnihZS7DA5iBUkd-XgAw5XMIY3ym6ML-6txdGq3wUOVJ_pCekqpQ0egpx_YMnYazIPmsOrKc5iv6Lg5fO7gOD5A8E/s1600/2012-07-21+16.42.35.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1vcZUQC4QFj0fEpzxjph1ezPZdTP3aZ0D3Ctox85d_re3lp1iD4wnihZS7DA5iBUkd-XgAw5XMIY3ym6ML-6txdGq3wUOVJ_pCekqpQ0egpx_YMnYazIPmsOrKc5iv6Lg5fO7gOD5A8E/s320/2012-07-21+16.42.35.jpg" width="320" /></a></div>
<br />
This one survived the transplant.<br />
<br />
Fortunately, these things are $5 a pop at Free Geek Vancouver -- gone are the days when a big CRT would set you back $800. Nobody wants them anymore. There are still a few hopeful Craigslist vendors trying to squeeze $50 out of some poor sap by quoting the original list price for a 10-year-old behemoth. And I doubt anyone's going to fall for that.<br />
<br />
So $5 wasted and the damaged monitor was, of course, ethically recycled. Here's how the Dell looks once installed:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpSpIdo4IAZbBHrRLD5lWTwOgiUliIC9JhNGsqRjIrfi12z4X_AU_nRS6fW6vWK8Ric_nYDIMX0CuT8YBbYGWUfOr20eucRZtCZ4q6_2j1T_xWmL5TIQRyfQ8MejQWHNPB21W4JhzaxMUs/s1600/2012-07-21+17.00.47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpSpIdo4IAZbBHrRLD5lWTwOgiUliIC9JhNGsqRjIrfi12z4X_AU_nRS6fW6vWK8Ric_nYDIMX0CuT8YBbYGWUfOr20eucRZtCZ4q6_2j1T_xWmL5TIQRyfQ8MejQWHNPB21W4JhzaxMUs/s320/2012-07-21+17.00.47.jpg" width="240" /></a></div>
<br />
As an added bonus, I have the empty shell to play with.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5vjI03MAzX5QEIhOiNcfE9jv8Z-PYUjbEYT3pjbhnJJxVvcvhmNf96hkKjAtbj3yHjsCrBGiO6USpXH64lt0viYkr6vJTaVCL2wy6nEKOxPQos8UKsKpzWXOVcBP3Q2ERDFreXvHLp0NE/s1600/2012-07-21+19.40.10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5vjI03MAzX5QEIhOiNcfE9jv8Z-PYUjbEYT3pjbhnJJxVvcvhmNf96hkKjAtbj3yHjsCrBGiO6USpXH64lt0viYkr6vJTaVCL2wy6nEKOxPQos8UKsKpzWXOVcBP3Q2ERDFreXvHLp0NE/s320/2012-07-21+19.40.10.jpg" width="320" /></a></div>
<br />
Next problem: the control panels. First, they were filthy and needed some serious attention.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXm7MiDPJVW-wSmoj9a0JVWswXXRnEwl5Y_rvIN5FyzneSCVbP8s1amZyqWK0t38r-HBob7Db2G1VbRw-4A5DmehxUMIlHifsFE2ZbeGAGS9xIjhzIs4svG1JQcS3qJIvYqkFkIdxtWkuF/s1600/2012-07-25+16.21.53.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXm7MiDPJVW-wSmoj9a0JVWswXXRnEwl5Y_rvIN5FyzneSCVbP8s1amZyqWK0t38r-HBob7Db2G1VbRw-4A5DmehxUMIlHifsFE2ZbeGAGS9xIjhzIs4svG1JQcS3qJIvYqkFkIdxtWkuF/s320/2012-07-25+16.21.53.jpg" width="320" /></a></div>
<br />
I stripped them down and scrubbed them off and attached an Ardunio [knock-off] to take care of communications between the switches and the computer.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ZCJAE6O5Xsu1Mj6nC39aH4GsZkPfclFxDdZi-urBxvQ4spopEd-kMl03Kf5ffldGIhjo9GMhK7srXyO6rtRuUeb0eGT8HqBb2VSwffUOdHbzexKflW9n9uOJFCU8VArl-qE1gET03FI6/s1600/2012-07-25+18.43.45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ZCJAE6O5Xsu1Mj6nC39aH4GsZkPfclFxDdZi-urBxvQ4spopEd-kMl03Kf5ffldGIhjo9GMhK7srXyO6rtRuUeb0eGT8HqBb2VSwffUOdHbzexKflW9n9uOJFCU8VArl-qE1gET03FI6/s320/2012-07-25+18.43.45.jpg" width="320" /></a></div>
<br />
Wired up with some particularly hideous dead-bugging, here is how it looks:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggVmsEZpDt12jwi30WBsVS0GQLwNhhjwF3nXLbEGLEVLs_44psKAVepXT3KX0Qb4xZA8luAV6Ou8M9T47YjyvqmM8hSiq4DOszgxOXBeceXq7I_I0-0FRAJhjluwW9xGgdudLLcBYViGY_/s1600/2012-07-27+17.48.30.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggVmsEZpDt12jwi30WBsVS0GQLwNhhjwF3nXLbEGLEVLs_44psKAVepXT3KX0Qb4xZA8luAV6Ou8M9T47YjyvqmM8hSiq4DOszgxOXBeceXq7I_I0-0FRAJhjluwW9xGgdudLLcBYViGY_/s320/2012-07-27+17.48.30.jpg" width="240" /></a></div>
<br />
And the other controller, wired to the same Arduino:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYxIL9c64LByXAQCopb1rtdSazB5g4nebz3wF3FiLf-goqTqgRp1Voad3IyNvAkdpqjInjeWOSlJInyPGuZNg0GMH2abBUfkKvfJwA2-5yehCeFj9cnHHmXYpN8Uqzcwwj6428fbaeUF4Q/s1600/2012-07-27+17.49.12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYxIL9c64LByXAQCopb1rtdSazB5g4nebz3wF3FiLf-goqTqgRp1Voad3IyNvAkdpqjInjeWOSlJInyPGuZNg0GMH2abBUfkKvfJwA2-5yehCeFj9cnHHmXYpN8Uqzcwwj6428fbaeUF4Q/s320/2012-07-27+17.49.12.jpg" width="240" /></a></div>
<br />
A few other details, too -- I wired the computer's power switch to a little pushbutton hidden beneath the chassis where the old power switch used to be. I also stripped apart a pair of crappy computer speakers and wired the amplifier to the original two speakers in the chassis, and powered the amplifier from the computer's 12V supply so that the amplifier powers on and off with the computer.<br />
<br />
<b>The Results</b><br />
<br />
So it's time to come clean: I didn't make this into a MAME arcade cabinet. I wrote a small game. With apologies:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/4pZ70teW678?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
The music is courtesy of <a href="http://freemusicarchive.org/music/Mister_Beep/">Mister Beep via the Free Music Archive</a>; some of the images used in the game are from NASA's public domain photo archive.<br />
<br />
I still have a couple of things to do: Challenger-themed artwork on the front and side panels, and of course attaching the coin box (though I will of course never run this for profit). <br />
<br />
The game is written in C++ using the <a href="http://www.libsdl.org/">SDL</a> graphics library. The graphics are intentionally chunky to fit the 1980s esthetic -- SDL is capable of much more. All of this is of course free and open source software.<br />
<br />
If anyone is interested I can describe the game software, Arduino interface to the control panels, or anything else.<br />
<br />
I'm hoping to exhibit this as part of the <a href="http://www.eastsideculturecrawl.com/">East Side Culture Crawl</a> this winter...<br />
<br />
<i>(Yes, I know this is awful. The space program is one of humanity's highest achievements and the Challenger explosion was a tragedy. But I made it anyway. It's not the worst game out there -- *that* 1982 piece of excrement is something I won't even link to.)</i><br />
<br />
Edit: I've posted a <a href="http://freegeekvancouver.blogspot.ca/2012/08/ill-advised-video-game-how-why.html">follow-up</a> addressing some of the fuss over at Hack a Day. <i><br /></i>AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com7tag:blogger.com,1999:blog-7534060879324399856.post-90461575365903685152012-07-17T19:16:00.002-07:002012-07-17T19:16:42.841-07:00Free Geek Vancouver 2012 AGMHi all,<br />
<br />
I'm working on another project that I'm eager to describe -- but in the meantime, I've fallen behind in more or less everything else. To wit: the Free Geek Vancouver 2012 AGM is coming up on Thursday July 19th. Full details <a href="http://wiki.freegeekvancouver.org/article/AGM">here</a>.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-21645517439501172992012-05-23T05:30:00.003-07:002012-05-23T05:30:29.212-07:00Hiatus<br />
Hiatus! I'm in Paraguay for a couple of months, enjoying the methadone of Internet connections thanks to an abysmal ADSL line from the government telecom ex-monopoly.<br />
<br />
Posting will resume when I return to Vancouver, unless something nerdy catches my eye here.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-52527668062984294252012-03-31T15:56:00.000-07:002012-03-31T15:56:13.847-07:00Computer Math JokesYeah, I'm not going to get a lot of new readers with a title like that. But anyway.<br />
<br />
I was thinking about an old joke:<br />
<blockquote class="tr_bq">There are 10 kinds of people: those who understand binary and those who don't.</blockquote>...and a number of examples of number-formatting trivia came to mind.<br />
<br />
<a name='more'></a><br />
(A friend of mine pointed out that even calling our counting system "base 10" is anthropocentric. A computer would claim that we counted in base 1010, and that it was the true representative of base 10. And that would be binary-centric thinking instead of anthropocentric. But I digress. Already.)<br />
<br />
Every Java class file begins with the 4-byte hex sequence CAFEBABE. (If that's your kind of humour, fill your boots <a href="http://en.wikipedia.org/wiki/Hexspeak">here</a>.) Ha ha ha, Sun.<br />
<br />
Every PCI device (such as disk drive controllers, video cards, USB controllers, and a host of other devices in a typical computer) is identified by a combination of two codes called the PCI ID. The first code identifies the manufacturer, and the second corresponds to a particular product from that manufacturer. Intel's manufacturer code is 8086, an homage to <a href="http://en.wikipedia.org/wiki/Intel_8086">the chip that helped put them at the forefront</a> back in the late 1970s. Ha ha ha, Intel.<br />
<br />
There are several ways of encoding text on a computer, and sometimes systems disagree on what system they should be using. You may have seen this happen on the web where accented characters (like é) turn into comic-book swearwords (like é). Apparently the Russian post office <a href="http://www.futilitycloset.com/2012/02/09/post-haste/">managed to figure out</a> an address written entirely in garbled encodings:<br />
<a href="http://www.blogger.com/goog_1168279676"><br />
</a><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.futilitycloset.com/2012/02/09/post-haste/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="254" src="http://www.futilitycloset.com/wp-content/uploads/2012/02/2012-02-09-poste-haste-1.jpg" width="320" /></a></div><br />
And of course, there's a classic literary reference at the heart of every computer. Any multi-byte data (commonly numbers beyond the range of a single byte's 0 to 255 or -127 to 128) can be broken into individual bytes in two ways: either big-endian, with the most significant byte first, or little-endian, with the least significant byte first. (To put it in more comprehensible but less exact terms, think about writing a number on a page. We write the most significant digit first, i.e. one thousand is 1000. If we were little-endian, we'd write 0001.)<br />
<br />
The names "big-endian" and "little-endian" come from Jonathan Swift's "Gulliver's Travels" -- most famous of course for its endlessly-lampooned bit with <a href="http://www.youtube.com/watch?v=swhep7_jkeY">a giant being tied down with string by tiny people.</a> That was during his trip to the land of Lilliput. Another subplot in the same land involved a civil war over which of end a boiled egg should be cracked with a spoon -- big or small.<br />
<br />
Swift was satirizing the English conflict between Catholic (big-endian) and Protestant (little-endian) religions. So maybe that's why Apple people and PC people traditionally get along so poorly: historically, <a href="http://en.wikipedia.org/wiki/Endianness#Endianness_and_hardware">Apples are Catholic; PCs are Protestant</a>.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com1tag:blogger.com,1999:blog-7534060879324399856.post-5117755911376344922012-03-09T00:01:00.000-08:002012-03-09T00:01:51.468-08:00Powerbook SlaughterA couple of Powerbooks were kicking around so without further ado I slaughtered them. I suppose that means this is snuff photography:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzP2yhIpT_XUOa_j-jLyB5fGiOH4e_kmGvAmQgS8LlL5KfyUNmzoqAlXFZggnnT_k8Qqd6EUAlz3zL2uC_sKi4tUzAMp35LpueRsRl6y4gOOUk1P3QrHtT2jb-U43gcM98kanbkU1F3zjd/s1600/IMG_7020.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzP2yhIpT_XUOa_j-jLyB5fGiOH4e_kmGvAmQgS8LlL5KfyUNmzoqAlXFZggnnT_k8Qqd6EUAlz3zL2uC_sKi4tUzAMp35LpueRsRl6y4gOOUk1P3QrHtT2jb-U43gcM98kanbkU1F3zjd/s320/IMG_7020.JPG" width="320" /></a></div><br />
<a name='more'></a>This is the first of the two I dispatched today, and I noticed afterward that someone stashed another one in a corner; I left that one alone. If I dismantled your future pride and joy from the past, I do apologize, but old laptops are dangerous things to leave around these parts.<br />
<br />
I never had much to do with Powerbooks. They were the laptops that the irritating rich older siblings of irritating rich kids had when I was growing up and I was busy with <a href="http://www.computinghistory.org.uk/det/4435/Toshiba-T3200/">hand-me-down IBM knockoffs</a> at the time. But in the early 1990s -- starting with the Powerbook <a href="http://en.wikipedia.org/wiki/PowerBook_100">100</a>, <a href="http://en.wikipedia.org/wiki/PowerBook_140">140</a>, and <a href="http://en.wikipedia.org/wiki/PowerBook_170">170</a> in 1991 -- Apple was really breaking new ground in the still-young laptop market. They beat the <a href="http://oldcomputers.net/ibm-thinkpad.html">original IBM Thinkpad</a> to market by a year. The newly-christened Powerbooks certainly looked a lot more like a modern laptop than <a href="http://oldcomputers.net/zenith-minisport.html">other contemporaries</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIS4-sFXUbzUIcnMOFsCO3AYIRCSFLHui5PW2oc4zEkJ7LKWXRVGHYt9Kk3iZUZSkIhMLjMM2J8lCWda27AyIvAB4v6o_btgcOsMsLA6vj4zDhyFTXDumlh1a4DjtBgMIzfTf-hvIGFbyj/s1600/IMG_7021.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIS4-sFXUbzUIcnMOFsCO3AYIRCSFLHui5PW2oc4zEkJ7LKWXRVGHYt9Kk3iZUZSkIhMLjMM2J8lCWda27AyIvAB4v6o_btgcOsMsLA6vj4zDhyFTXDumlh1a4DjtBgMIzfTf-hvIGFbyj/s320/IMG_7021.JPG" width="320" /></a></div><br />
On the dissection table today is a <a href="http://en.wikipedia.org/wiki/PowerBook_180">180</a>, which replaced the top-of-the-line 170 in 1992. Someone must've really cleared out their wallet for this -- the list price was $3870USD, which would be around $6300 today. A cracked LCD is what did this one in.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUNw52x_9Kb3uMnKBj8rgG-_jatu0BJZsctwE9BX-Le9snlu7NRLtuqb08sbmG7nxS5MvvQofbIIhQE6BSqfWUwAS3U-xaqM71QNLV55LZmCHbGYWvQBRmpZOeV0fNnHAlCB-tj6tB_CPn/s1600/IMG_7022.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUNw52x_9Kb3uMnKBj8rgG-_jatu0BJZsctwE9BX-Le9snlu7NRLtuqb08sbmG7nxS5MvvQofbIIhQE6BSqfWUwAS3U-xaqM71QNLV55LZmCHbGYWvQBRmpZOeV0fNnHAlCB-tj6tB_CPn/s320/IMG_7022.JPG" width="320" /></a></div><br />
<br />
<br />
Well, enough standing around talking. Scalpels out. Or Torx screwdrivers, as the case may be; Apple hadn't started using <a href="http://news.cnet.com/8301-17938_105-20029088-1.html">stupid tamper-proof screws</a> yet. After removing the Torx screws on the bottom -- and pesky little one on the back -- the machine splits in half pretty easily.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHCpYtXRB7yZDCh4BPOoSMs8RBL1SlzpFGSabJhgk5kjfz66AAjmNPS1Rf8g_SojHX4VnPoCMw8G9njajeMpmAtz1zYoOJSz-5D9zO1QugykwqDzL3kF2poUjYwGrN2HzW32yUgghL8UFB/s1600/IMG_7026.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHCpYtXRB7yZDCh4BPOoSMs8RBL1SlzpFGSabJhgk5kjfz66AAjmNPS1Rf8g_SojHX4VnPoCMw8G9njajeMpmAtz1zYoOJSz-5D9zO1QugykwqDzL3kF2poUjYwGrN2HzW32yUgghL8UFB/s320/IMG_7026.JPG" width="320" /></a></div><br />
The battery, if installed, would sit in the lower-left corner. The bottom right unit is the hard drive, and above that is the large silver floppy drive. On the top left is the RAM card. Once removed, it looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-E_hofbgVpsPBjFTVgiEklwYzby1Kq7nsXX01fGwZ-0dxhKAtx5Uvr2U4KiyIhiRj2QKdI6arZtPjQoKBO-_N92CtutAkMKkeWK64w11660dTRlwusMgzXSMLqa89Md4OWCbuHJxBvZCA/s1600/IMG_7032.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-E_hofbgVpsPBjFTVgiEklwYzby1Kq7nsXX01fGwZ-0dxhKAtx5Uvr2U4KiyIhiRj2QKdI6arZtPjQoKBO-_N92CtutAkMKkeWK64w11660dTRlwusMgzXSMLqa89Md4OWCbuHJxBvZCA/s320/IMG_7032.JPG" width="320" /></a></div><br />
This is probably the lowest capacity RAM card available for the machine; as you can see, there are empty spots where additional chips would be soldered for a higher-capacity card. It's cheaper for them to manufacture a single board and install various numbers of chips than to design and manufacture specific boards for each capacity.<br />
<br />
The motherboard is in two separate units. The top board appears to carry all the expensive parts, including the CPU (the bottom-right chip, I believe, which would be a 33MHz Motorola 68030):<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigDgl-V0mDFZURn5ElL9fC8g9bNGy56PrwU4CwWCD0xOYVBfZkagmQ7yjNIrYLNVxi-3FyeUp-IYpzHGYbTGvEO-I8WMhdLdFP3mD0E_LWcwkGMet4dBh0zxIUTDcD99a0itn0vQxcy6xZ/s1600/IMG_7034.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigDgl-V0mDFZURn5ElL9fC8g9bNGy56PrwU4CwWCD0xOYVBfZkagmQ7yjNIrYLNVxi-3FyeUp-IYpzHGYbTGvEO-I8WMhdLdFP3mD0E_LWcwkGMet4dBh0zxIUTDcD99a0itn0vQxcy6xZ/s320/IMG_7034.JPG" width="320" /></a></div><br />
...and, on the underside, the math co-processor, a Motorola 68888, which is part of what distinguished this model from lower-end options.<br />
<br />
The second half of the motherboard contains I/O controllers, power hardware, and an assortment of other details.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkZeAkZIrxhNK-jtcVh3-P3cRZt6xg33bDCKOdCKz4yW9a5_DBuIDroNnYEwhS7wgxu9tWPmFm6OQBfq2YuANnxSNxfwwsimY0azhYgZxwok3l-mw0AUN-DhYdNPQJfFWKCqBjmt2tC0Za/s1600/IMG_7037.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkZeAkZIrxhNK-jtcVh3-P3cRZt6xg33bDCKOdCKz4yW9a5_DBuIDroNnYEwhS7wgxu9tWPmFm6OQBfq2YuANnxSNxfwwsimY0azhYgZxwok3l-mw0AUN-DhYdNPQJfFWKCqBjmt2tC0Za/s320/IMG_7037.JPG" width="320" /></a></div><br />
I'm speculating here, but I'd guess that 1) this second board is meant to act as a cheaper first line of defense against damage to the more expensive processor board, since damage often comes from broken jacks, malfunctioning peripherals, or power surges, and possibly 2) this board might be the same across the model line, meaning that they didn't have to manufacture a separate board for each.<br />
<br />
You might notice the AMD chip towards the right-hand side; it's an AM85C80 SCSI controller, which provides the interface with the hard drive. (Macintosh succeeds as usual at using the most expensive option available.) AMD was at the time (and ever since) in bitter warfare with Intel in the microprocessor field; not only is it here coexisting in a system with a Motorola processor (another competitor) but if we look a little further down the wire to the hard drive we find this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX7cwQUS6APPViH1KtYQEydEEEG8Cdu0jSWndzve0xKhyphenhyphenZqqbgLpvdneGeHruyrVcYuKmxn3OkUBJqmATj0Xh000lNwODSMvhRTsUjmq5KNBu2S7F5rgZvDRnPbMr_lYTE7qRvasleLGiK/s1600/IMG_7043.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX7cwQUS6APPViH1KtYQEydEEEG8Cdu0jSWndzve0xKhyphenhyphenZqqbgLpvdneGeHruyrVcYuKmxn3OkUBJqmATj0Xh000lNwODSMvhRTsUjmq5KNBu2S7F5rgZvDRnPbMr_lYTE7qRvasleLGiK/s320/IMG_7043.JPG" width="240" /></a></div><br />
Yup, it's an IBM -- hardly a friend to Apple from the consumer's perspective. But this is typical of computer manufacturing; IBM, Motorola, Intel, and AMD all have such enormous variety in their sphere of operations that while it might appear that they're arch-rivals to the consumer there is often a lot of cooperation between them at lower levels.<br />
<br />
<br />
So it's hard to argue that this wasn't a worthy machine, though priced at the ceiling of the market. In 1992 much of the world was still pretty boggled at the idea of a graphical interface with a mouse, and separately at the idea of a truly portable computer. Here was one of the first successful combinations of both ideas. Apple and others had tried before -- see for example the valiant, awkward <a href="http://oldcomputers.net/macportable.html">Macintosh Portable</a> -- but this is one of the first machines to really get it right. They sacrificed nothing in the process (except colour, perhaps, which was shortly to arrive in the 180c) and the price reflects it.<br />
<br />
One final picture of me stepping on the computer. Not because I don't like it, but because it usually gets the Apple people really fired up.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTuRhdJxLlC8-xyUUEeBwcjYXmMxDAJkgeG1fjfS2-SE1-PiANQEYTdsfnYwWVhZYvL7gWGVAumGASbweIfo1xREEuhbKKNYuLgeHJfAaQnZnswOvD1MX_1KAtdw7jp0mVF8OJUujeIX2/s1600/IMG_7049.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTuRhdJxLlC8-xyUUEeBwcjYXmMxDAJkgeG1fjfS2-SE1-PiANQEYTdsfnYwWVhZYvL7gWGVAumGASbweIfo1xREEuhbKKNYuLgeHJfAaQnZnswOvD1MX_1KAtdw7jp0mVF8OJUujeIX2/s320/IMG_7049.JPG" width="320" /></a></div>AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com1tag:blogger.com,1999:blog-7534060879324399856.post-84253181770777845472012-02-26T20:10:00.000-08:002012-02-26T20:10:15.238-08:00Don't say you weren't warned...<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwZXawAdrFm9w4TMs3vnZIwyd-cCUk-0RrkBRqWrYKry-bT8uvHxP9yUpmw1h8EiWxVYyD_hH9Jxx2Kb2Y49A' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com3tag:blogger.com,1999:blog-7534060879324399856.post-62366937286362770822012-02-22T00:04:00.001-08:002012-02-22T00:05:41.542-08:00Addendum to Bucky TV: the source codeI've had a couple of requests to post the source code for the <a href="http://freegeekvancouver.blogspot.com/2012/02/dymaxion-auto-matic-buckminster-fuller.html">Dymaxion Auto-Matic Buckminster Fuller</a>, so here's a quick follow-up. Hey, it's probably the most effective backup mechanism I've used recently.<br />
<br />
<a name='more'></a><br />
There are a few separate programs. The majority of the work was in the code to generate the Markov chain content. This was split into two parts -- the content was partially digested on my desktop computer so that the demands on the Arduino CPU could be minimized.<br />
<br />
First the code to digest the text input:<br />
<blockquote class="tr_bq"><pre><span style="font-size: x-small;"><?php
/**
* This script takes input from stdin and uses it to generate a set of tables
* that can be used to efficiently produce Markov chain output.
*
* It produces three tables, all stored contiguously in the same binary file:
* - Words. Each word is a fixed-length string, presented in order of word ID.
* For example, if the longest word is 20 characters, word ID 10 will be
* found in the file between bytes 200 and 219. Null terminators are not
* included but shorter words are padded up to size using nulls.
* - Keys. Each key represents a specific sequence of $n (only tested with 2)
* words. For example, "is a" is a single key and the its key ID is used to
* represent all occurrences of "is a" in the text. Each key entry contains
* two little-endian 16-bit integers representing, respectively, the first
* and last option IDs that can follow this key. Keys are organized in
* sequence, starting with key ID 0, and each key entry is 4 bytes long; thus
* it is possible to find a key entry from its ID by calculating the offset
* from the end of the Words table.
* - Options. Each option represents a possible word that can follow a given
* sequence of words (key). For example, the key "is a" may have option
* entries that refer to the words "housecat", "newsworthy", "limp", and
* "limp", if the input text contained the phrases "is a housecat", "is a
* newsworthy", and "is a limp" (the last appearing twice). Each option
* entry contains two little-endian 16-bit integers representing,
* respectively, the word ID for this option, and the key ID to use in the
* next iteration. (If one of the two "limp" options is chosen randomly,
* the word ID will refer to the single word entry for "limp" and the key ID
* will refer to the single key entry for "a limp", which can then be used
* to repeat the process for the next word.)
*
* Written by Alec Smecher. Please include a thank-you if you use this code
* for anything. Distributed under the GNU GPLv2 license.
*/
// Consider a "history" of 2 words when pondering what next to say. This has
// not been tested with n <> 2; you'll at least have to modify the content
// generator.
$n = 2;
// $history stores the history as an array of word IDs. Initialize it.
$history = array_fill(0, $n, null);
// Keep a few simple statistics
$maxWordLength = $maxKeyLength = 0;
// Initialize the tables that hold the bulk of the data.
$words = array(); // word => wordIndex (inverted index)
$keys = array(); // key => keyIndex (inverted index)
$options = array(); // optionIndex => array(...option data...)
$in = fopen('php://stdin', 'r');
while (($l = fgets($in)) !== false) {
foreach (explode(' ', $l) as $word) {
// Find the word index in the $words list, creating it if needed
if (!isset($words[$word])) {
$wordIndex = count($words);
$words[$word] = $wordIndex;
} else {
$wordIndex = $words[$word];
}
// Keep track of the longest word length
$maxWordLength = max($maxWordLength, strlen($word));
// Build the history into a string key
$key = join($history, ' ');
// Find the key index in the $keys list, creating it if needed
if (!isset($keys[$key])) {
$keyIndex = count($keys);
$keys[$key] = $keyIndex;
$maxKeyLength = max($maxKeyLength, strlen($key));
} else {
$keyIndex = $keys[$key];
}
// Store this key index as the next key index from the last iteration.
// This is funky reference stuff.
$someKeyIndex = $keyIndex;
unset($someKeyIndex); // Clear the reference
// Maintain the $options list.
$someKeyIndex = 0; // We will back-fill this in the next iteration.
$options[] = array(
'wordIndex' => $wordIndex,
'thisKeyIndex' => $keyIndex,
'nextKeyIndex' => &$someKeyIndex // by reference
);
// Shift the history along for the next iteration.
for ($i=1; $i<$n; $i++) {
$history[$i-1] = $history[$i];
}
$history[$n-1] = $wordIndex;
}
}
fclose($in);
// Use stderr for helpful output
$stderr = fopen('php://stderr', 'w');
// We've generated the tables. Now present some statistics.
fputs($stderr, 'Number of words: ' . count($words) . "\n");
fputs($stderr, 'Number of keys: ' . count($keys) . "\n");
fputs($stderr, "Maximum word length: $maxWordLength\n");
fputs($stderr, "Number of options: " . count($options) . "\n");
// Sort the options array by current key. This will mean the
// options table will contain contiguous blocks each containing all the options
// for each key.
usort($options, create_function('$a, $b', 'return $b[\'thisKeyIndex\']-$a[\'thisKeyIndex\'];'));
// Find out the first and last option IDs for each key.
$keyFirstOptions = $keyLastOptions = array();
$lastKeyId = null;
foreach ($options as $optionId => $option) {
if ($lastKeyId != $option['thisKeyIndex']) {
$keyFirstOptions[$option['thisKeyIndex']] = $optionId;
$lastKeyId = $option['thisKeyIndex'];
}
$keyLastOptions[$option['thisKeyIndex']] = $optionId;
}
// The tables are all generated. Start saving the output to a file.
$out = fopen('markovchain.bin', 'w');
// 1. Write out the table of words. This can later be looked up starting at bytes [index * maxWordLength]
foreach ($words as $word => $wordIndex) {
fputs($out, pack('a' . $maxWordLength, $word));
}
$wordTableEnds = ftell($out);
fputs($stderr, 'Word table: 0 - ' . ($wordTableEnds-1) . " bytes\n");
// 2. Write out the key index.
foreach ($keys as $key => $keyIndex) {
// Find and store the first and last occurrences of the key in the option set.
fputs($out, pack('v', $keyFirstOptions[$keyIndex]));
fputs($out, pack('v', $keyLastOptions[$keyIndex]));
}
$keyTableEnds = ftell($out);
fputs($stderr, "Key table: $wordTableEnds - " . ($keyTableEnds-1) . " bytes\n");
// 3. Write out the options.
foreach ($options as $optionData) {
fputs($out, pack('v', $optionData['wordIndex']));
fputs($out, pack('v', $optionData['nextKeyIndex']));
}
$optionTableEnds = ftell($out);
fputs($stderr, "Option table: $keyTableEnds - " . ($optionTableEnds-1) . " bytes\n\n");
// Done writing output.
fclose($out);
// Display some constants that will need to be imported into the Arduino C code
// or PHP test program.
fputs($stderr, "Constants for C/C++:\n");
fputs($stderr, "#define WORDS_OFFSET 0\n");
fputs($stderr, "#define KEYS_OFFSET $wordTableEnds\n");
fputs($stderr, "#define OPTIONS_OFFSET $keyTableEnds\n");
fputs($stderr, "#define MAX_WORD_LENGTH $maxWordLength\n\n");
fputs($stderr, "Constants for PHP:\n");
fputs($stderr, "define('WORDS_OFFSET', 0);\n");
fputs($stderr, "define('KEYS_OFFSET', $wordTableEnds);\n");
fputs($stderr, "define('OPTIONS_OFFSET', $keyTableEnds);\n");
fputs($stderr, "define('MAX_WORD_LENGTH', $maxWordLength);\n\n");
// Clean up
fclose($stderr);
?>
</span></pre></blockquote><br />
Now a quick PHP test implementation to use the resulting table to generate new text:<br />
<blockquote class="tr_bq"><pre><span style="font-size: x-small;">
<?php
/**
* Generate Markov chain output until forcibly stopped.
* This takes a set of data from markovchain.bin, which can be generated
* using the gentables.php script.
*
* Written by Alec Smecher. Please include a thank-you if you use this code
* for anything. Distributed under the GNU GPLv2 license.
*/
// These constants need to correspond to those given by gentables.php
define('WORDS_OFFSET', 0);
define('KEYS_OFFSET', 92600);
define('OPTIONS_OFFSET', 162100);
define('MAX_WORD_LENGTH', 20);
($fp = fopen('markovchain.bin', 'rb')) || die("Unable to open markovchain.bin; did you generate it?\n");
$keyId = 0; // Start at the beginning. (Where else?)
while (true) {
// Get the information for the current key.
fseek($fp, KEYS_OFFSET + ($keyId * 4));
extract(unpack('vfirstOptionId/vlastOptionId', fread($fp, 4)));
// From the options available for this key, choose one.
$optionId = rand($firstOptionId, $lastOptionId);
// Get the information for the chosen option (including the next key).
fseek($fp, OPTIONS_OFFSET + ($optionId * 4));
extract(unpack('vwordId/vkeyId', fread($fp, 4)));
// Display the word we just chose.
fseek($fp, WORDS_OFFSET + ($wordId * MAX_WORD_LENGTH));
echo trim(fread($fp, MAX_WORD_LENGTH)) . ' ';
}
fclose($fp);
?>
</span></pre></blockquote>Just the length of the two listings should give some impression of how much work is saved on the Arduino side of things by pre-computing the tables.<br />
<br />
Now the Arduino implementation, including both the TVout code and the Markov chain code.<br />
<blockquote class="tr_bq"><pre><span style="font-size: x-small;">
// Arduino code for the Dymaxion Auto-Matic Buckminster Fuller.
// Written by Alec Smecher. Please include a thank-you if you use this code
// for anything. Distributed under the GNU GPLv2 license.
// SD stuff
#include "Sd2PinMap.h"
#include "SdInfo.h"
#include "Sd2Card.h"
#define BLOCKSIZE 512
int CS_pin = 10; // Chip Select pin for the SD interface
Sd2Card c;
// TVOut stuff
#include <TVout.h>
#include "font6x4.h" // This is the rotated font
TVout TV;
// Markov constants from the gentables.php script
#define WORDS_OFFSET 0
#define KEYS_OFFSET 92600
#define OPTIONS_OFFSET 162100
#define MAX_WORD_LENGTH 20
// Buffers / useful runtime stuff
unsigned int keyId = 0;
char thisWord[MAX_WORD_LENGTH+1]; // +1 for null termination of longest word
// Cursor coordinates
unsigned char curx = 0, cury = 0;
// Print a character on the rotated display with a delay effect.
char print_c(char c) {
// Translate cursor position into rotated coordinates and print
TV.print_char((cury+1)*8, 72-(curx*8), c);
// Fake a typing-speed effect by delaying between characters
delay(random(200) + 200);
curx++; // Move the cursor along
if (curx>9) { // If the cursor is too far along...
curx=0; // reset it to the left and
cury++; // move the cursor down.
if (cury>11) { If the cursor is off the bottom of the screen,
cury=11; // move it back to the last row
TV.shift(8, LEFT); // and shift the contents of the display "up"
}
}
return c;
}
// Display a string on the rotated display with a delay effect.
void print_s(char *s) {
char c;
while (c = *s++) {
print_c(c);
}
}
void setup() {
// Prepare the TV display
TV.begin(NTSC,120,96);
TV.select_font(font6x4);
// Prepare the SD interface
pinMode(CS_pin, OUTPUT);
c.init(SPI_HALF_SPEED, CS_pin);
// Useful for debugging
Serial.begin(9600);
// Seed the random number generator
randomSeed(analogRead(0));
// Null-terminate thisWord (just in case we hit the longest word).
memset(thisWord, 0, MAX_WORD_LENGTH+1);
}
// Helper function to read a chunk of data off the SD card
void getData(Sd2Card *card, unsigned long o, char *s, unsigned int n) {
card->readData(o / BLOCKSIZE, o % BLOCKSIZE, n, (uint8_t *) s);
}
void loop() {
unsigned int numbers[2]; // Scratch pad
// Read from the keys table.
getData(&c, KEYS_OFFSET + (keyId * 4), (char *) numbers, sizeof(numbers));
// Option ids from numbers[0] to numbers[1] are available. Choose one.
unsigned int optionId = random(numbers[1] - numbers[0] + 1) + numbers[0];
// Read from the options table.
getData(&c, OPTIONS_OFFSET + (optionId * 4), (char *) numbers, sizeof(numbers));
// Numbers now contains wordId, keyId.
keyId = numbers[1]; // Store key ID for next loop
// Read the word we've selected and display it. (Both serial and TV.)
getData(&c, WORDS_OFFSET + (numbers[0] * MAX_WORD_LENGTH), thisWord, MAX_WORD_LENGTH);
Serial.print(thisWord);
Serial.print(" ");
print_s(thisWord);
print_s(" ");
}
</span></pre></blockquote>Just for giggles, one last script -- this one used to generate the rotated font, using as its basis one of the fonts from the TVout library:<br />
<blockquote class="tr_bq"><pre><span style="font-size: x-small;">
<?php
/**
* Quick hack to rotate a TVout font. Pass in the C code via stdin and
* receive the resulting C code on stdout.
* Written by Alec Smecher. Please include a thank-you if you use this code
* for anything. Distributed under the GNU GPLv2 license.
*/
$in = fopen('php://stdin', 'r');
$out = fopen('php://stdout', 'w');
$pixbuf = array();
while (($l = fgets($in)) !== false) {
// Watch for lines containing only "0b........"
if (preg_match('/^\w*0b(.*),$/', trim($l), $matches)) {
$pixbuf[] = $matches[1];
} else {
// If we hit a line that doesn't match, rotate and dump what
// we have in the pixel buffer.
if (!empty($pixbuf)) {
for ($i=strlen($pixbuf[0])-1; $i>=0; $i--) {
fputs($out, "0b");
for ($j=0; $j<count($pixbuf); $j++) {
fputs($out, $pixbuf[$j][$i]);
}
fputs($out, "00,\n");
}
$pixbuf = array();
}
fputs($out, $l);
}
}
fclose($in);
fclose($out);
?>
</span></pre></blockquote>Forgive the lack of pretty-printing and happy hacking!AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com0tag:blogger.com,1999:blog-7534060879324399856.post-1298521967430471592012-02-20T22:50:00.001-08:002012-02-22T00:06:25.837-08:00Dymaxion Auto-Matic Buckminster FullerThis ought to lay to rest the persistent ugly rumours that everything I make is somehow useful.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq2e77Tb77qgzYq2o7SHlr9kq-CFzOWWjdHtnxTezxeA_nF105-_4usv4KSqMrGYzymFi0P2PJZWnEKTZ-RG2OeT_yTpyy_Tj5rcMWsVsvu3dh4r51kSwMjfMBIMfgf2baMelcs0deXrXV/s1600/IMG_6978.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq2e77Tb77qgzYq2o7SHlr9kq-CFzOWWjdHtnxTezxeA_nF105-_4usv4KSqMrGYzymFi0P2PJZWnEKTZ-RG2OeT_yTpyy_Tj5rcMWsVsvu3dh4r51kSwMjfMBIMfgf2baMelcs0deXrXV/s320/IMG_6978.JPG" width="320" /></a></div><br />
Presenting the Dymaxion Auto-Matic Buckminster Fuller. It's a retro-futuristic black and white screen mounted into a 1950s (or so) radio chassis, which generates and displays text that American luminary R. Buckminster Fuller might have said if he were a piece of software.<br />
<br />
<a name='more'></a><b>The Basic Ingredients </b><br />
<br />
The genesis of this project is difficult to explain. In thrift stores or back alleys or Free Geek I'll come across something that catches my eye, take it home, and let it incubate until some other piece of junk marches into my brain and sets up shop alongside. This might be months or years later. As you can probably imagine, this makes my apartment a dangerous place to walk around with the lights off.<br />
<br />
<br />
For this project: the first piece I got was the radio. I purchased it dead several years ago, gutted it, and threw it into a closet. It was briefly part of an abortive attempt to make yet another mp3 player, then spent another year in the closet.<br />
<br />
What really kicked this project into gear was the arrival of Coleman's worst piece of camping equipment ever. I found it at Popeye's Sailors Exchange -- a venerable marine junk shop in North Vancouver. (It appears that they used to have a website at <a href="http://www.popeyesailorsexchange.com/">www.popeyesailorsexchange.com</a> but have since moved it to <a href="http://www.popeyescatalogshop.com/">www.popeyescatalogshop.com</a> -- see if you can figure out why.)<br />
<br />
Coleman's story is a little bit like that of Radio Shack. Coleman used to make half-decent camping gear -- stoves, tents, etc. -- as Radio Shack used to be a reputable electronics shop. In the 1990s each declined sharply. Radio Shack turned from the proud Tandy dealer and HAM radio operator favourite into the awful plastic-toy wasteland of recent memory. Coleman got into weird gimmicky camping gear that was generally fine as long as you didn't take it outside or get it wet. When I saw this at Popeye's I knew I was looking at Coleman's <a href="http://en.wikipedia.org/wiki/Edsel">Edsel</a> moment.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSkWw0mVfsbpCl7uToDMpxQML8JhyNP1gQUOgh-cKMC-4sFSZjWjW7_4yt17TqUPIRoGaPk_GHx-1nirUQmfYJM8Oh18MIfixF6HyW3dc02ZD8HlhW8vbW8u840tOdqUxEaKBwSMlkpyN/s1600/coleman.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSkWw0mVfsbpCl7uToDMpxQML8JhyNP1gQUOgh-cKMC-4sFSZjWjW7_4yt17TqUPIRoGaPk_GHx-1nirUQmfYJM8Oh18MIfixF6HyW3dc02ZD8HlhW8vbW8u840tOdqUxEaKBwSMlkpyN/s320/coleman.jpg" width="240" /></a></div><br />
This is a three-mode torch, an AM/FM radio, an emergency weather radio, and a black and white television. Around the back it has two additional fluorescent tubes that can be positioned like slug antennae. It contains a battery pack and can also be powered from a cigarette lighter or domestic power. Witness the convenient shoulder strap allowing the fetching model to hike over hill and dale without leaving the comforts of civilization behind. I hope that one day a horror movie will be filmed that features this monstrosity in the obligatory unreliable-flashlight scene.<br />
<br />
This television screen roughly matched the dimensions of the radio chassis' tuning gauge. At this point I had enough to start working.<br />
<br />
<b>Mounting the Screen</b><br />
<br />
I took the television monstrosity home and gutted it. Here is what I saved:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6OMSPyRqsno-fkKP9Ikyki1I4DPVjKdgdwwfMH7-lfJ85Y51JUlw4uzS6fkSRr8yEthgz1WoQBQM5VzVacLRY2FH9tTcCOGSm4qtL2SL-77vlqPRVxnJtuPygPJZiSjmCWqU_fHeq1xjT/s1600/IMG_5746.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6OMSPyRqsno-fkKP9Ikyki1I4DPVjKdgdwwfMH7-lfJ85Y51JUlw4uzS6fkSRr8yEthgz1WoQBQM5VzVacLRY2FH9tTcCOGSm4qtL2SL-77vlqPRVxnJtuPygPJZiSjmCWqU_fHeq1xjT/s320/IMG_5746.JPG" width="320" /></a></div><br />
<br />
...and here is what I chucked...<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJcEkL6fkyViWMrNpZQXZI6zZY7KNWkL0B1omiCvM2yC3QXoe5XvDL6E-1WgDQ_B-5wXKAZGK1oofsDwpGYC6k6IQ8WFFEiWct74a_vkH10VfRAihzaUW66ZLOOWy-N5qRdLobz74qfD7L/s1600/IMG_5750.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJcEkL6fkyViWMrNpZQXZI6zZY7KNWkL0B1omiCvM2yC3QXoe5XvDL6E-1WgDQ_B-5wXKAZGK1oofsDwpGYC6k6IQ8WFFEiWct74a_vkH10VfRAihzaUW66ZLOOWy-N5qRdLobz74qfD7L/s320/IMG_5750.JPG" width="240" /></a></div><br />
In order to get the screen to fit the radio chassis, I had to do some drilling of some of the internal chassis structure:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEsmpmrgTrut0eutx-32k16nclituVCM09A-JTBZCS04T3uoGTTfjxSyHvBSsFTaRtiAesaeBw4TJJF_UpbT5i_FxtOmkmx6wF-p3XJgPflyfpnkJxDhCimaQ5C9r8K8Zmb6wiDIpsybiN/s1600/IMG_5889.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEsmpmrgTrut0eutx-32k16nclituVCM09A-JTBZCS04T3uoGTTfjxSyHvBSsFTaRtiAesaeBw4TJJF_UpbT5i_FxtOmkmx6wF-p3XJgPflyfpnkJxDhCimaQ5C9r8K8Zmb6wiDIpsybiN/s320/IMG_5889.JPG" width="320" /></a></div><br />
Notice the paperclips positioned in three corners of the cutaway. I epoxied the paperclips down, then epoxied some cotton fiber over top of the paperclips to give them additional strength where they met the chassis. This allowed me to mount the CRT securely to the chassis without having to drill holes through the exterior. I used this technique numerous times in this project with a lot of success. Here it is with the CRT in:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzoyaCfCDjERxwLUniHPJLqYxQQMHgKOVF8Ih-8jwF3HML12sJNVftYGWdjWSUHpBLsWpMUplwYfq4NWNOXkG__lB7S9Wz9tbkv3siZ0tIvm7MtTrCRzttSFZ8_oxm0lGaqR9KMke3pMCE/s1600/IMG_5891.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzoyaCfCDjERxwLUniHPJLqYxQQMHgKOVF8Ih-8jwF3HML12sJNVftYGWdjWSUHpBLsWpMUplwYfq4NWNOXkG__lB7S9Wz9tbkv3siZ0tIvm7MtTrCRzttSFZ8_oxm0lGaqR9KMke3pMCE/s320/IMG_5891.JPG" width="320" /></a></div><br />
I tensioned the corners of the CRT against the front of the chassis with twist ties. Hey, it works, and it's pretty solid. Here it is from the front:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik3_m4Imj4m36vfB3cjZ8TnwAyMqEaMf09ppSqEIngipot_nV3zXYoEzAjB4F6bqhMpZjV03w-mhHHYsf4uyTdiksz5IeH5BGSup76CqT-JmJtoBRA1pQOhcM80fGZ6nKq8PArt6CAYC-w/s1600/IMG_5894.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik3_m4Imj4m36vfB3cjZ8TnwAyMqEaMf09ppSqEIngipot_nV3zXYoEzAjB4F6bqhMpZjV03w-mhHHYsf4uyTdiksz5IeH5BGSup76CqT-JmJtoBRA1pQOhcM80fGZ6nKq8PArt6CAYC-w/s320/IMG_5894.JPG" width="320" /></a></div><br />
To get the circuit board to fit without sticking too far out the back, I had to cut the tops off the knobs:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV4tlexQl5ersA0mtlOssnpkMNj-JTV0qaNdqvXx4quA-Louzlz7cu0nEaqGI-9V3PoQaNwTe_Yhrho_DBzClI9sLyRW5gsBiyDZ43CGP5zFkh3IHoe6Eb5IilSD51kbO7NJ_ae_Fi8iAG/s1600/IMG_5921.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV4tlexQl5ersA0mtlOssnpkMNj-JTV0qaNdqvXx4quA-Louzlz7cu0nEaqGI-9V3PoQaNwTe_Yhrho_DBzClI9sLyRW5gsBiyDZ43CGP5zFkh3IHoe6Eb5IilSD51kbO7NJ_ae_Fi8iAG/s320/IMG_5921.JPG" width="320" /></a></div><br />
I also had to extend some of the wires to the CRT itself:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVkyw9oalwPm1SzTWvbnlH_kctxZMVncmG8vfpiZLJ8HughsYqOV-5rJg9TYHhpV2HH6PlJMiueHo4jPFUukDibEHFz8D4fsraP01mKqlnUZLA77GiHH_INmScTvFJGnhJijxMNPbMHp_E/s1600/IMG_5922.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVkyw9oalwPm1SzTWvbnlH_kctxZMVncmG8vfpiZLJ8HughsYqOV-5rJg9TYHhpV2HH6PlJMiueHo4jPFUukDibEHFz8D4fsraP01mKqlnUZLA77GiHH_INmScTvFJGnhJijxMNPbMHp_E/s320/IMG_5922.JPG" width="320" /></a></div><br />
So now I have a pretty cool-looking black and white television with a few quirks. First, it has no video input, so I'm limited to analog broadcasts (which I believe are going to cease even for CBC sometime this year). Second -- oh yeah -- everything is going to show up sideways, since I had to mount the screen on its side to get the proper fit.<br />
<br />
<b>Arduino Work</b><br />
<br />
<br />
The project so far has a definite style going for it -- if I'd landed a fancy colour LCD display it would've been a lot easier to mount and nicer to watch, but it would have looked incongruous in the old radio chassis. I wanted to stick with the weird retro feeling the ensemble had so far. It had a few characters from the pantheon of 20th century technology -- television and radio -- and I thought it would be interesting to add a computer to the mix. But to keep the aesthetic I wanted something with a really vintage look to it.<br />
<br />
I did some research to it and found that the <a href="http://www.arduino.cc/">Arduino</a> platform has a video output library. If you haven't come across Arduino, I'll try to explain briefly: it's the greatest success story so far of the fledgling <a href="http://en.wikipedia.org/wiki/Open-source_hardware">open hardware</a> movement. It's a small, inexpensive circuit board with a very simple computer and an assortment of input/output tools to allow it to communicate with pretty much anything -- sensors, switches, motors, etc. It's simple enough to use that it's rapidly become the most popular platform for tinkering with embedded systems. You no longer need to have a lot of electronics experience or resources at your disposal. For example, to get rudimentary video output from an Arduino, all you need is two resistors. Here's the circuit:<br />
<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="http://farm5.static.flickr.com/4087/5225072558_5f5f760037.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="102" src="http://farm5.static.flickr.com/4087/5225072558_5f5f760037.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://code.google.com/p/arduino-tvout/">http://code.google.com/p/arduino-tvout/</a></td></tr>
</tbody></table>Here's what the video output looks like:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/Ei3JZ67CUbo?feature=player_embedded' frameborder='0'></iframe></div><br />
It's chunky, it's black and white, it's like stepping 40 years back into the history of computing. Perfect! I soldered a couple of resistors together and wired up an RCA jack:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyU6JTvKET50iNOuSNy2RSJNnbMptjlz75PhkFr5KVpKiRcVeagF9iI4RLBKE9Dxhb8WuxAoIv_QSZ4je6xUVnBppl0MatB98v4APpb20er94OsIuGm6-6muuZFXetP9V4bv_H1QpYE301/s1600/IMG_5916.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyU6JTvKET50iNOuSNy2RSJNnbMptjlz75PhkFr5KVpKiRcVeagF9iI4RLBKE9Dxhb8WuxAoIv_QSZ4je6xUVnBppl0MatB98v4APpb20er94OsIuGm6-6muuZFXetP9V4bv_H1QpYE301/s320/IMG_5916.JPG" width="320" /></a></div><br />
Incidentally, a word on video control circuitry. Any modern computer has quite a bit of dedicated video hardware. The reason this two-resistor circuit is possible is because the Arduino's CPU, an Atmel <span class="wikiword">ATmega168 chip at 16MHz, has to do all the work.</span><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword">A quick word on how televisions like this one work. They draw each frame of the moving image on the screen the same way we write on a page -- from left to right for each line, gradually moving down the page. At the bottom, it jumps back up to the top left corner and starts again with the next frame. Instead of a pen, the tube has an electron gun at the back that shoots a stream of electrons through a magnetic field which aims towards a target on the surface of the screen, where they hit a coating of phosphors, causing them to illuminate. The screen is redrawn totally 60 times a second, with each of those 60 frames involving around 480 individual horizontal lines. That's a lot of waving the pen around. Luckily the Atmel chip is able to spare enough brain space to still manage a few other things while it's not actively drawing.</span><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword">As I mentioned before, the television was only designed to pick up signals from broadcast stations. To get a composite video signal into it, I picked up a modulator from Craigslist ($5); this basically acts like a miniature TV transmitter to get a signal into a TV that can't take it directly from the wire. Think of it like one of those little FM transmitters used to get music into a car stereo. Here's how it looks, shelled of its plastic case:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0QHrBgAhjb8qN2f8tFYXmN1SWEd6rZKydNiW_VWjZTnOfkrl8PHf_nr9RcAl1gzFcwepgpbVTrZXFsR-dN-Y8qdpnUl7SsAqxe48EpdbTPMagyrzHkhrY2Da2sLmWKVzHCIO47TBNjwp4/s1600/IMG_5924.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0QHrBgAhjb8qN2f8tFYXmN1SWEd6rZKydNiW_VWjZTnOfkrl8PHf_nr9RcAl1gzFcwepgpbVTrZXFsR-dN-Y8qdpnUl7SsAqxe48EpdbTPMagyrzHkhrY2Da2sLmWKVzHCIO47TBNjwp4/s320/IMG_5924.JPG" width="320" /></a></div><br />
<span class="wikiword">I hooked it all together and ran the <a href="http://code.google.com/p/arduino-tvout/">TVout</a> demo code on my Arduino -- still sideways:</span><br />
<span class="wikiword"><br />
</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRD5e1yLqgN75QWQFH9XSqRITclclbXiWJBZ8vJ42PZzCaB19Y6sT6OWBQLZqvxZaOVOi2xRx52Ymv3vnzoIyG4RUI2dNg96gf6VR361SfeXTwoFvBo33UyV2cJx78fshtmgiod0fI0Rp/s1600/IMG_5915.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCRD5e1yLqgN75QWQFH9XSqRITclclbXiWJBZ8vJ42PZzCaB19Y6sT6OWBQLZqvxZaOVOi2xRx52Ymv3vnzoIyG4RUI2dNg96gf6VR361SfeXTwoFvBo33UyV2cJx78fshtmgiod0fI0Rp/s320/IMG_5915.JPG" width="320" /></a></div><span class="wikiword"><br />
</span><br />
<span class="wikiword">You can see there's a tremendous amount of distortion due to the modulator. This didn't bother me much at first because it fit in with the retro feel.</span><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword">So now -- what to do with it?</span><br />
<span class="wikiword"><br />
</span><br />
<b><span class="wikiword">Markov Models</span></b><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword">I've been tinkering occasionally with computer-generated text. It's fun -- you give one of these algorithms a body of text to analyze, then ask it to generate more text, and off it goes blathering in a way that looks plausible at a glance but is totally incomprehensible if you try to read it. I've generated <a href="http://www.facebook.com/note.php?note_id=226592583308">new Nickelback songs</a>, for example, that are generally better (and dirtier) than the originals:</span><br />
<blockquote class="tr_bq"><span class="commentBody" data-jsid="text"></span><br />
<div class="text_exposed_root text_exposed" id="id_4f43233c0cbac7291902515">i finally know just what you know that if it goes right<br />
you'll never find out<br />
you can tamper with the pretty pink thong<br />
time to put the brakes on, doesn't matter when you never see</div></blockquote><span class="wikiword">Since I'm also due to become a father in a few months (!!!) I also tried generating some new baby names: gender mishmashes like Curtenay, Briobby, Kathony, and Gabia all the way up to tongue-twisters like Jeanetribernacionian, Darodriandsa, and the exquisite Shondrendacillexantalijamundis. (I wasn't able to secure consensus on any of these.)</span><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword">The way this algorithm works is by taking a look at the sequences of symbols with a certain horizon in mind -- let's say each symbol is a word (as opposed to a letter, as you would use to generate baby names); let's use a horizon of two words. If the algorithm has already generated the words "This is", it then looks in the corpus of text it's been given to see what might follow; then it rolls the dice to choose amongst the possibilities. There's a high likelihood that it'll generate "the" next as that sequence probably appears frequently. The horizon now becomes "is the" and the algorithm continues along the same lines.</span><br />
<span class="wikiword"><br />
</span><br />
<b><span class="wikiword">Enter Buckminster Fuller</span></b><br />
<span class="wikiword"><br />
</span><br />
<span class="wikiword"><a href="http://en.wikipedia.org/wiki/Buckminster_Fuller">Buckminster Fuller</a> used to be a household name but his celebrity is probably much diminished since his death in 1983, or more likely, since his prime in the mid-20th century. He is probably best known for the term "Spaceship Earth" or the geodesic dome. He was born in 1895 and witnessed the popularization of the telephone and radio, the invention of flight, television, and the computer; he lived through two world wars, and bore witness to the dawning of the nuclear era. He was an inventor and futurist who wrote and spoke in a hyperbolic, stylized manner using a lot of language of his own devising. To pick a sentence that typifies this:</span><br />
<br />
<blockquote class="tr_bq"><span class="wikiword">We find no record as yet of man having successfully defined the universe -- scientifically and comprehensively -- to include the nonsimultaneous and only partially overlapping, micro-macro, always and everywhere transforming, physical and metaphysical, omni-complementary but nonidentical events.</span></blockquote><span style="font-size: xx-small;">(From "Operating Manual For Spaceship Earth", available at <a href="http://www.futurehi.net/docs/OperatingManual.html">http://www.futurehi.net/docs/OperatingManual.html</a>.)</span><br />
<br />
Riiiiiiiight. (I mock with the greatest respect. His would've been a marvelous brain to pick.)<br />
<br />
This corpus suits algorithmic generation well in that his computer-generated counterpart is only occasionally more inscrutable than the real McCoy. Compare:<br />
<blockquote class="tr_bq">Possession is becoming progressively burdensome and wasteful and therefore they ought to be synchronizably-tuneable within the vast ranges of the physical and metaphysical know-how on the land for repairs.</blockquote>Hmm.<br />
<br />
<b>More Arduino Work</b><br />
<br />
Here I ran into a limitation of the Arduino platform: it doesn't have a lot of space for storage. For the program and the data it requires, there's around 16KB of space. The original Buckminster Fuller text I wanted to use was about ten times that much, so I needed some other way to store data. Flash storage is cheap and plentiful, and once again the Arduino forums came to the rescue -- one more simple circuit, this time to interact with an SD flash chip (a sort that's commonly used in digital cameras):<br />
<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="http://img441.imageshack.us/img441/2391/schematicuo7.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" src="http://img441.imageshack.us/img441/2391/schematicuo7.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SD interface from <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649</a></td></tr>
</tbody></table>I zipped down to Main Electronics for the resistors and a card-edge connector, which can be hacked into a cheap socket for the SD chip. Here's the chip and the card-edge connector:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmKSzySaPU9aA50HR3bFSjlHxoGzkmUo-il-WiKsriOG_bUFXhj3dwaGnf2lKwuGByksrAV6Fw8jv3cYHoo-On8AXD_zor1lwM1vUy4uUMimJabKrIt6FIkNPJ-WVdpZ2g-Sv2k96XpwdP/s1600/IMG_5928.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmKSzySaPU9aA50HR3bFSjlHxoGzkmUo-il-WiKsriOG_bUFXhj3dwaGnf2lKwuGByksrAV6Fw8jv3cYHoo-On8AXD_zor1lwM1vUy4uUMimJabKrIt6FIkNPJ-WVdpZ2g-Sv2k96XpwdP/s320/IMG_5928.JPG" width="320" /></a></div><br />
Cut it down to size and jam the SD card in, and it's a serviceable (if slightly finicky and not at all elegant) socket:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiznpmrhb9vlLgZtcgVMaGHkDo2Tvw7TFRQNkwXwrKZDwuCb8VbEYsjr-Nfoaag5mZjOB-rLQ6sM2Tegniv2hvZCe4jxBXQB0E5i_s61uMvdogieoaU2M_WTBpnCZO7AfGT4ACvginSc20a/s1600/IMG_5933.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiznpmrhb9vlLgZtcgVMaGHkDo2Tvw7TFRQNkwXwrKZDwuCb8VbEYsjr-Nfoaag5mZjOB-rLQ6sM2Tegniv2hvZCe4jxBXQB0E5i_s61uMvdogieoaU2M_WTBpnCZO7AfGT4ACvginSc20a/s320/IMG_5933.JPG" width="320" /></a></div><br />
Here is the Arduino with both the video and SD interfaces assembled:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggA3I4X95cWhFCoZegKbsY3zWKEfSyUmDS56xQFoNrMUIcwziOm9TPTYGRHW3jmoDy5ar0g2PAhuvbTiN4Xy2am9RLUJdBv0sM8qjtgGsi1Bx468p0YjI_xAyG6shdshI9E2nMeEIdXI6G/s1600/IMG_5936.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggA3I4X95cWhFCoZegKbsY3zWKEfSyUmDS56xQFoNrMUIcwziOm9TPTYGRHW3jmoDy5ar0g2PAhuvbTiN4Xy2am9RLUJdBv0sM8qjtgGsi1Bx468p0YjI_xAyG6shdshI9E2nMeEIdXI6G/s320/IMG_5936.JPG" width="320" /></a></div><br />
With all of this put together, I started trying to write software for the Arduino. Here I hit a second hurdle -- I couldn't get the SD card interface and the TVout library to coexist happily. Being pretty new to the Arduino platform, I tried asking for help -- see my <a href="http://code.google.com/p/arduino-tvout/issues/detail?id=40">plaintive post</a> on the subject -- and then eventually figured out a way to continue -- see my own follow-up. (I mention this as testimony that I'm not the kind of tinkerer that farts rainbows and never makes a mistake. Every completed project is a particular exit from a maze of false starts, dead ends, and pulled hair. But in editing the story of the "making of" down to size it often ends up looking like a well-followed plan. That is far from the case.)<br />
<br />
The work-around I ended up using was to avoid using some of the more powerful features of the SD library, as they cost too much RAM. Once I started using the SD card directly as a block device, instead of loading a file from a FAT filesystem, I could cut down the RAM usage and the TVout library came back to life.<br />
<br />
The snow and interference I was seeing on the screen was starting to get to me. If I moved the project for any reason -- for example, if I should want to eat a meal on my kitchen table like a real human being -- I would later have to find the channel again, which would sometimes take a lot of effort nudging the tiny tuning capacitor with cramping fingers. Eventually I lost it entirely and got to thinking that there must be some way to bypass the modulator and the TV's tuner and feed the composite signal directly into the television.<br />
<br />
Googling around I found this video:<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/7LfRfeyuF0c?feature=player_embedded' frameborder='0'></iframe></div><br />
This refers to the KA-2915 chip that is used in a lot of televisions. Mine didn't have the same chip; mine was a CD5151CP. I was able to find a <a href="http://www.datasheetarchive.com/dl/Datasheets-10/DSA-182182.pdf">data sheet</a> for it -- not very helpful, as you'll find if you follow the link. The breakthrough was finding <a href="http://www2.produktinfo.conrad.com/datenblaetter/350000-374999/350573-sp-01-en-Portable_Black_White_TV_silber.pdf">this PDF</a> with the central chip labeled "CD5151 (2915)" -- implying that the CD5151CP and KA-2915 might be interchangeable, compatible parts. It was a risk I was willing to take, so I cut the "Video Out" trace on the motherboard and patched the Arduino's video signal in instead.<br />
<br />
Success! The improvement was spectacular.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAJ7WNgUj4tPmWEMelpDd1eGEMzCserbQgi3Vi0gtdCwyb6uEwAEmoZ9kVmqzvfK0iRgIo9gJRgl5NvrqoFCshnOjGYAZAq5fvTkzQOr2UnM_dRvsdmu-y4YeU91Tx3PHcMDJwyufIdylQ/s1600/IMG_6904.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAJ7WNgUj4tPmWEMelpDd1eGEMzCserbQgi3Vi0gtdCwyb6uEwAEmoZ9kVmqzvfK0iRgIo9gJRgl5NvrqoFCshnOjGYAZAq5fvTkzQOr2UnM_dRvsdmu-y4YeU91Tx3PHcMDJwyufIdylQ/s320/IMG_6904.JPG" width="320" /></a></div><br />
As you can see, I also began working on rotating the output of the TVout library so that I could stop craning my neck while I was coding. In the above picture, the text is still being written top to bottom but I've successfully rotated each letter in the font by writing a quick PHP script to read the source code and dump out a modified, rotated source. (I write PHP for my day job, so it's my current utility language of choice.)<br />
<br />
<b>Markov Chain Implementation</b><br />
<br />
The major pieces are now all assembled and it's time to write some code.<br />
<br />
If I was generating text using a Markov algorithm on my desktop, I'd write a quick PHP script. It would be a couple of dozen lines of code slapped together without much thought, and it would work just fine. That approach isn't possible for this kind of thing on the Arduino.<br />
<br />
Writing code for the Arduino is very much a leap 30 years back to the days when resources (storage, CPU cycles, RAM) weren't basically unlimited for all but a few tasks. You had to write code carefully.<br />
<br />
With an SD chip attached to an Arduino, storage space isn't a problem -- 2GB is positively oceanic for a tin cup of a chip like an Arduino. However, speed is a limitation, both for the chip and the SD interface, and RAM is definitely a limitation at 1024 bytes (and that much already proving a limit for the SD and TVout libraries alone).<br />
<br />
It was clear that I would have to break the Markov algorithm in half -- as much as possible of the crunching would happen on my desktop, which could store some helpful indexes and tables on the SD card. Then the Arduino could use those to do the rest.<br />
<br />
I took a couple of cracks at this. The first worked but was glacially slow due to all the time the Arduino chip had to spend sifting through the SD card for the piece of data it was looking for.<br />
<br />
After some determined forehead-wrinkling I found an ideal solution. For each generated word, the new algorithm needs to read 28 bytes from the SD chip, which gives it enough information to know exactly where to go for the next 28 bytes. The memory usage is likewise fixed at 28 bytes. That's about the lowest-overhead Markov chain implementation I can imagine. It makes use of 3 different tables, which together take up 265KB on the SD card. That's about .01% of the space available on the SD card -- which just goes to show how cheap flash memory is nowadays.<br />
<br />
<b>Final Cosmetics</b><br />
<br />
All that's left is to mount the rest of the guts and work on the aesthetics a little more. The Arduino was mounted to the ceiling of the chassis with more of the paperclip-and-epoxy technique I've become so fond of:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnh_cMraSE3kkOSKgQEU7c59vqsVYT3dORwLvpCxt5WEvSUq5FpMNIH3oCxj2P4Hricp2vz97krxEf0gy9pH6PVwshwh6wmLENYEHbajlgT3Wzjc9z5Oz5zPerIZy8kDzEqaq9RUIvbr57/s1600/IMG_6951.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnh_cMraSE3kkOSKgQEU7c59vqsVYT3dORwLvpCxt5WEvSUq5FpMNIH3oCxj2P4Hricp2vz97krxEf0gy9pH6PVwshwh6wmLENYEHbajlgT3Wzjc9z5Oz5zPerIZy8kDzEqaq9RUIvbr57/s320/IMG_6951.JPG" width="320" /></a></div><br />
And if you'll excuse a slightly blurry photograph, here is how it looks with everything installed:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSQ6aBfPS2XyrkYLvv5LANKMRW_ndSddpQGNgQpq1ZWUJOBl21EcO2eZYWFf32cgl_TLRPJ0sUkcV4kiRnEDYPJ7XJnY9AQ4rLKOHsAAGRejzesp9uI9hFHS35ABM8ljyG8J94GGa30mU2/s1600/IMG_6953.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSQ6aBfPS2XyrkYLvv5LANKMRW_ndSddpQGNgQpq1ZWUJOBl21EcO2eZYWFf32cgl_TLRPJ0sUkcV4kiRnEDYPJ7XJnY9AQ4rLKOHsAAGRejzesp9uI9hFHS35ABM8ljyG8J94GGa30mU2/s320/IMG_6953.JPG" width="320" /></a></div><br />
The Arduino is a little cock-eyed, but it's firmly installed; I just didn't bother shortening some of the paperclip mounts to level it off.<br />
<br />
As the back of the CRT is deeper than the cabinet, I had to cut a hole in the back panel. I took a cap from a can of shaving cream, spraypainted it black, and epoxied yet another paperclip into it:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFzj_atCKFEhXzlztdRPyx1LXKtK90IVPdVPkatLf7qQHcmkiZ9UvMQhLNyICcoq9q-9kDmtHCduWCfbMAVgW6dU1VnApI69gxeMM0k4HQCWUHa9FbY9nzZCGra10LG03GzJ-s-IQ_7VAl/s1600/IMG_6958.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFzj_atCKFEhXzlztdRPyx1LXKtK90IVPdVPkatLf7qQHcmkiZ9UvMQhLNyICcoq9q-9kDmtHCduWCfbMAVgW6dU1VnApI69gxeMM0k4HQCWUHa9FbY9nzZCGra10LG03GzJ-s-IQ_7VAl/s320/IMG_6958.JPG" width="320" /></a></div><br />
I'm particularly happy with this detail -- old televisions used to have exactly the same little cup. Here's how the back of the device looks, fully assembled:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsSoLXkBL20mnyC4q438CCQJGpXGZyWFrAk2GilSyEKbUAZMNPF1n0spE9nUSMEo7TCx-gpo24GRH_7-RI5RSrMHaCfN2luXoZc1uQ9XYHT1BFxBjSSDikKbDhWiTlwAJ_fzB8rRnV1YoZ/s1600/IMG_6961.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsSoLXkBL20mnyC4q438CCQJGpXGZyWFrAk2GilSyEKbUAZMNPF1n0spE9nUSMEo7TCx-gpo24GRH_7-RI5RSrMHaCfN2luXoZc1uQ9XYHT1BFxBjSSDikKbDhWiTlwAJ_fzB8rRnV1YoZ/s320/IMG_6961.JPG" width="320" /></a></div><br />
Just like an old-school television!<br />
<br />
Here's how it looks in operation.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxFR8gjrJMMVchA4cm8wu8CFTC4lIQ7pSv4o-eMflHD4F8D8R_LNbJN1xc4ktckviRwdk7EHiQZCeJBIcRD6g' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><br />
This is one of my favourite projects so far because it's fully realized and consistent. I make these projects mostly with the things I have lying around and they often come out looking somewhat mutant. I'm also very good at getting 80% of the way there and losing interest. The only thing I have planned for this -- well, besides maybe a few minor tweaks -- is a silk-screened diagram and model number on the back.<br />
<br />
Thanks for reading! If anyone's interested I can post source code. [Addendum: <a href="http://freegeekvancouver.blogspot.com/2012/02/addendum-to-bucky-tv-source-code.html">here's the source code</a> in a separate post.]AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com14tag:blogger.com,1999:blog-7534060879324399856.post-33196341228408219672012-02-16T22:25:00.000-08:002012-02-16T22:27:30.688-08:00Toshiba LibrettoHappy new year (about 6 weeks late)!<br />
<br />
After an extended break from Free Geek for the holidays and a jaunt down to South America, it's great to be back at the laptop station. Nothing seems to have exploded or grown mold in my absence -- a slight disappointment to my ego, which likes to claim indispensability. In fact, the place is generally looking good and I was happy to see all the regulars.<br />
<br />
Free Geek has accumulated several interesting portables since I was last in. The first one I got my hands on was a <a href="http://en.wikipedia.org/wiki/Toshiba_Libretto">Toshiba Libretto</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLCJlR3PMbaIQ5CAqKv47JQo1boOYPNV-OpWNiiiU7GWisWRanVJDMZQIbxBLxBzASLo4y_mcwx8vy6vQ7WB6CbH8P8XQpb9Z0l-KXkxrp3hQCB_L5-KouWVdzhfZG1Hax3ZM5RncjFn1w/s1600/IMG_6818.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLCJlR3PMbaIQ5CAqKv47JQo1boOYPNV-OpWNiiiU7GWisWRanVJDMZQIbxBLxBzASLo4y_mcwx8vy6vQ7WB6CbH8P8XQpb9Z0l-KXkxrp3hQCB_L5-KouWVdzhfZG1Hax3ZM5RncjFn1w/s320/IMG_6818.JPG" width="320" /></a></div><br />
Looks pretty boring until you put something in there for scale.<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZDoUOf_jMONgO5hcnid1VZN7oGigql50VKEgkkMCpjG6BlfP14V6o-_HObP1oll3HYKlpSdfrRFJxy2GglHuF-zdUyON77PWyn836eyJ-b78TUs4ygzx2IWzEL9A6kqrkaQXsiEach6rW/s1600/IMG_6819.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZDoUOf_jMONgO5hcnid1VZN7oGigql50VKEgkkMCpjG6BlfP14V6o-_HObP1oll3HYKlpSdfrRFJxy2GglHuF-zdUyON77PWyn836eyJ-b78TUs4ygzx2IWzEL9A6kqrkaQXsiEach6rW/s320/IMG_6819.JPG" width="320" /></a></div><br />
Yup, it's that small; it makes a Netbook <a href="http://en.wikipedia.org/wiki/File:EEEPC901_LIBRETTO100.JPG">seem gargantuan</a>. It's genuinely difficult to type on and the only full-fledged computer from the same era that came any smaller -- well, the only one I can name -- is the <a href="http://www.basterfield.com/pc110/pc110idx.htm">IBM Palm Top PC 110</a> (I had a chance to see one of these courtesy of some friend of the <a href="http://thehackery.ca/">Hackery </a>who brought it to the <a href="http://vancouver.makerfaire.ca/">Mini Maker Faire</a> last year).<br />
<br />
It manages to pack quite a bit into its little brickish frame. It's a Pentium 75, 810MB hard disk, maxed out to 32MB of RAM. (Stop laughing -- those were impressive numbers at the time.) As you can see, the hard drive (a standard 2.5" IDE device) takes up a considerable amount of its internal real estate:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzqy8caYJGzaTC0Lvre5svyhq2X64pOYCE-_g4OX3nRDFMninu849O29EpeFezWznERueBDZ0mxDCqZaTzHZVR8kju5IjB8P_O-QsxL7yg-cRQo54UY3bkPWK3oSiYrLBUddbLQclbMRYR/s1600/IMG_6822.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzqy8caYJGzaTC0Lvre5svyhq2X64pOYCE-_g4OX3nRDFMninu849O29EpeFezWznERueBDZ0mxDCqZaTzHZVR8kju5IjB8P_O-QsxL7yg-cRQo54UY3bkPWK3oSiYrLBUddbLQclbMRYR/s320/IMG_6822.JPG" width="320" /></a></div><br />
On the other side of the chassis is a PCMCIA slot. Those cards aren't big, but when you consider that this little chassis holds a standard hard drive, a PCMCIA slot, a considerable battery (seen on the lower left hand side of the photo above), and the guts of the computer itself -- presumably with some heat dissipation gear, too, for the Pentium 100 chip -- you can imagine that a lot of 1990s-era engineering went into this little beast.<br />
<br />
The pointing device is particularly unusual. It's a Trackpoint-style rubberized cap to the right of the screen, intended for operation with the thumb:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU1EPt6Uwp54TfmJNfdynPHaBazG9UGHia3GOI2AIDOZJ-HoY1TM9JKjVJYhlJVO6qXXElsBtYM63ZHbJ7mbnDrfuW5xePPB9hYIIRzRUX41vEWJRMT26lCnvccDmvU9y5o8E6C6m-rYVm/s1600/IMG_6823.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU1EPt6Uwp54TfmJNfdynPHaBazG9UGHia3GOI2AIDOZJ-HoY1TM9JKjVJYhlJVO6qXXElsBtYM63ZHbJ7mbnDrfuW5xePPB9hYIIRzRUX41vEWJRMT26lCnvccDmvU9y5o8E6C6m-rYVm/s320/IMG_6823.JPG" width="320" /></a></div><br />
...with two buttons on the outside of the lid, for operation with two fingers:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlHrFlW0CaOn8Ku3M6QKlyQNTZuJZtR64jXTo-JxOTB9si1xjK6UDdHp_YwqHKoZUUGheyErYzp9CKG5tLz5HGUEt2hJwwdarr2vrWHtNiEJNNN0RIcty5Z_IpKcUYLi9Fgq5tlWwFfucU/s1600/IMG_6825.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlHrFlW0CaOn8Ku3M6QKlyQNTZuJZtR64jXTo-JxOTB9si1xjK6UDdHp_YwqHKoZUUGheyErYzp9CKG5tLz5HGUEt2hJwwdarr2vrWHtNiEJNNN0RIcty5Z_IpKcUYLi9Fgq5tlWwFfucU/s320/IMG_6825.JPG" width="320" /></a></div><br />
Anyway, it's a neat little machine and in great shape. It's a little difficult to do anything with, unfortunately -- the minimalist Linux distributions like Puppy Linux need considerably more RAM than this can offer, and even if that weren't a problem, they would be ludicrously slow. Fortunately there's <a href="http://www.freedos.org/">FreeDOS</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqSXcr4BeoUHFn4mKpBnbM5ptnrYnkotKV25rIbrD_Ng0fCrChkcV4qfI7H5WycYDCjxYGfklTJ4TiLZgHbI9xv659dJNvNKpXZKjq_H_Flram9K2huK_KFTZWXzi8dvCmqfNNCWBwAgIA/s1600/IMG_6826.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqSXcr4BeoUHFn4mKpBnbM5ptnrYnkotKV25rIbrD_Ng0fCrChkcV4qfI7H5WycYDCjxYGfklTJ4TiLZgHbI9xv659dJNvNKpXZKjq_H_Flram9K2huK_KFTZWXzi8dvCmqfNNCWBwAgIA/s320/IMG_6826.JPG" width="320" /></a></div><br />
Getting FreeDOS installed was pretty straight-forward, though I had to perform the installation on another machine since this Toshiba is deaf, dumb, blind and mute by today's standards: it has no optical drive, no Ethernet, no wireless (unless you include infrared, and I don't), no USB. (The right person could get this machine browsing the web over a PCMCIA wireless card, but it would take a lot of tinkering.)<br />
<br />
The familiar world of DOS is something that I haven't visited in a long time -- fdisk, format, copy; F8 to interrupt boot; config.sys and autoexec.bat; lofty program names crudely axed to fit the 8.3 filename convention. It's the era of computing nearest to my heart because during the supremacy of MS-DOS I was a nerdy kid just learning how everything fit together. MS-DOS wasn't free software, of course, but FreeDOS is -- and they've done a remarkably good job of duplicating the entire environment in open source. It really feels like the MS-DOS I grew up on.<br />
<br />
Well, there's not much you can do with a DOS computer these days unless it's a labour of love. Mine was a labour of like -- fond liking, but no more than that. I wrote up a build sheet (more as a joke than anything else) and took it up to the store where it looked thoroughly outgunned by its neighbours.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWUZDK0dZ6s29718-Qn1SBYodIJJJQNJJTcA3-wgVCfnT2M4OLmxlfpMLOGiefDxdh1fSkF8znaeA2tfdA3p0nvyVseLkBb97vMxv-wU97mpfu6gP1ffc6K-ProyqD-ik-_FGtfDxK0ti/s1600/IMG_6827.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWUZDK0dZ6s29718-Qn1SBYodIJJJQNJJTcA3-wgVCfnT2M4OLmxlfpMLOGiefDxdh1fSkF8znaeA2tfdA3p0nvyVseLkBb97vMxv-wU97mpfu6gP1ffc6K-ProyqD-ik-_FGtfDxK0ti/s320/IMG_6827.JPG" width="320" /></a></div><br />
The Libretto line has <a href="http://www.librettoworld.com/">quite</a> a <a href="http://www.silverace.com/libretto/">following</a>, even now. Maybe someone will fall in love with this one. But if nobody does, and if it's still there next week, I'm putting Doom on it.<br />
<br />
(p.s. I wasn't the only person reveling in weird old technology today. I like Free Geek for a lot of reasons, but this is probably the best of them.)AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com3tag:blogger.com,1999:blog-7534060879324399856.post-47267322614605386592011-12-17T00:45:00.000-08:002011-12-17T00:48:15.215-08:00Festive Meets NerdyI like vacuum tubes. Have I <a href="http://freegeekvancouver.blogspot.com/2011/09/webster-chicago-wire-recorder.html">mentioned</a> <a href="http://freegeekvancouver.blogspot.com/2011/10/vacuum-tube-hacks.html">this</a> <a href="http://freegeekvancouver.blogspot.com/2011/11/audiophile-silliness-now-on-motherboard.html">before</a>?<br />
<br />
I have a mental registry of small projects that involve vacuum tubes and one long-standing idea is a Christmas tree ornament. Here's how it goes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI34IbnbLLU_X3o4APtdiO0PJDvxXTE8tu8oY-ykFaGF3FpTit6t_bCD7aMTMcG2M7zi3b0FUCImmr_5r9-HUmW-wT7N5plMFtFxOjbfRkHrrOswNkABla40LHPkzb_F0sRRPAeXk8jTD0/s1600/IMG_5782.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI34IbnbLLU_X3o4APtdiO0PJDvxXTE8tu8oY-ykFaGF3FpTit6t_bCD7aMTMcG2M7zi3b0FUCImmr_5r9-HUmW-wT7N5plMFtFxOjbfRkHrrOswNkABla40LHPkzb_F0sRRPAeXk8jTD0/s320/IMG_5782.JPG" width="320" /></a></div><br />
(This involves fire, broken glass, and probably all of the chemical horrors of the 1950s. Say your prayers, wear eye protection, and Don't Be Stupid.)<br />
<br />
<a name='more'></a><br />
The picture above is a good choice for a tube (though it's not the exact one I used). I have a bunch that I salvaged from old radios and televisions I've gutted over the last couple of years. The plan was to remove the guts, which is a pretty tricky operation and requires a couple of things when choosing a tube: it's got to have a big plastic boot on the bottom (to cover and reinforce the broken glass we'll deal with shortly), and the adhesive holding the glass tube to the plastic boot has to be weak. This way the adhesive gives way before the tube shatters (leaving you with a fistful of broken glass and a story to tell the ER physician).<br />
<br />
The pins at the bottom of the tube connect to elements inside the glass envelope and generally also hold the whole thing together. There is a solder cup at the end of each pin, so if the tube is suitable (i.e. not too much adhesive), it's possible to pull the boot away from the glass while the solder is melted.<br />
<br />
I did this by wrapping the plastic part of the base in tin foil:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3-7KcKMGAFWl167ov6zQfrwCS0rEg0Xkfs3pf2czTQWXpXoHWHCj5DZob2KpQI4PLqF_F_3J-qi1-a9F-uI79hg2dpG4S41BiF9pto1gr5cmW4MxQdcfRdq2EvtqWn-fsjQSyWEVAKpC8/s1600/IMG_5785.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3-7KcKMGAFWl167ov6zQfrwCS0rEg0Xkfs3pf2czTQWXpXoHWHCj5DZob2KpQI4PLqF_F_3J-qi1-a9F-uI79hg2dpG4S41BiF9pto1gr5cmW4MxQdcfRdq2EvtqWn-fsjQSyWEVAKpC8/s320/IMG_5785.JPG" width="320" /></a></div><br />
...and sparking up the blowtorch:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWOB5IsBod_xZHoXa915d8QGZqqiU-UFO19_flscolWbWbAem6j1IcR0fK4zGPaVuArH-lPbptuV3Crtq_pz11GsTSfTkPY4OzZWm7wyiFRUn1WqfD2K3J1-YzrgaDTcgZF0va8eq51qw6/s1600/IMG_5788.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWOB5IsBod_xZHoXa915d8QGZqqiU-UFO19_flscolWbWbAem6j1IcR0fK4zGPaVuArH-lPbptuV3Crtq_pz11GsTSfTkPY4OzZWm7wyiFRUn1WqfD2K3J1-YzrgaDTcgZF0va8eq51qw6/s320/IMG_5788.JPG" width="240" /></a></div><br />
I heated the tips of the pins, trying not to destroy the plastic. Luck was with me and I ended up with the desired number of pieces:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguX4FTOSieYh4x2cqIw7EGdn1NDqkKpqpAqlo_ooBgKCI-n2BCBnU8JxikCtQE-7Upf346F2BUj0V_OaLWFYv5PTVMfBL76rU-UvW5Ks7MIWgZXC8xLDLu56zG4VM0ZwZ7j9BOCWlXz0uu/s1600/IMG_5791.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguX4FTOSieYh4x2cqIw7EGdn1NDqkKpqpAqlo_ooBgKCI-n2BCBnU8JxikCtQE-7Upf346F2BUj0V_OaLWFYv5PTVMfBL76rU-UvW5Ks7MIWgZXC8xLDLu56zG4VM0ZwZ7j9BOCWlXz0uu/s320/IMG_5791.JPG" width="320" /></a></div><br />
You can see from this picture that the tube is pretty horribly filthy. You can also see the adhesive or foam that was between the boot and the glass. Some tubes are impossible to separate this way because of the adhesive. This one was easy.<br />
<br />
Here's another look:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYimI3P1xhLIBtijWmMvU27J_VZRFyve2oUVHYB7yAwZf_PpM_5LiKjPbEToCfickjz4UENUf7Yc4mZhwrObasAqIuMgcKuWZp4byLCmePhvQK_EYzL9wvaSq2Je51lPdr4-yFD3ukV4B_/s1600/IMG_5792.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYimI3P1xhLIBtijWmMvU27J_VZRFyve2oUVHYB7yAwZf_PpM_5LiKjPbEToCfickjz4UENUf7Yc4mZhwrObasAqIuMgcKuWZp4byLCmePhvQK_EYzL9wvaSq2Je51lPdr4-yFD3ukV4B_/s320/IMG_5792.JPG" width="320" /></a></div><br />
OK, so the next thing to do is break the glass envelope at the bottom -- carefully, it's old glass -- and remove the guts. I used a Dremel with a diamond saw:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVyjB2BKSOJP00klW0MfcKLBXm4MvAicHRUeC7XMYMEzHa4INwulMBtY2Oqh2rAFaTsUcrd6An3G_tjyNXqT_AGMr5Apwm6PeNf3xErohHFTjOH0t8kp20dquq1dYqG9dP2dV-EbgeYy4p/s1600/IMG_5795.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVyjB2BKSOJP00klW0MfcKLBXm4MvAicHRUeC7XMYMEzHa4INwulMBtY2Oqh2rAFaTsUcrd6An3G_tjyNXqT_AGMr5Apwm6PeNf3xErohHFTjOH0t8kp20dquq1dYqG9dP2dV-EbgeYy4p/s320/IMG_5795.JPG" width="320" /></a></div><br />
This blade isn't cheap but I tried a number of other things -- heat and regular cutting blades -- and discovered a lot of really good ways of shattering tubes but little else. A quick buzz around the outside with the diamond saw, first to score the surface, then to cut through, works pretty cleanly:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjPEU1O3H13AJKQZ0usFlPVrtvDnsodXhxye_FrnLC5aozNT455epp7qHTUTjr-M8VnnSKAnYkeZ1uF1m7NJAIWfpL_8m6inlxKPB3fNzccmNtoKY3Hv24lLMOwTT4ELosp9ux4TyaaKr/s1600/IMG_5797.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjPEU1O3H13AJKQZ0usFlPVrtvDnsodXhxye_FrnLC5aozNT455epp7qHTUTjr-M8VnnSKAnYkeZ1uF1m7NJAIWfpL_8m6inlxKPB3fNzccmNtoKY3Hv24lLMOwTT4ELosp9ux4TyaaKr/s320/IMG_5797.JPG" width="320" /></a></div><br />
I did take one chip out of the glass but nothing to worry about. There's lots of room for mistakes under the boot -- but as the glass does taper slightly, cutting too close to the bottom means it's difficult to pull the guts out.I had to chop up the glass bottom with a pair of pliers in order to get everything out.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw-W_2v9QAYrx0QhmiufkaZ0guqIKcCdLyASG6_c6jihDYhJ5kcVAGnMHoR7X_0IcKssV-sR85qx5PTeTCJ1zEzmVJVC7bpRGpEpkJLcYrwuqPZlaj69AT55APpA28FZFQKzasXYYJLMqg/s1600/IMG_5798.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw-W_2v9QAYrx0QhmiufkaZ0guqIKcCdLyASG6_c6jihDYhJ5kcVAGnMHoR7X_0IcKssV-sR85qx5PTeTCJ1zEzmVJVC7bpRGpEpkJLcYrwuqPZlaj69AT55APpA28FZFQKzasXYYJLMqg/s320/IMG_5798.JPG" width="320" /></a></div><br />
As much as I like the internals of tubes -- they're like little skyscrapers -- I haven't figured out anything to do with them. Yet.<br />
<br />
Next step is to clean out the bulb -- carefully, both because it's fragile and because the cut edge is like the rim of a tin can, but a thousand times more murderous. Toilet paper to the rescue. The carbon deposits inside the tube are easy to remove.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT9OFFfIsD8fbP8lhMx2z4m6p5ju16wI-DqN95Z-LQy_ufkWjkB3xdtUd9l7liC9xAFoiBbSO5wN9tLKcqiDjVUrQ_vBtZ4jUGtKiAyCeafm2_vbup1SGE5hnXiMQqn-iwaUXbLw6Gz9On/s1600/IMG_5800.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT9OFFfIsD8fbP8lhMx2z4m6p5ju16wI-DqN95Z-LQy_ufkWjkB3xdtUd9l7liC9xAFoiBbSO5wN9tLKcqiDjVUrQ_vBtZ4jUGtKiAyCeafm2_vbup1SGE5hnXiMQqn-iwaUXbLw6Gz9On/s320/IMG_5800.JPG" width="320" /></a></div><br />
I'm making this for my nephew, who is too young to read this (and I trust his mom, if she's subscribed, will have the courtesy to feign surprise and delight on Christmas). I took apart a turtle light that I had kicking around, and with the LED and some wire, made this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxmjFEGxezCe2rEmE0OY1HMxj8bhYpwnx0EW-6htuc0yLiFeknTiDQ0CNQNbBMzQWQawmz8jYGZpsmSWFEzHA2RjlFOsITV0BekO7zfkyNJQBYox2NZgbTiA7mGHhehGnlqzpO3ciAm93q/s1600/IMG_5802.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxmjFEGxezCe2rEmE0OY1HMxj8bhYpwnx0EW-6htuc0yLiFeknTiDQ0CNQNbBMzQWQawmz8jYGZpsmSWFEzHA2RjlFOsITV0BekO7zfkyNJQBYox2NZgbTiA7mGHhehGnlqzpO3ciAm93q/s320/IMG_5802.JPG" width="240" /></a></div><br />
You can see the LED a little better from the back:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdspFuUi0r2ILBB7C9TgEj1GA4H5U6ZmOoWxjM0E78MjuY2kprFCfNzNXg7ckzHLHAlmbBEfvNgwL8-2hRpMlw7baT4HBVIDi6jvZ29em6G8E76_4IMVPHKfOtqYadevoTPTtkWW6ksknG/s1600/IMG_5804.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdspFuUi0r2ILBB7C9TgEj1GA4H5U6ZmOoWxjM0E78MjuY2kprFCfNzNXg7ckzHLHAlmbBEfvNgwL8-2hRpMlw7baT4HBVIDi6jvZ29em6G8E76_4IMVPHKfOtqYadevoTPTtkWW6ksknG/s320/IMG_5804.JPG" width="240" /></a></div><br />
I soldered the two wires coming through the bottom back into the solder cups on the plastic boot, epoxied the glass envelope back over top, and connected the rest of the turtle light (the battery, switch, and flasher) to the base. Here's how it looks, fully assembled:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iXQ1LiuPoKbhfMmKQ9hL3gtq2ZAPcAIV3ZqpQupDOBdogJzDZQ2immUdjA9qt20xT9uCw9DUch-_1I9kGI4wV3t_v4kVNzcNioWzjCIMdlUQ91YjZdjKCReU2nXNh4TY3oW-HcbdrW0t/s1600/IMG_5817.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iXQ1LiuPoKbhfMmKQ9hL3gtq2ZAPcAIV3ZqpQupDOBdogJzDZQ2immUdjA9qt20xT9uCw9DUch-_1I9kGI4wV3t_v4kVNzcNioWzjCIMdlUQ91YjZdjKCReU2nXNh4TY3oW-HcbdrW0t/s320/IMG_5817.JPG" width="320" /></a></div><br />
And from the front:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsac97oO2d5dULLtZ8G2X6zYh2VRa2vjKVecCdKp7sKENpLAxDRO5Gcf4GlEb-KmvKGLFriZ7u9hADbdRLMjlqUS3SdVtTjXXVkaidN8EYjR8wyCAHhW5_UmbSluIb5o_H4P9FcLFZ49IV/s1600/IMG_5813.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsac97oO2d5dULLtZ8G2X6zYh2VRa2vjKVecCdKp7sKENpLAxDRO5Gcf4GlEb-KmvKGLFriZ7u9hADbdRLMjlqUS3SdVtTjXXVkaidN8EYjR8wyCAHhW5_UmbSluIb5o_H4P9FcLFZ49IV/s320/IMG_5813.JPG" width="240" /></a></div><br />
And with the lights off:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcWXXNNEmueWKYZdQwOuGF_dSnvkQPFEE08dCU8DEgbje3tQFYEKCUwW1dAqD_xN30AnxnxWHke6ovZK7YvJ2mxRN1-3p7ZzFa1X6SjCAublpGwNUbjeNnKKrw9Iu07TsKv-iiIMboXcVb/s1600/IMG_5807.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcWXXNNEmueWKYZdQwOuGF_dSnvkQPFEE08dCU8DEgbje3tQFYEKCUwW1dAqD_xN30AnxnxWHke6ovZK7YvJ2mxRN1-3p7ZzFa1X6SjCAublpGwNUbjeNnKKrw9Iu07TsKv-iiIMboXcVb/s320/IMG_5807.JPG" width="240" /></a></div><br />
Not bad! Not only that, but I totally failed to burn, cut, or blind myself despite a dozen really good opportunities.AUTUINhttp://www.blogger.com/profile/11713793126615904139noreply@blogger.com5