Archive for Uncategorized

40 Mile Range XTend 900 MHz RPSMA Configuration

Uncategorizedon February 9th, 2010Comments Off

Our research group just bought a couple of these 40 mile range RF transmitters for our Everglades project. Doug Mann and I were tasked with getting them to talk to each other, and to our dismay, no tutorials existed on the interwebs. The documentation was little help because it kept on referring to the development board. Unfortunately, the dev board can’t be purchased separately, and we had already acquired two of these modules.

We tried a bunch of different ways to get them to talk serially to a computer, but let me just tell you what ended up working. After hours of frustration, I remembered something I read in the book Making Things Talk (great book, highly recommend) that explained a certain way to configure an XBee radio. This involved removing the ATMega chip from an Arduino Microcontroller which just turned it into a slightly more expensive – but easier to interface with – FTDI chip. An FTDI chip is used to interface with “old” communications protocols over USB. This chip is a part of every Arduino board, but can also be bought separately for a slightly more dedicated solution. I think this solution is pretty clever because Arduinos are ubiquitous these days.

Anyways, check out the final setup below. We have a breakout board for the transmitter, but we just wire wrapped it now for prototyping purposes. Aside – wire wrapping will change your life. You can see that the ATMega has been removed from the Arduino, and there are only 5 pins connected to 4 ports on the Arduino.

Check the data sheet because the pin numbering is a little weird, but we only connected the following:

Pin 1 – Ground
Pin 2 – 5 Volts
Pin 5 – Rx
Pin 6 – Tx
Pin 7 – 5 Volts

After doing this and plugging in the Arduino, we could send AT commands via any serial monitoring tool. Since you’re already using an Arduino, you can just use the serial monitor in the Arduino IDE, or use the “screen” command in Terminal for Mac OS X computers. Regardless, the X-CTU software is fantastic (albeit Windows only). I recommend finding a Windows machine to install X-CTU because it makes the process graphical and takes a lot of the guesswork out of it.

After configuring just two settings on the radios, we were sending data across the lake on campus at 115kbps! We’re going to do a longer range test soon.

This was a crucial step for us as far as the Everglades project is concerned. Check out our new $200 solar panel setup powering a Fit-PC:


HAID ‘09

Uncategorizedon September 12th, 2009Comments Off
You can buy a bratwurst and a 0,5 liter beer for just 4,50 euros!

You can buy a bratwurst and a 0,5 liter beer for just 4,50 euros!

Guten Tag!

I’m posting this from my hotel in Germany. It’s my last night here after attending the Haptic and Audio Interaction Design conference at the Dresden University of Technology. I was presenting my work on the control of audio effects using head position estimation. I’ll have the PDF of the poster and paper in the portfolio section soon. There were many very interesting and fun people that I met on this trip. It was just a bunch of people that like to make cool things happen with technology!

Check out a few photos of the trip here:

http://gallery.me.com/pat_okeefe/100244

My apologies for the inferior white balance and focus of the iPhone camera. It did the trick though.

Getting Matlab 2008b+ to work with Mac OS X Snow Leopard

Uncategorizedon August 31st, 2009Comments Off

Being the nerd that I am, I pre-ordered Snow Leopard as soon as I could and also installed it on the same day it shipped. I did a complete reformat of my HD to get rid of all the junk I accumulated during the Leopard days. Much to my dismay, Matlab 2008b did not install properly because the Activation App wouldn’t work. I read the error logs and checked out some discussion on the mathworks website and determined it was a Java bug. Snow Leopard only comes with Java 6 and is 64-bit by default. Matlab, however, is written for Java 5 and 32-bit at that.

To get it to activate properly, navigate to /Applications/Utilities/ and launch “Java Preferences.app”.

Drag the 32-bit version of Java 6 to the top of both lists. Then, activate Matlab manually without using the internet (you’ll have to provide a license file). After the activation is successful, you can switch the Java back to 64-bit with no problems and launch Matlab normally. There is an exception thrown on launch, but I ran plenty of old scripts and even tried fdatool and whatnot with no problems.

Sweet.


OpenCV and Xcode

Uncategorizedon June 26th, 2009Comments Off

OpenCV is really awesome. I’ve been using the library extensively in my summer research. For those who don’t know what OpenCV is, this is from the main website:

OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real time computer vision.

Example applications of the OpenCV library are Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition; Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); Stereo and Multi-Camera Calibration and Depth Computation; Mobile Robotics.

Cameo – Reid Draper: roommate and programmer extraordinaire.

I wasted a lot of time trying to get the library to compile on OS X. Don’t make the same mistake! Download the pre-compiled Universal Binary from this site. Currently, it is version 1.2, but a huge 2.0 release is coming in August.

Back to the framework. Don’t waste your time try to add build phases and whatnot. I never managed to get that to work. Just copy OpenCV.framwork to /Library/Frameworks. Do not add it to ~/Library/Frameworks, but the root Library.

After that, when adding “existing framework to application” just navigate to it. Everything will link just fine. Now, do something awesome.


Arduino to Mac OS X Serial Communication

Uncategorizedon June 1st, 2009Comments Off

I ran into a snag when trying to get an xcode project to talk to an Arduino in April. After a bit of researching, I finally got things working with AMSerialPort from Andreas Mayer. I had to tweak it a bit…the method to change the baud rate didn’t work at first, but it’s fixed now. Also, the part of AMSerialPort that waits in the background thread for incoming data was modified a bit to play nice with Arduino serial messages. I re-packaged everything into a new Xcode project with a simple interface that let’s a user select an attached serial device and then send messages to it as well. My code has the incoming messages just go straight to the console instead of being displayed in the view. I could have done otherwise, but each implementation of this will require vastly different interfaces when completed. I know that I will never need to display the incoming messages on the screen, so I didn’t bother.

The modification the background-thread-waiting is by my design. It waits for a newline character, or more specifically, a serial message that is sent with

Serial.println()

So Serial.print() can be used several times without the Xcode project reporting any incoming data. What it is really doing is storing up the data until a newline character. Just end your bout of serial messages with a Serial.println() for the message to come through to the console. If you’d prefer every message to come through, just always use Serial.println().

The project is hosted here on Google Code.


Arduino Mega

Uncategorizedon June 1st, 2009Comments Off

It’s been a while since my last post, but now the semester is over and my summer schedule is in full swing. I just had to express my joy at the release of the Arduino Mega. For some reason, I’m still scared to enter into the realm of AVR and ARM, so I’ll stick with the Arduino for now.

I actually already have my hands on one from Sparkfun. It’s absolutely sensational. No longer do I have to worry about running out of analog ports.


XBee Shield

Quadcopter, Uncategorizedon January 27th, 2009Comments Off

Last Friday a lot of components came in the mail for the quadcopter. The first thing I did was assemble to XBee Shield Kit…and it turned out to be much more work than I thought! Click on any image below for a larger preview.

Thanks to a helpful guide online the assembly was pretty straightforward, there was just a lot of soldering.

Completed shield next to its partner XBee on an XBee explorer for simple USB to serial interfacing with a computer:


Windows 7 on a MacBook Pro

Uncategorizedon January 19th, 2009Comments Off

In a moment of confusion, I downloaded the beta preview of Windows 7. Microsoft has been pretty cool about the whole process. At first, the demand was too high so they pulled the download to add more servers. My download of the entire OS took about 8 minutes.

The most advanced operating system and mirror in one…

I used VMWare Fusion to install it by making Fusion think it was installing Vista. If you plan to attempt this don’t do the easy install, but opt for the manual. I didn’t try the easy install, but I bet those shortcuts don’t apply to the new OS.

Install was done within half an hour. The only trick was getting VMWare Tools to install. I recommend shutting down the Virtual Machine right after the installation (don’t just suspend). For some reason I needed to do this before the tools would successfully install. Then, adjust your screen resolution in the setting since mine didn’t originate as widescreen. It doesn’t autodetect your display resolution so check your OS X Display settings if you don’t know them.

At first impression this just feels like a much lighter, faster Vista. No BSOD or unresponsive application so far. One cool thing I noticed about IE8 was its initial prompt to have it recommend sites based upon your browsing history.

I’ll be installing Quartus soon (the only reason I have Fusion) and then I’ll be able to tell if there is a performance boost or not. Check out IE8 and Chess Titans running in Unity mode below too…