Well, it's been some time since my last post, but sometimes there's just so much work to do, you'd need a week to finish one day's load.
Anyway, during a week off at my best man's home (he is called "The AirBear"), we nearly managed to finish the second version of the Internet Personal Messenger. The IPM v2 has a new page all for itself, showing off some stages of its hardware development.
The TFT's backlight is very hungry for power, which presented us with some problems, because the wiring on the Arduino board was incapable of distributing the power from the USB port well enough to fit the whole appliance. To solve this issue, we built a "support board" which also holds all the external circuitry, like speaker amplifier, button resistor ladder, etc. The AirBear built the board from the meagre information he could deduce from my instructions, which were somewhat confusing, because I didn't ever think of documenting the wiring before ;) It drove him close to madness when I told him I needed another connection to VCC for the TFT backlight - there wasn't any space left on the small PCB! Well, a Y-cable did the trick in the end :P You can see the complete schematic here:
We also had an argument about the buttons: When almost completely finished, The AirBear had to take the whole thing apart again because the buttons seemed to be in the wrong order. When we had carefully reassembled the IPM, the buttons were STILL in the wrong order! At home, a close inspection of the daughter board yielded a solder bridge between two copper lanes, shorting a resistor and thus making it appear as if two of the buttons were identical. So, my advice here is: ALWAYS use an ohmmeter to check your board for short circuits before powering it up!
Now I hope that the hardware is working correctly and I just have to find the last bugs in the software - which cause the IPM to crash at the moment. There must be some kind of unterminated string buffer lurking in the RAM, making the firmware overwrite everything else in RAM at some point. Once, it even overwrite the EEPROM's contents with rubbish, although I really can't figure out how that could've happened. Well, let's just hope it doesn't happen again...
So far, see you in the near future :)