<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; User Favorites: coreyfro</title>
		<link><a href='http://forums.leaflabs.com/profile.php?id=137'>137</a></link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:17:43 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?profile=137" rel="self" type="application/rss+xml" />

		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37&amp;page=2#post-152</link>
			<pubDate>Mon, 31 May 2010 11:28:34 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">152@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Thanks beckel for posting. Its worth noting that virtualBox is worse that vmware on this issue. It takes virtualBox an awful lot of setup to get the device filters working for permanent device passthrough and the device enumeration/driver loading process takes long enough that the bootloader is often gone by the time the drivers get loaded. In vmware, you can usually get up and running just by setting the programDelay on the high side, say 1200 or so. &#60;/p&#62;
&#60;p&#62;If anyone get things working on virtualBox, wed love to hear about it!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>beckel on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37&amp;page=2#post-151</link>
			<pubDate>Mon, 31 May 2010 11:11:53 +0000</pubDate>
			<dc:creator>beckel</dc:creator>
			<guid isPermaLink="false">151@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Just for the record, this was resolved. I went through some debugging with postlathian in IRC. I just had a hell of a time getting into perpetual bootloader mode but once I did I was able to upload code. The button pressing sequence is very finnicky. &#60;/p&#62;
&#60;p&#62;Another thing we learned is that using a VM complicates the process. I was using an Ubuntu VM on an OS X machine. It 'seems to' take longer than normal to re-enumerate so for right now I am probably going to modify the bootloader to default to perpetual mode. Also, make sure your USB device passthroughs are working properly if your dfu-util cant't find the device.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37&amp;page=2#post-150</link>
			<pubDate>Sun, 30 May 2010 17:31:26 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">150@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I think what is happening is that the stack dump from the gnu io error is mucking up the timing synchronization between reset and upload. Based on your description, your board sounds OK. The &#34;default user code&#34; is a test program that dumps a bunch of info over serial, not blinky. &#60;/p&#62;
&#60;p&#62;Asserts are indicated by a fading LED, not blinking, so youre ok there.&#60;br /&#62;
The ACM number incrementing is caused when the serial device (maple running user code) detaches while some program (such as the serial monitor, or minicom, or screen...or anything) still has the device open. Its likely that that the big bag of stack trash from gnu.io is related to the serial port not closing and thus related with the ACM number incrementing. &#60;/p&#62;
&#60;p&#62;For now (until we push a better fix in 0.0.4) you can use perpetual bootloader mode. To enter this mode, hit reset, then immediately after (during the quick blinks) hold down the boot button on the side labelled BUT. Continue to hold it until the longer blinks start. Now try uploading (you wont have a serial port in this mode, but after uploading code you should have it again). &#60;/p&#62;
&#60;p&#62;Sorry about this issue, its essentially one of &#34;tuning&#34; the delays, which is a nasty solution, were working on something more robust. Based on results on the local machines we thought we had pretty wide margins to play in, but apparently they were narrower than we thought. &#60;/p&#62;
&#60;p&#62;The effect is also totally non deterministic. On my machine, I get successful uploads to RAM and FLASH with a programDelay of 1000 about 5/6 times.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>beckel on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37&amp;page=2#post-149</link>
			<pubDate>Sun, 30 May 2010 16:41:16 +0000</pubDate>
			<dc:creator>beckel</dc:creator>
			<guid isPermaLink="false">149@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Hi all, I have a myriad of problems here and I feel like they are mostly related to issues dealt with in this thread. &#60;/p&#62;
&#60;p&#62;For starters, my environment is Ubuntu 9.10. I just got a Maple board and it had '27' written on the anti-static bag. I had tried this on windows but could not get it working. Also, I am using the openjdk and I am running the ide as root. Now onto the issues...&#60;/p&#62;
&#60;p&#62;First off, when I first powered up the board, I don't think it ever ran the 'default user code'. It would go through the startup process, quick blinks then slow blinks, then the LED would just remain lit. I am assuming the default user code is some kind of blink program?? so this is some kind of mistake?? After trying to program to RAM, it now starts up and blinks at ~3-4 times a second. I am not sure if this is an assertion failure?? This started occurring the first time I got a successful restart from the ide. That is the real problem. I can't get my modified blink program onto the board...&#60;/p&#62;
&#60;p&#62;I created my own copy of the blink sketch and changed the on and off values to 2000 and 500 for an obvious visual uniqueness, then i set the board to write to RAM, then I set the serial port to ttyACM0. I attempted an upload. The code compiled fine and here is the end of the message:&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
............&#60;/p&#62;
&#60;p&#62;Binary sketch size is reported above. Check it against a 17000 byte maximum)&#60;/p&#62;
&#60;p&#62;Loading via dfu-util&#60;/p&#62;
&#60;p&#62;Resetting to bootloader via DTR pulse&#60;/p&#62;
&#60;p&#62;Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)..........&#60;/p&#62;
&#60;/blockquote&#62;
&#60;p&#62;The rest of this Java stack trace appears to be similar to coreyfro's. Mine also ends with the same &#34;No DFU device found&#34; message. Trying again at this point results in this message:&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
Binary sketch size is reported above. Check it against a 17000 byte maximum)&#60;/p&#62;
&#60;p&#62;Loading via dfu-util&#60;/p&#62;
&#60;p&#62;Resetting to bootloader via DTR pulse&#60;/p&#62;
&#60;p&#62;Reset via USB Serial Failed! Did you select the serial right serial port? Or perhaps youre in perpetual bootload mode, continuing to attempt dfu programming anyway...&#60;br /&#62;
No DFU capable USB device found&#60;br /&#62;
dfu-util - (C) 2007 by OpenMoko Inc.&#60;br /&#62;
This program is Free Software and has ABSOLUTELY NO WARRANTY &#60;/p&#62;
&#60;/blockquote&#62;
&#60;p&#62;At this point I checked the Tools-&#38;gt;Serial Port option and now I have an unchecked ttyACM1. It appears that everytime the board resets it switches ports and that number is increased. &#60;/p&#62;
&#60;p&#62;I tried fiddling with the Delay After Reset field as suggested but that didn't get me anywhere. Any help would be greatly appreciated. I can provide more info if needed.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-148</link>
			<pubDate>Sun, 30 May 2010 15:33:27 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">148@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The root issue is also fixed, but it takes some hacking depending on your system.&#60;br /&#62;
On newer ubuntu dists (like karmic) just copying the udev rule should do the trick, and restart your udev (not sure if thats in the script...but sudo /etc/init.d/udev restart)&#60;/p&#62;
&#60;p&#62;on debian and older dists, you need to create the group &#34;plugdev&#34; and add yourself to it, then do the above&#60;/p&#62;
&#60;p&#62;$ sudo addgroup plugdev&#60;br /&#62;
$ sudo usermod -G plugdev your-user-name&#60;/p&#62;
&#60;p&#62;let me know if that helped.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>coreyfro on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-147</link>
			<pubDate>Sun, 30 May 2010 13:57:08 +0000</pubDate>
			<dc:creator>coreyfro</dc:creator>
			<guid isPermaLink="false">147@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;GOOD! I'm glad I have an uninteresting error.  It's the interesting ones that leave you with broken hardware for months ;-)&#60;/p&#62;
&#60;p&#62;I'll work around it for now.  We'll see if it still works when I have a larger piece of code to send it's way.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-146</link>
			<pubDate>Sun, 30 May 2010 11:53:06 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">146@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Yea that last one I have definitely seen before, but oddly its not fatal. In fact, the upload was working for me when I saw it. It started cropping up when we upgraded versions of our java serial libs (librxtx). This upgrade did buy us the ability to list ttyACM0 in the serial port panel, whereas the earlier version did not (you had to symlink it). Its on our bug stack. Let us know if you learn anything.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>coreyfro on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-145</link>
			<pubDate>Sun, 30 May 2010 11:06:37 +0000</pubDate>
			<dc:creator>coreyfro</dc:creator>
			<guid isPermaLink="false">145@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Oh, also, I was running as root.&#60;/p&#62;
&#60;p&#62;Yeah, if I simply try changing the timers, I get all sorts of interesting errors.  There are three outcomes and I cannot determine what invokes which:&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
No DFU capable USB device found&#60;br /&#62;
dfu-util - (C) 2007 by OpenMoko Inc.&#60;br /&#62;
This program is Free Software and has ABSOLUTELY NO WARRANTY
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;And unless I run as root&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
Loading via dfu-util&#60;/p&#62;
&#60;p&#62;Resetting to bootloader via DTR pulse&#60;/p&#62;
&#60;p&#62;dfu-util - (C) 2007 by OpenMoko Inc.&#60;br /&#62;
This program is Free Software and has ABSOLUTELY NO WARRANTY&#60;/p&#62;
&#60;p&#62;Opening USB Device 0x1eaf:0x0003...&#60;br /&#62;
Found Runtime: [0x1eaf:0x0003] devnum=0, cfg=0, intf=0, alt=0, name=&#34;UNDEFINED&#34;&#60;br /&#62;
Claiming USB DFU Interface...&#60;br /&#62;
Cannot claim interface: could not claim interface 0: Operation not permitted
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;And this happens about 20% of the time.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Invalid argument in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
Error inside Serial.serialEvent()&#60;br /&#62;
java.io.IOException: Input/output error in nativeavailable&#60;br /&#62;
	at gnu.io.RXTXPort.nativeavailable(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1596)&#60;br /&#62;
	at processing.app.Serial.serialEvent(Serial.java:215)&#60;br /&#62;
	at gnu.io.RXTXPort.sendEvent(RXTXPort.java:772)&#60;br /&#62;
	at gnu.io.RXTXPort.eventLoop(Native Method)&#60;br /&#62;
	at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1641)&#60;br /&#62;
No DFU capable USB device found&#60;br /&#62;
dfu-util - (C) 2007 by OpenMoko Inc.&#60;br /&#62;
This program is Free Software and has ABSOLUTELY NO WARRANTY
&#60;/p&#62;&#60;/blockquote&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-144</link>
			<pubDate>Sun, 30 May 2010 01:36:27 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">144@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Heh, great, although im concerned that simple tweaking of the delay was not sufficient. If you really want to get dirty, you can recompile the bootloader with an even longer delay, its in git: maple-bootloader/config.h  add to the number of startup blinks. Use bryans instructions elsewhere in the forums for bootloader upgrade issues. However, its pretty long as is, there should be a programDelay that works for you. &#60;/p&#62;
&#60;p&#62;Just a point of clarification. It should ALWAYS work in infinite bootloader mode (well, this problem wont exist anyway...). Also, the serial port should not enumerate until AFTER the bootloader has exited. The serial port is compiled into user programs via libmaple. It is not a part of the bootloader. The Bootloader should enumerate as Maple 003, which is a DFU device.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>coreyfro on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-143</link>
			<pubDate>Sun, 30 May 2010 00:49:33 +0000</pubDate>
			<dc:creator>coreyfro</dc:creator>
			<guid isPermaLink="false">143@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Recreated success.  Under Ubuntu, I just simply hit the reset button TWICE moments before I hit the upload button and by the time the IDE is ready to upload, Linux has had enough time to enumerate the serial port.&#60;/p&#62;
&#60;p&#62;Button Mashing 4 teh Win!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>coreyfro on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-142</link>
			<pubDate>Sun, 30 May 2010 00:45:39 +0000</pubDate>
			<dc:creator>coreyfro</dc:creator>
			<guid isPermaLink="false">142@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;OK, well that info was enough to get SOMETHING uploaded.  It took these tweaks, and some just brute force hammering and button mashing to get it working.&#60;/p&#62;
&#60;p&#62;My windows install WILL NOT work here because windows takes all of 10 seconds to go from reset to reenumeration of serial port.  By which, I am sure the bootloader window is long gone.&#60;/p&#62;
&#60;p&#62;I'll have to look in to the infinite bootlader mode and how to use it.  I've seen the message you refer to, but didn't know what to make of it.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-141</link>
			<pubDate>Sat, 29 May 2010 23:27:51 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">141@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Post post script: this issue should be fixed in 0.0.4, which includes a bump to default program delay to 1000. The program delay is the lag between when the board is reset, and when dfu-util is actually called. During this delay, both the maple bootloader needs to boot and the host OS needs to load the DFU drivers...unfortunately, the latter operation is not a fast process, and highly nondeterministic. 0.0.4 should be posted soon.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-140</link>
			<pubDate>Sat, 29 May 2010 23:22:26 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">140@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Oh, and additionally:&#60;/p&#62;
&#60;p&#62;when in &#34;infinite bootloader mode&#34; the board wont detect. This is OK. This is because the bootloader has no serial port! However, it should show up in your usb devices list as a DFU device, but not in the ide serial port menu. &#60;/p&#62;
&#60;p&#62;The board will still program just fine in this mode! The serial port is only used during upload in order to send the reset command. In infinite bootloader mode, no reset is needed, so dfu just proceeds along its merry way. The ide should report this to you. &#60;/p&#62;
&#60;p&#62;Happy hacking, sorry for the troubles. Obviously a plug-and-play is what we were going for, I'm very dissapointed we missed that mark because of this issue (that I was keenly aware of as a potential misstep and tried hard to prevent...ugh!)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-139</link>
			<pubDate>Sat, 29 May 2010 23:19:25 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">139@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Good news everyone! I was gritting my teeth waiting for this problem to be reported because I am well familiar with it and its solution. &#60;/p&#62;
&#60;p&#62;TLDR:   Go to preferences menu, set the &#34;program delay&#34; to about 1000, or fiddle with it. On older java builds, this part of the dialogue has been reported malrendered, in which case, hit the &#34;edit preferences.txt&#34; at the bottom and find the programDelay field, mod a restart the ide. &#60;/p&#62;
&#60;p&#62;The actual story:&#60;br /&#62;
Read &#60;a href=&#34;http://leaflabs.com/docs/maple-bootloader/&#34; rel=&#34;nofollow&#34;&#62;http://leaflabs.com/docs/maple-bootloader/&#60;/a&#62; for some info on how the bootloader works. Unlike arduino and maple r1, where the DFU driver (or FTDI serial driver in arduino's case) is always loaded, Maple r3 only loads the DFU driver temporarily during startup. In user mode, Maple runs as a CDC ACM virtual COM device, which uses a different driver. &#60;/p&#62;
&#60;p&#62;Thus, during the upload process, the board resets, unloading the CDC ACM driver, then reboots as a DFU device, loading a different driver. The unloading and reloading process takes different amounts of time depending on machine configuration/OS and operating load. Thus it was tricky business to minimize this delay and still have it work out of the box. Clearly we were too aggressive here. In the later builds, the delay will default to 1000 instead of 600 (ms). &#60;/p&#62;
&#60;p&#62;Whats really annoying, is that the internal bootloader time-to-live has to be long enough to allow for all this nonsense and the first DFU transaction request. Which is why its set for so long right now (6 seconds). &#60;/p&#62;
&#60;p&#62;Weve been toying with different solutions to this problem, please do offer your feedback on the proposals, the leaders are:&#60;/p&#62;
&#60;p&#62;1) If the board is reset via the serial DTR pulse (that is, reset from the IDE for programming), make the bootloader live longer...really long, like 7 seconds. Otherwise, make the bootloader quick..maybe 800ms, enough to put it perpetual mode.&#60;br /&#62;
The downside here is that wed have to link libmaple and the bootloader codewise through some runtime pointers, which is pretty hairy, although we did it in R1, where the bootloader provided all of the usb support to the user lib via a runtime library. &#60;/p&#62;
&#60;p&#62;2) Add some hook into the IDE to call DFU util immediately AFTER PROVING that the device's drivers have loaded up. This would be ideal, but has the downside of being different on every platform. Also it doesnt solve the fact that some OS's really do take a while to load the drivers and so the bootloader delay is still long. &#60;/p&#62;
&#60;p&#62;Sorry for the hassle, we tested on a bunch of machines to arrive at the 600 number, but I guess that just wasnt enough.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>poslathian on "Maple disconnects under Windows and Linux when uploading program"</title>
			<link>http://forums.leaflabs.com/topic.php?id=37#post-138</link>
			<pubDate>Sat, 29 May 2010 23:19:25 +0000</pubDate>
			<dc:creator>poslathian</dc:creator>
			<guid isPermaLink="false">138@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Good news everyone! I was gritting my teeth waiting for this problem to be reported because I am well familiar with it and its solution. &#60;/p&#62;
&#60;p&#62;TLDR:   Go to preferences menu, set the &#34;program delay&#34; to about 1000, or fiddle with it. On older java builds, this part of the dialogue has been reported malrendered, in which case, hit the &#34;edit preferences.txt&#34; at the bottom and find the programDelay field, mod a restart the ide. &#60;/p&#62;
&#60;p&#62;The actual story:&#60;br /&#62;
Read &#60;a href=&#34;http://leaflabs.com/docs/maple-bootloader/&#34; rel=&#34;nofollow&#34;&#62;http://leaflabs.com/docs/maple-bootloader/&#60;/a&#62; for some info on how the bootloader works. Unlike arduino and maple r1, where the DFU driver (or FTDI serial driver in arduino's case) is always loaded, Maple r3 only loads the DFU driver temporarily during startup. In user mode, Maple runs as a CDC ACM virtual COM device, which uses a different driver. &#60;/p&#62;
&#60;p&#62;Thus, during the upload process, the board resets, unloading the CDC ACM driver, then reboots as a DFU device, loading a different driver. The unloading and reloading process takes different amounts of time depending on machine configuration/OS and operating load. Thus it was tricky business to minimize this delay and still have it work out of the box. Clearly we were too aggressive here. In the later builds, the delay will default to 1000 instead of 600 (ms). &#60;/p&#62;
&#60;p&#62;Whats really annoying, is that the internal bootloader time-to-live has to be long enough to allow for all this nonsense and the first DFU transaction request. Which is why its set for so long right now (6 seconds). &#60;/p&#62;
&#60;p&#62;Weve been toying with different solutions to this problem, please do offer your feedback on the proposals, the leaders are:&#60;/p&#62;
&#60;p&#62;1) If the board is reset via the serial DTR pulse (that is, reset from the IDE for programming), make the bootloader live longer...really long, like 7 seconds. Otherwise, make the bootloader quick..maybe 800ms, enough to put it perpetual mode.&#60;br /&#62;
The downside here is that wed have to link libmaple and the bootloader codewise through some runtime pointers, which is pretty hairy, although we did it in R1, where the bootloader provided all of the usb support to the user lib via a runtime library. &#60;/p&#62;
&#60;p&#62;2) Add some hook into the IDE to call DFU util immediately AFTER PROVING that the device's drivers have loaded up. This would be ideal, but has the downside of being different on every platform. Also it doesnt solve the fact that some OS's really do take a while to load the drivers and so the bootloader delay is still long. &#60;/p&#62;
&#60;p&#62;Sorry for the hassle, we tested on a bunch of machines to arrive at the 600 number, but I guess that just wasnt enough.
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
