Skip to content
FPGA code for the hexastorm
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


FPGA code used to calibrate the Hexastorm. The code is very dated. It was used for the first Hexastorm. The code is not being maintained.


The following folders in the project;

  • midway_sdram-python2; rotating polygon, laser detects starts facet via photodiode and reads data from SDRAM. Data can be uploaded to the SDRAM with XSTOOL; which is provided by XESS.
  • SDRAM-python3_nostep; same as above but python2 ported to python3


  • blinknomemory ; blinks the onboard xula led
  • DAC_ADC; probably doesnt work, a failed attempt to add a DAC_ADC converter
  • diodecollection; also forgot what it does
  • midway; pulses the laser in the middle of facet using the feedback of a photodiode
  • stepper driver; rotates a stepper driver


It turned out that the Xula-LX25 was a great learning project but a hard board to build a machine around. In the end, I switched to the Beaglebone. The Beaglebone does, however, not have the potential to reach the speeds of an FPGA. In the future, I might therefore return to MyHDL. If I am going to do this, I still need to solve the following problems;

  • current code is ugly (solvable)
  • it is not possible to upload data to the sdram, only via XSTOOLS (challenge, no idea how to solve it)
  • could I use a ring buffer like is done with the beaglebone?


You can add a beaglewire to the beaglebone. The beaglewire uses the lattice so you can compile bitstreams via Linux. As alternative to MyHDL you can try Migen. I guess the whole project would be very hard, hope this helps!

You can’t perform that action at this time.