<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hardware Hacks &#8211; Sufi Nawaz</title>
	<atom:link href="https://sufi.io/category/hardware-hacks/feed/" rel="self" type="application/rss+xml" />
	<link>https://sufi.io</link>
	<description>I build stuff</description>
	<lastBuildDate>Thu, 22 Apr 2021 03:32:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://sufi.io/wp-content/uploads/2019/03/cropped-sn-logo2-32x32.png</url>
	<title>Hardware Hacks &#8211; Sufi Nawaz</title>
	<link>https://sufi.io</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Build: Retro Gaming console in a wooden case</title>
		<link>https://sufi.io/retro-gaming-case/</link>
		
		<dc:creator><![CDATA[Sufi]]></dc:creator>
		<pubDate>Thu, 22 Apr 2021 03:32:34 +0000</pubDate>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Hardware Hacks]]></category>
		<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Wood Working]]></category>
		<guid isPermaLink="false">https://sufi.io/?p=1474</guid>

					<description><![CDATA[As most people already know about me, I love making things with wood. I am a software engineer by profession and I love tinkering with hardware and wood as a hobby. As fun as it is to do my day to day job and spend time on my hobbies, to me it&#8217;s a whole lot more appealing whenever I get to combine hobbies and profession. So a few weeks ago, I had picked up a Raspberry Pi 4 for a smart home hub I wanted to build. One thing led...<a class="read-more" href="https://sufi.io/retro-gaming-case/">read more</a>]]></description>
										<content:encoded><![CDATA[<div class='tt_post_video'><iframe title="Arcade Console in a Wooden Case" width="500" height="281" src="https://www.youtube.com/embed/dTO0_lDgQ8k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<p>As most people already know about me, I love making things with wood. I am a software engineer by profession and I love tinkering with hardware and wood as a hobby. As fun as it is to do my day to day job and spend time on my hobbies, to me it&#8217;s a whole lot more appealing whenever I get to combine hobbies and profession. So a few weeks ago, I had picked up a Raspberry Pi 4 for a smart home hub I wanted to build. One thing led to another and I ended up installing RetroPie in that Pi instead. From that point on, it was open season for ideas to flow through my head and, lo and behold, I ended up ordering a set of arcade game controllers and boards on Amazon. </p>



<p>Approximately 4 weeks later, I have a cool wooden case where I can play almost any retro game I want.</p>



<h2 class="wp-block-heading">The Plan</h2>



<p>While this blog post is NOT a tutorial on how to build this console, I think there&#8217;s still value in mentioning how I approached this build so someone else can take ideas and may choose to build on that idea themselves. </p>



<p>After receiving the controllers and making a poor man&#8217;s version of a proof of concept, I took out my notebook and sketched up a design based on small box I had made late last year. The original design of that box was inspired by <a href="https://instagram.com/mekwoodworks" data-type="URL" data-id="https://instagram.com/mekwoodworks" target="_blank" rel="noreferrer noopener">Matt Kenney</a> who is quite well known in the woodworking community.</p>



<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" fetchpriority="high" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2-1024x683.jpg" alt="" data-id="1481" data-full-url="https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2.jpg" data-link="https://sufi.io/?attachment_id=1481" class="wp-image-1481" srcset="https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/9Z7A0801-2.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Box design inspired by Matt Kenney</figcaption></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" width="1024" height="768" src="https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-1024x768.jpg" alt="" data-id="1482" data-full-url="https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-scaled.jpg" data-link="https://sufi.io/?attachment_id=1482" class="wp-image-1482" srcset="https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-1024x768.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-300x225.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-768x576.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-1536x1152.jpg 1536w, https://sufi.io/wp-content/uploads/2021/04/IMG_6284-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Original Plan Sketchup</figcaption></figure></li></ul></figure>



<p>There are many types of wood I could choose from to do this, but in the end, I went with Cherry sides and Walnut top and bottom because I liked how it looked and these species of hardwood are slightly lighter than something like Maple or White Oak &#8211; either of which also would&#8217;ve looked great to be honest. I didn&#8217;t want the box to show any of the end grains, which ruled out finger joints or dovetails or even butt joints. I went with something that&#8217;s relatively straight forward &#8211; mitered four sides and cut grooves to allow for the bottom and top boards to fit snugly together. </p>



<p>As far as where the circuitries go, I had to make a judgment call on whether to use the chamber at the bottom or the lid. In the end, given how I needed to have space for the joy stick handles, I decided to put the Raspberry Pi, LCD Panel Controller Board, Voltage regulator and the speakers on a special housing in the lid.</p>



<h2 class="wp-block-heading">Internals</h2>



<p>This gaming console is based on a Raspberry Pi 4B with 2GB RAM. I used a RetroPie image and followed instructions from <a rel="noreferrer noopener" href="https://retropie.org.uk/docs/First-Installation/" data-type="URL" data-id="https://retropie.org.uk/docs/First-Installation/" target="_blank">here</a>. For the LCD Panel, I used an old <a rel="noreferrer noopener" href="https://www.bestbuy.com/site/reviews/lenovo-li2264d-21-5-ips-led-fhd-monitor-black/5203101" data-type="URL" data-id="https://www.bestbuy.com/site/reviews/lenovo-li2264d-21-5-ips-led-fhd-monitor-black/5203101" target="_blank">Lenovo monitor</a> I had laying around in the house. Here&#8217;s the full list of items I used to make this. Most of these links are Amazon Affiliate links, so if you use these links to purchase any of the italicized items listed below, I will get a tiny percentage of that sale without any cost to you 🙂</p>



<ul><li>Cherry boards (dimensioned to about 1/2 inch thickness)</li><li>Walnut Boards (dimensioned to about 1/2 inch thickness)</li><li><a rel="noreferrer noopener" href="https://amzn.to/3sCDKxr" data-type="URL" data-id="https://amzn.to/3sCDKxr" target="_blank"><em>Raspberry Pi 4B 2GB</em></a></li><li><a rel="noreferrer noopener" href="https://amzn.to/2QK6dV1" data-type="URL" data-id="https://amzn.to/2QK6dV1" target="_blank"><em>Arcade Console Controllers</em></a></li><li><a rel="noreferrer noopener" href="https://amzn.to/3tER9X6" data-type="URL" data-id="https://amzn.to/3tER9X6" target="_blank"><em>Crazy Horse Leather</em></a></li><li><a rel="noreferrer noopener" href="https://amzn.to/3dCW84X" data-type="URL" data-id="https://amzn.to/3dCW84X" target="_blank"><em>Brass Knurled Thumb Screws</em></a></li><li><a rel="noreferrer noopener" href="https://www.woodcraft.com/products/highpoint-solid-brass-broad-cabinet-hinge-1-1-4-x-2-brushed-satin-finish-pair-with-screws" data-type="URL" data-id="https://www.woodcraft.com/products/highpoint-solid-brass-broad-cabinet-hinge-1-1-4-x-2-brushed-satin-finish-pair-with-screws" target="_blank">Brass Hinges</a></li><li><a rel="noreferrer noopener" href="https://www.woodcraft.com/products/support-trunk-lid-brass" data-type="URL" data-id="https://www.woodcraft.com/products/support-trunk-lid-brass" target="_blank">Brass Lid Stays</a></li><li><a rel="noreferrer noopener" href="https://amzn.to/2QLYw0m" data-type="URL" data-id="https://amzn.to/2QLYw0m" target="_blank"><em>DIY Speaker/Volume Kit</em></a></li><li><a rel="noreferrer noopener" href="https://amzn.to/3tHsmlo" data-type="URL" data-id="https://amzn.to/3tHsmlo" target="_blank"><em>1/2&#8243; PET Expandable Braided Cable Sleeving</em></a></li><li>32GB Micro SD Memory Card</li><li><a rel="noreferrer noopener" href="https://amzn.to/3axH6vD" data-type="URL" data-id="https://amzn.to/3axH6vD" target="_blank"><em>Buck Voltage Converter</em></a></li><li><em><a rel="noreferrer noopener" href="https://amzn.to/2RTabv0" data-type="URL" data-id="https://amzn.to/2RTabv0" target="_blank">Heat Sinks for Raspberry Pi</a></em></li><li><em><a rel="noreferrer noopener" href="https://amzn.to/2RP4ZYR" data-type="URL" data-id="https://amzn.to/2RP4ZYR" target="_blank">Small Rubber Round Feet</a></em></li><li><a rel="noreferrer noopener" href="https://www.bestbuy.com/site/reviews/lenovo-li2264d-21-5-ips-led-fhd-monitor-black/5203101" data-type="URL" data-id="https://www.bestbuy.com/site/reviews/lenovo-li2264d-21-5-ips-led-fhd-monitor-black/5203101" target="_blank">Lenovo LI2264d Monitor</a></li></ul>



<h2 class="wp-block-heading">ROMS</h2>



<p>For downloading ROMs of desire, I shamelessly followed detailed instructions provided <a rel="noreferrer noopener" href="https://raspberrytips.com/download-retropie-roms/" data-type="URL" data-id="https://raspberrytips.com/download-retropie-roms/" target="_blank">here</a>. Nothing much to add here besides a word of advice. The only MAME game I was able to successfully play was Cadillacs and Dragons. Most MAME games have interdependencies on each other, so unless you acquire the full set of MAME games, chances are, most of them will not work.</p>



<h2 class="wp-block-heading">Final Product</h2>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/5-1024x683.jpg" alt="" data-id="1499" data-link="https://sufi.io/?attachment_id=1499" class="wp-image-1499" srcset="https://sufi.io/wp-content/uploads/2021/04/5-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/5-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/5-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/5.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="733" src="https://sufi.io/wp-content/uploads/2021/04/1-1024x733.jpg" alt="" data-id="1503" data-link="https://sufi.io/?attachment_id=1503" class="wp-image-1503" srcset="https://sufi.io/wp-content/uploads/2021/04/1-1024x733.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/1-300x215.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/1-768x550.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/1.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/7-1024x683.jpg" alt="" data-id="1498" data-link="https://sufi.io/?attachment_id=1498" class="wp-image-1498" srcset="https://sufi.io/wp-content/uploads/2021/04/7-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/7-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/7-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/7.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/8-1024x683.jpg" alt="" data-id="1497" data-link="https://sufi.io/?attachment_id=1497" class="wp-image-1497" srcset="https://sufi.io/wp-content/uploads/2021/04/8-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/8-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/8-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/8.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/4-1024x683.jpg" alt="" data-id="1500" data-link="https://sufi.io/?attachment_id=1500" class="wp-image-1500" srcset="https://sufi.io/wp-content/uploads/2021/04/4-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/4-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/4-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/4.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/2-1024x683.jpg" alt="" data-id="1502" data-link="https://sufi.io/?attachment_id=1502" class="wp-image-1502" srcset="https://sufi.io/wp-content/uploads/2021/04/2-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/2-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/2-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/2.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2021/04/8-copy-1024x683.jpg" alt="" data-id="1504" data-full-url="https://sufi.io/wp-content/uploads/2021/04/8-copy.jpg" data-link="https://sufi.io/?attachment_id=1504" class="wp-image-1504" srcset="https://sufi.io/wp-content/uploads/2021/04/8-copy-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2021/04/8-copy-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2021/04/8-copy-768x512.jpg 768w, https://sufi.io/wp-content/uploads/2021/04/8-copy.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class='tt_post_video'><iframe loading="lazy" title="Arcade Console in a Wooden Case" width="960" height="540" src="https://www.youtube.com/embed/dTO0_lDgQ8k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
</div></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tickery &#8211; A Time Tracking Device using Raspberry Pi and Harvest</title>
		<link>https://sufi.io/tickery/</link>
					<comments>https://sufi.io/tickery/#respond</comments>
		
		<dc:creator><![CDATA[Sufi]]></dc:creator>
		<pubDate>Thu, 04 Jul 2019 17:35:11 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Hardware Hacks]]></category>
		<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[hackathon 2019]]></category>
		<category><![CDATA[hardware hack]]></category>
		<category><![CDATA[harvest]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[qi]]></category>
		<category><![CDATA[raspberry pi]]></category>
		<category><![CDATA[sense hat]]></category>
		<category><![CDATA[tickery]]></category>
		<category><![CDATA[time tracker]]></category>
		<category><![CDATA[wireless]]></category>
		<guid isPermaLink="false">https://sufi.io/?p=1330</guid>

					<description><![CDATA[For hackathon this year at EAI Technologies, I created an IoT device that allows me to track time through physical interaction and automatically start/stop timer based on my proximity to the device. This blog post details my experience of making such a device.]]></description>
										<content:encoded><![CDATA[
<p>For <strong>hackathon</strong> at our company each year, I work on things that differ in classification from the day to day work that I do. These hackathons typically start on a Friday and end on the following Monday giving us about 4 days to work on each project (with the caveat that we still have to prioritize client work). We are free to work on our own ideas just so long they are feasible in scope and can be targeted to be completed over the weekend.</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://sufi.io/wp-content/uploads/2019/07/DSC_2866-1024x683.jpg"><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2019/07/DSC_2866-1024x683.jpg" alt="" data-id="1361" data-link="https://sufi.io/?attachment_id=1361" class="wp-image-1361" srcset="https://sufi.io/wp-content/uploads/2019/07/DSC_2866.jpg 1024w, https://sufi.io/wp-content/uploads/2019/07/DSC_2866-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2019/07/DSC_2866-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>Participants of EAI Hackathon 2019</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://sufi.io/wp-content/uploads/2019/07/DSC_2647-1024x683.jpg"><img decoding="async" loading="lazy" width="1024" height="683" src="https://sufi.io/wp-content/uploads/2019/07/DSC_2647-1024x683.jpg" alt="" data-id="1362" data-link="https://sufi.io/?attachment_id=1362" class="wp-image-1362" srcset="https://sufi.io/wp-content/uploads/2019/07/DSC_2647.jpg 1024w, https://sufi.io/wp-content/uploads/2019/07/DSC_2647-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2019/07/DSC_2647-768x512.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>Participants of EAI Hackathon 2019</figcaption></figure></li></ul>



<p>Two years ago, I&#8217;d worked on implementing a <strong>Physical Kanban</strong> board with a coworker that allowed users to maintain a physical board for kanban sprints and once an image is taken of the board and uploaded, our application would run <strong>image recognition</strong> (using <strong>Google Vision API</strong>) on the image and translate all the tasks written in post-it notes to tickets in <a href="https://trello.com">Trello</a> board on their respective board columns. These tickets could be worked on after the fact to have more details and a later instance of the image capture would retain all additional information or delete the ticket if the ticket is closed or removed from the physical board.</p>



<p>While the Physical Kanban project and the other projects I&#8217;d worked on during hackathons thus far were exclusively software applications, this year, I&#8217;d decided to go for a project that involved making my own hardware and the software to make it all work.</p>



<p>But I did not want to build something for the sake of just building. I actually had a real problem at hand and with the ideas of some close friends, found the right solution to my problem.</p>



<h2 class="wp-block-heading">The Problem</h2>



<p>At <a href="https://eaiti.com">EAI Technologies</a>, we keep track of our time through <a href="https://getharvest.com">Harvest</a> application and in the best of days and circumstances, it is a hard task for me to keep track of time with it. This is where a physical device to start and stop a timer, that would be integrated with Harvest API, would be so much easier for me to visually keep track of time spent in different projects. So as far as that problem goes, Tickery would be the perfect device to solve the problem.</p>



<h2 class="wp-block-heading">The Solution</h2>



<p>As with Physical Kanban project, human beings are more attentive to physical interaction than keeping up with software applications. So while the intangible world of software keeps us connected, it could easily be lost on us to keep up with mundane tasks such as time keeping. Enter <strong>Tickery</strong>. The goal of this device is to start and stop timer for various projects (<em>mutually exclusively</em>) as you see fit. This could be beneficial for developers such as myself or for project managers or even product people to keep track of their project hours for future analytics or just simply maintaining timesheets (if applicable to them).</p>



<h2 class="wp-block-heading">Tickery (Final Product)</h2>



<div class="wp-block-image"><figure class="alignright is-resized"><a href="https://sufi.io/wp-content/uploads/2019/07/9Z7A1446-2.jpg" target="_blank" rel="noreferrer noopener"><img decoding="async" loading="lazy" src="https://sufi.io/wp-content/uploads/2019/07/9Z7A1446-2-1024x683.jpg" alt="Time Tracking Cube" class="wp-image-1333" width="428" height="284" srcset="https://sufi.io/wp-content/uploads/2019/07/9Z7A1446-2-1024x683.jpg 1024w, https://sufi.io/wp-content/uploads/2019/07/9Z7A1446-2-300x200.jpg 300w, https://sufi.io/wp-content/uploads/2019/07/9Z7A1446-2-768x512.jpg 768w" sizes="(max-width: 428px) 100vw, 428px" /></a></figure></div>



<p>The general plan for the device was to be a <strong>polyhedron</strong> shape where <strong>flipping</strong> on each side would <strong>trigger</strong> a timer to start. There would be neutral position which would trigger all timers to stop. I also wanted a display on the top that, when flipped to one of the sides, would display the name of the project/task that it started tracking. The orientation of the display needed to based on which side it was flipped on and the <strong>color of the screen </strong>should reflect the color each side is marked with. I wanted a case that would fit all the hardware &#8211; and went against my usual tendency to make something out of wood. I opted for transparency (literally) such that it would showcase the inner parts of the device &#8211; and the Container Store had just the thing staring back at me from one of the shelve racks &#8211; an acrylic Baseball display cube. With a little bit of drilling, this became the perfect case for the job.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<div class='tt_post_video'><iframe loading="lazy" title="Tickery - A Time Tracking Device" width="960" height="540" src="https://www.youtube.com/embed/MU3aZJgSDLY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
</div><figcaption>Tickery in action</figcaption></figure>



<h2 class="wp-block-heading">Hardware</h2>



<p>For this project, I&#8217;d decided to go with a <a rel="noreferrer noopener" aria-label="Raspberry Pi Zero W (opens in a new tab)" href="https://www.raspberrypi.org/products/raspberry-pi-zero-w/" target="_blank">Raspberry Pi Zero W</a> that has builtin <strong>Wifi</strong> and <strong>Bluetooth</strong> support and a <a rel="noreferrer noopener" aria-label="Raspberry Pi Sense Hat (opens in a new tab)" href="https://www.raspberrypi.org/products/sense-hat/" target="_blank">Raspberry Pi Sense HAT</a> that comes with bunch of sensors, <strong>joystick</strong>, and an <strong>8&#215;8 LED Matrix display</strong>. Sense hat has extensive libraries and jam packed hardware features that I could take advantage of and even expand functionalities on in the future if I wanted to (like triggering e-emergency alerts for fire emergency, and so on). I&#8217;m using the joystick (although not made accessible from outside the case) to show which project the timer is active for and to do a safe shutdown of the pi if needed so that I don&#8217;t end up corrupting the SD card with having to pull the plug on the pi every time I need to turn off the device (or having to SSH in to the box and turning it off that way first). </p>



<h3 class="wp-block-heading">Powering the device</h3>



<p>To power the Pi and the Sense Hat, I used a 1200mAh 3.7v Lipo battery. The pi and the Sense Hat actually needs 5v input, so I used a voltage regulator that takes in 3.7v and delivers a constant 5V output and also does a clean shutdown of the Pi if the voltage falls below a certain threshold. This is where the Pimoroni Zero Lipo circuit shim came in to play. The only thing I do not like about the Zero Lipo, however is that you actually need a separate circuit to charge the Lipo battery. For that purpose, I used Adafruit&#8217;s Micro USB Lipo battery charger, a small device that is capable of accepting 5V input and charge the 3.7v Lipo battery while delivering the same 3.7v out for consumption at the same time as charging the battery.</p>



<div class="wp-block-image"><figure class="alignright"><a href="https://sufi.io/wp-content/uploads/2019/07/tickery-qi-charging.gif" target="_blank" rel="noreferrer noopener"><img decoding="async" loading="lazy" width="320" height="250" src="https://sufi.io/wp-content/uploads/2019/07/tickery-qi-charging.gif" alt="Qi Wireless Charging" class="wp-image-1357" /></a><figcaption>Qi Wireless Charging</figcaption></figure></div>



<p>So along with the capability to charge the Pi over micro USB, I also wanted to power the device wirelessly using a Qi charger. This was made possible with Adafruit&#8217;s <strong>Wireless Qi Receiver</strong> which I am pretty excited about. The Qi receiver delivers 5V output at 500mA and paired with the Lipo Zero, battery and charger, the Pi is capable of running on its own completely wireless for a long time.</p>



<h3 class="wp-block-heading">Components Used</h3>



<ul class="hide-bullets"><li>         <span class="material-icons">computer</span> Raspberry Pi Zero W ($5)     </li><li>         <span class="material-icons">battery_charging_full</span> Adafruit Wireless Qi Receiver ($15)     </li><li>         <span class="material-icons">battery_charging_full </span> Pimoroni Zero Lipo ($12)     </li><li>         <span class="material-icons">sd_card</span> 4GB SD Card ($3)     </li><li>         <span class="material-icons">screen_rotation</span> Raspberry Pi Sense Hat ($30)     </li><li>         <span class="material-icons">battery_charging_full</span> 1200mAh 3.7v Lipo Battery ($10)     </li><li>         <span class="material-icons">crop_square</span> Baseball Display Cube ($4)     </li><li>         <span class="material-icons">battery_charging_full</span> Adafruit Micro USB Lipo Charger ($7)     </li></ul>



<h3 class="wp-block-heading">Features</h3>



<ul class="hide-bullets"><li><i class="material-icons">             wifi         </i> WiFi</li><li><i class="material-icons">             bluetooth         </i> Bluetooth</li><li><i class="material-icons">             battery_charging_full         </i> Wireless Qi Charging</li><li><i class="material-icons">             screen_rotation         </i> 9 DOF IMU Sensor</li><li><i class="material-icons">             battery_full         </i> 7h Battery life</li><li><i class="material-icons">             tv         </i> 8&#215;8 LED Display</li></ul>



<h2 class="wp-block-heading">Software</h2>



<p>At the heart of the device is a python script that I run that pulls in the project mappings for each side of the tickery device that constantly monitors the Sense HAT&#8217;s <strong>IMU sensors</strong> to sense the orientation of the device. This <strong>python script </strong>can be found at my GitHub <a href="https://github.com/sufinawaz">here</a>. </p>



<p>As for the Restful services to keep track of the project mapping for each side  of the Tickery device, I&#8217;d  created a simple <strong>Spring Boot </strong>based application that uses <strong>elasticsearch</strong> as the data storage. I&#8217;ve used a <strong>docker container</strong> to run the elasticsearch instance, but you could easily use a hosted service or even a local instance if you so desire. You can follow my <strong>tutorial</strong> on a similar project from here <a href="https://sufi.io/spring-boot-app/">Spring Boot Starter App with Elasticsearch</a>. </p>



<p>The UI I built was a very basic <strong>Angular app</strong> that allowed me to map each of the four sides to one of the project assignments I have in Harvest. Details on using <strong>Harvest API</strong> can be found <a href="https://help.getharvest.com/api-v2/">here</a>. For this, I needed a personal access token from Harvest, which could be created <a href="https://id.getharvest.com/developers">here</a>.</p>



<h2 class="wp-block-heading">Additional Features</h2>



<p>One of the features that I was able to implement last minute was a <strong>proximity based start/stop trigger</strong> for currently active timer. For this feature I have the bluetooth address of my phone being searched for over bluetooth while at least one timer is active. If this feature is turned on, then the active timer would be stopped if, let&#8217;s say, I walk out to grab lunch and would resume the active timer if I&#8217;m back to my desk. This reduces the complexity of having to worry about leaving behind the device when I&#8217;m going leaving for home or just the work premises in general. This feature can be turned off as one wishes, but for me, this is a perfect feature that I see forgetful self leveraging quite heavily :). If I&#8217;m working from home and I leave the device on an <strong>active</strong> side, I can simply turn off the feature through the web portal.</p>



<h2 class="wp-block-heading">Future Features</h2>



<p>The Sense Hat has a bunch of sensors that I did not take advantage of for the hackathon project, but it is totally feasible to take advantage of the <strong>temperature and humidity sensor</strong> to<strong> trigger fire alarm</strong> if temperature sensor picks up an alarmingly high temperature calling. This could conceivably be done using SingleWire API or Ring API for instance. I haven&#8217;t done much research on this area but something I look forward to doing in the future.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sufi.io/tickery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
