|
 15 March 2014 @ 19:39 allegrem in Logbook I can’t program my board today…
Hello World!
It’s been a long time you didn’t hear some news from me, so I have a lot to tell you today! What’s happened since Wednesday? I finally finished my lab, I blew a fuse (not literally) during the challenge and I recovered the Force today with some BLE. Now, details!
I spent my whole Wednesday and Thursday trying to finish the lab. On Wednesday I finished to make the serial over USB driver work. Actually I had chosen the wrong example, that’s why I was not working the day before. Then I activated the debug options of ChibiOS and realized that my buzzer was not buzzing any more. A few fixes later, I began the last but not the least part of the lab: get a web page using HTTP (and therefore TCP/IP). It was hard and tough, but on Thursday 8:22PM, I was able to download the home page of the Télécom ParisTech website (this tremendous achievement was immediately added to my resume). It was now time to leave for the party rest before the Friday challenge.
So I woke up in the mornin’ feelin’ like P-Diddy, and I discovered the first part of the challenge: retrieve the rest of the instructions on a web page. The good news was that I already had a working code able to do that. The bad news was that I decided (and don’t ask me why, I honestly have no idea) to plug the brand new JLink probe we just received on my board. Disaster ensues… It took me one hour to get my old good JTAG probe working. Then I could retrieve the instructions explaining that our next mission (and we had to accept it) would be to download a sound using HTTP (easy) and play it on earphones (sounds easy, it was not). I started to investigate the ChibiOS and the board documentations, and a few hours later, I had understood that: we needed to use I2S, ChibiOS already had a I2S driver, this driver was not working on our board, we had to write our own driver. So I did. In the end, my configuration was ok, but I stupidly had forgotten to edit my Makefile so that it used my new board configuration (I hated myself so much at that time !!). I also spent around one hour to fix an incomprehensible bug (I don’t want to talk about it, it still affects me a lot). Then I was able to play a 440Hz sine wave (it was 6:04PM). The next step was to play the downloaded sound (or more precisely: to stream it). Unfortunately I had to leave for a web meetup I was co-organizing. I came back after it but I was not brave enough to dive again in my code, so I helped Adele to finish the challenge.
Today, I finally had time to sleep, so I did! Then I fixed a few mistakes in the Git presentation (you know, the one with Jedi inside!). I don’t know yet if I can publish it here, but if it’s possible, I’ll do it! Here it is: Git for Jedi
I also continued to work on the nRF51822 (my new best friend since I officially broke up with my STM32). My job was to run an example program on the board, which would advertise and do other fun things. The program was already written, but the tough part was to actually run it on the board. About this, I strongly recommend this GitHub which was extremely helpful. Tomorrow, I will try to write my own example program. And I will conclude with an amazing video I made proving the unlimited power of the dark side of the BLE:
May the force be with you!
 28 February 2014 @ 22:50 allegrem in Logbook 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.
 28 February 2014 @ 10:16 allegrem in Logbook 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:
- 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.
- 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).
- 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!
 25 February 2014 @ 21:31 allegrem in Logbook 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):
- The staging area
- Branches and how to change the past (Git workflow, merge, rebase, amend, reset, revert, …)
- 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!
|
|
Recent comments