Started working on the PCB layout. I will need to order the proper resistors and voltage regulators. I am about half done with the basic layout. -Ben (5/2/10) Finished wiring up the J1850 interface on the breadboard. I also fixed the ISO interface and can communicate with the ECU simulator using ISO. The other protocols are not working, so I will need to look into that. -Ben (5/3/10)
The memory module has been wired and is ready for testing. We tested bluetooth communication between the phone and the ATmega and it is functioning flawlessly. -Ben (5/4/10)
Met with Mike to discuss progress. Mike and Jonas will be finalizing the data format this week so that David and Brent can move ahead. -Ben(5/4/10)
Finished wiring on the breadboard and tested. I was able to confirm communication between the ATMega and the ECU simulator using all of the protocols (PWM, VPW, both ISOs, and all four CANs) when the protocol was specified manually in software. This means that our wiring diagram is correct and can be finalized on the PCB layout. Most of the protocols could be selected automatically as well, and it appears that the issues with auto-selecting is actually due to the simulator. Since the simulator is actually capable of all of the protocols, the ELM is not timing out properly. I believe the software will work properly in an actual vehicle, but have not tested yet.
I have converted all of the resistors and capacitors in the schematic to 1206 package, surface-mount components. I would like to use the 1206s as the would be easier to work with, but may have to switch to 0805s if space becomes an issue. I am going to try to fit the design into a 3"x5" footprint, but may have to go a bit larger due to the size of the components. -Ben (5/6/10)
Finished creating the schematic, moving on to PCB layout. -Ben (5/6/10)
The memory format has been completed and programmed onto the MCU. The memory is divided into pages of 256 bytes. The first 25 bytes are devoted to storing the VIN in ASCII. The rest of the bytes are used to store 11 data slices. Each data slice represents one second worth of data and stores data in the following order (each measurement requires one byte unless otherwise stated):
Vehicle speed, Engine RPM (2 bytes), MAF air flow rate (2 bytes), Engine coolant temperature, Short term fuel % trim bank 1, Short term fuel % trim bank 2, Long term fuel % trim bank 1, Long term fuel % trim bank 2, Oxygen sensor voltage bank 1 sensor 1, Oxygen sensor voltage bank 1 sensor 2, Oxygen sensor voltage bank 2 sensor 1, Oxygen sensor voltage bank 2 sensor 2, Intake manifold absolute pressure, Intake air temperature, Fuel pressure, Calculated engine load value, X-axis accelerometer, Y-axis accelerometer, Z-axis accelerometer
Therefore, each data slice is 21 bytes. This allows the VIN and 11 seconds worth of data to be stored to memory simultaneously.
Writing and reading to and from the memory has been tested. Now the ASCII data values retrieved from the ELM need to be translated into byte values. - Chris (5/7/10)
This weel on the android app, I started working on the database that will store information before it is sent to the cloud, I have also started looking into how the data will be transmitted to the cloud. I am also working with Mike and Jonas to define an XML format for the data. For the database so far, I have been able to store dummy data that has been read over bluetooth, and display that data on the screen. Next, I need to organize the database for all the different measurements that need to be stored. For the cloud side, there are two ways to transmit data that we are looking into. First, I found a java library called RESTlet that looks like it will allow shared code for data objects between the Cloud app and the Android app. The second method to transmit data to the cloud is by using an FTP client on android. Using an FTP client would allow easy data upload to the Amazon EC2 server that Mike and Jonas are developing. I found an app called AndFTP that will allow other apps to easily use FTP to transmit files. -David