Be prepared for the big one

While waiting for the test PCB, I have to find something to do. Our laser cutter is only 30cm large for 610cm long, so I find a way to cut our wooden plank it in three ways. I hope that there will be no need to add something, but if the plank bend, we will have to put some wedge in the middle of the plastic plank.

I also have to unbend the wood. We ship a 3m plank that came wound, so I make something like this

I also cut a plastic plank for our test box

And made a better scheme with CorelDraw for those who want to make the same device

At last, I take a look at Ilan code for the beginning of a thread that will check the state of all the box.

There can only be one SD card in town

On the Aries MCV, the MMC pins of the HPS are already used to control the MMC flash. However, we need an SD card. So, we decided to add a µSD card on the SPI1 interface because SD cards can be controlled in SPI. So, I added the µSD card to the SPI1 interface like this:

&spi1 {
	status = "okay";
	clock-frequency = <100000000>;

	mmc-slot@0 {
		reg = <0>;
		compatible = "mmc-spi-slot";
		spi-max-frequency = <50000000>;
		voltage-ranges = <3300 3300>;
	};
	
};

Before testing on the MCV, we realize tests on the DE1-SoC. Something to notice, we already built the Linux kernel for the DE1-SoC and it booted correctly without the SD card on the SPI interface.… Read more

#TeamTrees

With Nathan, we work a lot on the creation of the Linux distribution. On my side, I am working on how to add an sd card on an SPI bus and Nathan is working on the driver for the USB WiFi Dongle.

Device tree

An SD card can not be detected and set automatically like a USB device. We have to tell Linux there is a micro SD host on an SPI bus. We have to put a micro SD host on an SPI bus because the eMMC bus is already taken by the Flash. To tell Linux, there is a micro SD host on the SPI bus, the simplest method is to add it in the device tree blob.… Read more

4×4 is to easy, let’s have a look at 16×16

On Monday, I began to have a look at a 16×16 device scheme. For this, I took the 4×4 scheme, I copied it 16 times, and I added two multiplexers. One that will multiplex the SCL signal to the multiplex that controls the Hall effect sensor, and one other that will multiplex the multiplexer that controls the H-bridge drivers. Then, I had some questions.

Should I keep a pull-up or a pull-down between two multiplexers or not? My answers for this moment is to keep a pull-up in order to avoid a clock signal on SCL if there is some latch between the two multiplexers.… Read more

PCB and Scheme

Finishing the test_PCB

Last week, I made a lot of routing to finish our first test PCB. We choose with Alexis to make a PCB that would work with an alimentation because it was easier, so I had a lot of more things to do, but after some work, I finished this part.

Scheme of the box

In order to understand better the design of our box, I made a scheme of the organization if you want to try to do a Touch at home with this design.

This was not clear in my previous post, but this design allows the marbles to flip when the box is put horizontally and vertically.… Read more

Reality Is Often Disappointing

Installation

I realized a synthesizable top module to test the Sync module and Led Band Controller together. The goal of this top module is to simulate the ticks sent by the Hall effect and the optical fork sensors. But also to send data to the Leb Band Controller to simulate the DMA Controller. In the output, one can read SCLK, GCLK, LAT, SOUT, row_en[3:0] (multiplexing), turn_tick, n_rst.

With @nathan-claudel, we decided to synthesize and test it on the DE1-SOC. The output signals are exited on the GPIO1. Then I used a Saleae device to probe the signals.

DE1-SoC and Saleae probe

Problems detected

Problems of the top module

First, we have to fix several issues due to the implementation of the top module.… Read more

False start

Today Xavier and I soldered an ESC to the motor in the Phyllo structure (in truth, after struggling for a long time, we asked Karim Ben Kalaia to show us the way). We just wanted to see the power consumption of the motor while bearing a load, and set up a better configuration for the speed feedback.

Sadly, when we tried to turn on the motor, it didn’t work, creaking and hiccuping for a few moments and then stopping. We noticed that it was really difficult to turn with the hand comparing to the other motors we have. We removed all the load (the PVC plate and the axis) so that the motor can turn freely, but we got the same result.… Read more

QsIssues

After having tested the implementation of the Led Band Controller. I decided to create an IP on QSys. However, we had some problems with that.

Localparam issue

The first problem is a consequence of the use of local parameters. Every interface signals which depend on a local parameter have a length of -1 like angle for instance:

parameter NB_ANGLES = 128;
localparam ANGLE_WIDTH =   $clog2(NB_ANGLES);
input wire [ANGLE_WIDTH - 1:0] angle;

So I would like to know if someone knows how to deal with this problem.

hps_io conduit issue

This problem is a smaller one and has a way to fix it but it is not very clean.… Read more

Make Led Band Controller Great Again

I finished programming the Led Band Controller and its testbench.

Test realized

I realized different kinds of test:

  • Writing test only: this test is here to confirm we can write correctly in both buffers. This test writes random values in the RAM.
  • Read test only: this test is here to confirm we can read correctly in both buffers. This test reads 1000 random bits in the RAM.
  • Writing and reading test: This test is here to confirm we can read and write at the same time in the RAM. Each buffer is written with random values while the other one receives 768 random access.
Read more