[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] 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] 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] 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!




[HARP] It’s getter better all the time

During this sunny afternoon Alexis helped us fix our problem with one of the LED matrix. It appears two pads of a component were soldered together. It still wasn’t working afterwards because the GPIO of the wake up pad we’re using for the latch of this matrix was different than expected (a bug on certain Gumstix Overo versions). After fixing this the LED ran just fine.

I re-wrote and augmented large parts of the code to make it proper for the main program. At the end of the day we’re still not getting an image on our display but we’re very close!

[HARP] Working on the LED drivers

Today and yesterday we’ve kept working on the GPIO and SPI buses. They seem to work just fine but we still have some troubles with the LED matrix. To fix the problem we made a lot of hardware tests using logical analyzers. It’s getting better though (after some bug fixes) and tomorrow we’re hopping to get everything running in order to display an image. Cf. Alexandre’s post to see the whole system running with some LED turned on.

Also I started looking at documentation concerning how to create a kernel module. We might need to use our program as one to avoid latencies while running it.

[HARP] Wifi on the gumstix, main program and animated hologram

The Wifi on the TOBI board is working and automatically configured but a problem remains when we boot from the PCB (it is possible to connect with SSH but there isn’t any internet connection).

Also I’ve been working on the SPI interface with the LED drivers using the GPIO. I made also a main program reading a GIF file and displaying the frames on the LED (it loops indefinitely). We would like to fix the Wifi first before testting the program on the board.

And I made a program as well using MagickCore reading all the GIF files of a folder representing holograms. It appends all the frames of the images to make one GIF containing the description of an animated hologram.