Help with ZPUino and PapilioPlus

Recommended Posts

Recently, I finally had time to play with ZPUino.


I downloaded the ZPUino IDE (for WIndoze) and got a few sketches working on my P1-250 board.


I'm having issues with my Papilio Plus with the LX9.  I have the ZPUino bit file for the LX9 downloaded to the board (using the Loader 2.4) and it verifies OK.


However, I cannot download compiled sketches via the ZPUino IDE.  The zpuinoprogrammer.exe utility just hangs and I eventually have to kill the zpuinoprogrammer.exe process.


One thing that could be the issue is that the ZPUino IDE does not have a LX9 board option just a LX4 board.  Is there a LX9 board definition I should be using?


Thanks for any help!




Share this post

Link to post
Share on other sites

Still no joy!


I still don't see a board option for a PapilioPlus LX9 in the IDE (just the Pro version).


I tried adding this to the boards.txt file:


zpuino_papilio_pluslx9v.name=ZPUino on Papilio Plus (LX9)
zpuino_papilio_pluslx9v.build.extraCflags=-D__ZPUINO_PAPILIO_PLUS__ -DBOARD_ID=0xA4040F00 -DBOARD_MEMORYSIZE=0x8000 -nostartfiles


I got the board ID number from the ZPUino HDL GIT area and I think the RAM is 2x the LX4 version (read it in a text file somewhere).  But, still no joy.


I'm using this bit file: zpuino-1.0-PapilioPlus-S6LX9.bit from the ZPUino Web page download area.


I'm guessing I don't have the correct bit file or the board definition in the arduino is not correct.


Thanks again for the help.



Share this post

Link to post
Share on other sites



But, will that help much with my Papillo Plus board?




Is there anyway to tell if ZPUino is running on my board before the IDE tries to download to it.  Should the LED be blinking or is there one of the I/O pins toggling.


I tried rebuilding the ZPUino bit file from the source (at github) -- I only saw a Plus lx4 board directory.  I modded the source for a LX9 device. However, the build I created still would not "talk" to the zpuinoprogrammer.exe program.


Thanks again for the help,




Share this post

Link to post
Share on other sites

Ahhhhh! Thats what I get for having such similar names, I didn't notice it was the Plus. The Retrocade download won't help much then. BTW, if you or anyone else wants to trade in their Papilio Plus for a Pro please send me a message at support@gadgetfactory.net. We would be happy to do a trade if you would rather have the Papilio Pro.



Share this post

Link to post
Share on other sites

I am actually on a PPro but i cant figure out how to get this to work..


its doubling the path, and trying to use avrdude whenever i try to program the bootloader..





can you try this IDE ?







i tried this and i get an error when trying to burn the bootloader...

java.io.IOException: Cannot run program "C:\Users\ME\Desktop\arduino-0102\hardware\tools\zpu\bin\C:\Users\ME\Desktop\arduino-0102\hardware/tools/avr/bin/avrdude": CreateProcess error=2, The system cannot find the file specified	at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)blah blah blah

notice the path is doubled... not really sure how to fix or where to even look for that..

Share this post

Link to post
Share on other sites

Ok got bootloader burned on my P500 gave up on the ppro for now..


using this test program

void setup() {  // put your setup code here, to run once: Serial.begin(9600); // This sets up a serial connection, 9.6 kbts/s. delay(3000);  Serial.println("Hello World!");  // Print a line over the connection.}void loop() {  Serial.println("Hello World!");  // Print a line over the connection.}

half the time i get the expected Hello World! output, and the other time I get

   ÒÕKVRªë          ÒÕKVRªë                 ÒÕKVRªë                        ÒÕKVRªë                               ÒÕKVRªë

on both putty and the inbuilt serial monitor..




edit::: put the delay("3000"); as first thing in the setup() section and problem seems gone for now.

hopefully it stays gone :)


edit2::: Seems not 100% gone. blah.

Share this post

Link to post
Share on other sites

it just fails.  will make a screenie in a day or 2 when back at home.


will also try clearing out the old drivers and reloading them to make sure its not a Windows 8 driver issue.


it works a treat on my P500 tho..

Share this post

Link to post
Share on other sites

With serial connections, it's often desirable to "stop" transmitting for a while so that the start and end bits are properly detected. For such a low baudrate, chances are that the receiver is not able to properly synchronize the stream.


example: you are sending this chunk of data repeatedly:


 '0' '10111010' '1' (hex 0xBA being transmitted)


Where first 0 is the start bit, and last 1 the stop bit.


If you capture this stream of data not exactly at the start, you can end up seeing something like this:


 101 0 10111010 1 0 10111010 1 0 10111010 1 ...


this can be interpreted as:


'1' - line idle

'0' - start bit

'10101110' - data (0xAE)

'1' - stop bit

'0' - start bit

'10101110' - data (0xAE)

'1' -stop bit


so on, so on. So, you are indeed synchronizing to the "frame", but the data is not the one you sent.

This is a known issue with asynchronous protocols. Allowing the sender to idle for at least a "10xbaud" time should get the receiver in sync again.

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