RoseOnRails – a little bit of beauty

Hey hey!

Hot news… and beautiful photos.

ledstrip4 ledstrip7

Well, as you can see, this weekend we spent a lot of time on our ledstrips (once again!). On Friday, Alexis helped us a whole lot by properly soldering connectors to our beloved PCB so that we can easily test our ledstrips by simply connecting and disconnecting the power supply and/or the ledstrip itself. After having prepared the correct boards, we could then test our three SPIs and make sure all worked fine. However, the UART still doesn’t seem to properly work (as a reminder, we use it for the communication between the STM32F103RE and the nRF51822). We hacen’t much ahd the time to see where the problemt might come from yet, due to all we had to do with the ledstrtps.. but we’re going to have a look at it today for sure.

Yesterday, we spent the whole day testing our 22x LED-ledstrips, re-soldering the broken wires, and replacing the defectuous LEDs… It took much longer than we thought and was way more tiring. Once we were (almost..) sure that all was ok, we decided to paste them below the rails, which we did in the afternoon. It’s not fully finished yet. Hopefully, today we’llfinish this and then kindly ask Alexis to help us with the PCB of the loco which seems to have a defectuous capacitor, as well as the PCB of the turnouts that we need to place on the circuit a soon as possible. Then we can test everythig with the little BLE apps we have already prepared, hoping that all’ll work fine 🙂

See you very soon !

RoseOnRails – PCBs, tests, good news, bad news!

Hello world!

Yesterday, in the morning, we started to do the interfacing between the intelligence module and the commuication module I was in charge of. I changed some things in the architecture (described in the scheme in my prevoious post). I will do another diagram to summarize the new architecture, but I wait a bit so that we can make a little test with the intelligence module first.

Talking of the intelligence module… we discussed about it with Sam on Wednesday and he gave us some very precious advice. Instead of dealing with “position”s, we now rather deal with “section”s of the circuit that the player reserves when he wants to go from one point to another. See Noémie’s post for more info.

On Wednesday, we also soldered our first PCB loco. Noémie and I helped Alexis by giving him the right components. Then Noémie continued and I went back to code in a406 since one person seemed to be enough for this task. I therefore continued what Yann had started namely the adaptation of our programs to the new version of SDK we’re using (4.4.2 instead of 5.1.0). It was mainly a matter of files/folders/paths to change and deal with uncompiling programs for a while… When Noémie came back, we first placed the PCB on the loco and flashed our simple application to command the H-bridge in PWM on it. Well it didn’t work immediately since we had forgotten to comment the use_softdevice line!!

The day after, I re-tested the app without softdevice and the wheels turned (with PWM command) 🙂 Then I flashed another app doing BLE advertising. While discussing with Adèle, she told me they had the same “problem” and that it was necessary to generate an internal low frequencey (32kHz) clock (we already have an external 16MHz clock), which I simply added to the code and initialized the softdevice with. The loco then did advertise and by writing the value of the speed characteristic we could control the speed in PWM.

In the afternoon though, when we wanted to try and supply the loco with our 22V rails, some unfortunate measuring led to our nrf51822 being seriouly damaged 🙁 The other PCB also seems to have a “problem” with the balun. We of course have to test it.. which we’ll do today.

Yesterday night, Yann also soldered the remaining ledstrips and we re-tested them with the stm32f103 SPI.

See you


Day 51: DropFS and a big fear


Before the week-end and on Monday, I worked on DropFS, our flash memory management system for drop messages.

First, I had to establish precisely the byte (even bit!) mapping for each type of page in memory. I did it with packed structures and bitfields in order to simplify parsing. Consequently, I spent a few days on writing and rewriting lots of typedefs and function prototypes, because our model changed everyday and because I wanted data structures as easy to manipulate as possible. And when we discovered that our flash could be written bit per bit, I once again had to rethink all my structures! But now I think that the result is very near to its final state.

Then on Monday, I was able to begin programming DropFS’s actual functions. Right now the basis (creating, reading and deleting indexes, boxes and messages) is done, I only have to finish the write and edit functions for tonight. Actually, I didn’t have much time to work on DropFS today because we received our first drops and discovered that their radio wasn’t working! Hopefully, we solved all the problems we had (with a big help from Alexis and Sam!) and now each of us has a working drop in their pocket. To summarize, we were unlucky on several points: the nRF we received was a C0 revision instead of G0 (with a lot more bugs and differences for PCB design) and some components weren’t delivered in time, so we had to use similar but inadapted quartz, capacities and resistances for the first prototypes. With this special combination of changes, everything went wrong! We were in a configuration where our SoftDevice and SDK versions weren’t supported, the HFCLK was supported by the chip but not the radio… In the mean time, our git repository went half-crashed… For a few hours, we thought that maybe none of this year’s PCBs could work with BLE. So having them working tonight was quite a relief.

Solving these issues nevertheless took us the whole day and we weren’t able to do anything else. So I can’t wait for testing DropFS on an actual drop!

Plume – The receiver PCB is about to be printed !

Finally !

After placing, routing, finding errors, fixing them, finding other ones, fixing them as well, and other last minute changes…, we finally finished designing our PCB. With Guénolé, we spent the whole week working on it so we are happy to have finished it ! You can admire the layout in the pictures below 😉

PCB layout, top traces are in blue, bottom ones in red

PCB layout, top traces are in blue, bottom ones in red

Top layer components

Top layer components

Bottom layer components

Bottom layer components

Aside from that, I also worked on the software architecture to update it and make it work with the new hardware architecture we chose.

After talking with the teachers, we have decided to eliminate the various symmetry problems we had by studying the phase of the signals we sense. By doing this, we can measure the three magnetic fields exactly instead of having 8 possibilities on each measure (±Bx,±By,±Bz). And there is only one symmetry left that we won’t be able to suppress : the three magnetic fields have a central symmetry so they are exactly the same in (x, y, z) and in (-x, -y, -z). Therefore, with this new method, I need to change the software architecture to have a good phase detection, and I think I found a good way of doing it !

And by the way, if you have nothing to do tonight at 9:30, you can come to my improvisation show : !

See you next time !

LEDzep – PCB sent in prod

With the great help of Alexis, the PCB was inflatable games finished this afternoon. From now on I’ll be doing software. I’ll have a look at what we can do with the ADMP Micro that we put on the PCB, and then assist Nicolas with the BLE.

I just want to present a quick summary of hüpfburg kinder what’s on the LEDZep PCB, to close that chapter definitely. So I made that visual presentation about the content inflatable slide and the connections of the LEDZep PCB.

PCB summary

RoseOnRails – Dis ease PCB

Hi everyone!

This week, I worked on the LED_PCB with Noémie. If we’ve any advice to share it would be these : when you’re placing your components I think you could first fix a ground plane, then position your components big components as your microchips, then put your decoupling capacitors the nearest possible from the GND and VCC pins they’re paired with. You should have at least one decoupling capacitors per pairs of pin GND and VCC. Then place your quartzs also the nearest possible from his pins on the microchip and surrounding by his decoupling capacitors. Concerning the JTAG you should turn the pin you’re going to connect on to the outside of your PCB. The voltage regulator could be a bit distant from your chip and surrounded by his decoupling capacitos. Concerning the nRF51822 you should read carefully the datasheet and Nordic website in order to follow their example to place correctly the balun and the antenna. Especially for the antenna which needs to be isolated and routed specifically.

I also come back on my work on the BLE. For the moment, I’ll focuse on the communication with the LED_PCB. First, I’ll establish the UART communication between the STMF103RE and the nRF51822.

Yesterday afternoon with Noémie, we’ve prepared the worksite to rebuild our rails with LEDs under it on Sunday. Pictures will come in Noémie’s next post. I guess everybody of the group will be working on it because we all seems to enjoy welding and building !

LEDzep – finishing PCB, working on actuators


These days we worked a lot on our PCB. We have fixed a lot of connections that were missing in the latest version. We also determine the other components we needed to complete the architecture. We added two voltage regulators in order to provide the Vcc and the actuator power. We went to the communication and antenna department of Telecom in order to determine our needs, but they afferm that, seeing our short timing, it would have been inappropriate to create our own antenna, we would have spent to many time with waves simulators and it would have been to risky. So we prefered to take an antenna already done, it is saffer. We finished a first Routed version. We will send it to the production line as soon as possible.

In parallel, knowing all the connections, I made the routing table in order to start working on actuators commands with the right PINs.
Today, I made functions that command the two motors through H-bridges with PWM input interface. We can now set their speed, their rotation mode and put them in low power energy. I Worked also on servo comand, we can now enslave it with with a degree accuracy. I just notified that they can consume a lot: 200mA maximum. But it appears only when we apply an important negative moment. No problem therefore for our ballon.

Next days we will implement the other devices and work on the BLE structure.

Good evening,


RoseOnRails – PCB night!

Hi all,

Yesterday night I worked on the PCB for the LEDs.
Alexis had told us that regarding PCB conception, placing the components should take 90% of the time while routing should only take 10%… After several trials, I figured out that the more time I took on placing the components, the easier the routing was. So much so that after several hours, I finally had an easy-to-route PCB … and went to bed.

Alexis had the time to look at my work in the night, and it appears that I had quite a few problems regarding the balun and antenna placement and routing. I reviewed all the product specifications this morning and discovered that I had to completely modify the placement of half my components. After two hours I finally managed to place and route my components in a simingly appropriate way. I merely hope that no new issue will arise this morning, and wish to be able to send the plans this afternoon.

Electronically yours,


Drops will have their PCB !

Hey !

I have good news ! Our PCB is ready for production ! You can find the final electrical schematic : PCB_DROP.
We chose to use internal LDO with our nRF51822. Since last time, I added a kind of connector which is similar to SWD debugger to be able to connect an external circuit with a minimum place. With Alexis, we added ground planes in top and bottom layers. Moreover, we had to add a lot of via. Thanks to that, the ground would be equipotential. We also change the width of some path such as alimentation, or for the antenna, because there are some important constraints on them.
When we were done, Alexis said that we have to wait almost one night, to check if we had not done any mistake. And he was right ! Yersterday, I realize that since the beginning, I have wrong connections for the 16Mhz quartz ! It would have been a desaster if we send earlier the PCB to production ! But now, all issues are fixed.

I have taken a screenshot of our PCB top layer. The bottom layer only include our battery mount, and a few electrical path.
So… our drop circuit will not be any larger than 3 cm * 3 cm.

Capture d'écran 2014-03-26 18.44.31Capture d'écran 2014-03-26 18.43.56

I hope we will receive the 30 of them really soon. But we probably will have to wait around two weeks, maybe more.

Yersterday, I also worked on the nRF51822 eval kit with Matthieu while Lau was doing the Android application. I was in charge with the drop program which has to create a table of messages, and to write the callback functions of a new BLE service for exchanging message. That is to say I write the processing part, while Matthieu wrote the BLE Service part (much more complicated). After that, we wanted to test our new service on our eval kit… but for a weird reason, when we should receive “message 1”, we only receive 4 characters “mess” and then, we was disconnected. We looked for the problem. I think we found it, but there was no more time to change the code and check it.

Then, I decided to update a little our website. If you are reading this blog with attention, their are not a lot of things you will learn, but elsewhere, it would help you to follow us 🙂

See you !


LEDzep – PCB


After a tiring Athens week in Madrid, I worked today with designView in order to create a first version of our PCB. We choosed all our components so we can now work on connections. We tried to understand all the PIN specifications and how we will use all the devices.
Here is an overview of our work:
Some points are still not finished on this PCB:
– We must meet an expert in order to determine precisely how to make our antenna. In fact, we need a large scope for our balloons, so it will be better to make our own antenna on the PCB rather than taking an already made.
– We will, certainly tomorow, add voltage regulators in order to provide a safe voltage to the STM32.

Than, next step: Expedition PCB!