EcoModder.com

EcoModder.com (https://ecomodder.com/forum/)
-   OpenGauge / MPGuino FE computer (https://ecomodder.com/forum/opengauge-mpguino-fe-computer.html)
-   -   New Features for MPGuino? (https://ecomodder.com/forum/showthread.php/new-features-mpguino-15065.html)

mluckham 11-03-2010 03:00 PM

New Features for MPGuino?
 
I've been thinking about adding data logging - perhaps a 24LC128 Serial EEPROM (16 Kbytes), but there is still the problem of attaching a laptop to the official preassembled MPGuino (which has no provision for it).

Also, I have a uLCD-32PT from 4dsystems.com.au (US$79) which I'm just beginning to play with for another project. It is verrry interesting with a touch-screen LCD, integrated microSD card, and it's own processor and software library - not Arduino, unfortunately, but let's not quibble?

A quick glance at the uLCD-32PT specs doesn't convince me that it can replace the Atmega for timing/counting/etc - so the idea is to add I2C slave capability to the MPGuino, with the uLCD-32PT as I2C master taking care of display+data logging. If this is done, a new MPGuino layout is called for, eliminating the matrix LCD - and adding more digital inputs to monitor more engine signals?

I'm lousy at UI design, if someone would design a nice 240x320 layout for MPGuino and post it here, it would be fantastic.

RobertSmalls 11-03-2010 06:00 PM

I probably can't help you with development, but I'm interested in this idea. I'd love a low-cost datalogger, and the most interesting data already passes through the MPGuino.

SVOboy 11-03-2010 11:45 PM

Like Mr. Smalls, I can't do much to help you out on development, but this is definitely an idea I can get behind :thumbup:

Cooluser23 11-10-2010 03:22 AM

+1

I would love a much better/more modern screen.

I'm not sure how I can help with UI design, but I'm willing to learn.

(still a newbie to programming, not so to design though)

mluckham 12-03-2010 04:23 PM

I've been making progress on this ... but nothing solid to report yet. I'm debugging some code added for my version to act as a I2C Slave, so the uLCD-32PT module (the I2C Master) can query MPGuino values.

This requires a four-wire connection to an Arduino (5V power, ground, SCL, SDA) but I haven't yet figured out how these will be connected to the MPGuino.

Here's a plug for 4dsystems ... I managed to 'kill' the LCD screen by misadventure, and sent an email to their support forum. They told me about a surface-mount protection diode on the uLCD board and the part number ... ordered one from DigiKey and the board is working again. This also marks my first use of solder paste to solder the tiny (<1/8 inch) part onto the board, with the assistance of a magnifying glass of course!

In the future I shall not hook up wires with the board(s) under power!

mluckham 12-03-2010 04:31 PM

As for UI design - the uLCD-32PT touch screen display is 320x240 pixels and can display full-colour Windows compatible graphics (BMP, JPG, etc) and fonts. The display area is 48.6 x 64.8 mm.

So the idea is to design a nice-looking display which can be touched to change it - for example a fuel-economy gauge for miles/gallon, and other alternative gauges such as RPM and fuel consumption/hour, etc. The image file is stored on a microSD memory card on the back of the uLCD-32PT screen and loaded onto the screen by program control. Then the program just has to update numbers on the display, or draw gauge pointers.

FalconFour 12-07-2010 04:12 PM

Quote:

Originally Posted by mluckham (Post 207502)
This requires a four-wire connection to an Arudino (5V power, ground, SCL, SDA) but I haven't yet figured out how these will be connected to the MPGuino.

That's easy, even the prebuilt MPGuino can do it. +5v and ground, those are easy to find. SCL and SDA are, unusually enough, usually tied to analog pins. There just so happen to be (at least) 2 unused analog pins on the MPGuino. Just tie in to those, add code accordingly. :)

(Maybe I'm making it sound too easy? I dunno how much you already know about it...)

mluckham 12-07-2010 06:23 PM

Quote:

Originally Posted by FalconFour (Post 208466)
That's easy, even the prebuilt MPGuino can do it. +5v and ground, those are easy to find. SCL and SDA are, unusually enough, usually tied to analog pins. There just so happen to be (at least) 2 unused analog pins on the MPGuino. Just tie in to those, add code accordingly. :)

(Maybe I'm making it sound too easy? I dunno how much you already know about it...)

Yes thanks, analog pins 4 and 5 on an "Arduino" ... I've already had two Arduinos connected with those pins in a successful I2C Master / Slave test.

But according to the MPGuino schematic those pins are used already for two of the front panel buttons and read using register PINC (PORTC input bits, tied to ANA0-5).

It may be that the Wire library for I2C, and the ANA4/5 pins connected to the buttons, can co-exist as long as the buttons aren't pressed ... do you think so? If not, then that's the reason my LCD's protection diode was killed!

FalconFour 12-07-2010 07:04 PM

There are 6 analog inputs.

There are 3 buttons attached to the analog inputs on the MPGuino.

That leaves 3 unused analog pins on the MPGuino board.

And since the analog-input pins on the ATMega are directly connected to the pins on the Arduino board... that means you can just directly attach to them and address them.

I guess since you needed me to clarify this, you'll also need me to clarify which pins on the ATmega to solder to... :P

http://profmason.com/wp-content/uplo...rduinopins.jpg

Bam. Connect SCL and SDA to analog pins 1 and 2, and use the standard Wire library, far as I can figure. No need for all that direct port access stuff... plus, PORTA...PORTC are direct access to the digital pins, I think something else is used to interact with the analog pins... and I think data is "written" to the analog inputs by switching the pull-up resistors on and off. I think.

mluckham 12-07-2010 07:23 PM

Quote:

Originally Posted by FalconFour (Post 208490)
Connect SCL and SDA to analog pins 1 and 2, and use the standard Wire library, far as I can figure. No need for all that direct port access stuff... plus, PORTA...PORTC are direct access to the digital pins, I think something else is used to interact with the analog pins... and I think data is "written" to the analog inputs by switching the pull-up resistors on and off. I think.

Thanks again :)

It may be you are correct, but I think the Wire library will need some modification to use the different pins - pins 4 and 5 in the PORTC register are hard-coded, and the TWCR register is used by the Wire library for the processor's native two-wire serial interface support ... can it be connected to pins other than 4 and 5? Is it even possible? Maybe so, I have not dived so deeply into two-wire serial support and would need to do so to arrive at the answers. But I suspect a bit-banged version of Wire would be needed to use ANA1 and ANA2.


What I proposed before was to leave Wire alone and dual-purpose the ANA4 and ANA5 pins for the two buttons and I2C. I can see how to handle it in software, but electrically - I don't know. The MPGuino code turns on the pullups but defines the pins as inputs.


All times are GMT -4. The time now is 02:06 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com