Review of Ananiah Electronics RF9315R active RFID reader with RSSI

July 1st, 2009

A while back I did a review of some of Ananiah Electronics‘ RFID modules and readers. These are simple RF devices that fulfill the baseline requirement of an RFID device (periodically transmits an identifier)… but the great thing about these modules is the price. You can get them for a steal of a deal, which makes proof of concept applications, prototyping, or just plain home brew projects able to be done on the cheap.

The only down side at the time of my original review was the lack of an RSSI value in the reader data stream. An RSSI value is basically a signal strength indicator that tells you how well the reader is receiving a signal from an RFID tag. The upside to that is, many people use value as a poor man’s distance meter. True distance or location can never be surmised using RSSI alone, but using multiple readers placed in key locations around an area you want to monitor can give you a darn close approximation.

Well just recently Ananiah Electronics released their new RF9315R reader module that reports 8 bit RSSI data! That means you get a high resolution RSSI value between 0 to 255, depending on how strong the tag’s signal is. This is great because until now I’ve not been able to find an active RFID reader with a decent RSSI data stream for under $40, but these guys have done it.

RF9315R reader w/ RSSI

RF9315R reader w/ RSSI

I decided to use the same RF8315T transmitter I used in the last review so I could show the difference in data streams between the classic RF8315R reader and the new RF9315R reader.

RF8315R reader w/o RSSI data

RF8315R reader w/o RSSI data

RF9315R reader w/ RSSI data

RF9315R reader w/ RSSI data

As you can see, the tag’s ID is given, then the RSSI value, followed by a space character (ASCII 32). The only thing I might have done differently would be to make the RSSI value a fixed length field, so 008 or 092 instead of just 8 and 92. But, parsing the data is easy enough as all Ananiah tags at this point are 4 bytes long, and the “end of line” delimiter is a space. Anything between is RSSI :)

For the test above I didn’t move the tag at all because I wanted to see what the RSSI variation would be of a stationary tag. I was pleased to see that the RSSI value didn’t change much while everything was sitting still. After picking up the active tag and moving it further away, the RSSI value went down as expected. However the same effect could have been achieved by simply curling the reader antenna under itself or interfering with the signal in any number of ways. Because its easy to interfere with the signal, RSSI values alone can not be used to accurately judge distance from a reader, or location between multiple readers. Even low batteries could be a factor when it comes to RSSI values changing.

Even so, the bottom line is; the RF9315R is a great and very affordable active RFID reader.

WTF! Can someone fix FireFox printing?

June 26th, 2009

So I use FireFox for most browsing… except for when I want to print something. If I know I’m going to eventually print something out, like a purchase invoice or a business license renewal confirmation, I use Internet Explorer. Why? Because FireFox effing sucks when it comes to printing.

Anyone who’s ever tried to print more than a single page using FireFox knows that it not only cuts lines of print in half (if that line happens to fall on the page break), but it also simply drops a percentage of margin on the top and bottom. The bottom line is (yes, it’s a pun), if your bottom line of text is cut by a page break, the margin chopping will result in one very unreadable line… and chances are that line was the only really important thing you wanted to print out anyway.

So why the rant? I just finished a big long pain in the ass process on this goverment website, in firefox, and printed out the final confirmation page. I didn’t think about it until I closed everything down and grabbed the pages off the printer. Of course, the most important line in the whole thing was completely obliterated by FireFox. WTF!

Come one someone… anyone… get on the opensource bandwagon and fix this shit already! Here’s the source code. Oh, you want me to take a stab at it? Recently I’m finding it much more important to focus on getting paid to fix problems.

To be fair, IE has it’s own problem with margins… it just happens to be in the other direction. If the page/frame you’re printing out goes “too wide” (which often has nothing to do with the actual width or amount of free space on the paper), it will crop the right side of the print job… usually the total on any invoice or order confirmation.

Monster Beetle!

June 10th, 2009

I was on my way to work today when I had to just stop to take some pix of this monster beetle!

img00360-20090610-12071

img00359-20090610-12061

img00361-20090610-12071

Some of my favorite ringtones

June 9th, 2009

I was cleaning up the files stored on my phone today and came across some ringtones I love but haven’t used in a long time.

First up, the classic “Don’t tase me bro”. This ringtone is a clipping of audio from the famous “Don’t tase me bro” video, minus some of the talking bits in between the screams. I literally just did a basic crop job, leaving this guy screaming like 6 times, and then only after a woman in the background yells out “Oh my god!”, he gets the idea to change from a steadily deflating “owww”, to deliver the best defeated sounding Oh my god I’ve ever heard.

dont-tase-me-bro (wav)

Next we have an audio clip from the end of a classic South Park episode. Cartman is singing his own version of the Wild Wild West theme song. Annoying as a ringtone yes, but still good to attach to various contacts from time to time.

wild_wild_cartman (mp3)

Now this one was quite simply a voicemail left for a coworker (Jay) in the IT department by an employee irate over a finicky terminal on the manufacturing floor. As an IT department inside joke, I used it as my ringtone for a few days, but it ceased to be funny by the second afternoon. However, after a few months the ringtone got an encore and wowed audiences once again. But alas, I think it’s time to retire it now. Before deleting it from my phone forever, what better ceremony than to set it adrift on the bitstreams, perhaps giving it a new life somewhere in the great beyond.

complaint (wav)

This one is a great closing line from a song performed in the movie Yes Man. I just thought it appropriate as a ringtone to assign to those people who tend to call you to hang out only when they want something from you. If you’ve not seen the movie, you’d have to hear the whole song to get what I mean.

call-me-at-ten-fifty-nine (mp3)

Another classic ringtone, the Imperial March from the original Star Wars works great for girlfriends, wives, etc. It always gets a laugh when people hear it, give you an odd look, and as you answer you quietly utter “the wife” :)

star-wars-imperial-march (mp3)

An amazing thing to come across

June 7th, 2009

We’ve had a great run of good weather the last few days, so we took advantage of it today and took the ol’ bicycles out for a few hours ride. On the way back, I came across the most amazing sight… a perfectly intact waffle cone sitting on the shoulder… then a couple feet later a perfectly melted circle of ice cream. It was so crazy I had to stop, turn around, and snap a pic.

img00345-20090607-16022

The reason this intrigued me is, let’s say I had dropped my ball of ice cream on the ground. Upset, I would have probably tossed down my waffle cone, which would have undoubtedly broken it. It looks to me like someone purposely bent down and carefully placed the waffle cone down on the ground as a sad testament.

Stamp based security system

May 31st, 2009

I’m working on a project that involves green computing, and oddly enough an old building. This project has a low budget at the moment, but still requires a flexible security system for an inner and outer door. I figured I could easily put a BS2 chip to the task and come out with a pretty decent security & monitoring system.

I’m posting some pix and the code file because I figured it might help some people get a handle on a basic multitasking project that also includes RS232 host communications.

SECURITY_SYSTEM.bs2

—–[ Program Description ]—–
This security system monitors two RFID readers, controls two door latches, monitors two door status sensors (open/closed), monitors two security override keys/buttons, and supports two way 9600 baud RS232 communication with a serial host.

Tag IDs received from RFID reader hardware are sent to an attached serial host for both logging purposes as well as host based authentication. A limited number of “failsafe” tag IDs can be stored in memory, however a nearly unlimited number of tags can be supported if the serial host is used to determine if a tag ID should be allowed access.

Serial host communications
===========================
Approximately once every 1.5 seconds, the security system will update the serial host with door status sensor data. This data is followed by the string “CMD”, which tells the host that the security system will wait one half second for a latch command from the host. Because the stamp has no built in serial buffer, host communications must be kept to a strict timing schedule. The security system will also output event data such as tag reads, latch triggers, and override keys/buttons being pushed. But the only time at which the security system will listen for host commands is directly following the string “CMD”. Because the system will only process one command at a time, the host must queue its commands and only send one per “CMD” string received.

Data strings sent to host vary depending on event. Approximately every 1.5 seconds a status string will be sent just before a command “CMD” string:

    D1:1,D2:1,I1:0,I2:0,GA:0,GB:0,GC:0
    CMD

This example indicates that both doors are closed and all inputs or GPIOs are showing LOW status.

In the following example, a tag ID is read from reader 2 and the tag ID is sent to the host. The tag also matches an ID stored in memory and latch 2 is triggered:

    R2:,T:0103C1E821
    L2:1

Finally, this example shows an override key being used to open door 1:

    K1:1
    L1:1

Host commands are simple ASCII character byte strings:
char    result
====    ===============
1    Trigger latch 1 (2.5 seconds)
2    Trigger latch 2 (2.5 seconds)
A    Trigger GPIO A (1/4 second)
B    Trigger GPIO B (1/4 second)
C    Trigger GPIO C (1/4 second)


Laying out parts

Laying out parts

Assembled board

Assembled board

In the case (top)

In the case (top)

In the case (bottom)

In the case (bottom)

It’s a faux pas for sure, but what kind?

May 31st, 2009

Jenny and I were sitting at our dining room table, laptops in front of both of us, when she turned hers toward me and said “Get a load of those!”. I’m not sure what the faux pas in this picture is exactly, but there’s one in there, that’s for sure:

wtf_wedding_dress

At first I thought I had a problem with the wedding dress. I mean, after all, who would make such a dress, let alone wear it? Then for a fleeting moment I thought the guy was one lucky bastard being that his wife was not only hot but was also the kind of woman who flaunts that rack of hers… and maybe I imagined that the personality underneath those cans was just as interesting and voluptuous. But then reality hit me, snapping my jaw back into its proper position, and looking at her face I realized, she’s already bitching about something… and all that flaunting now means she’s only going to be that much more annoying later in life.

Ultimately, if I had to start all over and could choose between a wife who flaunts her impressive cans at her wedding, or a wife who actually points out those impressive cans to her husband… let’s just say I’m glad I made the right choice ;)

The adventures of uric acid and gout foot

May 31st, 2009

So here’s an odd one. Over the last few years I started having problems with gout in my right foot. It’s odd because every time I go to the doctor for it they tell me to lay off the booze and eat less meat. The reason this is odd is the fact that I don’t drink, save for one pint (only one) of cider a couple times a month, and a rare shot of Irish cream liqueur once or twice a year. I’ve also been a vegetarian for the last 13 years, so cutting more meat from my diet isn’t really possible.


illustration arthritis_gout

I always thought Gout was some kind of old person’s disease, but it turns out even the relatively young (early 30s is still young, right?) can still have problems with uric acid build up. Somehow, my uric acid levels are getting too high, and when that happens, very sharp crystals start forming in my joints and start causing probably the worst pain I’ve ever experienced… at least the worst pain I’ve ever experienced that carries on and on all day and all night without end. The first day of an acute attack usually begins as a dull pain with some slight swelling. You can see my right foot is red and puffy, particularly around the big toe.

First day of gout

First day of gout

By the second morning, I usually can’t walk. In fact, the worst time I had with it was when I was driving from Savannah, GA back to Seattle. It got so bad I had to stop and get a cheap pair of shoes and cut the toe out of the right one. This let my big toe dangle out and, with the help of a cane, let me hobble around the French Quarter of New Orleans. I should have picked up a white suit and hat, it would have looked absolutely normal then!


Cutting up the shoe

Cutting up the shoe

Some kind of irony

Some kind of irony

Gimping around New Orleans

Gimping around New Orleans

Gimpin' around NASA

Gimpin' around NASA

The problem I keep running into, is that all the medical industry has to offer me is prevention advice that doesn’t pertain to me (cut out meat and booze), or uricosuric medications like benzbromarone, Probalan (probenecid), or Anturane (sulfinpyrazone) medications that will forcefully push uric acid out in my urin, possibly damaging my kidneys and definitely increasing the chance of other problems arising.

The only other source for information on the topic is Google, which leads me to literally thousands of sites either selling herbs or prophesying about the wonders of home remedies like cherry juice, tomatoes, and lemon juice.

Often times they contradict each other (citrus fruit bad, lemon juice good). Sometimes the anecdotes don’t seem to make much sense to me either. For example, one guy said this:

At breakfast, lunch and after dinner – drank a 24 ounce glass of half water/half unsweetened black cherry juice, a teaspoon of baking soda, and two tablespoons of Bragg’s (Apple Cider Vinegar). Within three days, I have stopped taking my indomethecin, and watched in amazement at the shrinking back to normal of my long swollen ankle.

Vinegar is an acid, and baking soda is a base. They cancel each other out in a nice foamy reaction (a la paper mache volcano). What you have left is a cidery tasting water… but maybe that’s the point? I don’t know, I just know I tried it and it didn’t seem to work.

I thought I had the solution one day when I noticed the pain starting in my foot. I was heading to a baseball game with Jenny and found myself wondering if I would be able to get up and walk by the end of the game. The stadium had “famous garlic fries” and I just had to try them. I bought two small “boats” of garlic fries and two small hot chocolates… $22 bucks! The garlic fries were actually just garlic with a few fries. There was literally more garlic in that fry boat than potato, and we couldn’t handle it. After a few fries we started to consider just tossing the fries out, but then the cheap side of me kicked in and suddenly there was no way I was going to throw away $15! So, I powered through it and ate both boats in 30 minutes, and basically burnt out my mouth and digestive tract for the remainder of the night… and next day… and day after that. Vampires two states over were wondering if they should move to the East coast to get away from the smell.

But, my point is, that night my foot really started to hurt, but the next morning it was all gone. All the pain had vanished! The thought at the time was that the garlic had done the trick and somehow got my uric acid levels to plummet. After that, I started reading how garlic was some kind of magic blood cleaner and that it cured all kinds of things. Well, I thought that was the answer… keep downing garlic and no more gout.

Then a few weeks ago I started getting that now familiar feeling in my right big toe (see above picture). I went right for the garlic and started chopping up cloves. After burning out my entire system for 2 days, it wasn’t going away. I really thought I had the answer, but the fact is garlic every day only keeps people away, not gout. So, I really settled into finding a solution, because being out of commission for 1-2 weeks is not an option, especially now that the sun is coming out for summer. I settled in and read just about every crazy site there is on the subject. This is what I found.

After trying all kinds of things, one at a time, over the course of two weeks, including eating nothing but tomatoes, the only thing I found that works for me is cherries, figs, almonds, and water. Now, a lot of people suggest eating cherries and miraculously their gout goes away almost instantly. For me, the trick wasn’t to eat cherries, it was to restrict my diet to only almonds and cherries, and drinking a lot of water, for three days. As soon as I started that diet, the pain steadily decreased until it was a very low level irritation, then I started eating other foods like figs for another couple days, then I began eating normally. If you try this diet, I hope you’re able to stay near a toilet at all times. You will be thoroughly “cleaned out”, so to speak.

Now it’s been a week or two since I last had pain in my foot, but the aftermath is still visible in that the structure of my foot has changed. This bump will probably be there for another month or two while my body tries to repair the damage done by all those crystals tearing up my tissue.

Physical changes to the foot

Physical changes to the foot

So that’s how I got rid of it, but why, with my diet, did I get it in the first place? I can only assume it was from a combination of things that include;

#1) over eating – excess food only turns to excess uric acid

#2) supplements containing niacin, which slows uric acid extraction & excretion

#3) acetaminophen based pain relievers, which slow uric acid extraction & excretion

So now I’m looking to lose weight through eating less and working out more. To that end, we’ve taken to going on bicycle rides through the beautiful backroads our town has to offer. I secured a bin to the back of my bicycle so we can bring the dog (he’ll poop inside if we leave him for too long). Don’t worry, he’s secured in the bin with a short leash ;)


img00304-20090525-0909 img00307-20090525-0909

img00303-20090525-0906

As you can see we’ve both become happy little chunky monkeys, but by the end of summer we should be all ship shape… just in time to pack it on for the winter hibernation ;)

Working with the basic stamp 2

May 30th, 2009

In working with the BS2 module, I’ve had to look up a few things here and there. For example, I’ve used a dev board to program all BS2 modules before they are sunk into IC sockets on the actual project boards that I’ve forgotten how to directly connect a BS2 to my PC serial port. Well here’s a perfect graphic:

db9topc

I’ve also come across some great sites with tips and tricks for pesky problems, like this tip to solve those random resets you get because of ambient RF/MF noise:

  DB9S ---||-------;------/\/\/---;
  pin4    0.22uF   |         3.3k |
        optional   |------||------|
                   |     0.1uF    |
                  atn           ground

Or stuff as basic as how to read small capacitor values:

 Third Digit   pF Multiplier 
 0  1
 1  10
 2  100
 3  1000
 4  10,000
 5  100,000
 6  N/A
 7  N/A
 8  0.01
 9  0.1

For example: A capacitor marked 104 is 10 with 4 more zeros or 100,000pF, which is otherwise referred to as a .1 uF capacitor.

There’s tons of this info out on the Internet already, but the reliability of the Internet as a data source and the persistence of the information on it both rely heavily on data duplication. Without it, finding information would be next to impossible, as would counting on it being there years later.

Perfect for the judgmental cynic in me!

May 21st, 2009

I want this! Imagine running around maniacally stamping anything and everything (and anyone) I felt violated some kind of incidental set of personalized common sense rules I felt like applying to the universe at that moment!

wtf-stamp