Did a bunch of work with the Java server, the GPRS can connect to it and the sever stores whatever is transmitted to it. Need to get the HC08 to properly transmit the GPS data to the GPRS modem.
We may have run into a snag though...
We programmed the record and playback feature. We programmed the board to record until it runs out of ram and then playback. It actually works! We still need to get it to run at the correct speed in playback mode though and it only records about 25 seconds... We may be running out of RAM space to run the program. 4K of RAM only goes so far. Andre thinks it may be because we're using a demo compiler, it may limit the space we can use until we shell out a bunch of money for it. I'm not sure though. We may need to find ways to optimize our code further.
Andre received the GPRS modem with the breakout board and antenna in the mail today. The SMA to MMC connector he already had was the wrong size on Antenna side so we were unable to use the Antenna. I put in an order for the correct adaptor and its being mailed to Andre.
Using the same UART breadboard we built to do initial testing on the GPS module, we hooked up the GPRS modem to a serial port on the school's computer. Loaded up Hyper-Terminal: Com1, 9600 baud, etc... typed "AT"... and got the response "OK"... yaay! something finally works right off the bat. The GPRS has auto-bauding, but it says to ensure accurate communication to manually set the baud once you're inside. Typed "AT-BR=9600" to manually set up the baud-rate (I think that was the command anyway) and got the response "OK". My cell-phone's SIMM card was inside and we typed the AT command to determine whether it was password protected... it wasn't so we skipped the password steps and got to the check network status. Even without the antenna it was able to detect a( or several) network(s) but it was not allowed to connect to them. It could be because I don't have GPRS as part of my plan. Tried the same thing with Sophe's and Andre's SIMM card and got the same result each time.
One of us needs to sign up for GPRS access and we need to hook up the antenna once Andre gets the adaptor in the mail.
One small piece of bad-news, Andre ordered the digital thermometer at the same time as the GRPS modem so we went ahead and opened up the casing. Apart from the LCD module which displays the temperature, there's just 1 connector at the bottom... a serial connector. ARGH! Our GPS module uses a serial connector, our GPRS modem uses a serial connector, and now the thermometer is going to use a serial connector. The motorolla board only has 2 serial connectors. Hopefully we can manually wire in a UART and turn a standard port into a serial port but I have a feeling we won't be able to.
After the review, tried all day to get the GPS to come in 1 serial port, and go out the other... again. Its been a whole week now! We did make some minor progress, however, we got the hardware configuration of the interface between the GPS module and the micro-controller down correct beyond any reasonable doubt. Unfortunately it still dosen't work... so it HAS TO BE the program. Sophy sent an email to me:
"The microcontroller uses a uart chip. You can't do it with a uart chip, you have to use a usart because the gps module sends out burst of transmissions every second. It uses synchronized serial communication and you would need a 8251 USART chip."
Next up, sending GPS data over a GPRS cellular modem to an SQL database via the internet and then pulling up the data with a GUI on an internet connected computer.
Also finally completed the calculations of converting our desired duty cycle in mili-seconds to the appropriate hex value based on the frequency of the signal being output. I'll see if I can post the equation in a future journal. Changed the hex values in 3 places for each servo, so now the steering will turn dead-center when you power on the car and it can only turn so far in each direction... the servos can turn more than the gears allow them to. Don't want to burn them out. Andre calculated so precisely that the steering stops turning at the exact moment the pulse-width stops increasing or decreasing. Very effective coding.