Support OpenThread in New Platform

478 views
Skip to first unread message

Qiang Gu

unread,
Jun 20, 2016, 11:00:49 PM6/20/16
to openthread-users
Hi,

I have followed the OpenThread and am very happy to see its great improvement. 

I am interested in porting OpenThread to embedded system. And I found an important update on June 16.
The CC2538 has been supported in OpenThread with some modification in ./src.

Some issues should be investigated before porting OpenThread.
-          Is the hardware abstraction API in openthread/example/cc2538/platform determined? In the future, is there no big modification in abstraction?
-          In openthread\src\core\mac, there is an implementation of 802.15.4 MAC. For supporting 802.15.4 hardware, part of the source code in openthread\src\core\mac is redundancy. Is it possible/ready to support other embedded hardware (SoCs or radio modules) at present?
-          The implementation of CC2538 is a good reference. We would like to support Microchip MRF24J40MA (802.15.4 radio) http://www.microchip.com/wwwproducts/en/en027752 . Could we support it according to CC2538 implementation?

Thank you.

Regards,
Qiang Gu

Jonathan Hui

unread,
Jun 20, 2016, 11:21:38 PM6/20/16
to Qiang Gu, openthread-users
Hi Qiang,

On Mon, Jun 20, 2016 at 8:00 PM, Qiang Gu <johnny...@gmail.com> wrote:

I have followed the OpenThread and am very happy to see its great improvement. 

Thanks!

I am interested in porting OpenThread to embedded system. And I found an important update on June 16.
The CC2538 has been supported in OpenThread with some modification in ./src.

Yes, this is our first example for real IEEE 802.15.4 hardware.

Some issues should be investigated before porting OpenThread.
-          Is the hardware abstraction API in openthread/example/cc2538/platform determined? In the future, is there no big modification in abstraction?

Having a stable platform abstraction is certainly a long-term goal.  However, we are still early in the project and we will certainly learn over time.  I expect the platform abstraction to adapt over time as we gain experience with other platforms.
 
-          In openthread\src\core\mac, there is an implementation of 802.15.4 MAC. For supporting 802.15.4 hardware, part of the source code in openthread\src\core\mac is redundancy. Is it possible/ready to support other embedded hardware (SoCs or radio modules) at present?

There have already been a handful of discussions on this list about supporting a standardized MAC interface to utilize other MAC implementations.  We started with a lower layer interface because that is the least common denominator and what most IEEE 802.15.4 chips support natively.  Note that the MRF24J40 also seems to provide a lower-layer MAC interface.
 
-          The implementation of CC2538 is a good reference. We would like to support Microchip MRF24J40MA (802.15.4 radio) http://www.microchip.com/wwwproducts/en/en027752 . Could we support it according to CC2538 implementation?

A brief review of the MRF24J40 shows that it provides similar capabilities to most other IEEE 802.15.4 transceivers.  In particular, PHY and lower-layer MAC features (e.g. automatic acknowledgement generation, FCS check, etc.).  I think the CC2538 example will be good to follow for your port.

--
Jonathan Hui

Qiang Gu

unread,
Jun 21, 2016, 12:06:38 AM6/21/16
to openthread-users, johnny...@gmail.com
Hi Jonathan,

Thanks for your kindly reply. 

We are working for porting OpenThread in FreeRTOS with MRF24J40. 
I will follow OpenThread and send the progress to OpenThread Google Groups. :)

Regards,
Qiang Gu


在 2016年6月21日星期二 UTC+8上午11:21:38,Jonathan Hui写道:

Jonathan Beri

unread,
Jun 24, 2016, 11:40:50 AM6/24/16
to openthread-users, johnny...@gmail.com
Awesome news Qiang! Which eval board are you developing on? Something from Microchip, another company or something you've created?

Sam Bobrowicz

unread,
Jun 24, 2016, 7:36:20 PM6/24/16
to openthre...@googlegroups.com, johnny...@gmail.com
Hi Qiang,

This weekend I was planning on taking a crack at adding support for a product we (Digilent) make that is essentially a low-cost breakout for the MRF24J40... Do you have any code worked out yet for the radio.c interface? FYI, the product is the PmodRF2. The full platform I am attempting to support will be the ZYBO (a Xilinx Zynq platform) + the PmodRF2, but this work will translate to basically any Xilinx FPGA/Zynq platform + PmodRF2. My github account is sbobrowicz, I'll fork the openthread repo and you can track progress there.

--SamB

Qiang Gu

unread,
Jun 26, 2016, 9:47:57 PM6/26/16
to openthread-users, johnny...@gmail.com
Hi Jonathan,

The eval board is EMSK (DesignWare® ARC® EM Starter Kit) from Synopsys. https://www.synopsys.com/dw/ipdir.php?ds=arc_em_starter_kit 
And we try to port OpenThread to embARC, https://www.embarc.org/
The embARC Open Software Platform consists of software and documentation to accelerate the development of embedded systems based on ARC processors.

Thanks,
Qiang


在 2016年6月24日星期五 UTC+8下午11:40:50,Jonathan Beri写道:

Qiang Gu

unread,
Jun 26, 2016, 10:34:16 PM6/26/16
to openthread-users, johnny...@gmail.com
Hi SamB,

Thank you. 
Yes, PMRF2 is based on MRF24J40 with Pmod interface.
EMSK (DesignWare® ARC® EM Starter Kit) is used here as hardware platform. embARC is used as software platform. 
So I need to develop MRF24J40 driver based on embARC hardware abstraction for the radio.c interface. I will follow your progress. If anything new I will send it in the openthread-users.

In your project, is the PmodRF2 connected to Zynq PL or PS? And is it bare-metal or OS-based?

Regards,
Qiang


在 2016年6月25日星期六 UTC+8上午7:36:20,Sam Bobrowicz写道:

Qiang Gu

unread,
Jun 27, 2016, 2:15:48 AM6/27/16
to openthread-users, johnny...@gmail.com
Hi SamB,

FYI. Our hardware platform is EMSK.

Thanks.

Regards,
Qiang




在 2016年6月27日星期一 UTC+8上午10:34:16,Qiang Gu写道:

swapnil shinde

unread,
Aug 6, 2016, 2:08:36 AM8/6/16
to openthread-users
Hi Qiang Gu!!!
i am also currently working on openthread, porting to cc2650(802.15.4 support chip).
i am not able to understand flow of openthread for given example cc2538.
please reply... from where and how to start.
explain flow of code. ex: where is main program which invocked first?

thanks...

Qiang Gu

unread,
Aug 8, 2016, 4:36:46 AM8/8/16
to openthread-users
Hi Swap,

I try to use Synopsys EMSK + PmodRF2 as hardware. There is a hardware abstraction in OpenThread. The definition is in openthread/include/platform. And Posix and cc2538 implementations are in openthread/examples/platforms. So different platforms can be used in OpenThread project. You can follow the cc2538 style to support other platform. Then add makefile in openthread/examples folder, as Makefile-cc2538 and Makefile-posix.

The main program is in openthread/example/apps. Please see README.md for more details.

Thanks,
Qiang


在 2016年8月6日星期六 UTC+8下午2:08:36,swap写道:
Reply all
Reply to author
Forward
0 new messages