This phone should do GSM Lemme check how that's possible.
To get started using it as a Bluetooth headset would be nice.
Cheaper option:
Without bluetooth would help as well, use a cheap microcontroller to decode the pulse dialling and talk serial to the phone to let the phone dial the number. Audio in and out could be handled by pretending to be a headset using the original connector.
Protocol
The correct serial protocol could be 'borrowed' from FMA.
Speed: 9600 bps
From unit1.pas:
procedure TForm1.VoiceCall(number: String);
begin
if FHaveVoiceDialCommand_Dial then
TxAndWait('AT*EVD="' + number + '"')
else
TxAndWait('ATDT' + number + ';');
end;
From unit1.pas as well:
Log.AddCommunicationMessage('Check for special voice dialing commands (dial) (T68, T610)');
try
TxAndWait('AT*EVD=?');
FHaveVoiceDialCommand_Dial := True;
except;
Log.AddCommunicationMessage('Voice dialing dial command not supported! Will use old style dialing commands', lsWarning);
FHaveVoiceDialCommand_Dial := False;
end;
From TxAndWait:
ComPort.WriteStr(Data + #13);
For short, one of the below depending on phone model:
ATDT="0612345678"\n
or
AT*EVD="0612345678"\n
Microcontroller
Connector
Plan 2 (OSX environment)
Install development environment (Used
CrossPack)
Compile phone app in Xcode 4 with Crosspack compiler (done)
Build new USB programmer using
Arduino and
ArduinoISP (example code comes with Arduino 022).
This doesn't work on an Arduino Uno. So I got a
Arduino pro mini (cheapest Arduino available) and an FTDI board. I ran into a documented problem with Auto-reset using this setup. On
the MegaISP (forerunner to ArduinoISP) page the solution was mentioned: disconnect the DTR pin and you should be fine. Sort-of luckily I had a FTDI board with an indirectly connected DTR pin. So I unplugged my improvised connection and programming worked.
Hardware
Took an Sony-Ericsson usb desk stand and removed the phone connector and charge connector from the board.
Connected the phone connector to some perfboard and soldered a piece of wire to all the pins. Connected this to a pin-header for easy access.
-
Plan 1.0 (Windows/Linux environment)
Install development environment (WinAVR)
Write proof of concept for phone application in C. (done)
-
Buy parts.
Test some stuff to get familiar with 'live' device and programmer. (done)
Build prototype using atmega8 running on external power.
Connect phone to microcontroller and detect dialled number. (done)
Enable tx serial on microcontroller. (done)
Build prototype connector to phone. (done)
Talk to phone. (done)
Finalize software and call it a prototype. (done)
Test
Build ver 0.1 using attiny13 (and software uart) and mobile phone power.
Build some stuff with this controller. (done, watch out, Winavr will create too large object files with -o0, use -os)
Experiment with external interrupts on attiny13. (done!)
Experiment with timer interrupts on attiny13. (done, in one go, I get pretty good at reading datasheets
)
Enable tx serial on microcontroller. (done, jay! 2400 baud but working)
Connect phone to microcontroller and detect dialled number.
Build more permanent connector to phone.
Join the hardware together.
Finalize software.
Profit!
Finally finished version 1 of this beast of a project. Learned a -lot- along the way and am really happy with the result. Started in november 2006, so 5,5 years. (25th june 2012) *happy*
Suggestions for the future: