2008-12-10

Alterando modo 3G/UMTS/HDSPA ou GSM/GPRS/EDGE no modem Huawei E226 no Linux

Após pesquisar bastante na internet, e não achar nada a respeito, decidi ler na fonte, acessei o sítio do órgão que normaliza o padrão 3G o Third Generation Partnership Project (3GPP), lá encontrei toda a lista de comandos AT para modems 3G, como o huawei e226, contudo nenhum dos comandos das normas fazem a mudança do modo de operação.

Manuais no site da 3GPP

Lendo um pouco mais, nos documentos mais recentes no link acima, descobri o comando AT+CLAC este comando lista todos os comandos de usuário do modem, assim já temos um bom começo, bastou acessar o modem através do programa cutecom (ou minicom) configurando para conectar na porta /dev/ttyUSB0 ou na /dev/ttyUSB1, e enviar o comando AT+CLAC, e uma lista com todos os comandos será exibida.

Pois é tinha a lista de comandos e nenhuma idéia de qual fazia a coisa, bom já sabia que eram as freqüências de operação do GSM/EDGE que estavam erradas, pois ao seta-las no windows com o driver/discador do fabricante Eu conseguia conectar perfeitamente em 2G.

Lendo mais os documentos da 3GPP, aprendi que os comandos AT aceitão os paramentros ? e =? como apresentado abaixo:
AT^HSDPA?
AT^HSDPA=?

O primeiro comando exibe as
configurações atuais para este comando e o segundo exibe o modo de
utilização e valores possíveis do comando.


Utilizando o comando AT+CLAC e olhando a lista de comando vi dois comandos muito promissores:
AT^FREQLOCK e AT^FREQPREF , eles setam a frequencia, mas não consegui nada utilizando eles, e também não há nenhuma documentação sobre eles, já que segundo a 3GPP os comandos com ^ e $ são parte da especificação de cada fabricante.

Utilizando o programa da Vodafone em modo de debug, verifiquei que o comando utilizado por este para trocar entre modo GSM e UMTS é o
AT^SYSCFG

De posse deste conhecimento, configurei o modem para operar em modo GSM nas freqüências corretas pelo Windows e testei no Linux utilizando o programa wvdial, já que o software da Vodafone usa um comando AT que não funciona, como funcionou, o resto ficou fácil, utilizei o comando
AT^SYSCFG? e pronto apareceu a configuração correta:
^SYSCFG:13,0,4400380,1,0

Fiz o mesmo para UMTS/3G e o resultado foi:
^SYSCFG:14,0,4400380,1,0

Agora basta usar o comando:

AT^SYSCFG=13,0,4400380,1,0 para GSM/EDGE/2G e
AT^SYSCFG=14,0,4400380,1,0 para UMTS/3G

Use AT^SYSCFG=2,2,3FFFFFFF,1,0 caso queira 3G preferido com todas as bandas.

2 comentários:

Unknown disse...

Égua, Fazzi!
Só tu mesmo!
Essa foi pesada!!!
Mas valeu pela descoberta.
Parabéns!

GuiGS disse...

Muito bom! Graças a essas dicas eu pude usar a Internet durante as minhas férias na praia!

Porém o comando AT^SYSCFG:13,0,4400380,1,0 não funcionou. Então eu mudei para AT^SYSCFG=13,0,4400380,1,0

Como eu não tenho instalado programas para enviar comandos para o modem eu coloquei este comando no arquivo wvdial.conf. Ficou assim:

Init3 = AT^SYSCFG=13,0,4400380,1,0

Depois que se executa uma vez (rodando o wvdial), o modem fica configurado para conectar em 2G e é possível usar a conexão normal do Ubuntu Intrepid.

Valeu Anunakin!!