Ubuntu Mobile Screenshot on my Carputer!

April 5th, 2008

Well, I’ve been putting in a lot of work trying to fix different things with my carputer, and I can proudly say that the software is *almost* ready for primetime (for real this time, none of that half-working crap I had before!). Check out my Lilliput LCD screen working PERFECTLY (which is a huge surprise, its a serious piece of crap) on my Ubuntu-Mobile desktop. Pardon my wallpaper, I need to change it so it fits a little bit better…

Its looking pretty good so far, if I do say so myself. Much better than what I originally had. Right now, I’m working on getting Roadnav integrated more fully into the hildon envionment that Ubuntu mobile uses. And I need to get the stupid media player actually *playing* my MP3’s… you’d think that would be really simple to make work.

C# Oscilloscope and Analog Meter Controls

April 3rd, 2008

I updated my C# analog meter control awhile ago (it had some bugs), but never got around to posting it online. Well, here are those updates, PLUS I integrated a C# Oscilloscope control as well! I’d put up some screenshots, but I don’t currently have a compiler installed for C# (been redoing my machine) so I can’t take any. But, it works pretty nicely except for a few non-serious bugs….

This is an ongoing set of postings documenting some of the software I developed for my senior project this fall.

Go download it.

Carputer Update: Ubuntu Mobile

March 16th, 2008

Well… the weather is getting better, so I’ve been working on improving the software on my carputer.. since the gentoo installation was getting annoying to maintain and update, and the hardware works quite well (except for that stupid touchscreen!). So I installed the alpha version of Ubuntu (Hardy Heron) on it.. and its worked out quite well. I’ve used Ubuntu before, but its a totally different experience than Gentoo (though, the Gentoo experience definitely taught me a TON about Linux).

One problem I was having with the touchscreen was that if you turned it off, then evtouch would no longer talk to it and things wouldn’t work correctly anymore. So… this last week or so I was looking into it, and it resulted in this patch I created for xorg/HAL input hotplugging (xorg mailing list link here). Hopefully they put it into the next release or so… it would make hotplugging a lot easier with xorg.

Another problem is that a normal desktop is really annoying to navigate with a crappy touchscreen, so I was looking into what I could do to create a better interface… but then I found Ubuntu Mobile. Despite the shiny screenshots on their pages, it doesn’t look like its all completely implemented yet, and the default install environment has a really ugly background. Of course, its also still very alpha with a number of bug, so its not quite usable yet. I’ll have to hack on it. 🙂

So… in the future, expect to see my carputer section get totally revamped. One of the great things about Ubuntu is that most things *just work*, so that should make life a lot easier. And, hopefully it’ll work a lot better in a virtual machine than my gentoo install did (it had issues because of arch-specific optimizations… and I didn’t feel like recompiling EVERYTHING again… ).

True Best Buy Experience

March 11th, 2008

So… everyone hates blonde jokes and such, but this actually happened to someone I know, and its quite amusing:

friend: so i went to best buy to grab smash bros brawl
friend: and by the mac section some blonde was talking to the sales guy
friend: he was telling her about it and how the browser it uses is called Safari
friend: she asks, “is it the same internet?”

Sometimes, reality is far more amusing than fiction. Priceless. 😀

Museum Of Bad Art

March 2nd, 2008

I have very mixed feelings about art. I can appreciate good art (though, not some ‘modern’ art) to some extent, but usually its just easier to make fun of it. Today I took the opportunity to go visit the Museum Of Bad Art… which had some really god-awful art in it, but was definitely quite amusing, and was a delight to make fun of. They are dedicated “to bring the worst of art to the widest of audiences”. It was only a short drive from where I’m located at, and was definitely worth the visit.

Of course, I simply HAD to take some pictures (though, they have pictures on their website as well) that I could share with you:

Read the rest of this entry »

Moved to Boston

February 11th, 2008

So I got a job at BBN Technologies in Boston, MA at the beginning of January, and moved my stuff out here in a giant 26-foot U-Haul (despite having very little stuff… ) on the 31st! Which, that was a lot of fun. Been adjusting to having a ‘real’ job for a week now, but the people there are pretty cool.

However, its been an interesting adjustment for me. Boston is such a huge place with people all around at all hours of the day.. I mean, you don’t get stuck in traffic at 11PM in Kalamazoo! And of course all the streets are going in a million different ways.. though in many respects, it feels like you’re driving on a racetrack sometimes, which is really fun.

One thing that I’ve really come to dislike is the huge amount of full-serve gas stations around here… its so annoying. I’m not 100% sure why, but I hate giving my credit card to people (though, you could argue that waitresses and such do the same thing, and it doesn’t bother me). Anyways.. its weird, but I’m enjoying myself. More later.

Analog Meter (Ammeter/Voltmeter/etc) Control for C# and .NET

January 18th, 2008

UPDATE: See my newest update, which includes a C# Oscilloscope and Analog Meter control!

This is another open source C# control that was developed for my Senior Design project. Its pretty obvious what it does from the following screenshot.

meter_ss.PNG

This is definitely a useful control for some projects, and is released under an open source license. This control implements a simple to use Analog Meter control, similar to old school analog meters used for all sorts of things. Obviously theres a lot more things that could be added to this, but this does what I need it to do at the moment. And, it looks quite nice if I do say so myself. 😉 Its very adjustable as well, with integrated designer support.

Usage

Add the control to your form, and adjust the Value parameter of the control to move the needle. Pretty easy to use. There are a bunch of other options, such as adjusting the frequency of the tick marks, but they should be mostly self evident as to what they do.

Enjoy! As always, let me know if you either use this or find a bug.

Download: Link

Visual Studio styled Dockable Windows Component Library for .NET

January 2nd, 2008

Well, isn’t THAT a mouthful of a title.

This is another open source project created as a result of my Senior Design project. See, we had this nice GUI, but it seemed like it needed to be a lot more flexible than it was, since using it was really quite annoying. So, I got the idea to copy the interface from Visual Studio… since, in my opinion, the way the dockable windows work in VS is quite intuitive and useful. Some of you may cry out that there are other programs that do the same behavior… well, I copied it from VS.

So, thats what this component library implements. See a screenshot:

panes.png

As you can see, its capable of fairly complex layouts, with each element completely resizable and movable and such.  It is not quite as polished as the interface for Visual Studio, but its still quite intuitive for the user to use, and a pretty decent approximation for most projects. More importantly, its open source!

A sample executable and source code/project files are included in the download package.

Please note that you can NOT drag new panes into the form designer, as implementing the appropriate designer support seemed to be more trouble than its worth. Refer to the PaneTest project for detailed implementation, and the source code for detailed documentation.

If you find any bugs or have any comments or questions, feel free to drop me an email!

Download: Link

I am DONE

December 18th, 2007

Finally! I’ve graduated with my Bachelor’s Degree in Computer Engineering from Western Michigan University. I’m quite excited about this, as you can imagine. At the moment, I’m out searching for jobs… ironically, I’ve had more fun constructing my computer engineering focused resume than actually searching for jobs. So if you’re looking for an embedded engineer, software engineer, or web developer, I may be your man. Check the resume out for more details.

Update: I have a job! More details to be announced in the future.

PSoC USB SuiteUSB .NET (CyUSB) Asynchronous Wrapper

December 8th, 2007

This is the first of a few pieces of software I’ve written for my Senior Design project here at WMU. We created a device using a Cypress PSoC, and I wrote the user interface for the project in C#. I will be releasing a number of components from this project as open source.

If you’ve used the Cypress SuiteUSB .NET library, you’ll notice that they say asynchronously sending and receiving data to and from the device is the difficult way to access the device. Of course, one thing that contributes to the difficulty of using their interface is that its nothing like any other .NET asynchronous operations. If you have used .NET asynchronous sockets or file writing… well, you probably realize that the way Cypress decided to implement their library is definitely NOT .NET oriented, and in general is rather annoying for .NET programmers to use.

Well, it annoyed the heck out of me too, so I wrote a nice wrapper for it. Now, asynchronous sending and receiving is trivial. 🙂

This will allow you to wrap the EndPoints exposed by any CyUSBDevice, so that you can call .NET-style Begin/End asynchronous calls that use IO completion ports to work nicely and quickly. I do not have any benchmarks for it at this time, but I’d bet that it works faster than Cypress’s library.. of course, I could be wrong.

Does NOT support Isochronous transfers. Probably does not support ControlEndPoints either.

A set of demo code is provided.

Usage

It’s pretty trivial to use this class. Create an instance of it, then use it like any other BeginXXX/EndXXX pair in .NET. For example:

CyUSBAsyncWrapper usbComm;

// create the wrapper
private void Init(CyUSBDevice usbDevice){
	usbComm = new CyUSBAsyncWrapper(usbDevice.BulkOutEndPt);
}

// call this to begin transferring the data
private void SendData(byte [] data) {
	usbComm.BeginTransfer(data, data.Length, new AsyncCallback(EndTransfer), data);
}

// called on another thread when the transfer is complete
void EndTransfer(IAsyncResult result) {
	usbComm.EndTransfer(result);
}

Licensed under a BSD-style license. Let me know if you find any bugs.

Download: Link