Friday, January 20, 2012

Mythbusters

So this happened
My work paid for our department to go see the mythbusters tour! It was an awesome experience and we got to meet them afterwards. Both Adam and Jamie are very cool down to earth guys, I have an enormous amount of respect for them.

Thursday, January 5, 2012

2011 accomplishments

2011 has been the greatest year, I’ve accomplished and learned so much, and I’ve had some amazing experiences.

Some accomplishments this last year in no particular order:
  • joining a hackerspace
  • learning to program php
  • learning javascript
  • learning mysql
  • learning (some) java
  • learning how to program microcontrollers
  • learning how to layout circuits
  • learning how to solder surface mount components
  • learning how PID works
  • becoming comfortable with linux from the command line
  • building an inverted pendulum
  • finding awesome friends
  • attending the DEF CON computer security conference
  • reverse engineering an RFID reader and getting on hackaday for it
  • getting a good job in the field of my interest with a great boss and coworkers
  • learning to program in c sharp
  • paying off my credit card
  • getting a powerful new computer
The major factors that contributed to my success this year:
Attending the University of Wyoming this past year was a tremendous challenge but also a great learning and growing experience. I am now much more confident in my academic abilities.
Working for my dad the last summer also open many doors to opportunities because of the skills and experience it provided.
Discovering the transistor has been the key to so many opportunities, I am much improved since discovering it.
The final key (without which I couldn't have been able to have completed any of the previous) is adderall; it has allowed me to overcome the burden of ADD.

Sunday, October 30, 2011

New computer!

A few weeks ago I was given a programming project to work on. I learned a lot, and in return I got a fancy new computer! I love it so much, you never know what you’re missing until you have the opportunity to work on something that’s extremely more powerful.

A major plus of this is I’m able to easily have access to both windows and linux at the same time with virtual machine software.

310339_782122275464_193309715_36869686_1885808875_n

Two 23” LCD panels.

301321_782122300414_193309715_36869687_1726819509_n

SSD,
16 GB of ram.

299857_782122350314_193309715_36869688_1678892118_n

And this my friends is the most amazing keyboard ever, the das keyboard is awesome to type on.

Monday, October 17, 2011

Hacking cheap RFID readers

RFID readers on prototype supply places like Sparkfun are too expensive. There are many cool applications for the technology, but cheap readers that include documentation and a standard interface are impossible to find.

I decided to confront this problem. I found and ordered a cheap 125kHz reader off  eBay for around ten bucks.

The interface of the reader was usb. You’d plug it into your computer, it’d identify itself as a USB keyboard, and scanned tags would be typed out into a text editor.  my hope was to locate the IC doing the initial decoding, and tap into it. Simple enough right?

When the reader arrived I verified that it indeed worked via usb (it did), then I promptly disassembled it.

IMG_20110924_140104

 

readerlayout

I Googled the specs on the components, but unsurprisingly I was unable  to find the datasheet for the chip doing the actual reading.  There were, however, some breakout pins. I was hopeful the hard work was already done, and this was just a generic board. Testing with a volt meter revealed that two were for power (5v, gnd).

 IMG_20110927_194836

Now, I knew what I was looking for, a 10 digit numeric code. What I didn’t know was the protocol being used, and it what variation. I located what I believed was the TX pin (assuming it was UART) by poking around with the RX of an FTDI serial adapter and RealTerm (best serial debugging program imho) to try and get some data.

 

nope

I didn’t seem to be getting anything usable, but at least each tag was consistent. I assumed the issue was with the settings, however after messing with it for quite a while, I still hadn’t made much progress. I decided this was the perfect excuse for ordering in something I had been wanting to get; the Open Logic Sniffer from dangerous prototypes.  It’s kind of like an oscilloscope but records the data as well.

After it finally arrived, I connected it up, downloaded the software, and started collecting data. cropped

This is the output signal of the RFID reader. at this point I was confused, as there didn’t seem to be near enough data to match up what was being read in RealTerm.  As I’m a very visual person I decided to open a screenshot of the data up in Photoshop and make some visual aids to simplify analyzing the signal. If the protocol was indeed serial, then I should find some common patterns.

With the way serial works, there is a start bit (low) and a stop bit (high)  to help provide reference for reading the data. I created another layer in Photoshop with “bytes”, to see if I’d find the appropriate start and stop bits, and indeed I do. 

visualaid1

This brought up a couple problems though, the bytes decoded didn’t match up to anything in ascii (or anything else really), and there were only 9 bytes, while the tags were supposedly 10 characters long. Perhaps the leading char was inserted by the usb chip? This is a possibility as it was labeled as zero on all of the tags.

visualaid

In an attempt to determine what common bytes might be, I scanned a different tag, screenshot the output, then put it as another layer with 50% opacity over the first. I was extremely confused by the result:same

As you can see, it’s exactly the same. I did this many times to make sure I' wasn’t accidentally reading the same tag twice.

I recalled that I was getting more data out in RealTerm, so out of curiosity I lowered the frequency read rate of the logic sniffer from 1MHz to 100 kHz…

Bingo.

bingo

After manually decoding the output, I checked to see if the hand decoded bytes were consistent with the automatic logic analyzer.

almost

At this point I decided to take a different approach. I knew what the code on the tag was, so I decided to check for similarities. I  realized that there was a difference of 39 between the desired number, and the decimal value of the byte, but there were some values that wouldn’t produce a valid result. 

I knew I could make it work in software, I connected the reader up to a teensy and wrote a quick test sketch.

woot

(note: I manually inserted newlines for legibility)

This is good! all I needed to do was fix an issue with zeros, as they would actually end up as tens.

woot1

And it works!

I know I went about this the long, roundabout way, but I’m still happy; I learned quite a bit, and it was a fun challenge.

Download the demo code here if you so desire.

Monday, June 27, 2011

I'm so lucky it's ridiculous

This summer I was lucky enough to get an awesome job in in software (and some hardware) development. The fact that I am doing something that allows me to be creative and flexible makes this job ideal, I'm gaining an incredible amount of knowledge and skill too.

As I was checking around for a place to get some components, I learned there is a hackerspace in my city. I went to check it out, and subsequently had the the most awesome revelation ever. The place itself is a geek mecca. equipment ranging from soldering irons to 3D printers, and tons (literally) of components to build about anything. What I was elated about was the community. This community of makers and hackers have a mindset similar to my own, they're open minded, full of ideas, have a love of learning, and have no concern for superficial things. They're more intelligent than myself and happy to share their knowledge.

Usually, I find conversations with most people to be incredibly boring and superficial. I know this sounds condescending, maybe I just suck at small talk. So many people seem to view life as if they're just pawns on a chessboard, if something gets too tough they decide they're not supposed to do it, they're resistant to change and trying and learning new things, they're afraid to dream.

The makers and hackers here aren't afraid to dream, "because I can", is reason enough to built a robot zombie laser game. I'm ecstatic about finally finding a community that doesn't know the meaning of impossible.

Sunday, May 15, 2011

A small victory

My first semester at the University of Wyoming was extremely challenging but also a very fulfilling and educational experience - much more than just in the topics studied.

My professors were absolutely awesome, my housemates were great, and I made a bunch of amazing friends.

As I encountered difficulties, I made a few realizations: Even the most difficult subjects weren't actually difficult at all, the vast majority of the stuff was trivially easy. The difficult part was staying focused and interested long enough to actually learn it, thought on the things that I was interested in I was able to do very well.

Here are some of the things I found that helped promote focus (for me anyway).

DO NOT STUDY AT HOME! There are way too many things to even start attempting to eliminate them at your house. If it’s at all possible, go to the library.


Install an adblocker on your browser. Install focus promoting extensions on your browser like stayfocusd for chrome or LeechBlock for Firefox.


Make notes on paper. Writing by hand sucks, but what I found is if I make notes in a computer I’ll never look at them, and this way I also have motivation to improve my handwriting.


Put the study room schedules and the professor office hours in your calendar. My android phone was incredibly helpful, as it synced to my google calendar.


Delete all your games. Games are evil. I actually had a friend change my password on one of my favorite games. That was tough. I’m realizing now that in order to accomplish my goals, games are not a luxury that I can really afford, as I’m not good at playing them in moderation.


Say no. People are always asking for help or just wanting to hang out, or talk because they’re bored. If you’re polite and oblige them, you’re risking loosing your momentum and focus.


Eat breakfast. Everybody always says this, and that’s because it’s incredibly true. If I miss breakfast it’s much more difficult to focus.


Make a schedule for what you’re going to do the next day the night before. It’s surprising how much this helps.


I actually did well in my classes, and I think it’s feasible to ace the next semester, I‘m very capable if I can stay focused.

Tuesday, February 22, 2011

Bread

I dislike store bought bread, it’s gross and probably very unhealthy.

Home made bread is really the only way to go, my grandma would make incredibly delicious bread It was always a treat to get a slice of warm bread fresh out of the oven so it would melt the butter. Unfortunately the skill in making her style of bread will probably always be beyond me, and on top of that I have little time to put towards cooking, as school takes most of my time.

Here’s the good news, a while back my dad discovered a recipe  in the New York Times for bread that took only a couple minutes preparation time. It’s incredibly tasty.

Since school started I have been making this bread about every other day, I’ve been experimenting with slight variations on cooking times, different proportions of ingredients, and even adding things to it.  Despite whatever variation I make it always gets eaten, my housemates really like it, and it’s almost impossible to ruin.

I present to you the latest beta recipe, I’ve optimized it for flavor and sandwiches. Keep in mind that I am at around 7200 feet elevation, so you may need to modify it for lower elevations.

3 cups flour;
~2/3 tsp yeast;
1.5 tsp salt;
~1.5 cups lukewarm water;
~1.5 tbsp crushed garlic; //(optional, but it’s the secret ingredient)

Mix the dry stuff together, add the water and garlic, mix it all together. Let it sit in a covered container for at least 7 hours. At that point fold it over, and let it sit for another hour or so.  I’ve let dough sit for a couple days before, and it’s turned out just fine.

Cook it in a covered container at 450F for 45 mins. You don’t need a real lid, I use a ceramic bowl from a slow cooker with a piece of aluminum foil over it to hold in the steam. after 45 mins take off  the lid, (or foil) and cook it for another 15.

 

IMG_20110222_204551

Just baked this today, I wanted to get a picture of the fresh loaf right out of the oven, but the housemates got to it first

 

IMG_20110222_204604

mmmm, tasty.

 

IMG_20110126_135449

Here Is an older pic of a loaf  before housemates got to it.


Everybody should be making bread, it’s cheap and tasty, I suggest starting out with the original NYT recipe and adapting it to your liking.