I ended up not getting a chance to look into this any further. Hopefully in the next few days I can play some more with this and post an update.
-
-
OK so I had some time to play with the GPS. The only thing I really needed to do to it was copy the file wceload.exe into its Windows folder to allow CAB files to be installed. This was required by VS 2008 in order to install the .Net 3.5 runtime.
I'm able to create and then debug applications on the GPS, so everything works quite well. This is really a very cheap way to get a fully programmable, quite powerful and compact device for cheap. This one has a 7" 800 x 480 display, which is actually quite large. You'd be able to get quite a complex control scheme on it.
BTW it is only when you want to use Platform Builder (and create an emulator for your device), that you need to use VS 2005. If you just want to create .Net 3.5 applications for it, you can use VS 2008.
The only thing I have not confirmed yet is whether I can use the USB IO controller with it. I don't have the correct USB cable so I'd first need to get that. Also I'd probably need to manually copy the USB CDC driver over since it doesn't appear to have the correct driver files.
Slight problem is that the GPS gets its power from the USB cable, and the IO controller doesn't send power on the USB cable. So I'd either need to hack the IO controller and connect its 5V line so it goes back into the USB cable, or use a powered USB hub. There was a comment in a forum regarding the IO controller that it doesn't work with a hub but that doesn't mean it doesn't work with any hub. Some testing should clear that up.
-
OK I need a USB driver but I'm having a hard time locating one. I went to MS' site where one can locate drivers, and found these. It looks like Epson has a generic USB driver for WinCE 6.0 that will do the trick (it supports the USB CDC host mode I require), yet for the life of me I can't locate the actual driver itself.
Arrggg!

-
Hmm, I might need to resort to Bluetooth, which might not be the worst thing in the world. I could then put the controller inside the house. I could use something like this.
I know that BT on the GPS works since I was able to pair it with my phone. Combined with this, I could have all I need to make it work, but I'm not 100% sure.
-
@BitFlipper: I'm not sure about WinCE, but all the supported versions of Windows support the USB HID profile natively (via hid.dll), and that would be more than good enough for what you plan to do.
That's the profile I generally use whenever I can get away with it, exactly for the reason that I don't have to mess with drivers on the PC front.
-
@Blue Ink:
Unfortunately because of WinCE's limited resources, only the minimum drivers are usually included in any particular device. It is possible to manually add the drivers afterwards but not quite as easy as on the PC. For instance, I might need to use Platform Builder to build a complete OS image and select to have the particular driver(s) included. Then I can manually copy over the files and registry entries for that driver once the emulator is fired up with that OS image.
I have been playing around with Platform Builder for CE 6.0 and I can probably try to go that route but I'm thinking that using Bluetooth does have other advantages.
-
@BitFlipper: I'm curious to see how this turns out. I'd love to get a small device to stick to my refrigerator that would show my calendar and let me enter new appointments. Bonus points if I can hook it in to the power line for the in-door water dispenser.
-
This is a pretty interesting idea. But if I was doing it I'd probably look into using GNU/Linux instead of trying to hack up older versions of Windows CE. But whatever floats your boat, I guess.

Those old HP WebOS tablets that went for $99 would be a good (if not a bit overpowered) base, if you could get access to one. I have a friend who bought like 20 of them somehow, but I think he sold most of them.
-
This looks interesting in order to get the BT working. Will investigate later when I have a bit more free time.
I ordered this BT IO controller. Now I know it is adding to the overall cost but this is for...research
. No matter what solution one chooses, you'd need the IO controller and BT does add quite some advantages so I think the extra cost is justified.For one thing I could put the GPS control panel in the house where it would not be exposed to the elements.
-
Well I finally got everything together and got some time to play with it. I used the 32Feet BT library to connect to the BT IO controller. Initially I couldn't make it work but finally I figured out that there was a baudrate setting between the BT module and the IO controller itself that was set to the wrong value (there is a little USB module that you plug the BT module into and run a config tool on your PC to configure it).
So after figuring out BT profiles and such everything is working great
. It's connecting using authentication and encryption and the range is ~30 feet. I had to play around a bit with the code to make it reliable when it goes out/in range but it's not that hard really.I would say this is a success as I can do everything I planned to do with it. Hacking such a cheap GPS for projects like this is a great option compared to using Netduino etc.
The only real downside I can find so far is that if the GPS does a hard boot, it loses critical config settings that requires manual intervention to set up properly. Specifically it sets the allowed storage memory usage to a value that doesn't allow the application to start properly (in addition to losing a file in the Windows folder required to do debugging with, as well as the current time). I think there is a way to configure it that it always starts up a specific exe even after a hard boot, and maybe I can programmatically set the memory and copy the file using that exe, not sure. As long as the device doesn't hard boot it should be fine.
-
@BitFlipper: Do you have any photos of this?
-
One moment...
-
CE desktop. Pretty straightforward.
Controller UI (hey don't laugh - it's just for testing now...
). The graph shows test history data I programmatically added for the water and solar temperatures (and also the state for each component at that time). I should be able to easily store 2 years worth of history data. Graph will eventually show time/temperature axis and be scrollable/zoomable.
The GPS controller, IO interface and the little USB configuration module. You plug the Bluetooth module into the config module and connect it to your computer, then run the config software. There you can set the BT mode, authentication, password, etc..
In the picture above, the controller is connected to the IO module. The "Main Pump ON" and "Solar Panels ON" status controls show that those two relays are on, which you can confirm by the two red LEDs on the IO board (top-left).
-
@BitFlipper: Wow, the device looks even better than I imagined.
What are you planning to use for the UI?
-
@Blue Ink: Well, I'm not planning anything fancy really so I'll probably just stick with the CF WinForms and maybe do a few custom controls. If I was going to sell it I would get a bit more fancy, but this is only for my own use.
If you see the primitive control system that this is supposed to replace, then it is already a huge improvement as is. The main reason I want to do this is because the current control system isn't smart enough to have "lockout-times" when for instance one pump must be off for some amount of time after another turned on. Also I have a problem where the current dumb solar controller doesn't turn the solar valve off while the main pump turns off, sometimes preventing it from priming properly and hence the main pump running dry for hours. Doing this project allows me to to fully control all of that.
-
Nice, now all you need to do is use something modern to measure temps like Celsius maybe

-
@dentaku: Don't get me started on the metric system. I "grew up" on the metric system but since moving to the USA had to use the imperial system (or at least the US uses a variation of the imperial system). I mean, nothing is related to each other...

-
1 hour ago, BitFlipper wrote
@Blue Ink: Well, I'm not planning anything fancy really so I'll probably just stick with the CF WinForms and maybe do a few custom controls. If I was going to sell it I would get a bit more fancy, but this is only for my own use.
If you see the primitive control system that this is supposed to replace, then it is already a huge improvement as is. The main reason I want to do this is because the current control system isn't smart enough to have "lockout-times" when for instance one pump must be off for some amount of time after another turned on. Also I have a problem where the current dumb solar controller doesn't turn the solar valve off while the main pump turns off, sometimes preventing it from priming properly and hence the main pump running dry for hours. Doing this project allows me to to fully control all of that.
I kind of hoped to hear good news about Silverlight on this class of devices; the databinding is just addictive. But WinForms is still more than viable, and I have a project where this looks like the perfect missing link (it's a data logger). Thanks for the info.
Add your 2¢