Puskyer

New to this tech.

Recommended Posts

Hi,

Just received my papilio pro and RetroCade Synth megawing, have been reading the getting started but not doing so well.

1st, i use Linux 64bit and most of the instructions are for windows, is there a Linux section for install and use instructions or will i have to install windows too?

I did get papilio-prog going, (had to compile it and create some symbolic links in the /opt/GadgetFactory/papilio-loader/programmer/linux32 and any other location like Installer/lin32/...) but when i try to run upgrade-linux in the RetroCade_Synth folder i get errors about it not recognising the SPI chip. Yet, if i use papilio-loader-gui to load quickstart-Papilio_Pro_LX9-v1.5.bit it works?

Not familiar with the papilio-loader-gui to upload the two files below like the script is doing.

Sudo Installer/lin32/papilio-prog -b Installer/lin32/bscan_spi_xc6slx9.bit -f ZPUino_SOC/RetroCade-1.1-zpuino-1.0-papilioPro-S6LX9-RetroCade-1.1.bit

Well to tired to think, will do more reading maybe i will find an answer.

Much to learn with these new toys..

Cheers,

Pasquale

Share this post


Link to post
Share on other sites

Well, setting up a windows 7 64 bit and lets see how it goes.. downloading the install files now.. boy this is more complicated then

I thought.

 

Well live and learn.

 

still have not given up on my Linux environment I prefer to do my playing there, so if anyone has any suggestions I am open to them.

 

Will keep reading the forum for answers.. but lots of the info is from 2011/2012???

 

 

Pasquale

Share this post


Link to post
Share on other sites

Hello Pasquale,

 

Thank you for checking out the Papilio board, most of the documentation has been geared towards Windows. I have been making an effort to ensure things work under Linux in the last couple of months, everything has been developed to be cross platform but it is time consuming to test everything in Windows and Linux.

 

Here is a recent tutorial about installing the tools in Linux. It sounds like you have already progressed beyond this tutorial though.

Share this post


Link to post
Share on other sites

Hello Jack,

 

thank you for the reply.

 

have tried this on three systems two physical (windows 7 and Ubuntu 12.04 64 bit)  and on virtual (windows XP 32 bit).

 

still no luck.

 

when I run 

papilio-prog -c
 
I do not get the following as per you tutorial 
 
Using built-in device list
 
JTAG chainpos: 0 Device IDCODE = 0x24001093 Desc: XC6SLX9
 
ISC_Done = 1
SC_Enabled = 0
House Cleaning = 1
DONE = 1
 
I get :-(
 
Using built-in device list
Cannot find device having IDCODE=24001093
 
Response incompatible with mask xxxx01
ISC_Done       = 0
ISC_Enabled    = 1
House Cleaning = 1
DONE           = 0
 
btw I have been able to get the ZUPino working, but am not getting any luck there either. trying to use the RetroCade_Synth, but when I load the sketch it gives me errors around the modplayers. I did, put all the arduino libraries in place, they were missing after the ZUPino install and also put the modplayer .cpp & .h  from the RetroCadeLite_Sketch folder in the library and still no luck either.
 
Well will key trying, that is what makes this interesting the challenge of making it work..
 
Cheers,
Pasquale
 
 
 
 
 

Share this post


Link to post
Share on other sites

The message means that it cant find the Spartan6 LX9 part in the built-in device list.  This should be compiled-in as of version 2.4.

 

Is this using the version of papilio-prog that you compiled yourself? If so, look at the file devlist.h and make sure it has entries for Spartan6 LX4 - LX45.  If not then you have very old source files.

Share this post


Link to post
Share on other sites

Thank you, mkarisson.

 

 

just figured it out and moved the "devlist.txt" in the right place, strange that it was not pulled when I the the git clone or maybe it is not there either I will have to go back and check.

 

 

now I have a new message relating to my Flash memory???? thought his software was for the papilio pro and  RetroCade Synth??? :-(

 

pusky@pusky-server:~/workingfolder/papilio/RetroCade_Synth$ ./upgrade-linux.sh 
Using devlist.txt
JTAG chainpos: 0 Device IDCODE = 0x24001093 Desc: XC6SLX9
 
Uploading "Installer/lin32/bscan_spi_xc6slx9.bit". 
Programming External Flash Memory with "ZPUino_SOC/RetroCade-1.1-zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.1.bit".
Found Macronix Flash (Pages=2048, Page Size=256 bytes, 4194304 bits).
Bit file does not fit into Flash memory.
Error occured.
 
 
on to more troubleshooting...
Cheers,

Share this post


Link to post
Share on other sites

Huston we have a semi touchdown...

 

so it seems that the "devlist.txt" even though it is located in the same folder as the papilio-prog, it is looking for it in the same folder you execute the command in. so I copied it into the /workingfolder/papilio/RetroCade_Synth/ folder and now it executes. {yaa}

 

pusky@pusky-server:~/workingfolder/papilio/RetroCade_Synth$ sudo Installer/lin32/papilio-prog -v -b Installer/lin32/bscan_spi_xc6slx9.bit -f ZPUino_SOC/zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.0.bit
Using devlist.txt
JTAG chainpos: 0 Device IDCODE = 0x24001093 Desc: XC6SLX9
 
Uploading "Installer/lin32/bscan_spi_xc6slx9.bit". Done.
Programming time 663.5 ms
 
Programming External Flash Memory with "ZPUino_SOC/zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.0.bit".
Found Macronix Flash (Pages=2048, Page Size=256 bytes, 4194304 bits).
Erasing    :
.............................Ok
Verifying  :
..Pass
Programming :
..Ok
Verifying  :
..Pass
Done.
SPI execution time 61809.2 ms
USB transactions: Write 7578 read 7410 retries 11034
 
 
not working with either of the following
 
RetroCade-1.0-zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.0.bit
RetroCade-1.1-zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.1.bit
 
but worked with this one. now need to figure our the ZUPino compile issues and I can start playing..... :-))
 
zpuino-1.0-PapilioPro-S6LX9-RetroCade-1.0.bit

 

 

Cheers,

Share this post


Link to post
Share on other sites

Well, it thinks the Macronix part only has 2048 pages when in fact it has 32768 pages as defined in progalgspi.cpp.

Again, this indicates either you are using an old binary or have compiled a binary from old sources.  The correct size of the Macronix part is in version 2.4 and later.

 

It should look like this:

 

$ ./papilio-prog.exe -b bscan_spi_lx9_qfp144.bit -s e -v
Using built-in device list
JTAG chainpos
: 0 Device IDCODE = 0x04001093     Desc: XC6SLX9
Uploading "bscan_spi_lx9_qfp144.bit". DNA is 0xb99dc9c86e74a6fe
Done.
Programming time 545.0 ms
Erasing External Flash Memory.
Found Macronix Flash (Pages=32768, Page Size=256 bytes, 67108864 bits).
Erasing :
............................Ok
Verifying :
.......................................................................
........Pass
Done.
SPI execution time 52655.9 ms
USB transactions
: Write 32976 read 32807 retries 0

  • Like 1

Share this post


Link to post
Share on other sites

No Version number?? but I did compile it from source but I got the source from the https://github.com/GadgetFactory/Papilio-Loader I will keep trying.. btw, I was compiling the ZPUino and I seem to be missing a file zpu_tools_linux64.tar.bz2 know where to get it?

 

 

pusky@pusky-server:~/workingfolder/papilio$ papilio-prog -v -h
 
Usage:papilio-prog [-v] [-j] [-f <bitfile>] [-b <bitfile>] [-s e|v|p|a] [-c] [-C] [-r] [-A <addr>:<binfile>]
   -h print this help
   -v verbose output
   -j Detect JTAG chain, nothing else
   -f <bitfile> Main bit file
   -b <bitfile> bscan_spi bit file (enables spi access via JTAG)
   -s [e|v|p|a] SPI Flash options: e=Erase Only, v=Verify Only,
                p=Program Only or a=ALL (Default)
   -c Display current status of FPGA
   -C Display STAT Register of FPGA
   -r Trigger a reconfiguration of FPGA
   -a <addr>:<binfile> Append binary file at addr (in hex)
   -A <addr>:<binfile> Append binary file at addr, bit reversed

Share this post


Link to post
Share on other sites

your right.. will go and make sure I get the 2.5..

 

Thanks..

 

pusky@pusky-server:~/workingfolder/papilio/Papilio-Loader$ more Readme.txt 
Papilio Loader - Current Version 2.2
 
The Papilio Loader is a branch of xc3sprog (http://sourceforge.net/projects/xc3sprog/) that is used to load bit files to 
the Open Source Papilio FPGA boards (http://papilio.cc) made by Gadget Factory (http://www.gadgetfactory.net).
 
Papilio Loader Homepage:
 
Directories:
Fpga - Contains bit files that allow SPI Flash to be programmed.
Helper-App - A collection of scripts to ease loading bit files.
Installer - InstallJammer project.
Java-GUI - A Java GUI that wraps the C++ application. (Recommended)
Program - The C++ application that can be compiled under Linux. View the Readme for instructions on cross compili
ng for Windows.
 
 
CHANGELOG
8/31/2012 Version 2.2
Added support for Macronix 64Mb SPI Flash chips.
Added ability to Erase Flash chip from Explorer context menu.
 
6/29/2012 Version 2.1
Java Gui added.

Share this post


Link to post
Share on other sites

thank you mkarlsson

 

 

here is what I had
pusky@pusky-server:~/workingfolder/papilio/Papilio-Loaderold$ git remote show origin
* remote origin
  HEAD branch: master
  Remote branches:
    Papilio_Programmer_V1.6 tracked
    Papilio_Programmer_V2.1 tracked
    master                  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
 
 
here is what I have now 
pusky@pusky-server:~/workingfolder/papilio/Papilio-Loader$ git remote show origin
* remote origin
  HEAD branch: master
  Remote branches:
    Papilio_Programmer_V1.6 tracked
    Papilio_Programmer_V2.1 tracked
    master                  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
 
from the ReadMe.txt  "Papilio Loader - Current Version 2.5"
 
and with your test 
pusky@pusky-server:~/workingfolder/papilio/Papilio-Loader/papilio-prog$ papilio-prog -b bscan_spi_xc6slx9.bit -s e -v
Using built-in device list
JTAG chainpos: 0 Device IDCODE = 0x24001093 Desc: XC6SLX9
 
Uploading "bscan_spi_xc6slx9.bit". DNA is 0x79b95b0c29c02aff
Done.
Programming time 663.0 ms
Erasing External Flash Memory.
Found Macronix Flash (Pages=32768, Page Size=256 bytes, 67108864 bits).
Erasing    :
..............................Ok
Verifying  :
................................................................................................................................Pass
Done.
SPI execution time 130342.3 ms
USB transactions: Write 32977 read 32808 retries 29013
 
 
no  "devlist.txt"  requried..
 
now on to the ZPUino issues I have..
 
Thank you very much for your help.

Share this post


Link to post
Share on other sites

The person at the end of the keyboard cased the problem... lol

 

The github repository I first cloned was an older one from hamsternz and not gadgetfactory's.. that will teach me for tryng to rush it..

 

all is now as it should be, just need to get the ZPUino sketches working, I get some errors when compiling them, some were due to missing libraries or just in the wrong place.

 

learning lots, have to wait until Nov 9th for my bandwidth to reset so I can download the xilinx design tools wow 8Gig.

 

so off to playing with the ZPUino..

 

cheers,

Share this post


Link to post
Share on other sites

OK, now that things are working I have been playing with this new toy.. got to say great work to all the people that developed this idea....

 

I have a bit of a back ground in digital circuits (took them in high school and College 30 odd years ago). Now bare with me I am new to this technology, I have an Arduino Uno and have done some basic sketches (LEDs, motors and such) to re-learn much of what I have forgotten, but some of these new concepts are blowing my mind.

 

What are wishbone peripherals? are they virtual devices? Not sure I understand the relationship between wishbone slots and the IO pins interfacing to the outside. I am sure that the info is somewhere in the wiki or forums but I have not been able to get my mind around the information I have found to date.

 

I have finally been able to download the Xilinx IDE and will look at some of the UCF (User Constraint Files) maybe that will help, although I am not sure what a UCF is yet. started to read IntroToSpartanFPGABook.pdf & free_range_vhdl.pdf but it is so overwhelming with information that it will take time to sink in.

 

btw, do you know if with the free licence I can install the software on both Linux and Windows I would like to see which one works the best?

 

 

 

anyways here I am rambling and not reading your tutorials, any assistance would be helpful.

 

Cheers,

Pasquale

Share this post


Link to post
Share on other sites

Hi, FYI 

 

on you link http://gadgetfactory.net/learn/2013/03/20/vhdl-101-beginners-guide-to-vhdl/ when I click on the links for the wiki I get the following..

 

Not Found

The requested URL /wiki/VHDL_101_comb_logic was not found on this server.

 

but the link going to http://www.designspark.com/ works and I found what you are referencing at http://www.designspark.com/eng/blog/vhdl-101--combinational-logic

 

Cheers,

Pasquale

 

Update: from the http://www.designspark.com/eng/blog/vhdl-101--combinational-logic when I chose what is VHDL i get an error and [ here ] on his pange I get the same error as above for the wiki.. it is just not my day or week for learning stuff.. lol

Share this post


Link to post
Share on other sites

A UCF file at its most basic assigns names to the FPGA pins so in your projects you can specify inputs and outputs by name and these will be mapped to those exact FPGA pins in the UCF. Other things you can specify in the UCF are pull-ups, the IO standard of the port which controls the logic level voltages, you can also specify clocking constraints but this is a more advanced topic.

Wishbone is an interface standard. For a module to be wishbone compliant it must expose a minimum set of signals such as an input bus, an output bus and certain handshake signals. There is a wishbone specification you can read in detail if you wish, just google for it :)

Share this post


Link to post
Share on other sites

Thank alex, i will do some searching on line, there is so much information my head herts.

I have only found out about this technology a few weeks ago when i stumbled up on to the gadget factory site.

Cheers

Share this post


Link to post
Share on other sites

finally got some time to go back to the RetroCade_Synth ZPUino and try an compile it again, and still no luck. so the I tried the Papilio One QuickStart Example and it works on both the papilio ports and on the RetroCade_Synth ports with the Button/LED Wing. then when I try to compile the RetroCade_Sketch I get errors

 

lets see if someone can tell me what I am doing wrong.

 

1) created a sketchbook folder and pointed the ZAP to it.

2) created a folder in the library  section for the RetroCade_Sketch libraries. based on some of the initial errors (I had not put them in the library folder the first time) these libraries are in the right place no more missing files error.

3) then loaded ZAP and then the sketch, when I compile it it gives me the following of errors.

 
Found smallfs directory
F:\workspace\papilio\ZPUino/hardware/tools/zpu/bin/mksmallfs C:\Users\pusky\AppData\Local\Temp\build1847778306349152700.tmp/smallfs.dat F:\workspace\arduino\sketchbook\RetroCade_Synth\RetroCade_Sketch/smallfs 
F:\workspace\papilio\ZPUino/hardware/tools/zpu/bin/mksmallfs C:\Users\pusky\AppData\Local\Temp\build1847778306349152700.tmp/smallfs.dat F:\workspace\arduino\sketchbook\RetroCade_Synth\RetroCade_Sketch/smallfs 
SmallFS: Packed 8 files sucessfully
F:\workspace\papilio\ZPUino/hardware/tools/zpu/bin/mksmallfs returned 2,679,940
processing.app.debug.RunnerException: Error compiling.
at processing.app.debug.Compiler.generateSmallFS(Compiler.java:75)
at processing.app.debug.Compiler.compile(Compiler.java:106)
at processing.app.Sketch.build(Sketch.java:1572)
at processing.app.Sketch.build(Sketch.java:1551)
at processing.app.Editor$DefaultRunHandler.run(Editor.java:1937)
at java.lang.Thread.run(Thread.java:619)
 

any help is appreciate,

 

Thanks,

Share this post


Link to post
Share on other sites

Well did some troubleshooting... it seems to be something around the mksmallfs...

not sure what triggers the making of the mksmallfs, but from what I can see is that if the folders exit where the sketch is it executes mksmallfs. so I removed the folders and the sketch now compiles????

 

 

any ideas as to why this is not working, other must be using the same downloads I am?

Share this post


Link to post
Share on other sites

Well it now works, with my removing the smallFS folders, it no-longer executes mksmallfs so compiling finishes.

 

one strange thing though, even though it does not execute mksmallfs once I upload the sketch to the papilio and I check using the small joystick there are still files under the SmallFS selections???

 

 

well on to other things at least it is working...

 

Cheers,

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now