FPGA architecture, episode 2

The architecture of the FPGA has evolved since the last post.

General architecture

First, since we don’t plan on controlling the rotation speed from the HPS anymore, this feature has been removed from the architecture.

Moreover, the SCLK and GCLK are now generated by each of the 20 LED band controllers since we have enough ouput pins on the FPGA. This results in a simpler design and better signal integrity on these two signals.

Each LED band controller controls a LED driver. More information on the way this driver works can be found on this post.

For the inner memory of the LED band controller we use a dual port, dual clock synchronous RAM, which is proposed in Intel’s recommended HDL coding style for memory inference.… Read more

Cause every time they flip, I get this feeling

Time for more tests with marbles

In my last post, I was a little sad. We were about to abandon the heart of our project: marbles because they were too powerful. Alexis gives us some hope by saying that we may have better result with some iron. So we try the configuration on the right (there is an iron plate between the two marbles), but it gives bad results. The iron does not constrain the magnetic field. It just attracts more the two marbles. We were about to try with some steel when the miracle came…

The miracle came from coils

In fact, the coils already have some iron on them.… Read more

Can you feel it ? Yes we can !

In the components familly, it was time for the Hall effect sensors to be tested.

The sensor:

We used the SS39ET from HonneyWell. This sensor has 3 pins. One is GND, one is Vcc and the last is the output. The output is a voltage proportional to the magnetic field. We choose for Vcc a value of 3.3V.

First tests, let’s use a voltmeter.

To do the first tests we measure the output voltage with a voltmeter. To power the device we used a DC power supply. We also added an ampermeter to measure the current going to the Hall effect sensor.… Read more

Ruling the colony of Phyllos

Yesterday we mostly worked out the detail of how we’ll be detecting neighbouring Phyllos.

Without further ado, here it is :

Step 1 : Discovery and identifier attribution

The first step for the Phyllos is to establish collectively which other Phyllos are present. Each Phyllo must therefore broadcast its presence and be given an identifier. 

This step must be repeated regularly in case Phyllos are switched on/off. 

As described in this post, we plan to base the protocol on wifi broadcast: a Phyllo regularly broadcasts its IP over wifi to signal that it is still on. The others register this IP address in a local running Phyllos table.… Read more

Update on Phyllos detection

Magnetic deception

Last week, we thoroughly tested the MPU9250 that Alexis lent us. At first glance, it looked a lot more promising than the TLV493D-A1B6 MS2GO () we tried before : the range is way better ! Unfortunately, magnetic detection is more complicated than we first thought and it looks like it’s not going to cut it.

You can take a look at this post to remind you of the detection scheme we had in mind.

Essentially, the idea is to use electromagnet in every Phyllo that can be turned on and off, so as to detect the Phyllos one after another, and use Wifi or Bluetooth to coordinate.… Read more

Marbles: “I can’t let you go, I want you in my life”

Designing our grid

Have you ever played with some neodymium balls? These are potent magnets, so we had to find a way to use them in our device without making them dependent on the magnetic field of another marble. Because if we had to manage this field, we would have always to power our coils, and they would have burnt. That’s why we choose to buy many different balls to try to find the best compromise between the distance and the diameter of the marbles.

With a plank of beech, we cut with a laser engraver. We made many different holes of many diameters with various distance to know which one is the best.… Read more

LED’s do some tests

Yesterday I set out to test the LEDs we received : ASMG-PT00-00001 and LE RTDUW S2WP. The first is a powerful RGB LED, while the second is an even more powerful RGBW LED. They need to be quite powerful because in order to avoid a blurry image due to the motor rotation the duration of the flashes must very brief, and since the LEDs are flashed only once every 137.5 degrees of rotation that means they are off most of the time.

The goal here is to test under conditions similar to those the LEDs will actually be used in : once every 1/30 seconds, they will be turned on for 100µs using high frequency PWM modulation for the colors, and then switched off again.… Read more

I have a coil. I have a current => I have a magnetic field ! Wait, do I ?

A naive first approach

We received the coils denominated SDE1006A-681K. These are 680 µH inductance coils.

We roughly soldered two wires on each pole of the coil as you can see on the image below for very basic testing.

Next we needed to connect it to the IoT node. As a very basic montage for testing, we configured user button with polling on the IoT node to drive one of the GPIO pin we have on high when pressed.

We used a resistance to limit the current output. As we wanted a current of the ordre of the mA we used a resistance around 1 kΩ.… Read more

Touch, ready for components tests !

In order to start testing our components (Hall effect sensors and coils), we needed to decide which board and which OS we will use.

The Board:

Our project will not need to run any complex computation nor doing complex network communications. So almost all processors we checked could be used. We decided that it was better to take a controller little endian based on an ARM processor (because we are more familiar with arm’s instructions). We also wanted it to be low power and not too expensive. With those considerations, we went toward the STM32L475VGT6 because we already had boards at school with it.… Read more

Taking full control on our 3D model

We discussed in our post Generating 3D Models  the script I wrote to generate the 3D model of our phyllotactic sculpture. In this script, I start by generating a polyhedron made up of quadrilaterals arranged in a phyllotactic pattern:

Then, my script takes as input a 3D model of a petal and copies it on each quadrilateral:

The 3D model of the petal I use is taken from John Edmark’s model

One problem with this method is each quadrilateral is different, which means I had to slightly deform each petal to fir the quadrilateral’s shape. Figuring the exact 3D transformation to accomplish this seemed a little too time consuming so I used lattices in blender, which are a way to deform objects according to a 3D grid.… Read more