Skip to content

HDMI Light v3 - FPGA based Ambilight clone with direct HDMI input

License

Notifications You must be signed in to change notification settings

esar/hdmilight-v3

Repository files navigation

This is a still-in-progress update to my hdmilight-v2 project.

Differences in this version:
 * Everything is on a standalone board, no longer needs a Papilio FPGA board
 * AVR CPU removed from FPGA design and replaced by a separate ARM Cortex MCU.
   The main reason for this change was to get more program memory. The FPGA
   had no more spare block RAMs. It also has the advantage of being a much
   more capable CPU and having live debugging via JTAG.
 * Power supply switching for the LEDs. This version can power down the 
   LED strips when not in use.
 * Extra pins added to each LED output port, now have +5V, DAT, GND, CLK
   Currently it still only support 3-wire LED strips, but in the future
   it should be able to support 4-wire clocked strips
 * Magical mystery connectors (vivepos / papix). The real reason I made
   this revision... a platform to experiment with my crazy ideas



Build instructions:

 1) Manufacture the HDMI receiver board that can be found in 
    the 'board' directory (KiCad format).
 2) Open the 'fpga/hdmilight.xise' project in Xilinx ISE and
    generate a bit file.
 3) Edit the files under the config directory to configure
    the LEDs.
 5) Run 'make' in the top level directory, which will do the following:
      * Build the firmware image
      * Convert the text config file to binary format
      * Append the config to the end of the FPGA bit file
      * Flash the ARM microcontroller with the firmware
      * Flash the FPGA config flash with the bit file
 8) Connect LED strips to output pins
 9) Open a serial terminal to the board 
    (running "dmesg" is useful to see names of recently added serial ports)
 10) Connect HDMI source to receiver board
 11) It should now be working. 



This version should now have feature parity with version 2, however
it has not been tested very well yet.



Useful build targets:
 * make firmware: build the firmware without flashing
 * make firmware_flash: flash the last build to the ARM
 * make fpga_program: reprogram FPGA without programming flash
                      will be lost on thxt power-cycle
 * make fpga_flash: reprogram the FPGA flash
 * make fpga_flash_config: reprogram just the configuration part of the FPGA flash


Debugging the firmware:
 1) start openocd: openocd -f hdmilight-v3-openocd.cfg
 2) start gdb: arm-none-eabi-gdb
 3) in gdb, load firmware: file firmware/main.elf
 4) in gdb, connect to board: target remote :3333

About

HDMI Light v3 - FPGA based Ambilight clone with direct HDMI input

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published