About MeHi! My name is Kimberly Horne and I have absolutely nothing interesting to say. Unfortunately for you I DO have an overpowering need to tinker with technology which is explains the presence of this journal. I mostly talk about games (video and tabletop), technology, tattoos, and my pets. If you're an Eclipse user you may find my Eclipse category more interesting. Similarly, if you're an Arduino nerd then maybe my projects might be of interest. Since I've discovered Twitter this journal has been neglected somewhat. If you really want to stalk me your best bet is to follow me on twitter.
Category Archives: Personal
Welp, as my wife likes to say: “It’s been swell but the swelling has gone.” The 9th is my last day of employment at RIM. I’ve had a lot of good experiences there and I’ve learned a whole helluva lot but alas it’s time to move on. I’ve had the theme song to The Littlest Hobo playing on repeat in my head now for some time and it’s best that I listen to it.
So, what am I gonna do? I’m off to write some fun apps, that’s what. I started my career in ecommerce, switched to mobile services, moved onto tooling and lately back into mobile. I like mobile, and I want to play in the space some more. More than anything I want to have fun again. I’ve been in the industry going on 14 years now and truth be told I’ve been struggling to maintain my interest as of late. A lot of it has come down to just how fast the technology is changing and how I’ve been restricted for professional reasons from keeping up with it. I need motivation to work on my own time and if there are legal obstacles to talking about or contributing my efforts openly (as is often the case in this industry) then I’m disinclined to do so.
So, yah. Off I go!
Next up, the software. The Arduino software would be broken into two parts. The first part would be responsible for driving the sounder while the second would be responsible for reading from the key. I started with the sounder because this was by far the easier problem.
I wanted to keep the serial protocol simple. At first I had thought about sending markers for the long and short pulses (and their associated delays) over the wire and having the Arduino client be dumb but by doing so I’d require any server side implementer of the protocol to be smartish. Although I wanted to do this project to interface with Twitter I also wanted to keep it open enough that I could send whatever I wanted along the wire to the telegraph without much fuss (ie: re-implementation of the protocol). I decided on a message format consisting of null terminated strings which would allow for these hypothetical “other purposes” easily.
Completed Arduino source may be found here. I think I’ve managed to comment it pretty well so I wont really get into details here. Also I must confess my difficulty in testing this software. The problem is, I don’t know Morse code. This may seem weird given the nature of the project but the truth is my attachment to the technology is purely romantic. As a result, testing was spotty and difficult. I THINK the patterns emitted are correct and I’m fairly certain the patterns tapped are as well but my confidence is limited by my ability to hear and create those patterns.
Finally, the desktop side software. This I don’t really want to get into. Firstly, that code is a bit of a mess in comparison to the microcontroller code and secondly I utilized open source software packages in its construction and from a legal standpoint with regard to my employer it’s easier for me to just not deal with it here. The general sketch of it is pretty simple, however. First, you need a twitter client package that’ll listen to your feed (or search or mentions or whatever you want sent to the device. The lighter the flow here the better – it takes a long time to tap out a message and you don’t want to worry about running out of buffer or having the thing clack on for hours). From this feed you need to extract the message, massage it into a string containing the user name, and send it over the serial port in a null terminated fashion. You will also need to listen for data on the serial port as well, which will also come across as null terminated strings. This data should be sent off to Twitter as appropriate.
And that’s pretty much it. It was definitely a fun first project for the Arduino and I look forward to doing more work on the platform. Software is great and all but being able to hold and see in front of you the results of your work is definitely a different kind of satisfaction.
Video of telegraph in some phase of development (I forget which):
Okay, let me level with ya. The last two posts were written as I was doing the work described and I had every intention of doing the same for the rest of the project but that didn’t happen. You know how it is – you get caught up in the project and the documentation suffers. Anyhoo, from here on out I’m going to do my best to reconstruct events as I best remember them. For this reconstruction it would be instructive to imagine the role of me being played by Kirsten Vangsness. No, really. I do it all the time and it feels GREAT.
Shortly after I managed to get the radios working my telegraph package arrived. The machine was beautiful and everything I had hoped for. Heavy wood, solid brass fixtures. Mm. So nice. I quickly hooked it up to a battery to ensure the sounder and coil still worked as promised and sure enough they did. Huzzah! Of course, now I had to ruin it. A key / sounder pair is set up in series such that when the key is pressed the circuit is completed and the sounder sounds. That’s all well and good back in the 1800s but I wanted the input and output from the key and sounder to be split for ease of development. I carefully severed the connections on the board such that the key and sounder were each on their own circuits.
First up, the sounder. I connected it to an Arduino loaded with a simple program that alternated HIGH/LOW to a pin at a regular interval and… no dice. The sounder requires more juice than the output pin of an Arduino can muster. Instead of hooking the pin directly to the sounder I added a transistor into the mix as a switch to allow the full 5V from the Arduino to hit the sounder. With this setup the sounder worked reliably (and loudly).
The key is a much simpler matter. It’s just a switch. Press the key and complete the circuit. For a sanity check I hooked the key up to another Arduino app which simply toggled the built in LED based on the switch and thankfully it worked. My surgery to separate the key and sounder worked.
In addition to the telegraph I needed a switch that I could use to toggle from input to output mode. Full duplex communication is doable here but it felt like more grief than it was worth. A simple modern looking switch might do but I wouldn’t be very satisfied by that – it wouldn’t match at all with the telegraph. In the end I settled on a simple knife switch from RadioShack (or The Source now. Sigh.) It feels more appropriate than a modern switch but it’s still made of plastic and cheap metal so I’m not really satisfied with it. I’m still on the lookout for an antique knife switch to really complete the look.
Finally, I wanted an enclosure to put the whole thing in. Originally I was aiming for an old cigar box and while I did find one it’s unfortunately too small. It fits the Arduino and shield well enough but the telegraph base is too big to fit flush on the top of the box. While rummaging around at a thrift store I stumbled upon an older wooden breadbox with the rolling door. It’s nowhere near as old as the telegraph but it does the trick. I can put the whole setup inside the box without a problem.
And that’s pretty much it for hardware. Other than the expensive antique it’s a fairly cheap project. 😉
While waiting for the telegraph key and sounder to arrive I decided to tackle the XBee problem. Because I have this unshakable belief that anything numbered “2” is better than a similar product numbered “1” I decided to get series 2 XBee radios. This was my first problem. Series 1 radios are point to point and relatively easy to work with (as I understand) but series 2 radios are mesh based. Out of the box, two Series 2 XBee radios cannot communicate. One of them needs to be reflashed into “co-ordinator” mode in order to set up the mesh. Had I researched beyond the “2” part of the product description I may have realized that, but as I mentioned, glaring character flaw. Anyhoo, now I was in a pickle. Flashing one of these blighters requires downloading an application that doesn’t work on anything other than Windows. There are some vague assertions that people have gotten it to work under Wine on Linux but not much in the way of experience running it under Wine on the Mac. I gave it a go and got basically nowhere. After setting up the Wine COM ports (the symlinks in the Wine dosdevices directory) I was able to attach to the device via the USB explorer in only a limited fashion. If I attempted to connect with the default settings I couldn’t get anywhere – test connection would fail as would all the read/write and terminal operations. However if I activated the “API” mode (which I was certain my radios were not running in) I could sort of connect. It would give the OK message but declare that the hardware/firmware versions were empty. Read/Write configuration options would fail immediately saying the version wasn’t available. Interestingly however, the terminal worked fine and I could access all of the expected AT commands. I struggled with this for several hours and got nowhere. I tried as many permutations as I could think of: I grounded out the DTR pin on the radio and wired RTS to 3.3V on the USB explorer, I popped the ATMega out of my UNO and tried writing via the shield, and I combined that with the earlier DTR/RTS idea. Nada – all roads led to Advil City.
The next day I plugged into a proper Windows box and had both of the radios flashed, configured and tested within 5 minutes. Sigh. I’m sorry Sunday – I’ll never waste you like that again.
Bottom line: if you don’t need mesh networking give series 2 the pass, ESPECIALLY if you’re on OS X. As far as I can tell you’ll either need to bum a Windows machine off a friend, dual boot, or possibly use a VM unless you can somehow make use of the USB drivers that can be found on the X CTU download page. Utilizing drivers with Wine appears to be experimental, but I’m not that adventurous. If anyone has had any success flashing these blighters on OS X I’d love to hear about it.
There’s a lot of half-baked and incomplete documentation out there when it comes to XBee Series 2/Arduino integration but this article over at plasticbit was by far the most concise and complete in describing exactly the setup I was looking for.
[This was written several months ago but just posted now due to my laziness and a requirement to get the OK from my company legal department. I managed to get the later long before I overcame the former.]
I’ve always loved the telegraph. Perhaps it’s because I’m 100 years old (as my wife always reminds me) but there’s just something soothing about the tappa tappa tappa sound of a telegraph at work.
I also love Twitter. I know, I know – a flash in the pan stupid fad for self-indulgant assholes – but still, I’ve actually managed to make a lot of friends (or at the very least least strong acquaintances) via Twitter and that’s important to me as someone who has an incredibly difficult time meeting people and making friends.
So, says I whilst drinking a beer and mulling over life’s problems, what if I married the two things into one beast? Superficially the two mechanisms already carry a lot of similarities. Specifically, they’re both suited for short directionless (or directed insofar as the message contents will allow) blurbs. With this in mind, I began to plan.
First, what do use for the device itself. On the backend I figured Arduino/Processing was a no-brainer but for the device I wasn’t so sure. My initial thought was to simply hook up a Piezo buzzer and a push button but that didn’t appeal to me. If I went that route the resulting construction would be interesting for a moment but then disassembled. I wan’t something authentic, something attractive. Basically I wanted a real honest to god Morse telegraph machine in my living room chittering away at me whenever someone @mentioned me on Twitter.
I hit eBay and discovered that authentic, working telegraph equipment from the turn of the century was actually relatively easy to come by at a reasonable price. I found a vendor in Arizona that had a multitude of options to choose from. There were standalone telegraph keys, sounders, and even pairs all of which were in restored and working condition. Again my laziness attempted to assert itself. All I really wanted was the sounder, right? Well, kind of. I don’t know Morse code and my prime motivation was to have the sounder as a curiosity in my living room. But if I went and only did half the job I’d regret it in the end. With this criteria in mind I narrowed my search to key/sounder pairs and started bidding. My first auction was a bust with the price rising well above my comfort level. The second attempt was successful – I secured a J.H. Bunnell sounder and key (which appears to be identical to the one produced in 1881 as found on the J.H Bunnell website).
My second stop was Sparkfun. Sparkfun is a dangerous place. You go there with a particular goal in mind and yet when it comes time to check out you’ve found you need to re-mortgage the house. Dangerous, dangerous place. Anyhoo, on the electronics side I wanted to be a bit clever. As I mentioned I wanted this to sit in our living room somewhere. The device would need to be connected to a computer and we don’t have one there (and dont want to put one there). I began considering my wireless options – Bluetooth and XBee. Bluetooth could be handier (perhaps interfacing with one of my BlackBerries) but it might be more expensive and by all accounts it’s a pain in the arse to work with. On the other hand XBee is affordable, has a handy shield available for Arduino, and seems easier to develop for. Plus, I like bees. My decision was made: an Arduino UNO, XBee shield, 2 XBee radios, an XBee USB interface for the computer, and a wall wart for power. Oh, and a whole bunch of other awesome stuff I didn’t need for this project. Any other bits and bobs I felt confident I could find at the local electronics store.
Now… the waiting game. The Sparkfun order managed to arrive in my hands before the shipping notification email was even sent (I see you’ve mastered time travel Sparkfun. Good. Very good) but I’m still waiting on the telegraph. This does nothing to sooth my impatience. Without the hardware in hand I set about working on the software… which is where I’ll have to stop for the time being. I’ll need to get the OK from the company lawyers to talk about the software or release anything resembling source code. You never know – there could be valuable IP to be derived from modern applications of 150 year old technology. Wait, what?
It’s time to say goodbye to another furry loved one. Last week we had to usher our Jackie off to his maker after a long battle with cancer, diabetes, and being a bit of a jerk.
In all seriousness, Jack was an awesome cat. Almost always super chill and easy going, he was never anxious, neurotic or downright weird like our other kids. He took his insulin needle like a pro every morning and was always waiting for us at the door when we came in. We’re missing him like crazy but it was his time – even in sickness he never complained and keeping him around was bordering on selfish.
G’night little dude. Say hi to your sister.
We’ve recently had some new additions to the family. First up is Penny. Penny is another rescue cat we decided to adopt after Tracey left us. Her family recently had a baby and they were finding they weren’t spending enough time with her. Unlike the rest of our mutts, Penny appears to be a pure breed Russian Blue. She certainly looks the part but her personality doesn’t quite match up with the breed description. There are some commonalities – the skittishness and enjoyment of play primarily – but beyond that she’s pretty divergent. And by divergent I mean she’s a bitch. She’s mellowed out a lot since she arrived but not long after she got here she gave me a WICKED bite on the hand that has left a permanent scar. You can’t really approach her for affection – doing so results in a cry that’s a pretty firm warning that there could be blood in your future – but she will occasionally perch herself on you for a nap. When napping, you can pat her all you like and she’ll purr quite loudly. She doesn’t really get along with the boys. Her and Jack have the most vicious brawls but for the most part they tolerate one another. Cthulhu on the other hand hates her. He hisses whenever he’s near her. He’s not aggressive in any way. In fact, it’d be fair to say that he’s submissive to her. All the same, whenever they’re together there’s a good deal of tension. Oh… when she came to us, she wasn’t known as Penny. She was Pickles. Anyone who knows me knows how much I detest those awful things and thankfully we both thought the name was pretty stupid anyway. We’re both a fan of the human names for animals so we decided on one that was at least kind of close to her original.
The other addition is less furry. After almost 20 years of protest I’ve finally relented and we’ve purchased our first car! We were finding that a lot of doors were closed to us, and we would opt out of a lot of activities that we’d prefer to do if the logistics weren’t so complicated. We looked at several models but in the end we settled with a 2007 Honda Fit. It’s a good little car with super responsive steering and really touchy brakes. It’s been a bit of a learning exercise to not give us whiplash every time we have to stop but I think I’m getting there. We’ve got a few upgrades in mind (better stereo, remote keyless entry, remote starter) but we’ve not moved on them yet. It’s only been a few days. 😉 Oh! Her name (as well as the first song played in the car) is Deanna. This Deanna.
Both photos were taken by elektrafying, the only one of us who can be arsed to document events such as this.
It’s been an incredibly sad day in our household. Tracey, our elderly cat of 18+ years, went off to meet her maker today. She’s been losing weight for some time and has struggled with dehydration issues but recently it’s come to a head. Sometime over the weekend she had a stroke and lost the ability to walk properly. She also went blind and her weight loss accelerated to a dramatic degree. After discussing the options the only conclusion we could reach was the most painful for us but the best for her.
She was an incredibly gentle creature. She didn’t have a mean bone in her body and never, ever complained regardless of what indignities you inflicted upon her. She was always willing to curl up and sleep with or on you with her absolute favourite place being deep in your armpit. As receptive to affection as she was she also had the mischievous streak that seems so common with calicos. More than once I woke up in the middle of the night with her licking a hole in my side. The pain did not end there either – her favourite thing to do in the morning was to jump on the bathroom counter and push the contents onto the floor or into the sink as you watched. No matter what she did though it was impossible to be mad at her – she was just too damned sweet.
It’s not going to be the same here without you Tracey. Sleep well little girl. We’re going to miss you so much.
A few weeks back I decided to download the demo for Scott Pilgim vs. The World for PS3. I used to love old arcade-style sidescrolling beat-em-ups and I was really psyched to play. After about five minutes I stopped playing and deleted the demo. The art style was quaint enough but the gameplay was horrid. It felt like you were moving in mud at all times, even when running. Saddened, I reflected that maybe my memories of the genre were suspect. I had read many positive reviews of the game and perhaps I had simply grown out of the genre.
I wasn’t quite ready to give up on the brawler though. Yesterday on a whim I decided to try the Castle Crashers demo. This was a game that didn’t really appeal to me at all but again the reviews were good and I still was riding a bit of nostalgia for the genre. Lexy and I sat down at around 2pm and I’m embarassed to say that 8 hours (and one purchase) later we had beaten the game. We couldn’t put it down. We gave up in the end only because our bodies were rebelling – our thumbs had been destroyed.
I’m relieved to discover that my memories of the genre are fine. They weren’t to blame for Scott Pilgim sucking – Scott Pilgrim was. Castle Crashers is about as much fun as I’ve had on a console in the past decade. It’s responsive, it’s got a fantastic pace, great style (and occasionally great humor, poop jokes aside) and some incredibly memorable boss fights. As soon as we finished we talked about how we were going to play through it again. We’ve made idle threats like this before but sure enough we were playing first thing this AM and only took a break for our neighbourhood BBQ. We now have 6 characters under development and if I had to wager there’ll be more coming.
I sincerely hope The Behemoth has a sequel or some DLC planned. I don’t think I’ve ever been so instantly enamoured with a franchise as I am with Castle Crashers.
I got a bee in my bonnet the other night that that told me I had to make another contact juggling video. After hours of screw ups here’s the result.