Since the last episode, a lot of drastic changes occur in the FPGA architecture.
SCLK, LAT and GCLK
Those three signals are now generated by the SYNC module. This reduces the number of GCLK, LAT and GCLK sent outside the FPGA. They will be duplicated thanks to clock buffers on the “highway” PCB.
We decided to realize this change to reduce the number of pins used, this will make the main PCB easier to route. Moreover, to ensure proper functioning, the 20 Led band controllers had to send the same SCLK and GCLK and to send all the data for the following LEDs when the previous ones are displayed.… Read more
Last time I showed you how I managed to voxelize an obj file and display it on our simulator. However, I had a few issues with the cube, because it wouldn’t detect the vertical faces. This week after battling with geometry for longer than I’d like to admit, I finally managed to add horizontal rays that are orthogonal to each voxel located on the side of the cylindrical grid. As expected, we can now see the coloured vertical faces of the cube:
However, more unexpectedly, even the other models looked better on the simulator, for example the Charmander I used in my previous post:
It is quite visible on thin forms, if you look at the tail for example it has much more volume and it more visible on the second version.… Read more
After much thinking and looking at documentations, power transmission from static to rotating assembly will be done through ball bearings. Alexis told us he had used it before on other projects and that it would be suitable for our needs. We would transfer 12V power through one bearing and GND through another.
That meant that we needed one 12V->5V and one 12V->3.3V power supply rails. We also need 1.8V for the USB controller but we will use a basic 3.3V to 1.8V regulator.
How much ?!
Now that we know what voltages will be required, we need to find out how much current will be drawn on each rail.… Read more
In order to communicate with the user on the desktop app, we need to have wireless networking on LitSpin. We looked at several options in the beginning and landed on an ESP32. We put it aside for a while working on chosing other components and working on other sides of the electronics. The subject came back while working on the mainboard.
Since CyL3D (last year’s POV display project) had a USB wi-fi dongle, Alexis suggested that we use the same method in order to be able to work on making LitSpin work and use make the ESP32 work in the meantime.… Read more
This week, as well as the previous ones for most of us, was devoted to PCB design. During this work, several changes were made to our design. Here is a summary and some details. The overall structure remains the same as what Marc described in this post. Let’s go through the modifications for the 5 PCBs.
We have made many modifications to this PCB.
First concerning the Wifi module : we wanted to use the AMW006 module because the OS seemed convenient and it is supposed to have less bugs than the ESP32. But we discovered that the compilation chain has to be used in windows, so we decided to use the ESP32 instead (the DevkitC so as to flash easily).
In our design, we want to use a STM as our main processor bu also an ESP to deal with the network part of our device. This imply a communication between those two.
The low-level protocol
At first we wanted to use the UART protocol. Yet because we will have very strong magnetic fields, we migh need a more reliable protocol. We decided that we will implement both an UART and an SPI interface and test both on the device. As of today we have implemented the UART communication but as we don’t have on our development board (iot-node) any RTS/CTS pin that can be mapped to the arduino connectors we used delays to avoid the overrun we initially had.… Read more
After trying to reproduce the results we had in this post we noticed some problem of repeatability. It was less frequent than the previous but still at a level we couldn’t ignore and that would cause future problem.
After working each on our own during the morning, I met with Alexis, Henri and Ilan in the E-lab/Fab-lab to further investigate the problem.
It turned out that we spent the afternoon testing dozens and dozens configuration. The parameters we changed were : spacing between marbles, marbles diameter, thickness of the plates we put the marbles on, material of the plates, stacking of the plates, using or not using little round metal plates (non ferromagnetic) to try to canalize magnetic field.… Read more
The highway connects the main PCB to the LED bands and contains clock buffers in order to duplicate signals while keeping integrity.
I have had a hard time figuring out how to route this PCB. It is a very dense graph of signals that must cross each other. Since the PCB has to be large (over 25 cm in diameter), the long traces adds crosstalk problems to the equation.
After talking with Alexis about this issue, it turns out that the autoroute function will be useful here.I… Read more
The power supply is extremely important and is quite complicated in a Phyllo since there are so many PCB as well as several voltages needed.
Capacitor reliant power supply
We have 79 LEDs working under 600mA which sums to 48A. As we flash 30 times every second and each flash lasts around 100us, the LEDs are on at most 0,3% of the time. Thus the average power supply needed is 0,16A.
We have decided to rely on capacitors to fully provide the LED power supply. There are two main reasons for this choice. First, the LED are switched off most of the time.… Read more
Last time, I wrote on this logbook, we were happy, we find a way to control our marbles without a side effect. But we did not think about one thing. With two marbles, our assembly plan works, however, with 9 marbles, it does not.
On Friday, after this discovery, I was thinking about this problem in my car: We need to keep the marbles near the metal because, without this, they will affect each other. On the other hand, we need to keep them far from the coils since we need to have some distance to make them flip.… Read more