GSoC 2015 Introduction - N1 BLE Project

HI RIOT Developers !

I’m Alexis, from Lyon, France, student in Telecom Engineering. I’m fond of IoT, embedded development, FOS Projects, and I’m currently doing a master thesis in Barcelona, wich focus on Thread (http://www.threadgroup.org/) protocols stack.

I will be really interested to take part of RIOT community as developer, starting working on BLE Project. Even if I’ve no experience with RIOT development (I just use it on MSP430) , I well know BLE at different level of the stack : I’ve worked on Nordic nrf1822 eval board, nrf8001 with Arduino, Android API, and Bluez driver on Unix system. Obviously, I’m familiar with C/C++ and embedded development, on different platforms such as Arduino, STM32L0, MSP430 or M2M Gateways (arm poky toolchain with Yocto builded distro).

As this is just an introduction and presentation post, I’ve not yet technical questions (but they will come :slight_smile: ) But if can someone introduce me the community, core developers, processes, to know you a bit more, that will be great ! Some questions: When are next virtual meeting, or call (18/03) ? the next Hack’n’ACK (26/03)? Who is the potential mentor for N1 BLE project (or the dev that best known RIOT network implementation) ? In my point of view, implementing complete BLE stack is a huge work for 4 month project. What do you think about that ? Which is the priority (central, peripheral roles) ? For you, what’s better for the community : unachieved work on bigger project, or reduced but well tested and documented keys functionalities ?

To conclude, I’ve participated (with success :-)) on GSoC2014 with OpenMRS (openmrs.org) on Atlas project. And I’m currently the lead dev and maintainer of OpenMRS Atlas server (atlas.openmrs.org), and OpenMRS Atlas Module (https://dev.openmrs.org/#/show/atlas/).

Cheers,

Alexis DUQUE

Hi Alexis!

Welcome to RIOT!

I'm Alexis, from Lyon, France, student in Telecom Engineering. I'm fond of IoT, embedded development, FOS Projects, and I'm currently doing a master thesis in Barcelona, wich focus on Thread ( http://www.threadgroup.org/) protocols stack.

May I ask you what exactly you're planning to do there? To the best of my knowledge the Thread specification will be only released to some members of the partners in June.

I will be really interested to take part of RIOT community as developer, starting working on BLE Project. Even if I've no experience with RIOT development (I just use it on MSP430) , I well know BLE at different level of the stack : I've worked on Nordic nrf1822 eval board, nrf8001 with Arduino, Android API, and Bluez driver on Unix system. Obviously, I'm familiar with C/C++ and embedded development, on different platforms such as Arduino, STM32L0, MSP430 or M2M Gateways (arm poky toolchain with Yocto builded distro).

Sounds like excellent prerequisites!

As this is just an introduction and presentation post, I've not yet technical questions (but they will come :slight_smile: ) But if can someone introduce me the community, core developers, processes, to know you a bit more, that will be great !

I think just reading through the Wiki [1] and the mailing list archives [2] will already help to get a rough understanding of how the community works. Particular [3] might be interesting to read.

Some questions: When are next virtual meeting, or call (18/03) ? the next Hack'n'ACK (26/03)?

Usually both, next call and Hack'n'ACK would happen next week (see also the calendar on the web page). For the call, we might provide an additional session this week for GSOC applications. We'll let you know ASAP. For the H&A: Martine, can you confirm that C-Base is reserved again?

Who is the potential mentor for N1 BLE project (or the dev that best known RIOT network implementation) ?

Probably Hauke and Martine know best of the new network stack and will most likely mentor this project.

In my point of view, implementing complete BLE stack is a huge work for 4 month project. What do you think about that ? Which is the priority (central, peripheral roles) ? For you, what's better for the community : unachieved work on bigger project, or reduced but well tested and documented keys functionalities ?

In general: a solid, well documented and easily extendible implementation is usually better.

Cheers, Oleg

[1] Home · RIOT-OS/RIOT Wiki · GitHub [2] http://lists.riot-os.org/pipermail/devel/ [3] Contributing to RIOT · RIOT-OS/RIOT Wiki · GitHub

Hi Alexis,

You don't necessarily need to implement everything from scratch. Maybe you can find parts of the BLE stack implemented under a compatible license somewhere.

Cheers, Ludwig

Hello Ludwig,

Lately, I've been putting a lot of time into the ESP8266 wifi modules, and learning how to get them to work.

How is the unified network driver system going?

Here's my conclusion on the ESP8266. If Riot has a unified network driver system, it might be worth looking at trying to integrate these modules with riot.

The trick with the ESP8266 modules seems to be to use the LUA firmware. And use some simple serial bridging code from Riot to then talk to the modules.

Let me know if this is an interesting option?

Regards

David

Hello David,

Hi Oleg,

Thanks for your quick reply :slight_smile:

May I ask you what exactly you’re planning to do there? To the best of my knowledge the Thread specification will be only released to some members of the partners in June.

Your absolutely right. What I’m doing is trying to implement communication over different nodes that use different protocols (BLE, Z-Wave, Zigbee) using IPV6 packets. That not exactly Thread but, we work with what is at hand ^^

I think just reading through the Wiki [1] and the mailing list archives [2] will already help to get a rough understanding of how the community works. Particular [3] might be interesting to read.

Sure, I’ve already read it. And I was asking for “informal” things, to better get in touch with Riot community :wink:

Usually both, next call and Hack’n’ACK would happen next week (see also the calendar on the web page). For the call, we might provide an additional session this week for GSOC applications. We’ll let you know ASAP. For the H&A: Martine, can you confirm that C-Base is reserved again?

Yeap, I’ll try to attend.

Probably Hauke and Martine know best of the new network stack and will most likely mentor this project.

Ok, so I will contact them directly. To start, Hauke, Martine, can you give me some pointers about the network stack ? Ideas and suggestions you already have had ? I read Martine’s RIOT network presentation about refactoring, what’s the current state of that ?

Cheers,

Alexis

Hi Martine,

We currently don't have an example for an embedded stack, but I guess the ESP8266 would be great to supply such an example. Since the ESP8266 supplies, as far as I understand it, everything up to tcp and udp, I would propose not to write a netdev driver for it, but writing a netapi threads directly, one for TCP and one for UDP, so our future new socket API speaks directly to it. If you need some inspiration how to implement a transport layer thread have a look at Hauke's prelimanary UDP implementation [1].

I will check that.

If there are no timing issues over speaking to the devices registers over e.g. SPI directly (if it is possible this way at all), we can try that, but in general I would prefer the solution that yields the better performance.

It's a UART/Serial interface so there's no SPI. There's memory limits on the LUA firmware so it's not suited to big amounts of data going through. The Lua interface currently operates at 9600.

Since it would show the flexibility of our new network stack this chip would be a great option! :slight_smile:

It would give TCP/UDP/MQTT pretty quickly.

Regards

David