Logi-matrix with LOGI Bone (and how it differs from Glen's tutorial)

Hi everyone, 

I'm new here and very much looking forward to working with this product. My goal is to use a BBB and the LOGI Bone to control a 32x32 LED matrix. Glen Akins has created a great tutorial, but it seems that it's out of date now and people are having trouble with that

I see that Jonathan has published an updated project, but the documentation isn't as thorough. Before I start and hit issues, is my overall plan correct?

  1. Follow Logi bone Quickstart tutorial: http://valentfx.com/wiki/index.php?title=Logi-Bone_Quick_Start_Guide
    1. Connect BBB and Logi bone.
    2. Install OS.
    3. Run setup script.
    4. Run demo blink LED app.
  2. Connect Logibone to 32x32 LED Matrix in same way as Glen's tutorial: http://bikerglen.com/projects/lighting/led-panel-1up/#Display_Data_Connections
  3. Create new bit file using updated wishbone-architecture:
    1. New Xilinx ISE project files here: https://github.com/fpga-logi/logi-projects/tree/master/logi-matrix/hw/logibone
    2. How to create general bit file: http://bikerglen.com/projects/lighting/led-panel-1up/#Rebuilding_the_Bit_File
  4. Upload and install new bit file using logi-loader tool: http://valentfx.com/wiki/index.php?title=LOGI_Bone_User_Manual#Programming_the_FPGA_from_the_BeagleBone
  5. Connect power to LED matrix: http://bikerglen.com/projects/lighting/led-panel-1up/#Display_Power_Supply_Connection
  6. Run provided python script to test LED matrix: https://github.com/fpga-logi/logi-projects/blob/master/logi-matrix/sw/test_mat.py
General Questions:
  1. Do I need to change the device tree setup at all? This was a large part of Glen's tutorial and other people's issues when trying to follow it. Will the new bit file work with the default device tree setup?
  2. How does it know I'm using a 32x32 matrix? Is this hardcoded somewhere (in the bit file or the python script)?
  3. If I restart the BBB, do I need to repeat any of the setup steps (run the setup script, install the new bit file, etc.)?
  4. What, if any, files can I reuse from the logipi software directory? https://github.com/fpga-logi/logi-projects/tree/master/logi-matrix/sw/logipi
  5. Will test_mat.py's calls to "logi.logiWrite(MAT_ADDR, bufferFromPixels(pixels))" work with the logibone bit file using the wishbone-architecture?

I would really, really appreciate some help here. As a software guy, I'm feeling a bit overwhelmed and the scattered documentation is making me think that I'm missing important steps.

Jake Karnes


  • Hi,

    the goal of this project was to get a matrix driver component that is compatible with the wishbone architecture and can be used both on LOGI-Bone and LOGI-Pi. The connections are exactly the same as in Glen's project.

    1) There is no need to make change to the default device-tree. If you can run the logi-apps on your logi-bone, it should work fine
    2) The number of panels is hard-coded in the top level architecture (hw/logibone/hdl/logibone_mat.vhd) at the line

    MAT_0 : wishbone_led_matrix_ctrl
    generic map(
    nb_panels => 1 // defines the number of 32x32 panels
    bits_per_color => 4

    3) You'll need to load the bitfile at every boot (can be automated in a linux startup script) but the other steps are performed only once
    4) The code in sw/logipi need just a bit of re-work but i'll do that
    5) The python script will work, whatever of the two platform you are using.

    Don't hesitate to ask, we are here to help !


    Jonathan Piat
  • JUst for your information. The base project for the logi-bone was generated using Skeleton, the online architecture editor :

  • Hello together,
    I am new to FPGA and beaglebone. I managed to drive a 32x32 RGB Panel with the tips above.
    Looking at the vhd files of "logibone_mat.xise" is it possible to drive a 32x64 Panel with minor adjustments?
    Also the python script seems to have no termination. Can I bind a button to clear the LED Panel and stop the program?
Sign In or Register to comment.