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!




Link to comment
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: on Papilio Plus (LX9)
zpuino_papilio_pluslx9v.upload.speed=115200 -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.



Link to comment
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,




Link to comment
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 We would be happy to do a trade if you would rather have the Papilio Pro.



Link to comment
Share on other sites

  • 3 months later...

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... 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( blah blah

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

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.