posted by Paul | on , , |

post2

Done

Project Induzione is finished. Here's the report: Click Me!

And here's our video:

What's Next?

Team Always Block is highly considering continuing the development of this project for fun and a learning experience. Eventually we want to get into a release state where we're able to freely distribute our product. We also want to start porting the application to iOS.

Thank You, See You Starside


To everyone that decided to take some time out of their lives to read up on what's going on with Team Always Block, thank you so much. We did this for you. It was an awesome experience. I'm sure I speak for the entire team when I say that I couldn't ask for a better group. I'm proud of them and I'm sure we're all proud of ourselves.

Keep an eye out for Team Always Block products. We're not done yet.



-Paul Camantigue
The Prodigal Explorer
post2

posted by Paul | on , , |

post2

More Sad News

Our second PCB is fully soldered without other peripherals that have the potential to interfere with the programming iof the LPC2148 (namely the GPS/Bluetooth module). Although, we're still unable to program the microcontroller. More on that below.

Listed below were some of the accomplishments and progress over the past week.

2nd PCB

The 2nd PCB still suffers the same problem that the 1st one has. Being unable to program the LPC2148 renders us unable to test the rest of the peripherals that we already have on the board. We have new parts and we carefully checked for shorts and we think this board has no problems.

Possible PCB Solution..

For a last resort we're thinking of a one way trip for one of our LPC2148's. By that we mean programming the microcontroller that is currently on one of our BlueBoard-LPC2148's and then removing that chip and soldering that onto one of our PCB's. This means that we're going to have to finalize the firmware as much as we can as we do not want to swap it back just to program it.

Induzione App: Another User Interface Overhaul

So far the Induzione Android app has been going through a graphical overhaul and we have some progress! Almost all of the screens have the same consistency from our "Home" screen. Screenshots are below.

Filming

We have crazy and creative ways to showcase Project Induzione. We have a lot of ideas that we hope to capture through video as we cannot bring a car into a room (that would probably be another Senior Project).

Progress

  • Anthony is working on the race game logic as well as the look and feel of the process.
  • Garvin is testing more parameter ID's for live data logging as well as finalizing the firmware.
  • Paul is preparing to do the CPU swap between one of our PCB's and a working BlueBoard-LPC2148.
  • Bo is working on the UI overhaul.

What's Next?

Finishing the app, firmware, and doing the CPU swap. Also, initial filming for our demonstration due on May 15th.

Problems Encountered

Unable to program the 2nd PCB.



-Paul Camantigue
The Prodigal Explorer

posted by Paul | on , , |

post2

Sad News

We are unsuccessful in the first attempt of programming the PCB. The entire team has been going to the ECS labs to assist in the debug of our hardware. We have a feeling that it has to deal with the ST3232 chip (RS232 buffer/converter).

Listed below were some of the accomplishments and progress over the past week.

PCB

The PCB is done. But it doesn't work.. for now. The PCB is pretty much unfunctional without any firmware working the rest of the board. But, we can confirm that the OBD-II interpreter powers on through the RX/TX & OBD-II Status LED's. We also know that the Bluetooth module is correctly being powered as we are able to connect to it with our phones and calibrate the settings for it. We did not confirm if the GPS module is working correctly, but we are sure it is as long as it has power.

Induzione App: Social Hub is Done

The social hub of the application contains the Friends List, Statistics, Parts Shop, and Challenges. Each user will have their own unique social hub which is all connected to the cloud. Users are able to add friends to their friend's list. Once they add them they're to race them with the outcome being based on their performance index, which is based on the car that they have and the virtual parts that they purchase.

Induzione App: Navigation Work

We changed our navigation from a tabular view to a side drawer where users are able to slide their finger from the left of the screen towards the middle to find multiple navigation items that would lead them towards the Home Screen, Live Datalogging Screen, Social Hub, etc. Although due to this we need to change some of our code from using Activities to Fragments which may take some time.

Induzione App: User Interface

The software team changed from having lots of Helvetica fonts, gradient colors, and blurred backgrounds to a flat design, which keeps up with the trend of current mobile/web development. Some of the activities are not consistent with our new design standard but we will be working on making visual inhertiance a priority to maintain consistency.

Progress

  • Anthony is working on merging the code with the rest of project. He will continue with the race game logic.
  • Garvin is working on testing the PCB and finalizing the firmware for the board and merging the rest of his code.
  • Paul is conducting QA on the board and soldering the 2nd board with our 2nd set of parts. We are hoping that this one will work as we will be more careful in our soldering.
  • Bo is working on merging the code, fixing the navigation drawer, and finalizing the firmware with Garvin.

What's Next?

Debugging the first PCB and soldering the second one to see if we messed up on the first one. The code is almost done merging so we should be done with that.

Problems Encountered

Last week I said we have 99 problems.. now we have 100.



-Paul Camantigue
The Prodigal Explorer

posted by Paul | on , , |

post2

Rush Hour

T-minus three weeks before finals and the reveal of our finished product. This week, we feature a picture of the almost finished PCB.
Listed below were some of the accomplishments and progress over the past week.

Soldering of the PCB

We're happy to report that we were able to successfully solder the ARM7 LPC2148 microcontroller with over 80 pins with a super fine pitch. This is the heart of our project and will control 90% of the PCB.

Code Merging

Utilizing the code repository features of GitHub each member of our team were able to split up tasks for the application and work on our own individual parts. GitHub allows us to upload our code to the cloud without worry of overwriting another member's files. However, as we are all nearly finished we wanted to merge our code. This will be done manually to ensure nothing is overwritten by GitHub.

Progress

  • Anthony is working on the race game logic for direct competition as well as driving goals for the week
  • Garvin is working on testing the PCB and retrieving Diagnostic Trouble Codes from a car
  • Paul is conducting QA and soldering the last remaining parts of the PCB
  • Bo is working on merging the code to have a stable build that the team can all work from

What's Next?

Debugging the PCB to allow our team to flash our custom firmware as well as checking if all of the peripherals (UART/GPS/Bluetooth) work as planned.

Problems Encountered

We got 99 problems but Project Induzione ain't one.

posted by GarvinIV | on , , |

post2

And We're Almost There

With only a little over 4 weeks left to get our project done, we are working hard 'til the wee-hours of the morning to ensure that we meet our deadline. This is crunch time. This week, we feature an overhauled UI look as well as graphical representation for our live data.
Listed below were some of the accomplishments and progress over the past week.

Data Plotting

We are very excited to announce that we have implemented a graphical representation system for our data. On our homescreen, we have a graph with plots of the amount of driving experience points gained over the last few user data syncs. This way, the user can keep track of how they've improved or regressed in terms of their driving habits.
We also implemented a real-time animated graph that changes as live data is being logged.

UI Overhaul

This week we are very excited to present the new look for our UI. We decided to go with a more simple, fun, minimalist approach to our design. We are pretty pleased with the way it turned out. Sneak peak available in the blog header image for this week.

Progress

  • Anthony is working on the race game logic for direct competition as well as driving goals for the week
  • Garvin is working on finalizing the program loop for the firmware to android communication
  • Paulis working on the race game logic as well as driver goals and QA on the PCB
  • Bois working on finalizing the program loop for the firmware to android communication

What's Next?

Putting it all together. We need to make sure the PCB works and integrate all of our functionality. Exciting times.

Problems Encountered

Team Always Block knows no problems.

posted by GarvinIV | on , , |

post2

New Developments in the Induzione World

We are excited to announce that live data functionality is up-and-running! Communication protocol between the firmware and the Android application has been finalized and is running very smoothly. All that's left for this is to integrate this into the main program loop of the firmware.
We are also pleased to announce that we have implemented our user virtual vehicle creation system for our in-game social competition.
Listed below were some of the accomplishments and progress over the past week.

Live Data Logging Protocol

In order to seamlessly transition through the live data logging parameters, we use a system of handshakes throughout the data logging. When the firmware receives the command byte to execute live data logging mode, it enters a program loop to wait for the appropriate parameter command byte. Once it receives it, it goes to decode and determine which parameter it needs to log.

Handshaking

We want to ensure that the Android application is "listening" while the firmware is sending out the bytes for that given parameter. Because of this, we include a handshake after every byte that gets sent out. We do this to ensure that if the user backs out of the logging screen or chooses to log a new parameter, the firmware will realize this and jump out of the logging loop and wait for a new parameter command.

Vehicle Registration

We have implemented vehicle registration into the new user registration so that whenever a new user registers they are also required to enter the information for their vehicle profile.

Progress

  • Anthony is working on finalizing the storefront for the virtual user upgrades
  • Garvin is adding new parameters for live data logging as well as performing final visual updates/tweaks to the Android application
  • Paul is working on soldering all of the parts, including the ARM processor, onto our custom PCB
  • Bo is working on GPS parsing from the firmware

What's Next?

In the week to come, we are looking to finish soldering the PCB and (hopefully) have it up and running. This is the final hurdle.

Problems Encountered

Team Always Block knows no problems.

posted by GarvinIV | on , , |

post2

And now the fun really begins

All of our team members are busy this week cranking out each of their individual parts for the firmware as well as the Android application. As Bo stated last week, GitHub has been crucial in keeping all of the Induzione code running like a well-oiled machine.
Listed below were some of the accomplishments and progress over the past week.

New Update with our Data Sync

We have improved the scalability of our sync code and have eliminated the length byte packet system we set forth to implement a couple weeks ago. The reason behind this was that it increased the workload on the firmware to have to keep track of these extra control bytes and write them into the already limited amount of space we have on the SD card. The goal is to maximize the capacity for user data and thus we decided to go with a different system.

The New Firmware-Android Communication Protocol

In lieu of our previous system, our communication protocol now relies on an unconditional handshake symbol system. Let us explain...
Each data parameter that we store into the SD card is space-delimited, meaning that after each valid data value there is always going to be a space(0x20) following it. Therefore, in our Android application we are appending in data and waiting to receive a 0x20 each time. Once we have a valid chunk of data, we convert it accordingly and run it through our custom decode function to see exactly which data parameter we received.

Also, since we need to calculate the average of several of our values, we need to distinguish the end of a packet of data as opposed to the end of the entire data completely.

Our solution is for the firmware to simply append a '#' character after each cycle of passive logging. This way, the application knows exactly when a packet of data is finished and can accurately calculate averages at the end of the data syncing procedure. When the data is complete, the firwmare appends a '~', or in other words, our data termination byte. Once the application receives this character, it knows that the syncing is done and will calculate all the game data values and upload it to the database.

[data]--[data]--[data]--[data]--[data]--[#]--[data]--[data]........[data]--[~]
The benefit of implementing this system comes down to scalability. This way we do not have to keep altering our counts and worry about keeping track of this variable if we need to increase the amount of data we wish to communicate. Thus, we can easily change our data packet length without having to worry about breaking communication on the application-side.

Friends List

Anthony has been working hard to finalize the social interaction feature of our application. We are proud to announce that we have succesfully implemented our user-friending system. This feature, as promised in our proposal, allows users to interact with others who are also using this application. The friending system allows for some exciting functionality such as: racing virtual vehicles against friends and/or seeing how you stack up against any of your friend's driving habits.

User has the capability to add/delete friends to his/her friendlist as well as search for a particular friend by username.

Hardware Progress

The parts are currently being soldered on to our PCB by Paul and will hopefully be done within the next week or so.

Application Progress

Friends list? Check. Crucial user data? You bet. Firmware to application connection? Well, you already know.

  • Anthony is working on the user's virtual vehicle performance profile as well as the virtual vehicle storefront for upgrades.
  • Garvin is working on the communication protocol for the live data logging as well as a graphical display for said data.
  • Paul is working on the car diagnostics functionality and is also soldering the components to the PCB.
  • Bo is working on finalizing the user navigation between all of our individual functionalities.

What's Next?

In the week to come, we are looking to merge all of our source code into one cohesive project and begin fixing/tweaking all of our functionalities. We are also hoping to add some exciting functionalities if time permits.

Problems Encountered

Team Always Block knows no problems.

posted by bobo | on , , |

post2

All That Data. All That Progress. All That Jazz.

Deadlines are approaching. Time is ticking. All the while, Team Always Block has been chopping, chopping away.

Hot Fire

White-hot. (adj) 1. So hot as to glow with a bright white light. 2. Zealous; fervid.
The team -- steadily approaching the sound barrier. I believe you could call that white-hot.

Firmware Progress

Finalizing our firmware, our team has successfully been able to continually log both OBD-II data and GPS data to memory. From there, we have also been able to successfully sync this data to our application. The blog header image shows our application retrieving logged data from our firmware to our app.

Hardware Progress

Our components? They have arrived.
Next we are tasked with assembling our PCB with the components we have received. If all goes well, we will have our first working prototype board completed very shortly.

Application Progress

Friends list? Check. Crucial user data? You bet. Firmware to application connection? Well, you already know.

  • Anthony has been hacking out many of the social components of the application.
  • Garvin has pioneered the syncing functionality and user game data.
  • Paul has been wrestling DTC data.
  • Bo has been deliberating over UI/UX for our application.

With each of us hunting a different beast within our application, we have enabled our application structure to be modular. Github has been an essential tool for the progress of our team.

The Tides Of April

We still have a lot to do, but our team has taken the necessary steps to ensure successful completion of Project Induzione in good time.

We welcome April with open arms and a collective smirk on our faces as we barrel our way through white-hot greatness.

Problems Encountered

Team Always Block knows no problems.

posted by GarvinIV | on , , |

post2

Update: Week of March 13, 2013

First thing's first. We are excited to announce that, after a few minor setbacks, our PCB has finally arrived! The PCB (pictured above) is ready to be soldered. We are currently waiting on the arrival of our components. In the meantime, we are working hard on our software/firmware to ensure smooth functionality when our hardware is up and running.

The week started out with a group meeting to go over the completion of last week's deadlines as well as assign new tasks and go over the actual game design of our application.

Android Developments/Parse

Our team has since ditched the more traditional php/mySql backend system for a much more scalable and painfree system called "Parse". With the Parse Java API, we are able to manipulate our database much easier than we would have by implementing our original PHP plan.

The Parse system also allows us the choice to either send a user's login either through the Facebook login system, or our own custom login form. The Parse API creates an object and sends it to our server where it gets stored in the appropriate database. This also improves our scalability because we are now free from editing/adding to our PHP scripts everytime we need to create a new object to insert.

Firmware-to-Android Data Sync

We are also excited to confirm that we have set up a data buffer communication protocol from the hardware to the Android application. We have succesfully sent data buffers over bluetooth to the application and the application had no problems retrieving all of the correct bytes. Data validity is a big issue when dealing with any type of serial communication. Therefore, we have set up our data buffers in such a manner to ensure that we are getting the expected bytes.

Sample Data Packet

[0xLengthByte]--[Byte_1]--[Byte_2]--------[Byte-n]--[0xChecksum]

So basically, when we want to communicate with across these two devices, we first send out our length byte. This tells our program how many bytes+checksum we are expecting to read. Once the application receives the length byte, it sends a handshake byte back to the firmware to OK that it can now start sending the data. We havent decided on a checksum yet, but for now the checksum will just be an XOR of all our data bytes.

The application will be keeping track of each data byte going in and once it verifies that the checksum is correct, it sends another handshake byte back to the firmware to confirm the completion of one data packet. The firmware can now continue with all the other data packets.

Completed Tasks

  • Implemented Parse as our application's new backend system
  • Designed database structure for our user login/registration and profile system
  • Setup data protocol system and succesfully communicate data over bluetooth

New Tasks

Here are the tasks split accordingly:

Bo

  • Setup interface for user navigation
  • Finish design for registration screen
  • Implement server/registration backend connections

Anthony

  • Design the UI for the social hub
  • Implement a clean design for the friends list system
  • Design car club statistics page

Paul

  • Work with Garvin to send live continuous data to the Android application
  • Setup the homescreen with data sync functionality
  • Solder components to board

Garvin

  • Work with Paul to send live continuous data to the Android application
  • Setup the homescreen with data sync functionality
  • Design UI for homescreen

Problems Encountered

Nothing major to report here.

posted by GarvinIV | on , , |

post2

Update: Week of March 6, 2013

For this week, we split our tasks into two different areas. Half of the team is concentrating on the user-interface for the Android application while the other half of the team is working on application to firmware communication. Here are the tasks split accordingly:

Bo

  • Setup GitHub directory for project file management
  • Implement PHP login system for the user application
  • Implement Facebook login as well as traditional login system
  • Design the user-interface for the Social Hub

Anthony

  • Design user-interface for the diagnostics and data logging screens
  • Setup the Android fragment view layout
  • Implement PHP login system for the user application

Paul

  • Finalize parts on the PCB and route the schematic
  • Compile parts list for PCB components ordering
  • Setup Bluetooth communication for Android-to-Firmware Communication

Garvin

  • Write firmware to take in data from the Bluetooth module over UART
  • Setup Bluetooth communication for Android-to-Firmware Communication
  • Setup custom data buffer communication protocol from Android-to-Firwmare

Problems Encountered

There was a minor setback with ordering our PCB last week because the footprint we used in EAGLE for our DB9 Serial port was actually the wrong spec. We have since corrected the schematic and board and have re-ordered our PCB.

Goals for this Week

  • Order all of the PCB components
  • Finish setting up user-interface skeleton for Android
  • Setup the social gaming/statistics database(s)
  • Retrieve live data from Firmware-to-Android

posted by GarvinIV | on , , |

post2

Just as we promised, we finished and finalized our PCB design! The circuit board for the Induzione module is officially in production! Also, development of the Induzione Android application has officially begun! Keep checking back for more updates on the application and circuit board! Also, of course, burritos!

posted by GarvinIV | on , , |

post2

Over the past few weeks, we have put all of our efforts into getting our PCB into production. We are nearing completion with our circuit and should be ordering the board within the next couple of weeks. Once the board is ordered, we will continue writing firmware and begin development on our Android application. Keep checking back for new developments!

posted by GarvinIV | on , , |

post2

Team Always Block is hard at work finalizing our circuit board design. We hope to have our prototype layout sent out by the end of the week. Keep checking back for more updates!

First post.

Jan
2013
29

posted by bobo | on , , |

post3

Something is brewing! Project Induzione is coming soon.