sLowe

Members
  • Content Count

    132
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by sLowe

  1. sLowe

    Genesys DDR with ISE 14.7

    Hey Zygot, I also ran into this problem. It seems like the updated MIG doesnt like that the DDR_wen pin is located on a vref pin although no data pins are on the same bank. There is a workaround that can be found here. https://reference.digilentinc.com/genesys:mig It includes how to set up the MIG and PLL to DCM wizards and how to manage the .prj files to correct the ddr_wen signal. Also at the end is a working Genesys project running the ISE generated test project. This solution was inspired by This thread. In short you select an available pin for the wen signal then after the fact go change the MIG .prj file to attach the correct pin. Let me know if you need some more clarification! - Sam
  2. We could do something with intensity other than changing the brightness. However with drums, they usually have a pretty consistent frequency profile as long as you are on the same drum. We recently had this project set up to be on a drum set that had different base color values for each drum. (Snare: blue, Bass: green) Then if a drummer hit both of them at the same time and intensity the lights would flash teal. We decided to go back to one drum with a drum line in mind. Although we kept the color mixing algorithm in case we want to revisit that flavor of this project! Or could be used for the quad drummers. As far as rim shots go, the data we get out of the piezo sensor is not quite accurate enough to determine where on the drum you hit. If we had a very nice piezo sensor and ADC, and maybe using a fft library, that kind of information could be figured out. Although looking at wave forms of drum hits, that may be a little advanced for us. (lots of harmonics and sweeps of frequencies) But if this was working, there no reason we couldn't start slapping sensors on instruments and getting a true light show generated by an orchestra or something! Maybe instead moving to technology like the clip-on guitar tuners. Like this one this one.
  3. Hey Guys, Tommy and I are starting a chipKit project that uses piezo sensors to sense a hit on a drum and then light the drum up with LEDs. This creates a pretty cool effect to watch in the dark. Our endgame with this project is to approach a drum line and hook them all up to some WS2812s to create a cool music/light show. Below is our proof of concept video using a single snare drum. We think we can use this technique for most percussion instruments. Cymbals seem to be the only thing we cant use this on so far. https://www.youtube.com/embed/pQdNVhnbReM Our next step is to dress up our drum a little more to make a little more appealing video to present to a drum line. Let us know if you guys like our project or want to know anything about it. We will also attach the MPIDE sketch. We will be posting to this stream as we progress with our project. /************************************************************************/ /* Drum Lights Proof of Concept */ /* */ /* Authors: Thomas Kappenman and Samuel Lowe */ /* */ /* This is a simple sketch that lights up a snare drum whenever */ /* it is struck. */ /* */ /* tested supported boards: */ /* - Digilent UNO32 */ /* */ /* This library is protected under the GNU GPL v3.0 license */ /* http://www.gnu.org/licenses/ */ /************************************************************************/ #include <PICxel.h> //our strip had 43 lights #define number_of_LEDs 43 #define LED_pin 5 #define millisecond_delay 5 //Adjust these values to obtain better results for each drum #define sense 25 //Sensitivity of each drum #define debounce 300 //Debounce to get rid of idle values. PICxel strip(number_of_LEDs, LED_pin, GRB); struct drum{ int r; int b; int g; int zero; }; int red; int green; int blue; int i; int triggerval; int lastval; int in1; int prevTime = 0; drum drum1; void setup(){ strip.begin(); strip.setBrightness(100); Serial.begin(9600); drum1 = {0, 255, 0}; //snare } void loop(){ int a; if(millis()-prevTime > millisecond_delay){ a=analogRead(A0); Serial.println(a); if (lastval-a>100)in1=1; lastval=a; colorLogic(); in1=0; if(red>= 15 ) red -= 15; else red = 0; if(green>15) green-=15; else green = 0; if(blue>15) blue-=15; else blue = 0; for(int i= 0; i<number_of_LEDs; i++){ strip.GRBsetLEDColor(i, green, red, blue); } strip.refreshLEDs(); prevTime = millis(); } } void colorLogic(){ if(in1){ green += drum1.g; red += drum1.r; blue += drum1.b; } if(red >255) red = 255; if(green >255) green = 255; if(blue >255) blue = 255; } DrumLights.zip
  4. Hi Priya, It sounds like you don't have an active WebPack license. There is a good guide to getting a free WebPack license here. https://reference.digilentinc.com/vivado:installation On the right hand side under table of contents you can click "Getting your Free WebPack License" since you already installed Vivado. This should guide you through the steps to get your Vivado licensed. - Sam
  5. Hey Philippe, The Vivado Webpack license is free. So you can choose whichever one you want! I would also recommend using Vivado. -Sam
  6. sLowe

    ZYBO Board w/ XADC

    Hey Squirrel, To get the XADC working properly on the Artix-7 boards which use the same XADC, I had to declare them in the .xdc. If you can locate the xadc block in the synthesized schematic, you can see for sure if they actually are. Below is what my schematic looks like, This was my code for the basys3 xdc #Pmod Header JXADC #Sch name = XA1_P set_property PACKAGE_PIN J3 [get_ports {vauxp6}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxp6}] #Sch name = XA2_P set_property PACKAGE_PIN L3 [get_ports {vauxp14}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxp14}] #Sch name = XA3_P set_property PACKAGE_PIN M2 [get_ports {vauxp7}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxp7}] #Sch name = XA4_P set_property PACKAGE_PIN N2 [get_ports {vauxp15}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxp15}] #Sch name = XA1_N set_property PACKAGE_PIN K3 [get_ports {vauxn6}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxn6}] #Sch name = XA2_N set_property PACKAGE_PIN M3 [get_ports {vauxn14}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxn14}] #Sch name = XA3_N set_property PACKAGE_PIN M1 [get_ports {vauxn7}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxn7}] #Sch name = XA4_N set_property PACKAGE_PIN N1 [get_ports {vauxn15}] set_property IOSTANDARD LVCMOS33 [get_ports {vauxn15}] I also had to name the ports in the xadc as vauxn6, vauxp6 etc. It looks like although the reference manual has aux1,2,3,4. The actual XADC ports are different. In the picture below is the FPGA bank for the ZYBO where the aux inputs connect. So 1 -> 14 2 -> 7 3 -> 15 4 -> 6 Within your xadc wizard select these ports instead of 1,2,3,4. For an example of some working Verilog you can find a project here. https://reference.digilentinc.com/nexys4-ddr:xadcdemo I believe you only get these 4 inputs with the ZYBO. Hope this helps and Ill keep my eye on this stream if there is anything else I forgot about. Also this may not answer all your questions because I am not very familiar with microblaze projects. -Sam Lowe
  7. sLowe

    XADC ZYBO Schematic

    From the album: Forum Stuff

    Port mapping of the Zybo XADC pins. They DO NOT go to vaux1, 2, 3, and 4 instead they are mapped to 14, 7, 15, and 6 respectively
  8. sLowe

    Forum Stuff

    Pictures used to answer forum questions
  9. sLowe

    XADC schematic

    From the album: Forum Stuff

    What the synthesized schematic looks like when the XADC aux ports are connected to an XADC wizard instantiation.
  10. sLowe

    DrumLights

    Tommy and I's drumLight project