Porting KAA into SIMCOM Sim900/800series modems suing the embedded AT feature

1,186 views
Skip to first unread message

Dost Muhammad Shah

unread,
Oct 8, 2015, 12:45:10 PM10/8/15
to Kaa project
Kaa has been brought to ESP and TI's wireless controllers. I would be great if we can bring it to GSM modems. 

I would be very much interested in porting KAA to SIMCOM modules.

I have worked alot on SIMCOM modules. Simcom has feature called EmbeddedAT (EAT). Sim900 for example uses ARM9  processor. They have an API to run customer code within the module without requiring an external processor providng API for SOCKETS , HTTP ,FTP , GPIO , AUDIO , Falsh memory,Timer ,UART etc.

All network activities can be handled by the API. It would be nice if we can integrate KAA SDK in it.

I need to have some get started and basics of how can I port KAA client for this purpose. 
sim900_embedded_at_application_note_v1.01.pdf

Denis Kimcherenko

unread,
Oct 9, 2015, 4:20:14 AM10/9/15
to Kaa project
Hi,

Kaa C SDK uses CMake for its build. To the purpose of porting SDK there are two options: CMAKE_TOOLCHAIN_FILE and KAA_PLATFORM:
  • CMAKE_TOOLCHAIN_FILE - CMake uses a toolchain of utilities to compile, link libraries and create archives, and other tasks to drive the build.. Now Kaa C SDK supports several hardware platforms. You may find CMake toolchain files for these platforms there.
  • KAA_PLATFORM - This file may contain platform-dependent source files, third-party library dependencies and specific compilation/linking flags. See there for details.
According to the attached application note, the SIM900 platform provides network API. So to port Kaa C SDK, you have to implement a network layer, speaking in Kaa terminology, a transport channel.

You may start from observing the default implementation of a transport channel - kaa_tcp_channel.h and kaa_tcp_channel.c.
The second platform-dependent part of Kaa C SDK is an implementation of kaa_client.h. Implementations for corresponding platforms you may find there (Linux) and there (ESP8266).

I recommend to use some IDE to walk through all platform dependencies in the source code of Kaa C SDK.

Best regards,
Denis

Dost Muhammad Shah

unread,
Oct 9, 2015, 6:19:58 AM10/9/15
to Kaa project
Thanks Denis

Thanks a lot for the guidance.

I would start working on it.

sufi al hussaini hassani kamili raheemi

unread,
Oct 10, 2015, 10:20:05 AM10/10/15
to Kaa project
Hi, 

I'm also interested in porting Kaa to SIMCOM GSM modules.

SIMCOM modules use Phillips' RTK-E based RTOS. They officially support two compilers (RVCT and a rather old version of GCC).

After some reading, I found this isn't going to be as strightforward as I had initially hoped. This is mainly because of the build system that is used by the Embedded AT framework. Here's the official documentation. I'm mentioning a few relevant points here.

1. All header files must be created in a specific directory ('flinc' dir) or they cannot be compiled successfully. Furthermore, nested directories are also not allowed.
2. All source files must be created in a specific directory ('code' dir) or they cannot be compiled successfully. Furthermore, nested directories are also not allowed.
3. The offered build system doesn't support specifying Linker flags.

Using this build system as is, would (IMHO) require separating all source and header files (kaa, openSSL, etc.) into one of two folders, which isn't acceptable.

I'd appreciate if someone from kaa could look into this, and suggest a better way of doing this.

Thanks and regards,
Shoaib Ahmed.

Andrew Kokhanovskyi

unread,
Oct 15, 2015, 6:25:33 AM10/15/15
to Kaa project
Hey guys, we're still looking into this. Not the most user-friendly platform...

AK

Denis Kimcherenko

unread,
Oct 27, 2015, 9:12:19 AM10/27/15
to Kaa project
Hi guys,

I have succeeded in building Kaa C SDK by following the SIM900 Eclipse instruction. The host platform is Windows 7 (64 bit).

Some links are obsolete in the instruction so I will describe an installation process from scratch.

Build a SIM900 sample project:
  1. Install SimDevIDE.
  2. Install emb4fun Tools (It's an upgraded version of YAGARTO Tools).
  3. Install the YAGARTO toolchain.
  4. Install Java.
  5. Install Eclipse CDT.
  6. Download the org.eclipse.cdt.cross.arm.gnu_0.5.4.201202210114 plugin and install it to Eclipse CDT.
  7. Import (chapter 2.6) the SampleWithGCCLibs project to Eclipse CDT.
  8. Compile this project (chapter 2.7).
Add Kaa C SDK sources to the SIM900 sample project:
  1. Clone Kaa repository.
  2. Copy Kaa C SDK sources (i.e. the kaa directory) to the code directory of the SampleWithGCCLibs project.
  3. Add an includes path to the project. This path should point to the code directory of the project. In that way Eclipse can see Kaa headers that are located in the copied kaa directory.
  4. Build the project. 
You will see a lot of compilation errors such as "multiple definitions of ...". This is because every code/kaa/platform-impl sub-directory has a platform implementation of the same Kaa C SDK routine.

In the purpose of a test, I have removed all code/kaa/platform-impl sub-directories except common and created a new one - the simcom sub-directory. There I put stubs of all platform routines.
I have attached an archive of a project.

Best regards,
Denis

SampleWithGccLibs.zip

sufi al hussaini hassani kamili raheemi

unread,
Oct 27, 2015, 10:39:12 AM10/27/15
to Kaa project
Thanks a lot @Denis! :) 
I'm going to try this.

Regards,
Shoaib Ahmed.

On Thursday, October 8, 2015 at 8:45:10 PM UTC+4, Dost Muhammad Shah wrote:

יואב שטינר

unread,
Oct 28, 2015, 3:31:51 AM10/28/15
to Kaa project

thank you Denis, i will try it... one question, i try to use the virtalBox for the SandBox and i get this: system information disabled due to load higher then 2.0. what it's mean? what i need to change?
 
i'm new in this so i dont know a lot...
best regard
yoav
 

Dost Muhammad Shah

unread,
Oct 28, 2015, 3:32:35 AM10/28/15
to Kaa project
Hi Denis, 

First of all thanks a lot for your efforts..  I was following your steps, I am having an issue with compilation, When I compile I get One error 

Building target: SampleWithGccLibs.elf
Invoking: ARM Yagarto Windows GCC C Linker
arm-none-eabi-ld -T"G:\WSpace\EmbatSIM\gsmos\libs\GCC\sim900_no_x.ld" -nostartfiles -Wl,-Map,SampleWithGccLibs.map -mcpu=arm9e -mthumb-interwork -o "SampleWithGccLibs.elf"  ./code/fl_crt0.o ./code/fl_customer.o ./code/fl_main.o ./code/syscalls.o   
c:\yagarto-20121222\bin\arm-none-eabi-ld.exe: unrecognised emulation mode: thumb-interwork
Supported emulations: armelf
make: *** [SampleWithGccLibs.elf] Error 1

Dost Muhammad Shah

unread,
Oct 28, 2015, 3:58:22 AM10/28/15
to Kaa project

Hi again, 
The previous problem got solved, Now when I compile I get Errors mostly for multiple declarations.

I have not yet added Kaa source codes!





Denis Kimcherenko

unread,
Oct 28, 2015, 4:04:09 AM10/28/15
to Kaa project
Hi,

It seems Eclipse project properties are configured in a wrong way.
The right value of a command field is arm-none-eabi-gcc for "ARM Yagarto Windows GCC C Linker" property. I have attached a screenshot.

ARM Yagarto Windows GCC Assember - arm-none-eabi-gcc
ARM Yagarto Windows GCC C Compiler - arm-none-eabi-gcc
ARM Yagarto Windows GCC C Linker - arm-none-eabi-gcc
ARM Yagarto Windows GNU Create Flash Image - arm-none-eabi-objcopy
ARM Yagarto Windows GNU Create Listing - arm-none-eabi-objdump
ARM Yagarto Windows GNU Print Size - arm-none-eabi-size





Eclipse project properties.jpg
Message has been deleted

Dost Muhammad Shah

unread,
Oct 28, 2015, 4:08:03 AM10/28/15
to Kaa project
Thanks I solved that but now I am getting other errors. I havent yet added any kaa source code.

Denis Kimcherenko

unread,
Oct 28, 2015, 4:26:02 AM10/28/15
to Kaa project
To force Eclipse to find these symbols you should define COMP_GCC and USE_C_STANDARD_LIBS constants in a project properties. Did you do this step?
See an attachment.
Project constants.png

Dost Muhammad Shah

unread,
Oct 28, 2015, 4:32:46 AM10/28/15
to Kaa project
Yes both are there. SIMCOM_PLATFORM was missing but adding that even makes no diffrence

Denis Kimcherenko

unread,
Oct 28, 2015, 4:34:44 AM10/28/15
to Kaa project
Hi Yoav,

Where is this message, on your host machine or on a sandbox instance (in a terminal window of Kaa Sandbox)?
Did Kaa Sandbox start, can you launch a Kaa Sandbox page in a browser?


Best regards,
Denis

P.S: I suggest to create new topic in Kaa Google groups.

יואב שטינר

unread,
Oct 28, 2015, 4:38:41 AM10/28/15
to Kaa project
from where you download the simdevIDE? i cant find it...

יואב שטינר

unread,
Oct 28, 2015, 4:48:16 AM10/28/15
to Kaa project
 it's heppend when i start the virtualBox and i enter the username (kaa) and passward (kaa)... i cant enter to th sandBox.and i will open a new topic... thank you!
yoav


בתאריך יום רביעי, 28 באוקטובר 2015 בשעה 10:34:44 UTC+2, מאת Denis Kimcherenko:
Message has been deleted

Denis Kimcherenko

unread,
Oct 28, 2015, 4:56:38 AM10/28/15
to Kaa project
Can you share with me your Eclipse project?

Try to clean and re-build project)
Message has been deleted

Dost Muhammad Shah

unread,
Oct 28, 2015, 4:58:16 AM10/28/15
to Kaa project

Denis Kimcherenko

unread,
Oct 28, 2015, 6:16:58 AM10/28/15
to Kaa project
By the way, the convenient way of building applications based on Kaa C SDK is to use Cmake's build scripts. Such approach allows switching between platform implementations without any copying/removing.
A Kaa sample-apps repository includes examples for Linux, ESP8266 and TI CC3200 platforms.

Copying sources of Kaa C SDK is not a good idea for developing real applications. I used this approach only to check a proof of concept.

I recommend to explore a Cmake way. If there will be some questions, please, feel free to ask on the forum.

Best regards,
Denis

вівторок, 27 жовтня 2015 р. 15:12:19 UTC+2 користувач Denis Kimcherenko написав:
Message has been deleted

sufi al hussaini hassani kamili raheemi

unread,
Oct 28, 2015, 8:41:14 AM10/28/15
to Kaa project
I was able to build your project on eclipse @Denis. 
Now I'm trying to add the SDK which I have generated from my sandbox server, but I believe you have made changes to the kaa sources (in the said project's `kaa` directory).

I'd be grateful if you could address these questions of mine:

1. Does the SIMCOM kaa implementation provide complete functionality (identical to a normal c-client)?
2. Will it be sufficient to replace files in the `gen` directory, if I need use this with my sandbox server?
3. Could you please elaborate on the files you have made changes to?


Thanks and regards,
Shoaib Ahmed.


On Thursday, October 8, 2015 at 8:45:10 PM UTC+4, Dost Muhammad Shah wrote:

Denis Kimcherenko

unread,
Oct 28, 2015, 9:18:15 AM10/28/15
to Kaa project
Hi Sufl,

Kaa C SDK doesn't support the SIMCOM platform. 

In my example I used dummy functions (i.e. without any platform implementation).
If you are going to use Kaa C SDK on this platform, you should implement all platform routines by yourself.

See my previous comment how to add new platform to Kaa C SDK.

Best regards,
Denis

середа, 28 жовтня 2015 р. 14:41:14 UTC+2 користувач sufi al hussaini hassani kamili raheemi написав:

Arthur Vard

unread,
Nov 16, 2016, 1:29:24 PM11/16/16
to Kaa project
Hi all,
I could not manage to download the file "1137B04SIM900M64_ST_DTMF_JD_EAT.rar" from ftp.
Will you please share the working link or "rar", thank you in advance.

I think all of you already have a lot experiance with EAT on sim900, i am curious if  is it worth to spend time figuring out the EAT of sim900 for gps navigation project or it is better to use external MCU? thanks

Arthur Vard

unread,
Nov 16, 2016, 11:56:56 PM11/16/16
to Kaa project
I found the bits here http://dostmuhammad.com/blog/sim900-firmware-update-tutorials-appnotes/

I install on win10 x64 with gcc (https://launchpad.net/gcc-arm-embedded/+download) it seems works, i success to create project and build it.

thanks

Michael Munson

unread,
Dec 17, 2016, 4:41:07 PM12/17/16
to Kaa project
I've always used an external MCU myself. I've always found it a headache to mess with programming devices with IMEI numbers and such.

Samson Ojetade

unread,
Aug 22, 2017, 4:40:15 AM8/22/17
to Kaa project
Hello guys.
I am looking to download SIMDevIDE, but couldnt find this online.
Can someone provide a link please?

Samson Ojetade

unread,
Aug 25, 2017, 2:54:15 AM8/25/17
to Kaa project
Needs SimdevIDE please. I know this may be a old thread, but this is the only hope I seem to have seen of getting the simdevide.
All the links here are either password protected(and the provided password doesn't work) or needs a subscription to download it. Somebody please help out

Dost Muhammad Shah

unread,
Aug 27, 2017, 8:46:47 AM8/27/17
to Samson Ojetade, Kaa project
@Samson (ojes...@gmail.com) I have activated your subscription.  You can now access all the files. 

Best Regards,


Samson Ojetade

unread,
Oct 7, 2017, 8:50:39 AM10/7/17
to Kaa project
Hi guys
I have my eat application now running on a sim808.
I started a new application for sim800, but I couldn't find an SDK for sim800 but rather I found sim800c, sim800h and sim800f.

I managed to compile with sim800h SDK and the application runs but due to gpio differences between these two modem I get some trace error on Cather with Gpio W error and Gpio R error.

Then I felt sim800f is to more extent pin compatible with sim800, so I compiled for its SDK, but then the application won't run.

Does someone have the ask for sim800.
I have downloaded the ones I have from
simcom.ee and microchip.ua/simcom

Message has been deleted
Message has been deleted
Message has been deleted

Pepe Manguare

unread,
Oct 30, 2017, 6:00:17 PM10/30/17
to Kaa project
I need the SIM900 EAT last version of firmware file, I think it is 1137B04SIM900M64_ST_DTMF_JD_EAT. 
The links here are not working, could someone help me please? I will be deeply grateful...

thanks,
Jose.

Dost Muhammad Shah

unread,
Oct 31, 2017, 2:57:00 AM10/31/17
to Pepe Manguare, Kaa project
@pepe that link is dead. Please check your email I have emailed you the required file!

--
You received this message because you are subscribed to a topic in the Google Groups "Kaa project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kaaproject/IdC8SrpAzF0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kaaproject+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/kaaproject.
To view this discussion on the web visit https://groups.google.com/d/msgid/kaaproject/5687a7f2-ea43-41d4-9f46-bee7c36d1986%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Tibor Szolnoki

unread,
Jan 31, 2022, 5:05:09 PM1/31/22
to Kaa project
Hi,

Can anybody share Me the SIM900 and SIM800 EAT Tools? (SIM900 more relavant I think.)
All download links from this topic are dead.

http://dostmuhammad.com/blog/sim900-firmware-update-tutorials-appnotes/
http://dostmuhammad.com/blog/sim800-series-firmware-update-appnotes/

I need these, for starting a DIY project, with SIM800 or SIM900A.
I would like to run simple embedded apps in these modules.

Thanks,
Tibor

Dost Muhammad Shah a következőt írta (2017. október 31., kedd, 7:57:00 UTC+1):
@pepe that link is dead. Please check your email I have emailed you the required file!
On Tue, Oct 31, 2017 at 2:00 AM, Pepe Manguare <pman...@gmail.com> wrote:
I need the SIM900 EAT last version of firmware file, I think it is 1137B04SIM900M64_ST_DTMF_JD_EAT. 
The links here are not working, could someone help me please? I will be deeply grateful...

thanks,
Jose.

--
You received this message because you are subscribed to a topic in the Google Groups "Kaa project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kaaproject/IdC8SrpAzF0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kaaproject+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages