[HARP] Final days…

For the past few days I’ve been working hard with the team to finish everything on time. Our system is now running smoothly which is great! Until friday we’ll be focusing on making the best presentation we can on friday. It will feature impressive animated holograms and I hope the audience will enjoy it.

[HARP] Because one screen is too mainstream !

Today we succeeded to display 4 screen. We also did some images, hologram and animated hologram.

Here is a video of a 4 screen animated gif :

[HARP] PLL and kernel time!

Today we worked as a team on the PLL using the kernel time (nanoseconds). With the IR receiver we can measure the duration of a rotation and adapt the frame duration. It’s almost working except for a miscalculation on unsigned long. We’ll fix it tomorrow! One good news : the motor is very precise so we won’t need to adapt it while running the program.
See u la’er aliga’or

[HARP] What about kernel ?

Today we did a great achievment !

Our work on a kernel module has been a success. Paulin and Pierre did the main part of the code to implement in the kernel, and today I helped them to debug the last problems.

So now the kernel module work and the gpio clk is faster.

There is a result (with the video it’s difficult to see the difference) :


[HARP] SPI over GPIO module working!

Pierre and I worked today together and we managed to implement an SPI bus over GPIO driver. We fuund the way to directly set the GPIO value without all the time wasted by standard GPIO functions. It’s 16 faster than yesterday! Now sending messages to our LED drivers will be made at 8Mbits/s! As a consequence the bit rate is now sufficient and will be able to display holograms without lagging. We also almost finished codding our HARP driver and our main program. It will just open the driver and write to him to send data. The HARP driver will take care of all the communication with the LED drivers.

Tomorrow we’ll test them !

[HARP] Spi driver over GPIO working.. but too slow

Our first char driver is now working! We now have a very simple spi driver over GPIOs to communicate with a LED driver. After reading the signals with an analogical analyzer we realized it was just a bit faster (500khz)than using the registers from user-space (300khz). Thing is we were using a built-in function of gpio.h called  gpio_set_value which is too slow. After looking at its code we realized it’s doing too many things we don’t need. What we’re gonna work on tomorrow is to try to understand the code of the gpio-omap driver and copy parts of it for our char driver. That way we will be able to set our GPIOs much faster! After this part is done we will be on our final sprint to make our main program work with our drivers, using timers and interruption from our sensor.

[HARP] A PLL and some new gifs ?

Today I worked on 2 main things :

I tried to use a program called autohotkey, to create some gifs (usable with our project) from 3D images 16*16*16 voxels on the site qblock. The program worked, but too slowly…

I keep searching another way to create these gifs.

I also worked on a part of a kernel module created by Paulin. I had to create a PLL from an interrupt source. We want to keep a good speed measure even if we miss one or more interrupts from the hall sensor.

Tomorrow I keep working on it.

[HARP] GPIO interruptions and GPIO over SPI char driver

I made this morning a small module getting interruptions from our sensor. It was just a simple test to see if it worked nicely because we will need to use this interruption very soon to display the holograms.

The rest of the day was spent learning more concerning drivers. I made a simple char driver to write on some GPIOs by simulating a SPI bus. It compiled and installed well but since I had some trouble with mknod I couldn’t actually test it. I will try to use class_device_create to create the /dev node inside the module. Another solution is to register it as a misc module. I’m hoping to display images using drivers tomorrow or wednesday.

[HARP] First kernel module!

During the week-end we read the first chapters of LLD3 which very instructive. Our kernel was cross-compiled on Pierre’s laptop so we can’t compile our modules on the Gumstix, we need to cross-compile them as well.

We copied the linaro kernel source tree on his laptop and compiled an hello world module, and it worked! We installed it on the Gumstix and it was alright. Tomorrow we will start making modules playing with the GPIO, SPI and interruptions !

[HARP] First images and animations!

Today was a good day! I fixed an error in my code this morning and all of a sudden everything started working just fine! Afterwards we made a lot of tests on our system to see if everything was alright, and it is! Also we fixed the gamma to get a good rendering of the colors.

Here are some videos:

It seems to lag from time to time but this is due to the fact that we are using a user processus. Next step is the kernel module to gain in speed and to do handle the sensor interruptions. We have to read the 3 first chapters of “Linux Device Drivers, Third Edition” quickly! Soon we should be able to  display holograms!