On the board again…

Just can’t wait to get on the board again.

Hello World!

The last two days were dedicated to boards. Yesterday Adele and I played with our nRF51822 dev kit. We managed to flash a little example program using radio to communicate (Benjamin already showed you what it looks like). We also published a little tutorial to help our classmates to make everything work. Then we tried to flash another program using real BLE this time. However it was a little more difficult: we had to write the Makefile because the demo was not shipped with it. In the end, I successfully flashed the software, but it was still not working. Sam explained us today that we had to flash the soft device before. I hope I will have time to investigate more on it very soon!

Today, I kept on my STM32 lab. I tried to make the potentiometer work, but the force was somehow not strong with me today. I will try again tomorrow. In the meanwhile, I managed to make my buzzer work. But as I respect the ears of my classmates, I didn’t try to compose a full 8-bit symphony (yes, this sound really makes me nervous!). Then I started to work on Serial over USB, but it is not yet working. I keep hope alive!!

In addition to that, I have a lot of things to do, especially for associations and internship search. I hope I will manage to finish everything by the end of the week! And also, I’m working on a side-project, but it deals with Web so you might not be very interested in it…

May the force be with you!

Gala, components and BLE

Hello World!

I had a busy schedule this week end, and it didn’t let me a lot of time to work. Fortunately, the Gala was amazing!!

Today we finished the research for the components we will use in our project. We still have a few remaining questions, but we hope that everything will be clear tomorrow. Personally, I looked for a led (and it was really hard to pick one among thousands of leds!!) and a resistor to protect it. I also investigated on how to plug the solar panel on the board. I hesitate between choosing a coaxial connector (because the solar panel we will order uses it) or leaving two pins to connect any kind of solar panel.

Then we tried to think about the BLE architecture we will use. However it was harder than expected, and I think we need to hack a few things in order to really understand how it works. This will be our main task next week, with the design of the PCB.

About the STM32 labs, I didn’t have time to work on the potentiometer, but I will start tomorrow evening (I begin to worry a little bit about this because I have a lot of things planned next week in addition to ROSE and I must have finished the lab by Thursday).

May the force be with you!

Flash a-ah // Savior of the Universe

Flash a-ah // He’ll save everyone one of us

Hello World!

Our #1 objective for this week is to find the components we will use in our project. Basically, we have to find: a micro controller, a BLE chip (possibly integrated in the MCU), some memory and battery. For the micro controller, we already have a favourite (nRF51822), however we need to look for outsiders. I listed some possible competitors yesterday, and now I have to compare them. About the battery, Adele made some good research, I’m sure she will tell you everything soon.

Concerning memory, we discussed a lot about this subject with the teachers on Wednesday. They had advised us to use a FRAM, which is designed to consume a little energy. However, when I looked for FRAM modules, I found out that this technology was extremely expensive (about $15 for 2Mb). So the teachers told us to investigate the Flash technology (now you have understood the title of this post). And a Flash module we found was not so energy intensive, and above all extremely cheap (about $3 for 64Mb). However it was not available anymore, so I looked for other products of the same family and I found the same chip with a 32Mb storage capacity (AT45DB321E). Eventually, we have a champion!

And last but not the least, I kept on my STM32 lab and now all the semaphores, interrupts and events work all together! Two lessons to be learned: conditional variables must be used with mutexes (and never alone! It doesn’t work! One can spend hours on that problem figuring out why the hell nothing works! I know this! It happened to me!) and semaphores are not that bad. In the end, I can switch on and off my led with a button (yes, I know, three days to light a led…). Next item on my to-do list: change its intensity with a potentiometer.

May the force be with you!

Hello Droid!

Hello World!

logo_equipeIt’s a great pleasure to introduce you our brand new mascot: R2-D2! Why R2-D2? Because:

  • It is a droid, and our API will be available on Android platform;
  • In R2-D2, there are a ‘R’ like Roses and a ‘D’ like Drops;
  • In Episode IV, R2-D2 delivers to Princess Leia a message containing the blueprints of the Death Star.

Also, R2-D2 is the coolest robot of the universe and beyond.

I will try to finish the project logo before the end of the week. I also have to fix a few mistakes in the Git slides.

In the meanwhile, I spent yesterday on my STM32 lab. Now the leds are fading (PWM magic!). Next step will involve conditional variables and events (I hope to finish it before tonight). We also planned the work for this week. We are all assigned to do some research on the components we will use. And we also have to finish the BLE architecture.

May the force be with you!

It’s been a hard day’s night

And I’ve been working like a dog…

Hello World!

Yesterday was extremely busy, but we made decisive progress for our project. We defined all the PSSC (Project Specific Success Criteria) of our project, with a due date and a member in charge of the completion of the task. We also prepared the slides for this morning and rehearsed the presentation. You can check out the slides here: Drops N’ Roses – Soutenance planification. By the way, we made an extensive use of The Noun Project, an amazing collection of tons of vector graphics (under Creative Commons license).

Personally, I designed some logos for our project and a vote has been launched on the ROSE mailing list in order to pick the best one. I hope that our final logo will be disclosed in a few days.

Today, we had the presentations. The teachers approved our schedule, so we have to start working now! Before that, I carry on the STM32 lab. Now I have blinking leds, and next step will be to choose their intensity using PWM. It will require some documentation about ChibiOS!

May the force be with you!

Drops on Rails

Hello World!

Today, our group gathered in A406 to prepare the Monday presentation. We already had the overview of our project, the use cases, an idea of the architecture and some technical constraints. The remaining work was to plan the project with PSSC (Project Specific Success Criteria: a testable criteria, with a due date and a member in charge of the task), and to think about the usage of the BLE in our project.

However, it turned out to be more difficult than expected, mostly because the more we thought about our project, the more questions we raised. For example, the BLE is already extremely abstract, and if we want our system to be abstract too, we can’t use the power of BLE. So we will certainly have to build an additional abstraction layer above the BLE stack, so that very different apps can use drops.

Personally, I read a lot of documentation about BLE. It helped me a lot to figure out how the whole stack works (including the subtle but crucial difference between services and profiles). Then, I discussed a lot with Lauriane who has already studied BLE for her presentation yesterday, and we started to think about the additional abstraction layer. We have defined a Message service for accessing the messages (which is basically like a memory bus). We will have to think about the Box service and the drop administration tomorrow. However our main concern is about power consumption: adding an additional layer means that we will need more communication to read or write messages. So we need to keep that in mind!

We also thought about the components we will need. Our system will certainly be very simple, because it is basically a wireless mailbox. So it will require a micro controller, a BLE chip (possibly integrated in the micro controller), a mass storage and the power supply. We also thought about an external interface which would allow the user to plug a sensor (e.g. a thermometer) which would be accessible in a specific box. However we need to think a little more about it, because it would certainly require a lot of work.

Last thing I did today was some consulting for the RoseOnRails group. I discussed a little with Noémie and she explained me that her group wanted to do a little game with the trains in order to make the project more attractive. So we began to brainstorm about this and we came to some great ideas, even if none of them involves Jedi. I let Noemie explain all the details, but just note that it may remind you the good old days of Pacman, Snake, Mario Kart, …

May the force be with you!

May the Git be with you

Hello World!

Today was an intense day! This morning, we heard some great presentations, and some of them have already helped me (ARM debugging). And this afternoon, Benjamin and I gave a presentation which turned out to be a 80 minutes course about Git. Definitely, the Force was strong with us today! I really enjoyed to give this presentation, not only because it involved a lot of Jedi and other Star Wars references, but mainly because I felt my fellow classmates extremely interested in the topic (and they were right, Git will be our greatest friend for the next two months!!). So thanks everyone for all your questions, it was a real pleasure to help you!

After that, I started the lab on the STM32 board. The first task was to configure the JTAG pins on the ARM processor. It may sound easy, but it was actually a real headache. Fortunately, by working all together and with a few hints from Sam, I managed to get a working configuration. Next time, I will light up a LED!

This week end, we have a lot to do for our project. Fortunately, the use cases are quite clear in our minds, as well as the global architecture. So we need to define our precise objectives, make the schedule, and prepare the slides for Monday presentation. No time to rest!

May the force be with you!

P.S. : the slides from the Git presentation are coming! Just need to fix a few things and we publish them.

Authentication, nRF51822 and more Git

Hello World!

I’ve done some work on Wednesday, but it has mostly already been told by my fellow coworkers (tests of BLE range, boxes architecture, Git presentation).

Yesterday, Benjamin and I finished our presentation about Git. Actually it is a bit more than a presentation : the slides are intended to be used as a reference by the other students during the project. That’s why there are a lot of slides (but don’t worry, we won’t show all of them!). In the end, the biggest challenge was to pick the topics we are going to explain in details, so that everything fits in less than 20 minutes.

Another thing I’ve been working on is authentication. This is a critical part of our project because we need to have a special user (called owner) able to change the configuration of the drop. However we also would like to prevent other users from impersonating the owner. In order to do so, Lauriane et I defined a simple authenticating system:

  1. The very first time the drop is switched on, it looks for another Bluetooth device (running the Drop Admin app). The first device found will be the owner, and the app and the drop will exchange a shared secret key which will be used to authenticate the owner later.
  2. If the owner wants to give its rights to another device, he tells so to the drop and the next device connected, say within one minute, will be the new owner (the former shared key is revoked and a new one is generated). We also need a way to recover a key (for example, if the authenticated device is lost and the owner wants to register the key in his new phone).
  3. We also wanted to grant special rights to some users (called administrators) in some boxes (configured by the owner). In this case, the owner must tell the drop that the next device connected will be added as administrator in box n. Then the administrator device connects to the drop and they exchange a shared secret key. However this method requires to owner and the administrator to be together at the same time, so perhaps we will have to find a better solution (even if we don’t really want owners to use administrators, this is just a feature which can be used in  very specific cases).

Last thing I’ve done: I began to investigate the nRF51822 (which was quoted in the course about RT OS). This SoC embeds a BLE chip and provides a full software stack to use it. A development kit has been ordered and should arrive soon. Then I’ll be able to start reading the documentation and hack a few things to see if it will fits to our needs. Next week, I will also begin to look for other SoC we could use.

May the force be with you!

Drops, Git and Jedi

Hello world!

In addition to the group work on our project (see Day 2 : Drops use cases and Bluetooth Low Energy), I started to work on the Friday presentation with Benjamin.

We were asked to present how branches work in Git. I decided yesterday to ask all the other students which topics they wanted us to investigate, with an initial list of propositions. This morning, Benjamin and I also discussed with Alexis and Samuel about the most important issues to address (because there is a lot to say about Git, and we have only 20 minutes including question time). In the end, we agreed on the following plan (titles are not final, in order to preserve some suspense):

  1. The staging area
  2. Branches and how to change the past (Git workflow, merge, rebase, amend, reset, revert, …)
  3. Git magic tricks (bisect, blame, stash, cherry-pick, …)

First, I found a few good readings about Git:

I also started to write the slides (part 1 is ready). Tomorrow, according to my Asana, I will have to finish my slides, work on the guided tour use case, and many other fun things!!


Spoiler alert: There will be Jedi and light sabers during the presentation on Friday. Meanwhile, may the force be with you!