SIM908 - GSM+GPS модуль с поддержкой EmbeddedAT

SIM908
GSM модулями в наше время никого не удивишь, но прогресс не стоит на месте и появляется что-то новенькое.
Может, конечно, это только для меня новенькое, но хочется поделиться с сообществом.
Итак, SIM908 отличается наличием встроенного GPS для определения координат и возможностью загружать пользовательское ПО.
В некоторых случаях это позволяет обойтись без внешнего контроллера и реализовать весь алгоритм внутри самого модуля.
Ещё в плюс можно записать встроенную схему зарядки Li аккумулятора, поэтому сделать простейший GSM-GPS трекер возможно прицепив к SIM908 GSM и GPS антенны, SIM карту и аккумулятор.
Дальше, на основе собственного опыта, расписано как это всё можно быстро попробовать, своего рода Quick Start Guide.

Модуль выпускается в не очень удобном для макетирования форм-факторе SMT с торцевыми контактами. Но существует такая штука как SIM908-C — модуль, напяный на платку, видать для совместимости с чем-то ранее выпускавшимся.
внешний вид модуля SIM908-C
С одной стороны сам модуль SIM908, с другой штыревой разъём с шагом 1мм и место под держатель SIM карт.
Для того чтобы всё это запустить необходимо:
— запаять держатель SIM карты и резисторы 22 Ом размера 0402
— подключить RS232(TTL) основной канал и канал DEBUG (у меня USB-UART переходники на PL2303)
— DTR подключить на GND, иначе модуль не отвечает в канал RS232
— подключить электролит на VRTC (у меня 220uF*10V)
— кнопку (без фиксации) между PWRKEY и GND
— GPS_VCC_RF соединить с GPS_VANT — питание для активной GPS антенны
— антенны GSM и GPS можно подключить к разъёмам на модуле SIM908 (тип IPEX 0.1 мм), или припаяться прямо к торцевым контактам
— на VBAT Li аккумулятор, чтобы не мучаться с источником питания (напряжение питания 3,2-4,8В и надо обеспечить ток в импульсе до 2А)
— на VCHG подаю 5В от USB, для подзарядки
— NETLIGHT на светодиод или осциллограф для отслеживания состояния
некрасиво, зато понятно
вот такой макет

По умолчанию, скорость обмена по основному каналу и каналу DEBUG — 115200 бод. На SIM карте отключаем запрос PIN кода.

Включаем питание, зажимаем кнопку PWRKEY на секунду. Видим что NETLIGHT задёргался. Пробуем посылать команду «АТ» в основной канал, наблюдаем ответ «OK». Отправляем в основной канал AT+CGPSPWR=1 — включение GPS, затем AT+CGPSRST=1 — сброс GPS. После этого в канал DEBUG начнут сыпаться NMEA коды.
Пробуем дозвониться на вставленную SIM, если всё работает, можно продолжать.

Теперь загрузим прошивку с поддержкой EmbeddedAT и программу пользователя.
Воспользуемся готовым примером от macrogroup.
описание примера от macrogroup

Скачиваем архив с прошивкой и каким-то примером Compiled example for Sim908.rar, рсапаковываем, запускаем «SIM908_DTMF_DEVIDE V1.00.EXE» и устанавливаем в «C:\SIM908_DTMF_DevIDE»
Скачиваем архив с исходниками и скомпилированым примером MACROGROUP EAT Demo for Sim908.rar, распаковываем в «C:\SIM908_DTMF_DevIDE\gpsmacro» — для того чтобы потом можно было компилировать пример не изменяя настройки путей.
Запускаем флешер «C:\SIM908_DTMF_DevIDE\EmbatSIM\DownLoader\SIM900 Series download Tools Customer.exe», выбираем
Target-SIM908,
Port — выбираем куда подключён DEBUG порт SIM908
Download option — EmbeddedAT,
Core File — 1137B01V01SIM908M64_ST_DTMF_JD_FOR_TEST_2012_06_29.cla (из архива «Compiled example for Sim908.rar»)
App File — gpsmacro.cla (из папки C:\SIM908_DTMF_DevIDE\gpsmacro\output)
Erase Type — Erase User Data and Code

Выключаем питание модуля, нажимаем в программе «Start Download», включаем питание, зажимаем PWRKEY пока не пройдёт строчка «Waiting for RAM program ACK», после этого PWRKEY можно отпускать. Если отпустить раньше — будет ошибка как на рисунке ниже. В этом случае выключить питание и начать загрузку заново.
ошибка при загрузке - если PWRKEY держать недостаточно долго

При попытках загрузки выяснилась такая штука, как фантомное питание. Питание с модуля снимаем, а он продолжает жить за счёт подпитки с линий данных. Иногда приходилось выдёргивать USB-COM переходники.

После удачной загрузки прошивки и пользовательского кода включаем модуль и видим что:
— секунд через 5 в DEBUG порт начинают сыпаться NMEA данные
— если позвонить на модуль, то звонок сбрасывается и в ответ приходит SMS
— на АТ команды по основному каналу не реагирует
Программа работает как и было обещано.

Настало время откомпилировать данный пример, а уже потом можно писать что-то своё.
Скачиваем установщик embeddedat install.rar. В этом архиве есть «Installation guide.pdf» в котором по шагам расписан процесс установки. Только в п.6 устанавливать ничего не надо, у нас уже установлено «SIM908_DTMF_DevIDE», только настроить «Compiler option».
настройки компилятора
открываем проект «gpsmacro.proj», компилируем. Убеждаемся что ошибок нет, и файл «C:\SIM908_DTMF_DevIDE\gpsmacro\output\gpsmacro.cla» обновился.
После этого можно писать свою пользовательскую программу.

Если хочется использовать другую версию прошивки, то необходимо файлы от прошивки записать в «C:\SIM908_DTMF_DevIDE\EmbatSIM\gsmos\coreSW\rvctcore» и исправить содержимое файла «C:\SIM908_DTMF_DevIDE\EmbatSIM\gsmos\tools\version1» в соответствии с используемым sym файлом. Сам я этим не занимался, но мне кажется что это важно.

Вот так, на полуслове, и закончу.
В написании пользовательских программ под SIM908 только начал тренироваться, сказать по этому поводу нечего.
Надеюсь, приведённое выше описание кому-нибудь поможет «стартануть» побыстрее.

Да, ещё ожидается выпуск новой прошивки с многозадачной EmbeddedAT и новых модулей SIM928, SIM968.

UPD:
стоимость модуля SIM908 — от $21, SIM908C — от $27.

пользователю доступно (из общего описания на EmbeddedAT):
1 мегабайт кода приложения
1 мегабайт RAM
1 мегабайт для хранения данных пользователя
24 GPIO
10 программных таймеров 9.23 ms
1 SPI
1 интерфейс дисплея
2 PWM
1 отладочный порт
1 UART
Системные API и библиотеки

Объём памяти, наверное, зависит от конкретной реализации модуля, так что цифры могут быть не точные.

UPD.
выложил через «google диск» упомянутые в тексте файлы, т.к. ftp.macrogroup.ru недоступен
drive.google.com/folderview?id=0BwcHtbof8_8wWkltVEdYRHBlbzQ&usp=sharing

Комментарии (60)

RSS свернуть / развернуть
На Telit как то проще получается. Только на Python'e надо упражняться.
0
  • avatar
  • x893
  • 06 марта 2013, 15:29
А что такое EmbeddedAT?
0
  • avatar
  • Vga
  • 06 марта 2013, 16:02
EmbeddedAT — можно назвать это «технология» такая. Специально подготовленная прошивка, которая обращается к пользовательской процедуре. Пользовательская процедура пишется на языке С, на основе API функций, компилируется при помощи специального компилятора и подгружается в память модуля по заранее оговоренному адресу.
0
А есть линк на почитать подробности?
0
ftp://ftp.macrogroup.ru/Support/SimCom/Embedded%20AT/
здесь собрано достаточно много информации, я всё оттуда брал
описание в файле «SIM900_Embedded AT Application Note_V1 02.pdf»
0
А платка переход для отладки от симкона (были 300 с такими штырями на отладочных)
0
  • avatar
  • pkuz
  • 06 марта 2013, 16:11
На Telit GE864-GPS действительно проще. Скрипты на Python очень простые.
А вот заряжать аккум через USB при включённом модуле — не есть хорошо. При регистрации в сети, звонках или GPRS — будет мгновенное потребление до 2А + на периферию + 0.5A на зарядку итд… — это слишком много для 0,5А USB. Сработает ли ограничение тока у встроенного чарджера?
0
Насчёт Telit GE864-GPS только сейчас узнал.
По efind что-то находится, но ценник около 3 тыс.руб., или я не то ищу.
SIM908 стоит в районе 700-800 рублей.
Если не сложно — в двух словах чем Telit проще, лучше?
Здесь, когда всё настроишь, потом тоже не сложно. Компилируй да заливай.
0
С Telit можно по разному
1. GM862 или GE863 старье с интегрированным gps
2. GL868 + SL868 (SL869 с глонасом) за 21$/24$ комплект — соединяем и пишем (загружаем из google) софт на питоне.
0
А что можете про telit gl865 сказать?
Может посоветуете, где можно примеры кода глянуть?
0
Статья написана очень подробно, так что при квикстарте очень пригодится. Но еще бы хотелось узнать сколько пользовательского «кода» можно заткнуть, частота проца, доступные ноги, ну и во сколько эта радость выльется простому эмбеддеру. Вообщем добавьте небольшую табличку тех. характеристик если можно.Спасибо.
+1
Спасибо за конструктивную критику, дополнил статью.
0
О, спасибо. А то по первой ссылке из гугля sim908+купить была цена 125 баксов. Уж думал «хороша маша...». А сейчас поискал лучше и цены как вы написали. Еще 1 микрошажок в сторону умного дома сделан.
0
SIM908C в партиях от 100 штук меньше доллара? o_O
www.aliexpress.com/item/Electro-sim908-gpsrs-gsm-gps-module-chip/773288711.html
Это они что фотку его продают? или это действительно модуль столько стоит? Кто сталкивался?
0
А что Вы использовали в качестве gps антенны? Настоящую антенну (активную, пассивную)? Развел платку, в качестве антенны кусок провода. gsm часть работает, с gps проблема — не видит спутников хоть стреляйся, в лучшем случае время получает :( толи антенна нужна правильная толи я модуль увалил.
0
  • avatar
  • mcsa
  • 08 апреля 2013, 22:03
gsm часть работает
GSM — он такой, и без проволоки работать может. Только уровень сигнала снизится и количество ошибок возрастёт (можете и запросить).
0
для GPS использовал активную антенну
причём пока не не подал питание на неё, ни одного спутника не видел
питание подаётся «GPS_VCC_RF соединить с GPS_VANT»
0
Прицепил активную антенну, питание на GPS-VANT-IN подал с аккумулятора, у меня антенна требует питание 3.3-5в. Вроде ожил. Но тупой он какой-то относительно EB-500. Тот на проволочке без проблем работает.
0
Еще вопросик: а как потом вернуть прошивку модуля к первоначальному состоянию?
0
  • avatar
  • mcsa
  • 09 апреля 2013, 14:49
только прошивкой того что было в первоначальном состоянии
как слить прошивку я так и не нашёл, наверное никак,
поэтому если что-то работает не так ка нужно, пробовать разные прошивки

у меня в первоначальном состоянии не работал приём DTMF, поэтому не задумываясь перепрошил
0
В модуле, который купил прошивка B04, в сети удалось найти только B02. Попробовал откомпилить и залить пример с B02, вроде получилось. С программированием более менее понятно, кроме того, есть ли какой флеш или еепром, что бы накапливать данные, а потом пакетом выливать. В анонсах пишут, что в будущих прошивках будет 2.5 мегабайта файловой системы. На данный момент вижу только один выход — на SPI цеплять флеш, если получится.
0
сам я ни с flash, ни с SPI не разбирался, не было необходимости
может вам поможет «fl_customer_flash.c» из примеров
ftp://ftp.macrogroup.ru/Support/SimCom/Embedded%20AT/firmware/ExampleSIM908.rar
0
Теперь я не могу вернутся к первоначальному состоянию модуля, т.е. что бы он работал в интерактивном режиме. Выбираю в даунлоадере режим нормал, выбираю коре файл, что-то шьет и после этого в какой-то коматоз попадает. Нетлайт мигает как-будто не видит сети, по уарту ни на что не реагирует. При заливке просто прошивки надо тоже адрес выбирать 003е000?
0
  • avatar
  • mcsa
  • 10 апреля 2013, 11:46
при заливки прошивки без EmbeddedAT во флешере выбираем
«DownloadOption» = «Normal»,
адрес 00000000,
«Erase type» = «Erase User Data and Code»

вроде так, сейчас не могу попробовать, модуль не на руках
0
Обнаружил, что модуль прошивается не только через дебаг порт, но и через основной тоже
0
  • avatar
  • mcsa
  • 11 апреля 2013, 20:49
как у вас это получилось?
я в описаниях читал что можно прошивать через основной порт, даже попробовал, но не получилось
какие манипуляции надо сделать, чтобы через основной порт шить?
0
Да все тоже самое делал. Обнаружил случайно, прошил модуль, а смотрю не к тому порту подключен. Но повторюсь у меня прошивка b02. Если решите на нее переходить, учтите, что адрес загрузки приложения поменяется на 00400000
0
Кстати, может кто в курсе как сделать, что бы модуль сам включался при подаче питания?
0
  • avatar
  • mcsa
  • 24 апреля 2013, 01:19
Powerkey притянуть к земле.
0
Где-то читал, что если Powerkey к земле притянуть, то с GPRS соединением проблемы будут

на одном из форумов советуют так:
«Просто конденсатор с POWERKEY на GND — Резистор есть уже внутри.
И диод с POWERKEY (анодом) на Vext (катодом), чтобы при выключении быстро разрядился.»

товарищ уважаемый, думаю ему можно доверять
0
Не могли бы вы уточнить куда паять резисторы по 20 Ом в модуле SIM908c и где можно на русском почитать о embededAT?
И да еще вопрос, будет ли модуль работать без антенны?
0
Резисторы паять на sim_rst sim_clk sim_data. На русском не особо что найдете. Про какую антенну Вы говорите?
0
Я про GSM антенну, в принципе уже попробовал, без нее не работает, с ней SNR 22db, резисторы запаял но симку не видит, хотя данные по этим линиям идут(глянул цифровым осциллографом).
0
По поводу антенны. Взял второй модуль, и как оказалось он спутники на кусок проволочки прекрасно видит, так что первый был какой-то полуубитый
0
резисторы паять рядом с держателем SIM карты


там ещё место для конденсатора и ESD защиты, прозвонить по схеме


немного на русском есть здесь, в материалах к вебинару
ftp://ftp.macrogroup.ru/Support/Seminar/webinar_EAT_07_11_2012.pdf
начинайте со страницы 27

GSM без антенны не пробовал
GPS без антенны не видит спутников
0
Все запаял, все заработало, GPSу нужна антенна, хоть пассивная керамическая, а так гуд модуль.
0
У кого-то есть версия софта новее чем 1137B02V01?
0
Сюда заглядывали? Новее вроде пока нет.
0
Приобрел такой же SIM908, нужно перепрошить. Нигде не могу найти ПО «SIM900 Series download Tools Customer», помогите с данным вопросом.
0
  • avatar
  • Kexx
  • 24 апреля 2014, 09:44
обновил статью (UPD), выложил файлы на «Google Disk»
drive.google.com/folderview?id=0BwcHtbof8_8wWkltVEdYRHBlbzQ&usp=sharing
0
Данный базовый пример прошивки блокирует отправку AT команд на устройство через терминал. Как снять блокировку?
0
получается разделение:
— есть последовательный порт модема
— есть последовательный порт UART выведенный наружу модуля
— связывающая их программа
необходимо программно пересылать данные из одного порта в другой

у меня сделано как-то так:


ebdat9_03SetModemdataToFL(TRUE); //sends the output data from core to embedded application
ebdat9_04SetUartdataToFL(TRUE); //sends the UART data from UART port to embedded application

while (keepGoing == TRUE)
{



case EVENT_MODEMDATA:
{
if( MODEM_CMD == flEventBuffer.eventData.modemdata_evt.type )
{
f(ebdat9_05GetSerialPortTxStatus())
{
ebdat9_02SendToSerialPort((char *)flEventBuffer.eventData.modemdata_evt.data, flEventBuffer.eventData.modemdata_evt.length);
}
}


case EVENT_UARTDATA:
{
if(flEventBuffer.eventData.uartdata_evt.type == DATA_SERIAL)
{
flEventBuffer.eventData.uartdata_evt.data[flEventBuffer.eventData.uartdata_evt.length] = 0;
ebdat9_01SendToModem(flEventBuffer.eventData.uartdata_evt.data, flEventBuffer.eventData.uartdata_evt.length);
}
}
0
Спасибо, тут вроде все понятно. В базовом примере указывается отправка координат после сброса звонка, как сделать, чтобы после включения, устройство само отправляло координаты по таймеру, с интервалом, к примеру, в одну минуту, т.е. на заранее заданный номер?
0
необходимо запустить таймер
t_emb_Timer timer;

timer.timeoutPeriod = ebdat8_05MillisecondToTicks(10000); // set timer
ebdat8_01StartTimer(timer);

while (keepGoing == TRUE)


дальше в прерывании
case EVENT_TIMER:
вставить отправку СМС

номер можно вбить фиксировано, но правильней создать на SIM карте контакт с именем например «abonent» и требуемым номером
при включении читать из СИМки номер на который будем отправлять
команда «AT+CPBF=» — поиск в телефонной книге
0
как с вами связаться можно чтобы обсудить вопрос?
0
купил в китае несколько разных GPS трекеров. Задумка у них хорошая-реализация как всегда. Основная притензия у меня: отсылает координаты на китайский веб портал, а перенастроить на какой нибудь orange.com не получается. СМСкой координаты приходят исправно. В одном (TK-102) есть микроконтроллер, в остальных трех его нет. Следовательно прошивка в самом модуле, как и в описанном автором модуле. Маркировок модуля китайского нет.
Может кто-то возился с модификацией описанных мною устройств?
При стоимости GPS трекера 700 рублей вот тут один из них мы имеем законченное устройство в пластиковом корпусе, встроенная керамическая GPS антена, умеет GPS и GSM.
Все хорошо, но ему бы мозки вправить (свой софт)… эхх…

PS: задумки, которые китайцы пытались реализовать (может кто-то возьмет задумки на вооружение при работе с сабжем):
-запрос координат по СМС
-одновременно по GPRS каналу отсылает координаты на определенный URL. Конфигурируется с пом СМС. Указывается в роли аргумента команд IP адрес и TCP/UDP порт.
-режим геоограды. Когда задается 4 координаты GPS, если трекер выезжает за охраняемый периметр-приходит СМС
-ахтунговая СМС приходит при привышении заданного значения скорости.
-в некоторых устройствах (они стоят уже порядка 35$)c пом SMS можно заглушить авто, посредством рзмыкания реле, стоящего последовательно с питанием бензонасоса.

Был бы очень рад найти единомышленников, которые озабочены приведением китайского LEGO в потребный вид.
Могу сделать фото внутренностей своих 2-3 трекеров.
0
Аналогично прикидывал возможность изменить софт в китайском GPS трекере
для себя решил что проще переписать программу для трекеров где контроллер внешний, хоть что-то знакомое уже
например из двух ссылок
www.taker.im/phpBB2/topic/85335-%D0%BD%D0%BE%D0%B2%D0%B0%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F-%D1%82%D1%80%D0%B5%D0%BA%D0%B5%D1%80%D0%B0-tk102-2sd-%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81-tk203/
www.mastertracking.ru/blog/view/item.15.html
видно что построено на STC89 микроконтроллере
остаётся «всего лишь» прозвонить его лапки, подобрать компилятор, написать программу и залить её :)
в случае, когда без внешнего контроллера — вообще не понятно с чего начинать

в итоге смирился, использую китайский ТК102 как есть, с запросом координат через СМС
периодически приходится вытаскивать аккумулятор, ибо зависает — ещё один плюс за то чтобы использовать внешний контроллер
реально пригодилось один раз, когда машину эвакуатором утащили, помогло быстрей штрафстоянку найти
впопыхах неудобно было перебивать координаты из СМС в программу навигации на телефоне (в СМС приходит не ссылка а координаты)

из всех режимов использования для себя бы оставил только один
приехал на место стоянки — нажал кнопку — «встали на охрану»
если сместились больше чем на 100 метров от исходной координаты — отравляем СМС хозяину
0
Не очень понятно в чем проблема у вас. Я купил пару штук
GT02A
Сначала подключил к orange gps, потом сделал свой сервер (с gpsgate.com) и на него отправляется всё.
Правда параметр только один меняется — интервал передачи координат.
Можно конечно взять MTK SDK и долго и мучительно разбираться с MTK, но что то лень — да и людям достаточно только координат.
0
дык по моей ссылке то же GT02A, но только у китайцев в каждой подворотне разные устройства паяют. Команда проходит на смену сервера и порта, даже ответ приходит вида «config OK», но ничего не меняется, как остылал на китайский сайт, так и отсылает. Это один из нескольких.На форуме orange многие жалуются на свои трекеры.
0
нужно включить режим трекера. для старой и новой прошивки — разные команды.да и не забыть перевести в gprs режим
0
Добрый день.
А уточните пожалуйста, куда именно впаивать резисторы? Покажите пожалуйста красными полосками куда паять резисторы, а куда защиту CMF05C.
Заранее благодарен за ответ.
0
Простите что 2 сообщениями, забыл спросить, а зачем вы припаяли 2 черных провода в область справа от блока с сим-картой.
И еще раз благодарен за ответ.
0
2 чёрных провода — это «земля» для UART, лепить их на разъём было сложно
по сути это тот-же минус питания, просто подпаяться удобней

я впаивал только три резистора
защиту и конденсатор не впаивал, просто не нашёл
СИМ карту переставлял несколько раз, и без защиты ничего статикой не выбило, главное соблюдать разумную осторожность
на рисунке красным обведены резисторы, жёлтым место под защиту
расположение резисторов
0
Спасибо большое за ответы.
Но все таки не понятно немного разводка UART с учетом наличия такой земли.
И еще бы хотел узнать какая у вас батарея, количество mA\h. Просто в данный момент расчитываю как приблизительно батарею надо иметь для безпрерывной работы модуля хотя бы на 1 день или 2.
Читал в даташите что у него потребление идет в среднем 77 mA (поиск GPS), но есть еще и пиковая нагрузка при разных GSM операциях.
0
сигналы основного UART подключаются к 39 и 31 выводу разъёма, а земля — на площадку справа от СИМ карты
сигналы DEBUG UART подключаются к 36 и 38 выводам разъёма, а земля — на площадку справа от СИМ карты

батарея у меня — ориентировочно 1100 мАч, но режим работы почти всегда с выключенным GPS (включаем по запросу)
с постоянно включенным GPS и ночь не продержался, с выключенным GPS дня четыре вроде, сильно не исследовал, т.к. ориентируюсь на внешнее питание, аккумулятор для подстраховки
0
где можно купить официально даный модуль в рашке?
0
ftp://ftp.macrogroup.ru не отвечает — может он куда нибудь п5ереехал со всеми тулзами для скачивания?
0
Да, он похоже давно не работает.
В конце статьи ссылка на архив, вроде там всё что надо есть.

ещё вот здесь что-то есть:
microchip.ua/simcom/?link=/SIM900x/SIM900/EAT
0
точно! спасибо!
0
Кто нибудь пробовал делать такой финт — модуль симкомовский подключен к PC, а UART к микроконтроллеру на плате с модулем и делать обмен с PC на микроконтроллер через симкомовский модуль?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.