All Activity

This stream auto-updates   

  1. Today
  2. Centipede

    not that i know a thing about verilog, but centipede.v assign sync_o = comp_sync; assign hsync_o = hsync; assign vsync_o = vsync; assign audio_o = { 2'b0, audio }; assign hblank_o = hblank; assign vblank_o = vblank; p1-arcade-mega.ucf NET AUDIO_L_O LOC = "P84" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8; # NET AUDIO_R_O LOC = "P86" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8; # shouldn't AUDIO_L_O and AUDIO_R_O both be AUDIO_O(1) ? or some such... or rather, i am guessing "2'b0" is the "return/gnd" and "audio" is the actual noise? as i wrote, i don't quite understand it but something just seems off..
  3. Yesterday
  4. Papilio Pro still produced?

    Hi Papry, I can‘t speak for others, but at the end the DRAM is not that complicated, given that you don’t need to write all the code from scratch, there exist several implementations, one is the Hamsterworks controller. The latest version on his website unfortunately had a small issue which prevents running it out of the box. Here https://github.com/bonfireprocessor/bonfire-soc/tree/master/sdram you find my slightly modified version which definitely works (tested with a clock frequency of 96Mhz, its best you start with a clock close to it. When you build a design with it, you should definitely simulate it, there are two different simulation models for the SDRAM chip in the link above, I only have used the sdram_model.vhd yet. With simulation you will also easily understand how the thing works and how to run fast pipelined back-to-back reads or writes. The DRAM has some advantages over SRAM: It requires less adress lines and has 16 Bit width. So the peak throuput is actually nearly twice of a 8 Bit SRAM. If you are interested in a SRAM based board in the Papilio price range take a look at the Digilent Cmod A7, it works with the newer Artix-7 FPGA and 512KBytes SRAM, otherwise it is quite similar to the Papilio Pro.
  5. Papilio Pro still produced?

    I wonder how many users of this board are frightened or put off using the SDRAM due to the complexity? I am! I have read the datasheet, and I was surprised that this device is a lot more complicated than an old fashioned 64kbit DRAM which at least only needed the refresh. I was tempted by the Duo, mainly because of the use of the Static RAM, but the cost in the UK (from SKPang) has risen enough to put me off. I will be in the US in May, so perhaps I could order one and have it delivered to the hotel??? For my current project (which is stalled somewhat) I am using all the I/O for DAC and ADC connections, leaving no spare pins to wire up a simple DIL SRAM, or even the VGA adapter. I guess I was wondering how many people bought the Pro and then didn't ever use the SDRAM. Given that you possible have to re-work the board to take a different SDRAM, could you make connections for SDRAM on the top layer and SRAM on the bottom layer, allowing you to offer a Pro+ with either SDRAM mounted or SRAM mounted. Just wondering... Anyway Jack, thanks for a great product.
  6. Hi keesj, in case you are monitoring this thread (or get an alert). On Ebay UK at the moment (23-Nov-2017) there is a Papilio set for sale "Papilio Pro Spartan 6 LX9 FPGA + 2 Mega Wing". It is £70 "buy it now". It has been there for a few days. Description in bold. Selling a Papilio Pro FPGA, perfect to learn FPGA with 2 megawing. Papilio Pro - Spartan 6 LX9 FPGA / 64Mbit SDRAM Papilio LogicStart MegaWing Papilio Arcade MegaWing I am not the seller, nor do I have any connection. As usual, let the buyer beware. regards... --Gary P.S. I hate this editor! It seems to insert a paragraph when I hit return. It's just as irratating as the default email behaviour in Thunderbird.
  7. Last week
  8. papilio_zpuino_simulation

    I would like to get a simulation of the zpuino process, but who can help me in the near future? Same simulation as emulation Thanks!
  9. Papilio DUO Gameduino sketches not compiling

    Although putting the 'new' Gameduino library in, this results in graphics not being rendered correctly. (black sprites, characters instead of graphics).
  10. Papilio DUO Gameduino sketches not compiling

    Hi, I did some more testing, and when I downloaded the newest version of the Gameduino library and set the board type correctly to 'AVR - No USB', I did get the source to compile. Could it be that an old version of the Gameduino library has been included with Designlab 1.0.8 ? Kind regards, Paul
  11. Sprint 2

    Here's my source for Sprint 1 and Sprint 2. I think these are in pretty good shape now, both work great, the sound is pretty good, I haven't found any remaining bugs. A really sharp observer may notice two of the cars in Sprint 1 are gray like in Sprint 2, I have since fixed that bug so all three drone cares are black. Sprint2.zip Sprint1.zip
  12. Hi, I'm new here so I hope I'm not breaking any rules by just writing a post to ask a beginner question. Wat I'm trying to do is build the Gameduino examples delivered with Designerstudio 1.0.8 (I tried 1.0.7 and 1.0.5 too), the FPGA circuit runs fine, but the C code won't compile. The errors I get are pasted below : I'm running Designer lab on Mint linux 18.2 Kind regards, Paul ###################################################################################################################33 Arduino: 1.0.8 (Linux), Board: "Papilio DUO - AVR - No USB - ISP" In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:17:0: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:50:39: error: 'prog_uchar' has not been declared static void copy(unsigned int addr, prog_uchar *src, int count); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:61:25: error: 'prog_uchar' has not been declared static void microcode(prog_uchar *src, int count); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.h:62:45: error: 'prog_uchar' has not been declared static void uncompress(unsigned int addr, prog_uchar *src); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:129:47: error: 'prog_uchar' has not been declared void GDClass::copy(unsigned int addr, PROGMEM prog_uchar *src, int count) ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:33: error: variable or field 'microcode' declared void void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:25: error: expected primary-expression before '__attribute__' void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:151:50: error: expected primary-expression before 'int' void GDClass::microcode(PROGMEM prog_uchar *src, int count) ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:242:0: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/font8x8.h:1:16: error: 'prog_uchar' does not name a type static PROGMEM prog_uchar font8x8[] = { ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In static member function 'static void GDClass::ascii()': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:258:28: error: 'font8x8' was not declared in this scope byte b = pgm_read_byte(font8x8 + i); ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: At global scope: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:346:14: error: 'prog_uchar' has not been declared void begin(prog_uchar *s) { ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:368:3: error: 'prog_uchar' does not name a type prog_uchar *src; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In member function 'void GDflashbits::begin(int*)': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:347:5: error: 'src' was not declared in this scope src = s; ^ In file included from /home/paul/work/fpga/papilio/DesignLab-1.0.8/hardware/arduino/avr/cores/arduino/Arduino.h:28:0, from /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:14: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: In member function 'byte GDflashbits::get1()': /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:351:34: error: 'src' was not declared in this scope byte r = (pgm_read_byte_near(src) & mask) != 0; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:355:7: error: 'src' was not declared in this scope src++; ^ /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp: At global scope: /home/paul/work/fpga/papilio/DesignLab-1.0.8/libraries/Gameduino/GD.cpp:374:45: error: 'prog_uchar' has not been declared void GDClass::uncompress(unsigned int addr, prog_uchar *src) ^ Error compiling. This report would have more information with "Show verbose output during compilation" enabled in File > Preferences.
  13. Sprint 2

    I have the audio working now and everything is pretty much done, I do need to tweak some of the values that control the engine sound frequency but otherwise it's ready to go. I also did Sprint 1 because the hardware is almost identical. I'll post the code here soon in case anyone else wants to play with it, I have not had time to port it to the Papilio, been too busy working on more games but that should be simple, other than the ROMs and RAM the code should be platform-agnostic. The biggest challenge with actually playing the Sprint games is the controls, you need some sort of steering wheel with an optical encoder, ideally 36 pulse per revolution. You also need a gear shift, this has 3 switches for 1st, 2nd and 3rd gear, open circuit selects 4th. Super Bug is one that I considered doing at some point, the hardware is a bit different on that though, 6800 based and more closely related to Fire Truck which is another game I'd like to make. For now I'm working on some other 6502 based games, Ultra Tank first and from that I can derive Sprint 4 which is one of the first games to have color. I'm also looking at Atari Football which has an interesting scrolling playfield. Later perhaps Missile Command, it uses relatively simple hardware though it will probably require external RAM.
  14. Sprint 2

    nice!! The screenshot brings up good memories. Super Bug next ? :DD -V
  15. Earlier
  16. Programing Error Codes

    I'm new to the Papilio world. I've created a new .bit file to change some basic functionality within a design. I now get 0x19 or 0x11 as an error code. (failed to configure). Where can I find a detailed description of these error codes? Thanks in advance for any help.
  17. SPI MODE0

    Let me take a look at that and I'll get back to you. Probably there's a bug there, I don't recall testing it with non-usual modes (it's also tricy to implement). Alvie
  18. Hello,I want to share an interesting project of designing a color detector by using RGB LEDs with you. If you have any interests, then keep on reading. Have you ever wanted an automated way to detect the color of an object? By shining light of a certain color on the object and looking at how much light is reflected back, you can tell what color the object is. For example, if you shine a red light on a red object, that light will be reflected back. If you shine a blue light on a red object, the object will absorb some of that light and less of it will be reflected back. https://www.youtube.com/watch?v=DqboDjQX0UE Step 1: Parts Needed I used a PIC 16F887 Microcontroller, but almost any with a pulse-width-modulation capability will work. 1 RGB LED (http://www.kynix.com/Product/Cate/545.html) 1 Microcontroller (http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/overview/overview.html) 1 Standard red LED 1 1k ohm resistor 1 Photoresistor (changes resistance depending on the amount of light shone on it) Some wires I only need the microcontroller and RGB LED to have a wide range of color detectors, but if you only want a circuit that detects one color, you don't need a microcontroller - you only need a bright LED of the color you want to detect. The standard red LED is the "indicator LED" - it lights up when the right color is detected. Step 2: Build the Circuit The schematic is rather simple, and in general form, is shown below. The RGB LED is externally powered by a PWM signal. I put electrical tape around the photoresistor so ambient light doesn't get in - only the light directly above it will be detected. Step 3: The Code This code was written for a Microchip PIC 16F887, but hopefully you can get the general idea. I used the built-in potentiometer on my development board to vary the color spectrum of the RGB LED (and it doesn't go through the entire spectrum because I don't have 3 PWM modules, but it's good enough) Comments included. #include <16F887.h> #include <delay.h> #include "delay.c" #include <stdlib.h> #include <STRING.h> #use delay(clock = 4000000) #FUSES INTRC,NOWDT,NOPUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP #byte CCP1CON = 0x17 #byte CCP2CON = 0x1D #byte PWM1CON = 0x9B int value = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1(int8 value) { output_low(PIN_C2); CCP1CON = value; PWM1CON = 0; } void my_setup_ccp2(int8 value) { output_low(PIN_C1); CCP2CON = value; } //=================================== void main() { //A4 = power source for photodiode output_high(PIN_A4); output_high(PIN_B1); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); setup_adc_ports(sAN0); //Timer/Interrupt setup enable_interrupts(INT_TIMER2); my_setup_ccp1(CCP_PWM); my_setup_ccp2(CCP_PWM); setup_timer_2(T2_DIV_BY_1, 128, 1); //setup_compare(2,COMPARE_PWM|COMPARE_TIMER2); while(1){ // Prevent PIC from going to sleep. //SET PWM DUTY CYCLE output_high(PIN_A5); //Pin A3 is the photodiode connection if(input(PIN_A3) == 1) output_high(PIN_A4); else output_low(PIN_A4); //Read value of potentiometer to change color of LED value = read_adc(); switch (value) { case 0: p1 = value; output_low(PIN_C0); p2 = value; break; case 50: p1 = value; output_high(PIN_C0); p2 = value; break; case 100: p1 = value; output_high(PIN_C0); p2 = value; break; case 150: output_high(PIN_C0); p1 = 50; p2 = value; break; case 200: output_low(PIN_C0); p1 = 0; p2 = value; break; case 250: p1 = 0; p2 = value; output_low(PIN_C0); break; } p1 = value; p2 = 128 - p1; set_pwm1_duty(p1); set_pwm2_duty(p2); } } Step 4: Applications! A simple color detector like this can be used in robotics, or for cool projects like separating legos by color, sorting M&Ms;, or as an aid for color blindness. Hopefully this guide was helpful in enhancing a project you had in mind! LEDs are good for so many things....
  19. hamster tutorial help

    Excellent, glad you got that sorted out too. BTW, I'm working on new papilio pro examples over at gitlab. I've still got a long way to go but it might be interesting to see what you think. https://gitlab.com/Papilio-FPGA/papilio-quickstart-vhdl I've also put together a cloud environment so you don't have to mess around with installing Xilinx ISE to synthesize these new projects. You will need to place your Xilinx.lic file in ~/.Xilinx/Xilinx.lic for it to work. Keep in mind this is all just tests that I'm running, not really ready for prime time yet. But might be worth checking out if you are interested. https://codenvy.io/f?id=factoryyd01z6lgdawlk52f Jack
  20. Path of least resistance for beginner..

    Rob, Glad you got it working, there are tutorials over at http://learn.gadgetfactory.net that can help you get started too. Jack.
  21. hamster tutorial help

    Okay the first line of my ucf file I had: NET switch_1 LOC = "P120" | IOSTANDARD=LVTTL; ; #pap1 was switch (6) p3 instead of NET switch_1 LOC = "P120" | IOSTANDARD=LVTTL; #pap1 was switch (6) p3 The double "; ;" was causing a syntax error I didn't notice. I was actually downloading the previous bit file unknowingly. Downloading to SPI Flash, leaves everything working! -Rob
  22. hamster tutorial help

    Hello. Im able to download pre made bitfiles to my Papilio Pro + LogicStart using the bitloader, and DesignLab, however, Im running into a problem trying to create a simple vhdl example from the hamster fpga ebook. Specifically, Im at section 6.4 "Downloading the Design Into the Device." Do I select FPGA or SPI Flash to download to? The screen-shot seems to imply FPGA. At any rate, the Switches_LEDs project fails to operate on the physical board as I expect. Instead when I download to SPI, 3 of the digits show "8" while one is blank. The LEDs are all off, and the switches have no effect. I did make the following changes from the tutorial for the Pro board: I set device to Spartan6 xc6slx9 tqg144 speed -2 And the constraints file is: # Constraints for Papilio Pro NET switch_1 LOC = "P120" | IOSTANDARD=LVTTL; ; #pap1 was switch (6) p3 NET switch_0 LOC = "P121" | IOSTANDARD=LVTTL; #pap1 was switch(7) p4 NET LED_1 LOC = "P133" | IOSTANDARD=LVTTL; #pap1 was led(6) p16 NET LED_0 LOC = "P134" | IOSTANDARD=LVTTL; #pap1 was led(7) p17 Above changes based on pinout chart: http://papilio.cc/index.php?n=Playground.PapilioPinouts Bit stuck for ideas, any help appreciated. Thanks.
  23. Path of least resistance for beginner..

    Sorry, for anyone following, finally got it working. Had to select a sketch that supported both the Papilio Pro *and* the LogicStart. "MegaWing_Logicstart" was the one. That's great. Now I'll start working on some actual vhdl in the ISE. Cheers
  24. Path of least resistance for beginner..

    Alright, so after writing this, I suspected I have to upload the ZPUino image , which this thread seems to say. I'l dig around that area.
  25. Hello. I recently got around to diving into a Papilio Pro I received about 3 years ago. I struggled through the Windows 10 issues with the missing port/usb detection and the Windows 7 Web Pack ISE crashes. Im now able to download the Papilio Pro 'hello world' bit file example, and confirms it dumps a default ascii table to a virtual COM port. I then downloaded DesignLab, but notice there's no Papilio Pro board (just the Papilo Pro / ZPUino ?) So I think Im out of luck there. I also have a LogicStart mega wing, and was hoping there was some simple precompiled bit file I could download and verify its working properly. Does such a thing exist, or do I have to manually create one with the Xilinx ISE and clips Hamsters fpga ebook? Thanks very much, Rob.
  26. Hi, What for for me currently is to open a project e.g. ZPUino multiple serial ports and add the component (e.g. spi) and start modifying it but I am not 100% sure this is the right way to create a clean library
  27. DesignLab_Examples/00.Papilio_Schematic_Library/Libraries/Wishbone_Peripherals is outdated, you should use the other one... I will have to take a look later at how to update that library, it has been a while. Jack
  28. Sprint 2

    Having wrapped up Super Breakout I focused on Sprint 2 and have that running now, I still need to implement the audio and do some testing but the game seems to be working fine. The photo doesn't really do it justice, there is a lot of moire distortion which is only an artifact of the camera interacting with the scan lines on the CRT. The cars are moving quickly so they appear blurry in the photo but everything looks good in person. These old games are small, Sprint 2 would fit easily in a P1 250k with room to spare. I'll share the code when I'm finished, or if I get tired of working on it and stall.
  29. Papilio Pro still produced?

    Currently you can get them for cheap at seeed studio: https://www.seeedstudio.com/Papilio-Pro-p-1301.html
  30. Load more activity