Road to Eternity!

Actually its Road to #Yosemite National Park #California. A long drive on an endless road is something I wished for and this did happen. You can drive away to #eternity. It’s Beautiful.

14 - 1(3)

/Ghanashyam

Advertisements

A dream come true – my visit to Palo Alto!

I was fortunate to visit 2066 Crist Street Los Altos. Its where the first 50 Apple 1s were built.
14 - 1(1)
Yes, it’s Steve Jobs garage. I also visited 2101 Waverly Street where Steve Jobs breathed his last. Its a beautiful residence down 40 blocks from the Palo Alto Apple Store. Serene as you would imagine.
14 - 1(2)
Another place I couldn’t miss visiting was the #Apple Headquarters 1 Infinite Loop in #Cupertino. Most of the surrounding buildings are all Apple campuses there.

14 - 2

Unfortunately I only had a Sunday to visit and couldn’t get a company tour. The place was deserted but it filled me with excitement!

I also visited Big Sur and Highway 1 – an incredible drive along the Californian shores. The day was filled with a very emotional experience.

/Ghanashyam

[experiences March2014,Apr 2014]

Soundcard Scope – My computer is my oscilloscope

I really wanted an oscilloscope for debug of signals which I was sampling
on Galileo IO and came across this wonderful software Soundcard Scope –
by an amazing Christian Zeitnitz.

The software simply transformed my computer into an oscilloscope. It uses
the mic input to sample signals as if they are sound signals and plots it
for visual debug like an oscilloscope. The software uses the sound card’s
44KHz sampling frequency and if you have signals just below 20KHz, this
is a perfect DIY at home scope for makers. I don’t own a regular scope but
would guess them to be pricey enough to be NOT that affordable. Though this
is not a replacement for a regular scope, it sure is a feat for some one
wanting to just get a glimpse of those electrical signals and feel happy
about the wiggles!!
Oscilloscope
Sure it was a bit noisy but seeing those signals wiggle makes one feel like
a winner!

Connections for the mic also attached.
mic35
The software itself is a Windows executable. But then I have Debian wheezy.
I installed Wine and could run this Windows executable like a charm first
time. I tried to create a make-shift mic in cable with one of the spare
3.5mm jacks that I got for to make the USB to ttySerial serial cable for
my Galileo.

Worked pretty well! Have a look in the picture below – The breadboard has
a TSOP IR decoder decoding IR streams. Output of the TSOP is fed to the
Galileo as well as the mic in of my computer – and screen shows a nice
waveform. The IR decoded pulses are supposed to be 600us wide so my
waveform would be around 1.6kHz which should fall well within the range
for this scope.

PS: The Galileo still reads a different value as compared to what I see on the
scope though.
Mic diagram from http://www.epanorama.net/

Cheers!
/G

[experience dated Aug 2014]

Soldering Skills and PACE materials

I haven’t done much of soldering before – but seriously, this is one heck of a technology. The beauty with which the solder flows into the joints – wow! Last year, I started to get my hands dirty on #Makerstuff, and I planned to set up a mini work bench at home with components, breadboards, a soldering station, a nice Bosch tool kit and plan to accumulate stuff over time for a long term goal of mine [will share more details in future when things materialize]. I have a decent work bench now, so that’s an achievement over the last year which was good, which was hectic and was fun as well.

So back to soldering, I came across this wonderful wonderful series of lessons on Soldering by PACE. Incredibly crisp and beautiful description of how to solder and hone your soldering skills – A must watch for any #Maker, electronics enthusiast!

Here take your lesson today – worth every minute spent, the guys’ a genius – https://www.youtube.com/watch?v=vIT4ra6Mo0s

And yeah I tried building a Grove Seeed Studio GPIO expander – I think I did pretty ‘okay’ but that got me started! I can surely solder well these days :-)

B2lBgqxCUAEcvuP

Best
Ghanashyam

[experiences dated Nov2014/Jan2015 ]

Raspberry Pi Madness

More Power to #RaspberryPi madness – Voice control your TV/TataSky

This is sort of an update post on my project where I started to put an year old Raspberry Pi board to real use at home after using it as a Media Center for sometime now. And yes I am enjoying the Media Center.

I had initially started out to implement this project with #Intel #Galileo  Gen 1 but gave up – Handling Infrared was simply easier to use on Raspberry Pi than Galileo. So here’s some write on my hobby project.

See Galileo at http://www.intel.com/content/www/us/en/do-it-yourself/galileo-maker-quark-board.html

Quick Overview on the Project
Implement a unified remote control system to control both set-top box as well as my TV. User interfaces can be voice controlled via Apps or Gesture based. For Gesture I am still going to try and use
Galileo with Open CV.

Raspberry Pi Hardware Set-up
The Raspberry Pi IO can be used to decode as well as encode Infrared Remote control streams. I wired up a small circuit on the bread board to power up the IR transmitter and receiver and then
used the awesome Linux package LIRC available for Wheezy for RPi, I could easily decode the IR streams for TV and the set-top box. So the RPi now could control TV and set-top box.

References
I got most of the IR related information from Ken Shirriff’s blog: A Multi-Protocol Infrared Remote Library for the Arduino

The LIRC site http://www.lirc.org/
http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/
for LIRC on Raspberry Pi

Web server
Wanting to use the node.js framework on Galileo to control and then forked off an implementation from https://github.com/cryptosig/GalileoLED-NodeJS which implemented web-server for GPIO control on Galileo – Most of my code here is reused and I should give credit for the original code and the coder for quality and readability.

I will add my code later on when I put in some security features into it. The web-server parses HTTP requests in a specific format and issues runs an LIRC command to transmit IR codes depending on the command being sent in the HTTP request. So I could now control IR transmission with a browser on a phone or any other connected device.

The Android App
I used an already available Android Voice recognition Android Speech Recognition – Example (http://www.learn2crack.com/2013/12/android-speech-recognition-example.html) on the net to be able to send HTTP requests to the static IP:port. For now the user would have to speak the name of the channel example MTV and /select/ [key press – I hate it] one of the results of the voice recognized and then the App would send that channel to the web-server. The web server on RPi then looks up the IR commands and passes it down to GPIO!!
Screenshot_2014-11-05-16-07-04
Future Stretch Goal Enhancements
Eliminate the need to key press voice recognition results.
Make App menu like Google Now starting off with Ok Google?
Enhance security by allowing Login sessions
Gesture Recognition – with Galileo to turn ON and OFF and probably even parse TV menu like Jarvis?

May be there are better things out there but it was fun learning to “make” things work

Thanks
Ghanashyam

[experiences dated Nov 2014]

Back to Back blog updates! Sigh but anyway..

Am going to update a few posts on this blog back to back – Filling up the missing journal entries. I’ve had some good experiences last year with hobby projects and work, so these posts are pretty much technical stuff.

Recovering your Intel Edison board

Am going to make this notes because I’ve been struggling to recover my Edison – Even though the documentation is straight forward, it took me a while to get my Edison recovered. It’s silly, I had forgotten my root password. And even more silly, I tried and tried a good amount of combinations and it just wiped it off my muscle memory as well. So here’s the notes on the same.

Recovering your Intel Edison
[if you have a bad firmware or if you’ve lost the password ]
I followed the same thread as in one of the communities except that I
had limited luck with Windows – I think the MMC area was simply not
getting written or formatted at all. Linux-1 Windows-0

Keep ‘screen’ connected so that you can have a look at the log of
what’s going on with Edison

> sudo screen /dev/ttyUSB0 115200

1) Download the latest Full Yocto Image for Edison from the Intel
software downloads website
https://communities.intel.com/docs/DOC-23242

2) Unzip the image into a directory

> unzip edison-image-rel1-maint-rel1-ww42-14.zip -d ~/edison-image/.

3) Connect your Edison to Linux machine – Windows didn’t work well for
me for the same procedure of flashing.

4) Make sure you see the Edison partition accessible in Linux.

5) Copy over the contents of the image [now in the edison-image
directory]​ to the ​edison partition that you see in the machine. I
executed the below command, since my partition was mounted at
/media/usb2

> cp -rf ~/edison-image/* /media/usb2/.

6) Unmount the partition so that all the files get written to the
MMC. This might take some time.

7) Reboot your edison and keep pressing a button until it take you to
uboot promp with something like > boot

8) Execute the following command

> run do_ota

9) This command should read the ota_update.scr file and then also
flash all the partitions including root. This will take some time
and then the board automatically reboots twice. Keep track of the
logs you see on the screen

Best,
Ghanashyam

Thank you Steve!

The Hero

I woke up to this news about Steve Jobs’ death on the morning of October 6th and all I could do was to hold myself back in intense grief, that the day had come. I had not expected his cancer to be this quick and brutal. I was only left with inexplicable sadness in my heart and a deep breath to say ‘This is n’t fair’.

Admiration for Jobs starts with the moment you hold Apple devices in your hand. Your jaw just drops and a “Wow” gets uttered from your mouth involuntarily. This rarely happens with other products. I felt it when I opened up the iPod shuffle case, when I felt sleeky iPod Nano, when I fell in love with the iPod Touch, when I experience beauty with a Mac. It is “Magical”.

This artist was like never before never again. An artist who paid intense attention to detail be it his remarkable designs, logos, his talks, his words, anything he created were a work of a genius.

I have always wondered how it would have been to be in the times of legends like Einstein, Edison, Tesla, Visveswaraiah, Vivekananda, Subhash Chandra Bose or Gandhi.. I think I know now. I am in the times when Steve Jobs created Revolutionary, Incredible, Insanely Great and Magical products, in the times when Steve Jobs lived.

You redefined “Magical”.
Thank you Steve. R.I.P

PS:
Bookmarks
Steve Jobs’ thoughts / His message
http://www.youtube.com/watch?v=4oAB83Z1ydE
http://www.youtube.com/watch?v=zTR6B7CBKmo

Piezo electric effect – Sounds familiar?

So how does a kitchen lighter work?

The spark in a gas lighter is generated because of the high voltage created across the terminals of an array of quartz crystals. The voltage across this crystal is generated because of a phenomenon called piezoelectric effect. When the crystals  contract across its cross section, a voltage is generated across the surface of the quartz crystals.

When the terminals connected to its surface are routed via two wires and held close to each other, electrons jump from one terminal to another creating a spark!
The button press simultaneously supplies adequate gas which around these closely placed terminals and a spark ignites the gas to make a sufficient flame!

This I figured out while trying to fix my gas lighter. May be I am foolish to have not known about the spark thing till now, now but I am kind of happy that I learned about a specific example (day to day usage) which demonstrates piezoelectric effect.
Wish these were examples which they used during school to explain concepts like these more interactively to students. May be my learning has just started :(


Shyam

understanding regular expressions to finite state machines

i recently came across a question on designing a state machine for detecting a binary string sequence. the solution to such a problem has two approaches. the very commonly followed approach is analyze the “given” sequence over and over again and try to scribble state transitions and test the patterns on it to check if breaks. i believe this is the way hardware engineers work this out, primarily because they spend some time which is considerably less than what they spend for other problems they analyse :) i say hi to “theory of relativity” here..

the second approach is to have rules to analyze such problems because they only consist of binary patterns (0s and 1s) and a rule based solution is like some kind of a program, so you don’t necessarily have to do much testing or alter, adjust your state machine as you try to solve the problem. the theory that deals with such kind of problems of pattern matching and sequence detection is the famous regular expression or the re. regular expressions can be analyzed as finite automata, or what can be called as our commonly known finite state machine.

so the best way to deal with such problems is to represent the sequence as a regular expression and just try converting it to finite state machine based on rules.

So some notations w.r.t re:

a* : an a* would mean 0 or more matches of the letter “a” followed by successive letters. for instance a*b matches “ab”, “aab”, “aaab” or just “b”.

a+ : an a+ would mean 1 or more matches of the letter “a” followed by successive letters. for instance a+b matches “ab”, “aab”, “aaaab” but will not match just b.

a? : an a? would mean 0 or 1 matches of the letter “a” followed by successive letters. for instance a?b matches “ab” or just “b” but will not match “aaab”.

the problem statement mentioned the sequence detection for the string 101011, which also meant that the state machine should be able to sustain 101010111 or a 111101011 as a match since both these string involve the string 101011.

Looking more closely at the sequence, a few points to notice.

a. match as many 1s preceding this sequence so that we end up matching 11101011, or 11111111010111 or 11111111111111101011. to put this in the basic atom terminology, we match (1+)01011.

b. match as many 10s preceding this sequence so that we end up matching 10101011 or 101010101011 … so we can end up consuming any number of 10s once we get past the first occurrence of 10. to put this in the basic atom terminology, we match (1+)0(10)+11

so that is pretty much translating problem into a regex string. The following slideshow will try to illustrate a method to translate a regular expression into a state machine. There might have been mistakes in my understanding and representation. Comment or e-mail me if you think there is something wrongly interpreted.

Thanks
Shyam