DIY Cellphone

Troubleshooting

There are a lot of pieces and, therefore, a lot of things that might not work. Here are some potential problems and some possible solutions.

Don’t see the DIY Cellphone in the Tools > Board menu.

vcc-gnd
Places to check for potential short circuits between power and ground. (This diagram matches what you’d see when looking at the bottom of the cellphone circuit board, which is actually a mirror image of the top-view shown in Eagle.)

Can’t burn the bootloader onto the microcontroller.

ATmega1284-debugging
The ATmega1284 connections required for successful boot-loading of the microcontroller using an in-system programmer (ISP) are highlighted in this diagram. They are VCC, GND (to power the microcontroller), MISO, MOSI, SCK, and RESET (for communication with the ISP). (This diagram matches what you’d see when looking at the bottom of the cellphone circuit board, which is actually a mirror image of the top-view shown in Eagle.)

Can’t compile the cellphone program.

Can’t upload the cellphone program.

ATmega1284-uploading
The connections required to upload code to the microcontroller using an FTDI cable are highlighted in this diagram. RX and TX go through the solder jumpers (whose center pads should be soldered to the pads labelled “uC”). DTR from the FTDI cable connects to the micro-controller’s RESET line through the highlighted 0.1 uF capacitor. (This diagram matches what you’d see when looking at the bottom of the cellphone circuit board, which is actually a mirror image of the top-view shown in Eagle.)

Can’t connect to the network.

Another component doesn’t work (e.g. display, speaker, microphone, buzzer).

7 Responses to “Troubleshooting”

  1. William says:

    I was able to burn the bootloader, compile the sketch and upload it to the phone, but it is stuck trying to connect. When I power up, the LCD displays “connecting” and just hangs there. The serial monitor output is:
    AT%13%AT%13%
    0 9>AT%13%%13%%10%OK%13%%10%
    AT+CGREG?%13%
    9 40>AT+CGREG?%13%%13%%10%+CGREG: 0,3%13%%10%%13%%10%OK%13%%10%
    AT+CGREG?%13%

    I used an Arduino UNO as an ISP which you mentioned somewhere would not work properly. Could that be causing problems with the uploaded program? During compiling I see several warning messages like:
    “GSM3VolumeService.cpp:76: warning: enumeration value ‘MODEMCONFIG’ not handled in switch” and “pins_arduino.h:53:1: warning: “TIMER5A” redefined”

    I tried the serial debug program, the output for each query is:
    AT+CREG?
    +CREG: 0,1

    AT+CPBS?
    +CPBS: “SM”,1,250

    AT+CPBR=1
    +CPBR: 1,”411″, 129, “411 – Assistance”

    Any help you can give is appreciated.

  2. Gustavo Arriaga says:

    Can’t burn the bootloader. Checked all connections. No shorts. Battery is charged. Using USB AVRISP MKII and getting the following error:

    avrdude: Version 5.11, compiled on Sep 2 2011 at 18:52:52
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is “/Users/mister_sausage/Downloads/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf”
    User configuration file is “/Users/mister_sausage/.avrduderc”
    User configuration file does not exist or is not a regular file, skipping

    Using Port : usb
    Using Programmer : stk500v2
    avrdude: usbdev_open(): Found AVRISP mkII, serno: 0000B0026998
    avrdude: usbdev_open(): using read endpoint 0x82
    avrdude: Sent: . [01]
    avrdude: Recv: . [01] . [00] . [0a] A [41] V [56] R [52] I [49] S [53] P [50] _ [5f] M [4d] K [4b] 2 [32]
    avrdude: stk500v2_getsync(): found AVRISP mkII programmer
    AVR Part : ATMEGA1284P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PA0
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

    Programmer Type : STK500V2
    Description : Atmel STK500 Version 2.x firmware
    Programmer Model: AVRISP mkII
    avrdude: Sent: . [03] . [90]
    avrdude: Recv: . [03] . [00] . [01]
    avrdude: Sent: . [03] . [91]
    avrdude: Recv: . [03] . [00] . [01]
    avrdude: Sent: . [03] . [92]
    avrdude: Recv: . [03] . [00] . [0e]
    Hardware Version: 1
    Firmware Version Master : 1.14
    avrdude: Sent: . [03] . [94]
    avrdude: Recv: . [03] . [00] ( [28]
    Vtarget : 4.0 V
    avrdude: Sent: . [03] . [98]
    avrdude: Recv: . [03] . [00] . [05]
    SCK period : 4.00 us

    avrdude: Sent: . [10] . [c8] d [64] . [19] [20] . [00] S [53] . [03] . [ac] S [53] . [00] . [00]
    avrdude: Recv: . [10] . [c0]
    avrdude: stk500v2_command(): command failed
    avrdude: Sent: . [03] . [a1]
    avrdude: Recv: . [03] . [00] . [00]
    avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude: Sent: . [11] . [01] . [01]
    avrdude: Recv: . [11] . [00]

    avrdude done. Thank you.

  3. Gustavo Arriaga says:

    Communication with the M10 module doesn’t seem to be working. Cellphone sketch hangs at “while (gsmAccess.begin(0, false) != GSM_READY)”.

    SerialProxy sketch returns nothing on sending “AT”.

    Any ideas? Do ALL pins on the module need to be soldered or only the ones connected to something on the PCB layout?

    • Gustavo Arriaga says:

      Nevermind. Continuity issue again. This time the pad from M10 was not connected to pad from ATMEGA. All three of the PCBs ordered from OSHpark have had some quality issue (bad trace, through holes not milled, etc…). But after soldering a jumper wire to get around the bad trace IT WORKS!

Leave a Reply