![]() |
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. |
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.
|
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:
|
+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) |
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! |
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. |
Quote:
(Maybe I'm making it sound too easy? I dunno how much you already know about it...) |
Quote:
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! |
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. |
Quote:
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