Timing the flashes

Today Xavier and I worked on a way to flash the LEDs at given absolute angular positions, as discussed in this article

Over the last few days we’ve refined an idea to naturally flash the LEDs at a given absolute angle thanks to the STM32 Timers.

The Idea

To retain awareness of the angular position of the Phyllo, we have a position sensor (either a hall or an optical sensor, both are on the board) that triggers a rising edge once per rotation. We consider the position at which the sensor fires to be the absolute angular position zero. This gives us an absolute reference that we’ll use to keep the flashes from drifting in time.… Read more

Phyllo effects taxonomy

Following the Phyllo demonstration video we recently shot, Xavier and I started thinking about the impact of the flash frequency on the Phyllo effects. The first step being to list the effects we want.

There is a variety of effects that depend on the flash frequency; they all boil down to what we’ll call the “apparent rotation speed” of the Phyllo. Here’s a well-rounded selection of effects to give you a better idea of this:

Vertical aging / de-aging

We could define this kind of effect as having an “apparent speed of zero”: the petals only age or de-age along a top-down line, but don’t move left or right spinwise.… Read more

New 3D printed support for the petal PCB

Recently I printed a new support for the petal PCB:

I made it thicker than before, which will allow the PCBs to be more pressed in the structure, and thus easier to attach.

Although it is thicker, it is actually lighter than the previous one (which is good so that we don’t put too much strain on the motor), because this time I made it less dense, except for the part around the inserts which need to be very dense. I used the same technique for this than here

Here’s the result with the dummy PCBs I printed:

They fit very well 🙂

Let’s all welcome the new Phyllo

The new phyllo printed with the Ultimaker 2

You might remember we talked about a quite unfortunate software limitation in this article, which was preventing me from printing a phyllo sculpture with both a hollow thin shell and filled petals at the bottom.

Well, it turns out it is possible to do this using another software for another printer which also has the benefit of being free and open source: Cura

We first didn’t use Cura because it was meant for the Ultimaker 2 printer, which seemed to give less detailed results when printing phyllo sculptures. However, it turned out to be not that bad and had some advantages over the Zortrax printer on some points.… Read more

Solidifying our workflow

These past few days we’ve worked (among other things) on improving our workflow to write clean code and have a clean git repository.

It all started when Alexis was horrified by seeing my code indented by tabs, and other monstrosities. Following Alexis advice, we decided to start using an automatic code formatting tool, and we also figured it would be nice to write down some norms for our general coding / commenting style.

We settled on clang-format for the code formatting tool, as it seems to be the standard. We tried using the LLVM default style, and were quite annoyed at first at some of the formatting.… Read more

Another success for the Ultimaker

Yesterday the print for the support of the LED PCBs finished, and it was a success:

This was again printed using the Ultimaker 2.

Under it you can also see the support for the processor PCBs, everything fits well:

We also had our school mechanic drill all the necessary holes on the PVC platform, and we will try to make the whole structure turn with our motor today.

I also printed a model which exactly matches the size and shape of the top PCB, and one for the petal PCB, and it fits very well:

As you can see both printed PCB perfectly matches the holes of the structure 🙂

We’ll keep you updated on how well our structures fares at 30 rotations a second !

Pretty Animations

These past few days I’ve been working on the animation generator. Here’s a result:

I wrote a generator in C (which will later be the code used on the main board) which has a generate_frame function which will generate the next frame of a procedural animation. The generate_frame function can be called an arbitrary amount of times.

The code can export the frame to a file, which is then read by my animation simulator script I wrote for blender.

The simulator takes a few secondes to read the frames (5 secondes for a 500 frames animation for instance), and can then display the animation in real time (same as in the gif)

The simulator can also render high quality realistic animations as the one you can see in our project presentation , but even a small animation will take a day of rendering

Here’s all the concepts / techniques I have been working on right now (most of them are already implemented) which the generator uses:

Virtual Petals

The virtual petals are the petals you appear to be seeing go down (age) on our phyllo animations.… Read more

Quick update on the power transmission

Yesterday we put the flexible plastic tube to isolate the inner metallic tube from the axis on our power transmission (see this post ). With the help of Karim, Sibille and me devised a way to test if power gets across our ball bearings using some large resistors. We were able to see that we can transmit 30 amps, but the resistors’s resistance was too low for proper testing, so we could not test the voltage drop.

It is crucial for us to test the voltage drop, since right now we are transmitting 5V through the ball bearings and powering devices that function on 5V on the rotating part.… Read more

When the bug lies in your debug print function…

Here’s a riddle:

A for loop with index i and stop condition i < x contains a code which prints i and does some non relevant computations. When x is greater than y the code prints i up to x-1 (as you would expect), but when x is smaller than y the code prints i up to 51. The threshold y is slightly random (it hovers around 1120), but the 51 is not. What is happening ?

Well, first here’s more precise information on what actually happens: if x > y the code actually doesn’t print all the values up to y-1, it only prints the first 51 values and the values between y and x-1 .… Read more

Successful print of the PCB holding structure

Today I managed to print the support for the processor PCBs without any major flaws:

I changed the design a little bit in order to ease the printing and make the structure more robust: I removed the openings / holes on the sides and made the whole structure thicker. I also used the Ultimaker 2 printer of the fablab instead of the zortrax since the zortrax are somewhat broken right now. (hopefully it’s not because of all our printings)

I also printed a piece with the same shape and dimensions as our processor PCBs, and it fits perfectly in the structure.… Read more