I'm starting to have my concerns about the Firmata protocol. My C skills are non-existent. The Firmata code for use on Arduino is incomplete when it comes to I2C. There is currently no indication when it will be finished for I2C.
So while my current incarnation of the plug-in is usable (let's call it a beta), it currently won't support I2C. There doesn't seem to be anyone in the Arduino community jumping to the task.
Once my current plug-in is up to par, I will start on the PWM part. I am currently side-lined as I trashed the bootloader on my only Atmega328 chip. I have to order another Arduino Uno so I can use one as an ISP when necessary to refresh the other. <sigh>.
If I move away from Firmata I would have to come up with my own protocol, and users will have to load the custom code on to their Arduino to use it. Doable, but lengthens the time between releases. That is what I was trying to stay away from. Firmata comes with every Arduino since Arduino version 0012 (its up to 0022).
On the otherhand, if anyone on this board reads this and thinks they can fix Firmata or has a good general overall protocol for Arduino. Please, jump in here.
There should be plenty of Arduino I2C projects out there. I haven't played around or looked for any but this is a very common bus so it should definitely be out there.
Wow.. I hadn't seen netduino before... very impressive! Just watched through some of the tutorial videos, and it really does look good.
I've got a NetDuino Plus blinking on the desk in front of me as I type. Just taking my time and stepping through the tutorial and a few of the projects. Haven't decided what I'm going to do with it yet, but it's certainly got lots of potential.
Wow & Wow x 2!
I'm out of touch and now regretting having 2 unused Duemilanoves having seen the Freetronics-TwentyTen...
Well I don't really regret - the Dueys will come in handy one day. Or one decade.
Thanks to you guys (again!) I am a bit younger.
Now, engine water pump controller; ignition timing; intelligent sequential (ignition or EFI); Impulse digital-dash replacement ... hmmm?
I should now have time - my last day at work should have been yesterday. Those guys told me GPS times "can only" exclude traffic. Funny - I thought otherwise, but I have found them to be very pre-judgmental and opinionated (LOL!). Or am I ahead of the pack yet again?
Hopefully soon I'll catch up with you guys.
Wow. I didnt actually think there would such high interest.
Thats fantastic. A little note on progress. The basic analog and digital functions are working.
In my spare time (yup I do have a life LOL) I have been working out the I2C protocol parts that are missing in Firmata. Progress is a little slow. But there is progress.
There will be both a library folks can use to make there own plugins. The plugin itself. And a customized Firmata sketch for loading on the arduino. It all is being built using an Uno but i should be able to test on the mini in the not-to-distant future.
Its been an interesting adventure so far.....:rock:
Another update, and a survey of sorts.
I have completed basic I2C communication within my library. I have been writing to and reading from a serial EEPROM.
I now need to ask the group-at-large just what practical uses they would have with an Arduino and I2C devices within a car environment and Open Mobile.
I don't see the need for EEPROMs because you can just save info on the computer. Compass? Well, that's what GPS is for. You see where I am going with this.
I can see using an I/O expander to get additional digital I/O. I can see temp sensors / pressure sensors. Remember that, presumably at some point, Open Mobile will have OBDII abilities.
However, please let me know what your plans/dreams/hopes are for using an Arduino in your setup. I will try to figure out the most common, try and dig up some of those chips and see what I come up with.
The Arduino's biggest strength is it's flexibility. It has the potential to do anything and everything. But the very act of defining its purpose starts to limit that potential. So you just build an interface that displays the current inputs and outputs, allows you to change the values, and provides for some kind of event-based interaction. Pretty much exactly what most any general purpose micro-controller plugin would do. Want to build an HVAC controller and an appropriate interface? No problem, but it's going to suck for raising and lowering your windows. All kinds of potential for diagnostics and in-car sensors, but only if it's specific to a given set of hardware. Ultimately, each application is task-specific and needs a task-specific interface.
Originally Posted by jmullan99
My opinion: Write a dll that exposes a simple API for c# and leave it at that.
That may just be the ticket. I have a good library started. I will probably add a few device specific type functions just to make life a bit more easy. But yes, in the end, every install will be unique, requiring a customized plug-in. Outside of the "generic" plug-in I have made, covering the basics you have mentioned.
As a result, I will probably offer up the VB source for the Firmata library and the generic plug-in as example of usage. Seems to make more sense that way.
Okay folks. My first beta is ready for those who like to live on the bleeding edge!
Well, okay, it won't open up any black holes and suck the universe in. :target: And, for me anyway, it's pretty stable. That is partly a tribute to the fact that OM can isolate wayward plugins :hail:
If you have an arduino, and want to play, and offer feedback, or share any tweaks or modifications, by all means do so. Follow the link. In the folder there are few files. No one ZIP file has everything. For sure get the README file and, go figure, read it. :loco:
Oh, and be kind. As you see in the README, this is my first in a lot of areas.
The link is to my personal space at my ISP. I will wait until it's ready for prime time before it ever (if ever) gets included as part of Open Mobile.
Available files are the VB Project folder, the compiled DLL, the Arduino sketch, a schematic in JPG format (of my test setup), a utility to test communication to Arduino running a Firmata compatible sketch, a Matrix Orbital test routine (but not applicable to this project), and, most important, the README file.
NOTE: You must play with this in OM v 0.9. It is not compiled against any version earlier than that. There are some source files in the project folder that are not required, but oh well.