Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://forums.parallax.com/categories/propeller-1-multicore-microcontroller/feed.rss

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rss version="2.0"
  3.    xmlns:content="http://purl.org/rss/1.0/modules/content/"
  4.    xmlns:dc="http://purl.org/dc/elements/1.1/"
  5.    xmlns:atom="http://www.w3.org/2005/Atom">
  6.    <channel>
  7.        <title>Propeller 1 — Parallax Forums</title>
  8.        <link>https://forums.parallax.com/</link>
  9.        <pubDate>Fri, 01 Mar 2024 06:55:40 +0000</pubDate>
  10.        <language>en</language>
  11.            <description>Propeller 1 — Parallax Forums</description>
  12.    <atom:link href="https://forums.parallax.com/categories/propeller-1-multicore-microcontroller/feed.rss" rel="self" type="application/rss+xml"/>
  13.    <item>
  14.        <title>Simpleide simpletools problem?</title>
  15.        <link>https://forums.parallax.com/discussion/175743/simpleide-simpletools-problem</link>
  16.        <pubDate>Sat, 24 Feb 2024 15:48:45 +0000</pubDate>
  17.        <category>Propeller 1</category>
  18.        <dc:creator>Rsadeika</dc:creator>
  19.        <guid isPermaLink="false">175743@/discussions</guid>
  20.        <description><![CDATA[<p>Up until recently I have been using libfdserial and libsimpletext without any problems. I am using a program that that uploads data via serial to my Raspberry Pi. On the SimpleIDE side the program runs as expected, but on the Raspberry Pi side,using Python, I have to use decode() on the incoming data. This is where the problem lies, ..."can't decode byte 0xea in position 0"... Not sure what is causing this problem? Any help will be appreciated.</p>
  21.  
  22. <p>Thanks<br />
  23. Ray</p>
  24. ]]>
  25.        </description>
  26.    </item>
  27.    <item>
  28.        <title>[Solved] Program works only when connected to PC via USB -- but I want to cut the cord!</title>
  29.        <link>https://forums.parallax.com/discussion/175742/solved-program-works-only-when-connected-to-pc-via-usb-but-i-want-to-cut-the-cord</link>
  30.        <pubDate>Sat, 24 Feb 2024 05:58:47 +0000</pubDate>
  31.        <category>Propeller 1</category>
  32.        <dc:creator>mpark</dc:creator>
  33.        <guid isPermaLink="false">175742@/discussions</guid>
  34.        <description><![CDATA[<p>I am dusting off an old project built on a USB protoboard. The program emits a lot of serial data that shows up in the Parallax serial terminal; so far so good. I actually don't care about the data and want to run the program disconnected from the PC, but when I try, the program does not work reliably. It'll do its thing for a little while, then stop briefly, then start working again, then stop... Not sure if it's rebooting or what. I assume the problem is related to the serial data having no place to go.</p>
  35.  
  36. <p>I vaguely recall that this was a known issue back in the day. Anyone remember what's going on and how to work around it?</p>
  37.  
  38. <p>I tried commenting out the term.init call (term being fullduplexserial) but that didn't help. In fact I think the program stopped working altogether, though it's hard to tell.</p>
  39.  
  40. <p>Any help appreciated!</p>
  41. ]]>
  42.        </description>
  43.    </item>
  44.    <item>
  45.        <title>Propeller schmartmodule</title>
  46.        <link>https://forums.parallax.com/discussion/175714/propeller-schmartmodule</link>
  47.        <pubDate>Sat, 03 Feb 2024 09:27:42 +0000</pubDate>
  48.        <category>Propeller 1</category>
  49.        <dc:creator>VonSzarvas</dc:creator>
  50.        <guid isPermaLink="false">175714@/discussions</guid>
  51.        <description><![CDATA[<p>Groovy!</p>
  52.  
  53. <p><a href="https://embeddedcomputing.com/technology/open-source/development-kits/dev-kit-weekly-schmartboard-parallax-propeller-schmartmodule-development-board" rel="nofollow">https://embeddedcomputing.com/technology/open-source/development-kits/dev-kit-weekly-schmartboard-parallax-propeller-schmartmodule-development-board</a></p>
  54. ]]>
  55.        </description>
  56.    </item>
  57.    <item>
  58.        <title>P1 SPIN code for SSD1306 OLED</title>
  59.        <link>https://forums.parallax.com/discussion/175715/p1-spin-code-for-ssd1306-oled</link>
  60.        <pubDate>Mon, 05 Feb 2024 20:45:16 +0000</pubDate>
  61.        <category>Propeller 1</category>
  62.        <dc:creator>VonSzarvas</dc:creator>
  63.        <guid isPermaLink="false">175715@/discussions</guid>
  64.        <description><![CDATA[<p>128x64 pixel display</p>
  65.  
  66. <p>Has anyone got a SPIN code demo running different size fonts ?</p>
  67.  
  68. <p>I found something in OBEX with a 5x7 font, but it's too tiny.<br />
  69. There's another with 16x32, but it's too large, taking 4 rows out of an available 8.</p>
  70.  
  71. <p>Looking for something in the middle, maybe taking 2 or 3 rows, perhaps 8x12 or 8x16 (or 12x...) size fonts?</p>
  72. ]]>
  73.        </description>
  74.    </item>
  75.    <item>
  76.        <title>Demo for jm_max30102 code</title>
  77.        <link>https://forums.parallax.com/discussion/175705/demo-for-jm-max30102-code</link>
  78.        <pubDate>Wed, 24 Jan 2024 18:39:40 +0000</pubDate>
  79.        <category>Propeller 1</category>
  80.        <dc:creator>masselon</dc:creator>
  81.        <guid isPermaLink="false">175705@/discussions</guid>
  82.        <description><![CDATA[<p>Hi for All</p>
  83.  
  84. <p>Somebody have the refered Demo or the link from where I could  download it?</p>
  85.  
  86. <p>Thanks in advance.</p>
  87. ]]>
  88.        </description>
  89.    </item>
  90.    <item>
  91.        <title>Determine which variable in a group contains the largest value!</title>
  92.        <link>https://forums.parallax.com/discussion/175684/determine-which-variable-in-a-group-contains-the-largest-value</link>
  93.        <pubDate>Thu, 11 Jan 2024 20:43:55 +0000</pubDate>
  94.        <category>Propeller 1</category>
  95.        <dc:creator>AGCB</dc:creator>
  96.        <guid isPermaLink="false">175684@/discussions</guid>
  97.        <description><![CDATA[<p>In a group of 10 variables that are incrementing randomly or some not at all, after a short time (say 1 minute), I want to determine which of the variables contains the highest value. <br />
  98. Aaron</p>
  99. ]]>
  100.        </description>
  101.    </item>
  102.    <item>
  103.        <title>Faster than hub</title>
  104.        <link>https://forums.parallax.com/discussion/175703/faster-than-hub</link>
  105.        <pubDate>Tue, 23 Jan 2024 22:53:33 +0000</pubDate>
  106.        <category>Propeller 1</category>
  107.        <dc:creator>K2</dc:creator>
  108.        <guid isPermaLink="false">175703@/discussions</guid>
  109.        <description><![CDATA[<p>A million years later, a sort-of accidental capability of P1 is still the salvation of many of my projects.  Today's pinch goes something  like this: A cog has only 25 instructions (1.25 uS) with which to fetch a five-bit value from another cog, do a local table look-up, a quick calculation, clock the results out serially, and finish a waitcnt (for sync purposes).</p>
  110.  
  111. <p>There is absolutely no time to wait for a variable length rdlong to execute.  Grabbing the 5-bit word from port A, written there by another cog, is the only way forward.  I LOVE that hack.</p>
  112.  
  113. <p>I was a stinker campaigning for something like that on P2, which Chip accommodated by letting neighboring LUTs talk.  I hope I'm not the only one that has benefited from its inclusion.</p>
  114. ]]>
  115.        </description>
  116.    </item>
  117.    <item>
  118.        <title>Strange SPIN behavior: WaitCnt stalls changing an &quot;unrelated&quot; statement SOLVED</title>
  119.        <link>https://forums.parallax.com/discussion/175699/strange-spin-behavior-waitcnt-stalls-changing-an-unrelated-statement-solved</link>
  120.        <pubDate>Sun, 21 Jan 2024 23:15:08 +0000</pubDate>
  121.        <category>Propeller 1</category>
  122.        <dc:creator>ErNa</dc:creator>
  123.        <guid isPermaLink="false">175699@/discussions</guid>
  124.        <description><![CDATA[<p>I face this strange behavior:<br />
  125. In a loop the variable "Winkel" is increased by one.<br />
  126. `        repeat</p>
  127.  
  128. <pre spellcheck="false" tabindex="0">      WaitCnt (DelayTime)
  129.      Delaytime += 35_000
  130.      Winkel    := Winkel + 1
  131.  
  132.      Winkel :=  Winkel // 1536
  133. </pre>
  134.  
  135. <p>`<br />
  136. So Winkel is robbing around from 0 to 1535. I want to control the increment and introduce a variable dWinkel</p>
  137.  
  138. <p>` <br />
  139.        dWinkel   := 5<br />
  140.        repeat</p>
  141.  
  142. <pre spellcheck="false" tabindex="0">      WaitCnt (DelayTime)
  143.      Delaytime += 35_000
  144.      Winkel    := Winkel + dWinkel
  145.  
  146.      Winkel :=  Winkel // 1536
  147. </pre>
  148.  
  149. <p><code spellcheck="false" tabindex="0">Next I wish to grow dWinkel slowly, so I scale up by 100 and devide by 100</code> <br />
  150.       dWinkel   := 500<br />
  151.        repeat</p>
  152.  
  153. <pre spellcheck="false" tabindex="0">      WaitCnt (DelayTime)
  154.      Delaytime += 35_000
  155.      Winkel    := Winkel + dWinkel/100
  156.  
  157.      Winkel :=  Winkel // 1536
  158. </pre>
  159.  
  160. <p>`<br />
  161. And now nothing happens, the programm stalls. Give it another try:</p>
  162.  
  163. <p>`dWinkel   := 5<br />
  164. repeat</p>
  165.  
  166. <pre spellcheck="false" tabindex="0">      WaitCnt (DelayTime)
  167.      Delaytime += 35_000
  168.      ddWinkel  := dWinkel
  169.      Winkel    := Winkel + ddWinkel
  170.  
  171.      Winkel :=  Winkel // 1536
  172. </pre>
  173.  
  174. <p>`<br />
  175. Return to the original scale and use a second variable: It stalls again. I can not print the value but do not see, what could provoke this?</p>
  176. ]]>
  177.        </description>
  178.    </item>
  179.    <item>
  180.        <title>PropellerIDE on MacOS with FTDI and other issues</title>
  181.        <link>https://forums.parallax.com/discussion/166516/propelleride-on-macos-with-ftdi-and-other-issues</link>
  182.        <pubDate>Mon, 17 Apr 2017 17:14:03 +0000</pubDate>
  183.        <category>Propeller 1</category>
  184.        <dc:creator>Tracy Allen</dc:creator>
  185.        <guid isPermaLink="false">166516@/discussions</guid>
  186.        <description><![CDATA[Since upgrading to OS X Sierra 10.12, I've started using PropellerIDE.  (Thanks, Brett, Steve, and Parallax!) Initially I had a problem with the FTDI serial ports, including but not limited to the Prop Plug and my own FT231X boards.  I hadn't seen this issue mentioned here and it took some hair tearing and googling to figure it out.  The issue is that Apple, starting with OS X Mavericks (10.9), has included a driver for FTDI serial ports along with the system install.  If you then go and download install the FTDI version 2.3 VCP driver directly from FTDIchip.com, the two will conflict.  The symptoms are that you will be able to use the port once, but then if you disconnect the dongle and then come back to it or try to use another one on the same USB port, you will find that it is locked. The only way to get another try is to move to another physical USB port until that gets locks and so on.  If you look in the system report under USB, you will probably find that the same VCP serial port is listed twice.  To fix this,<br />
  187. delete the FTDI driver.  <a href="http://www.ftdichip.com/Support/Documents/AppNotes/AN_134_FTDI_Drivers_Installation_Guide_for_MAC_OSX.pdf" rel="nofollow">AN134 from FTDI</a> describes how. Delete it using Terminal from /Library/Extensions/FTDIUSBserialDriver.kext.   Keep the Apple FTDI driver, which on Sierra is located at /System/Library/Extensions/AppleUSBFTDI.kext.   The name and exact location of the Apple driver on pre-Sierra OS versions is different though.<br /><br />
  188. I see that the instructions on the Parallax web site page for PropellerIDE specifically recommend downloading the FTDI version of the driver.  That suggestion should probably be stricken or nuanced.<br />]]>
  189.        </description>
  190.    </item>
  191.    <item>
  192.        <title>Touchscreens and the propeller - SPI, 8bit parallel, 16bit parallel, 8080 or 6800 - Whats realistic?</title>
  193.        <link>https://forums.parallax.com/discussion/163651/touchscreens-and-the-propeller-spi-8bit-parallel-16bit-parallel-8080-or-6800-whats-realistic</link>
  194.        <pubDate>Fri, 26 Feb 2016 03:42:08 +0000</pubDate>
  195.        <category>Propeller 1</category>
  196.        <dc:creator>Mahonroy</dc:creator>
  197.        <guid isPermaLink="false">163651@/discussions</guid>
  198.        <description><![CDATA[Hey guys,<br />
  199. I have been trying to source a decent touch screen for a while now, and I have hit a dead end.<br />
  200. There are a ton of touch screens out there, they range from using different drivers such as the ILI9325 and the ILI9488. These also come in variations in different methods of communicating with the screen which seem to be SPI, 8 bit parallel, 16 bit parallel, then there is the 8080 &amp; 6800 (I'm not entirely sure what this is, but I'm thinking one is 8 bit and the other is 16 bit?). I've very confused on what the best rout to go with is.<br /><br />
  201. I have a few questions:<br />
  202. * Are there any drivers out there that people have been able to use with any of these popular screens? I could not find one legitimate driver available for the propeller. Well, I found 1 by Mark Tillotson, but it did not work at all.<br />
  203. * Are all SPI commands universal for every touch screen? If I find a library for one SPI screen can it be used on another, or is every screen unique? Finding datasheets on most of the touch screens out there seems impossible.<br />
  204. * Is any of this stuff universal - for any of the parallel drivers? Or is this the same problem... each screen has its own methods of working?<br />
  205. * Is SPI the best rout, or should I be looking for one of the different communication methods?<br />
  206. * Are there some popular screens out there that you guys have been using and have had good results with?<br /><br />
  207. So far I have been experimenting with some of mcufriend.com screens, and some raspberry pi screens, but I am unable to find any information on how to get these to work, or even to start writing a custom library so I can use them.<br />
  208. I found these guys, and they seem to be pretty legit as far as screens go and cost, but I have no idea what I'm looking for:<br /><a href="http://www.buydisplay.com/default/tft-display/4-3-inch" rel="nofollow">http://www.buydisplay.com/default/tft-display/4-3-inch</a><br /><br />
  209. I have used 4D Systems screens in the past, and while they are nice, the price is insane. Surely there must be a better way of doing this.<br />
  210. What do you guys think? Any help is greatly appreciated, thanks!]]>
  211.        </description>
  212.    </item>
  213.    <item>
  214.        <title>New Prop Plug Rev E</title>
  215.        <link>https://forums.parallax.com/discussion/175628/new-prop-plug-rev-e</link>
  216.        <pubDate>Fri, 08 Dec 2023 14:49:03 +0000</pubDate>
  217.        <category>Propeller 1</category>
  218.        <dc:creator>iseries</dc:creator>
  219.        <guid isPermaLink="false">175628@/discussions</guid>
  220.        <description><![CDATA[<p>Just tried this plug on my Propeller Mini and on the dip version and they both fail to load a program.</p>
  221.  
  222. <p>Is there a work around for this or am I stuck using the old prop plug on these units?</p>
  223.  
  224. <p>The guide shows this should work but I tried two Rev E units and they both do not work on P1.</p>
  225.  
  226. <p>They work just fine on P2 though.</p>
  227.  
  228. <p>Mike</p>
  229. ]]>
  230.        </description>
  231.    </item>
  232.    <item>
  233.        <title>P1 Flip Multicore Module Carrier</title>
  234.        <link>https://forums.parallax.com/discussion/175645/p1-flip-multicore-module-carrier</link>
  235.        <pubDate>Fri, 15 Dec 2023 03:04:16 +0000</pubDate>
  236.        <category>Propeller 1</category>
  237.        <dc:creator>David Betz</dc:creator>
  238.        <guid isPermaLink="false">175645@/discussions</guid>
  239.        <description><![CDATA[<p>I missed the web session where this was being discussed. Is there a description of it somewhere?</p>
  240. ]]>
  241.        </description>
  242.    </item>
  243.    <item>
  244.        <title>Does anyone have signal generation code thats output matches the propscope readings?</title>
  245.        <link>https://forums.parallax.com/discussion/126521/does-anyone-have-signal-generation-code-thats-output-matches-the-propscope-readings</link>
  246.        <pubDate>Thu, 21 Oct 2010 14:06:30 +0000</pubDate>
  247.        <category>Propeller 1</category>
  248.        <dc:creator>turbosupra</dc:creator>
  249.        <guid isPermaLink="false">126521@/discussions</guid>
  250.        <description><![CDATA[I am trying to write some signal generation code that the frequency per second calculated in my code will match what I'm seeing on my propscope.<br /><br />
  251. Currently I'm seeing ~5.4khz on my propscope when by math from the code it should be 6khz<br /><br />
  252. If someone has a known good method that produces a solid XXkhz on their prop scope, I'd appreciate being able to test it. Thanks for reading.]]>
  253.        </description>
  254.    </item>
  255.    <item>
  256.        <title>Data from a sensor</title>
  257.        <link>https://forums.parallax.com/discussion/175612/data-from-a-sensor</link>
  258.        <pubDate>Mon, 27 Nov 2023 18:48:30 +0000</pubDate>
  259.        <category>Propeller 1</category>
  260.        <dc:creator>HughWN</dc:creator>
  261.        <guid isPermaLink="false">175612@/discussions</guid>
  262.        <description><![CDATA[<p>Hello,</p>
  263.  
  264. <p>I think I may be being hard of thinking here, but...</p>
  265.  
  266. <p>A doppler radar sensor sends to a P1 (for example) "-26.0", i.e., a string of bytes, 45, 50, 54, 46, 48, 13.</p>
  267.  
  268. <p>Is there an easy way to get this as a value with which I can do things within other parts of the spin code (even if I have to scale it to -260 as an integer to be able to use the tenths part), or do I need to work it out from scratch?  It's not zero-terminated as various string-handler spin files need.</p>
  269.  
  270. <p>I've been round in circles so many times, I'm starting to get dizzy!</p>
  271.  
  272. <p>Thanks,</p>
  273.  
  274. <p>Hugh</p>
  275. ]]>
  276.        </description>
  277.    </item>
  278.    <item>
  279.        <title>looking for an old debugging object</title>
  280.        <link>https://forums.parallax.com/discussion/175614/looking-for-an-old-debugging-object</link>
  281.        <pubDate>Tue, 28 Nov 2023 17:25:53 +0000</pubDate>
  282.        <category>Propeller 1</category>
  283.        <dc:creator>ti85</dc:creator>
  284.        <guid isPermaLink="false">175614@/discussions</guid>
  285.        <description><![CDATA[<p>Hey<br />
  286. I am looking for an old pasm object that was useful for debugging the P1.  It was only a few lines of code and ran in one COG.  You could see hub memory locations and other things.  Does anyone remember what the program called?<br />
  287. Thank you</p>
  288. ]]>
  289.        </description>
  290.    </item>
  291.    <item>
  292.        <title>Trouble with XOJO baud rate</title>
  293.        <link>https://forums.parallax.com/discussion/175611/trouble-with-xojo-baud-rate</link>
  294.        <pubDate>Mon, 27 Nov 2023 14:53:30 +0000</pubDate>
  295.        <category>Propeller 1</category>
  296.        <dc:creator>velocityxlrg</dc:creator>
  297.        <guid isPermaLink="false">175611@/discussions</guid>
  298.        <description><![CDATA[<p>I often use code written in XOJO to get and display telemetry  on a Laptop from my Propeller projects.<br />
  299. This has been occurring at 115200 baud using FullDuplexSerial.  No problems.</p>
  300.  
  301. <p>But today I tried to get XOJO and the Propeller to use 57600.  Nothing but errors from XOJO.  Seem to be frame errors, but hard to tell.  So I tried all the other standard bauds.  Nothing.  It only works at 115200.</p>
  302.  
  303. <p>This seems weird.  I've check all the settings I can think of for both XOJO and the Propeller.</p>
  304.  
  305. <p>Can someone think of a reason this might happen?</p>
  306. ]]>
  307.        </description>
  308.    </item>
  309.    <item>
  310.        <title>Propforth v5.5 is available for download</title>
  311.        <link>https://forums.parallax.com/discussion/146693/propforth-v5-5-is-available-for-download</link>
  312.        <pubDate>Sun, 17 Mar 2013 09:38:27 +0000</pubDate>
  313.        <category>Propeller 1</category>
  314.        <dc:creator>prof_braino</dc:creator>
  315.        <guid isPermaLink="false">146693@/discussions</guid>
  316.        <description><![CDATA[Propforth v5.5 is available for download from Google code<br /><br /><a href="http://code.google.com/p/propforth/downloads/detail?name=PropForth-V5.5-20130317.zip" rel="nofollow">http://code.google.com/p/propforth/downloads/detail?name=PropForth-V5.5-20130317.zip</a><br /><br />
  317. Propforth 5.5 is now on GitHub<br /><br /><a href="https://github.com/prof-braino/PropForth5.5" rel="nofollow"><br />
  318. https://github.com/prof-braino/PropForth5.5</a><br /><br />
  319. Thanks to the team members and users that help with testing and documentation, this is the hardest part.  Thanks for your patience with getting the release up.<br /><br />
  320. The kernel is unchanged since v5.0, only the packaging has been modified to be easier for new users to get started with the kerrnel. The build and test automation has been moved to a subdirectory, since it is only for advanced users; most folks won't use it until they are comfortable with using the kernel.<br /><br />
  321. The kernel itself is very stable, we don't even see interrmittent issues.  That might mean we've been looking at it too long, hopefully new sets of eyes can discover and point out things we've missed.<br /><br />
  322. Focus is now shifting from developing the kernel to using the kerrnel.  Now the REAL fun begins!<br /><br />
  323. Please give PropForth v5.5 a try.  In particular, try to follow the docs included in teh download, and let us know what neds to change.   Post comments and questions here or on the google code site, or PM me.]]>
  324.        </description>
  325.    </item>
  326.    <item>
  327.        <title>Working with 8 bit gray code and Prop 1</title>
  328.        <link>https://forums.parallax.com/discussion/175598/working-with-8-bit-gray-code-and-prop-1</link>
  329.        <pubDate>Sat, 18 Nov 2023 18:54:00 +0000</pubDate>
  330.        <category>Propeller 1</category>
  331.        <dc:creator>AGCB</dc:creator>
  332.        <guid isPermaLink="false">175598@/discussions</guid>
  333.        <description><![CDATA[<p>I have an 8-bit absolute encoder that I'd like to use with a wind direction indicator. Does Propeller 1 know about gray code <img src="https://forums.parallax.com/resources/emoji/wink.png" title=";)" alt=";)" height="20" /> . My previous try used a total of 8 magnet/switches to get 16 8-bit hex outputs. I'm not sure how to start with this or if I wasted my money. Help<br />
  334. Aaron</p>
  335. ]]>
  336.        </description>
  337.    </item>
  338.    <item>
  339.        <title>Propberry</title>
  340.        <link>https://forums.parallax.com/discussion/175597/propberry</link>
  341.        <pubDate>Sat, 18 Nov 2023 17:26:17 +0000</pubDate>
  342.        <category>Propeller 1</category>
  343.        <dc:creator>HughWN</dc:creator>
  344.        <guid isPermaLink="false">175597@/discussions</guid>
  345.        <description><![CDATA[<p>Ages and ages ago there was a thread on combining a Prop 1 and a Raspberry Pi (related to <a rel="nofollow" href="https://zuzebox.wordpress.com/2012/07/31/propberry-propeller-raspberry-pi-combo/">this</a>).  Has anyone managed to do something similar, i.e., sending serial data from the P1 to Pi and might be able to give some pointers?</p>
  346.  
  347. <p>I'm happy on the Prop end and using FullDuplexSerial (presumably //ttyUSB0 on the Pi uses pins 31 and 30?)</p>
  348.  
  349. <pre spellcheck="false" tabindex="0">ser[rPi].start(31, 30, 0, 9600)
  350. repeat
  351.    ser[rPi].dec(10)
  352.    ser[rPi].tx(13)
  353.    ser[rPi].tx(10)
  354. </pre>
  355.  
  356. <p>The other end using Python seems to be a nightmare!  <img src="https://forums.parallax.com/resources/emoji/confused.png" title=":/" alt=":/" height="20" /></p>
  357. ]]>
  358.        </description>
  359.    </item>
  360.    <item>
  361.        <title>OLED no longer displays</title>
  362.        <link>https://forums.parallax.com/discussion/175595/oled-no-longer-displays</link>
  363.        <pubDate>Thu, 16 Nov 2023 17:16:06 +0000</pubDate>
  364.        <category>Propeller 1</category>
  365.        <dc:creator>t_hitesman</dc:creator>
  366.        <guid isPermaLink="false">175595@/discussions</guid>
  367.        <description><![CDATA[<p>I have come across an issue where, after having wired up the 96x64 OLED to the board and loading an image from the SD card, the display no longer..... displays.</p>
  368.  
  369. <p>I'll try and convey how / when this occurred.</p>
  370.  
  371. <p>Following the tutorial:</p>
  372.  
  373. <p><a href="https://learn.parallax.com/tutorials/language/blocklyprop/oled-display-blocklyprop/displaying-bitmaps-sd-card" rel="nofollow">https://learn.parallax.com/tutorials/language/blocklyprop/oled-display-blocklyprop/displaying-bitmaps-sd-card</a></p>
  374.  
  375. <p>I began to jump between Blockly and SimpleIDE, having a very minimal background in C, I wanted to work in that and continue experimenting. While swapping images back and forth to the SD card ( removing and installing from my computer to the Prop board ) and occasionally  turning off the board so as not to damage the OLED, the OLED stopped displaying any image. Where it would display any image I designated in the code, it seemed to suddenly stop doing so by around my 4th or 5th attempt to display a new image.</p>
  376.  
  377. <p>Both Blockly and SimpleIDE would compile, transmit, and execute any code I would send in an attempt to display an image, but nothing would show. The COM port registers, everything checks out according to the software.</p>
  378.  
  379. <p>Things I have considered, but unable to test for:</p>
  380.  
  381. <ol><li>I probably broke it.</li>
  382. <li>Operator error ( also broke it )</li>
  383. <li>Maybe, accidentally wiped out some critical part of the chip coding from repetitive powering on and off?</li>
  384. <li>I need a volt meter to check the pins.</li>
  385. </ol><p>Probably not the best idea, jumping into the deep end, but after going over some search results online and poking around the forums, I hadn't been able to resolve the issue.</p>
  386.  
  387. <p>Any thoughts, even a reference to a good book(s) on the matter, would be greatly appreciated.</p>
  388. ]]>
  389.        </description>
  390.    </item>
  391.    <item>
  392.        <title>cognew Spin vs C</title>
  393.        <link>https://forums.parallax.com/discussion/174526/cognew-spin-vs-c</link>
  394.        <pubDate>Wed, 06 Apr 2022 17:03:37 +0000</pubDate>
  395.        <category>Propeller 1</category>
  396.        <dc:creator>KevinW</dc:creator>
  397.        <guid isPermaLink="false">174526@/discussions</guid>
  398.        <description><![CDATA[<p>I have been playing around with the P1 for a few years now, programming it exclusively in C. I decided to finally take a look at Spin, mostly on a whim. The first thing that stood out was that when you called cognew to start a process in a separate cog, you are able to have arguments. When programming in C, using SimpleIDE and the SimpleTools.h library, the cognew does not allow your functions to take any arguments.</p>
  399.  
  400. <p>One of the first bits of example code in either language is a multicore version of the blinking light "Hello World" program. The C version has two separate blink functions with the delay times hard coded. The Spin version has the blink method take several arguments, including pin number, and the counter ticks for the delay. So the same method can be used for both cogs. There seems to be no way to do this in C or C++.</p>
  401.  
  402. <p>I never understood why the C version of cognew does not allow your functions to take arguments. I thought it must be using function pointers, which allow you to pass arguments to the function being pointed to. Seeing the cognew in Spin makes me even more confused as to why the C version is that way.</p>
  403.  
  404. <p>Is there something preventing the C cognew function from allowing the called function to take arguments?</p>
  405.  
  406. <p>Thanks in advance for any information.</p>
  407. ]]>
  408.        </description>
  409.    </item>
  410.    <item>
  411.        <title>Cannot upload to Prop - Com port problems</title>
  412.        <link>https://forums.parallax.com/discussion/175583/cannot-upload-to-prop-com-port-problems</link>
  413.        <pubDate>Thu, 09 Nov 2023 12:15:48 +0000</pubDate>
  414.        <category>Propeller 1</category>
  415.        <dc:creator>HughWN</dc:creator>
  416.        <guid isPermaLink="false">175583@/discussions</guid>
  417.        <description><![CDATA[<p>Hello,</p>
  418.  
  419. <p>I have a Propeller Project board.  When in the Prop Tool (2.7.0 Beta) I 'Identify Hardware', it finds the prop on COM2.  However, if I try to compile and upload to the prop, the Prop Tool complains that "<em>no propeller was found on any serial port.  Scanned COM 2. One serial port was excluded from the search</em>".  If I go to 'Edit ports' via Edit -&gt; Preferences, the only port showing active (i.e., bold) is COM 2.  Setting the search to 'AUTO' or specifying COM 2 makes no difference.  A different PC makes no difference.  A different prop board makes no difference.  v2.9.3 of the Prop Tool makes no difference. The drivers are up to date. Obsessionally, the message is "<em>More than ten serial ports were excluded from the search. Click Edit Ports for more information</em>". The Edit ports dialogue shows only COM 1 and COM 2, as does Windows Device Manager.</p>
  420.  
  421. <p>Flexprop works perfectly.</p>
  422.  
  423. <p>Any suggestions gratefully received.</p>
  424.  
  425. <p>Thanks,<br />
  426. Hugh</p>
  427. ]]>
  428.        </description>
  429.    </item>
  430.    <item>
  431.        <title>Visual Studio Code supports P1 development on Windows, Mac, Linux (yes, RPi)</title>
  432.        <link>https://forums.parallax.com/discussion/175207/visual-studio-code-supports-p1-development-on-windows-mac-linux-yes-rpi</link>
  433.        <pubDate>Wed, 15 Feb 2023 21:40:31 +0000</pubDate>
  434.        <category>Propeller 1</category>
  435.        <dc:creator>Stephen Moraco</dc:creator>
  436.        <guid isPermaLink="false">175207@/discussions</guid>
  437.        <description><![CDATA[<p><strong>NEWS</strong></p>
  438.  
  439. <p>Version v1.8.6 is the current release version but as of earlier version v1.7.0, this extension fully supports P1 as well as P2 spin/pasm development.</p>
  440.  
  441. <p>Features:</p>
  442.  
  443. <ul><li>Full support for both P1 (spin/pasm) and P2 (spin2/pasm2) languages</li>
  444. <li>Syntax and Semantic Highlighting for both Spin and Pasm</li>
  445. <li>Syntax and Semantic Highlighting for both Spin2 and Pasm2 including all Streamer and Smart-pin Symbols as well as all debug() statements with parameter validation for all display types</li>
  446. <li>Custom tabbing Tab-stop support per section à la Parallax Propeller Tool</li>
  447. <li>Tab Sets You can choose between Propeller Tool, IronSheep, and User1 (adjust in settings to make your favorite set)</li>
  448. <li>File navigation from Outline View</li>
  449. <li>Edit Mode support à la Parallax Propeller Tool [Insert, Overtype and Align]</li>
  450. <li>Works with your favorite VSCode themes</li>
  451. <li>Offers companion Theme (Two themes: Syntax+Semantic, and Syntax only - mostly used during semantic highlighting development)</li>
  452. </ul><p><strong>Known Issues:</strong></p>
  453.  
  454. <p><em>We haven't yet learned how to control the ending position of the edit cursor. So in many cases when using selection not an insert point the cursor may end up not being where you might expect it to be after pressing TAB or Shift+TAB. We are looking into how to solve this. Even tho' this problem exists the formatting ability this new service provides is well worth this minor headache. We will keep looking for a means to get this under control.</em></p>
  455.  
  456. <p><strong>Possible Conflicts with other VSCode Extensions</strong></p>
  457.  
  458. <p><strong>Note1</strong>: <em>This extension now replaces the <a rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=Entomy.spin">Spin by Entomy</a> vscode extension. While either can be used, our version provides more comprehensive Syntax highlighting (as the former has not been maintained) and this extension adds full Semantic Highlighting, Outlining, and Tab support with InsertModes. The older <strong>Spin</strong> extension can now be uninstalled with no loss of functionality.</em></p>
  459.  
  460. <p><strong>Note2</strong>: <em>I'll be submitting pull requests to the Overtype extension maintainer to add code for avoiding interference with our .spin/.spin2 InsertMode feature but in the meantime please ensure that the <a rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=adammaras.overtype">Overtype by Adma Maras</a> and/or <a rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=DrMerfy.overtype">Overtype by DrMerfy</a> extensions are disabled or uninstalled as they can interfere with our extensions' behavior.</em></p>
  461.  
  462. <p><strong>What are we doing?</strong></p>
  463.  
  464. <p>The tabbing support is disabled at the first installation.<br />
  465. In order to use it you must enable it, and restart VSCode. Then it will be present when editing any, spin, .pasm, .spin2, or .pasm2 files.</p>
  466.  
  467. <p>Please let us know of any behavior you are not sure is correct or behavior that just doesn't feel right. Your feedback based on what you are experiencing will help us ensure this is working the way we all would like it to.</p>
  468.  
  469. <p>Tab Implementation intent: <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/blob/main/TAB-SPECs.md">Implementation Tabbing Notes</a></p>
  470.  
  471. <p>New Insert Mode operation: <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/blob/main/InsertMode.md">Insert Modes for Spin and Spin2</a></p>
  472.  
  473. <p>When you find things (or wish for new behaviors) let me know here: <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/issues">Repo Issues Page</a></p>
  474.  
  475. <p><strong>About this extension</strong></p>
  476.  
  477. <p>You can always review the Spin2 Extension <strong>ChangeLog</strong> from within VSCode or at <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/blob/main/spin2/CHANGELOG.md">github</a> for more details.</p>
  478.  
  479. <p>Reminder: The Spin2 extension is in the <strong>VSCode marketplace</strong>. After one has a working install of VSCode then from within the VSCode Extensions panel search for <strong>Spin2</strong>, install it and you are good to go. Once installed it will automatically notify you of new update availability whenever I publish new updates.</p>
  480.  
  481. <p>If you are already using this extension and for some reason, it did not update for you automatically, in VSCode go to your extensions view (SHIFT+CMD+X), and type in spin2. On the left, the info panel for the extension should appear and will indicate that an update has happened or needs to happen.  Update it if needed.</p>
  482.  
  483. <p><strong>NOTE</strong> You may want to double-check that all older versions are removed from your .vscode/extensions folder after installing any new version.</p>
  484.  
  485. <p>If you find code that you believe is not highlighting correctly (yes, we will likely find some for a while yet...) then please file an issue at <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/issues">my github repository issues page</a></p>
  486.  
  487. <p>I also point out a number of extensions that make this an even better Spin2/Pasm2 development environment. See: my <a rel="nofollow" href="https://github.com/ironsheep/P2-vscode-extensions/blob/main/EXTENSIONS.md">VSCode repo extensions page</a></p>
  488.  
  489. <p>There is more than just installing the extension as one needs to set up build and run facilities based on the compiler tools one is using and also based on the platform (Windows, Mac, RPi, Linux, etc.) To help us learn how to do this Ken posted a very useful <a rel="nofollow" href="https://www.parallax.com/visual-studio/">VSCode P2 QuickByte</a>.</p>
  490.  
  491. <p><strong>What's next</strong>?  on the horizon:  (1) Finishing certification of this Spin VSCode extension for our P1 against all of the P1 Obex, and (2) fixing things seen in a couple of Spin2 code sets that are not being highlighted correctly.</p>
  492.  
  493. <p>Enjoy!</p>
  494.  
  495. <p>Stephen</p>
  496. ]]>
  497.        </description>
  498.    </item>
  499.    <item>
  500.        <title>One Drive woes with Propeller Tool</title>
  501.        <link>https://forums.parallax.com/discussion/175562/one-drive-woes-with-propeller-tool</link>
  502.        <pubDate>Tue, 17 Oct 2023 18:57:29 +0000</pubDate>
  503.        <category>Propeller 1</category>
  504.        <dc:creator>RichardB</dc:creator>
  505.        <guid isPermaLink="false">175562@/discussions</guid>
  506.        <description><![CDATA[<p>Hi, My company migrated our windows Documents folder to One Drive. Propeller Tool can't find it's libraries now.</p>
  507.  
  508. <p>I reinstalled Propeller Tool hoping this would fix things.. On install the libraries automagically went to the One Drive Documents folder. Propeller Tool can't find them.</p>
  509.  
  510. <p>I changed the paths to the template files, hoping that would somehow fix this. Nope..</p>
  511.  
  512. <p>I copied the 'Propeller Tool' folder from One Drive Documents to the hard drive documents. This worked, but I will forget about this soon..  Production Engineering will have this trouble as well. The files will not be updated when future versions of Propeller Tool are released.</p>
  513.  
  514. <p>Is there a way to change these paths in Propeller Tool?</p>
  515.  
  516. <p>Thanks!</p>
  517. ]]>
  518.        </description>
  519.    </item>
  520.    <item>
  521.        <title>Propeller to Propeller comunication</title>
  522.        <link>https://forums.parallax.com/discussion/175539/propeller-to-propeller-comunication</link>
  523.        <pubDate>Thu, 28 Sep 2023 14:09:23 +0000</pubDate>
  524.        <category>Propeller 1</category>
  525.        <dc:creator>domeniv97</dc:creator>
  526.        <guid isPermaLink="false">175539@/discussions</guid>
  527.        <description><![CDATA[<p>Dear All,</p>
  528.  
  529. <p>Another week, another discussion of me not understanding how to make my Activity Boards to work as intended.</p>
  530.  
  531. <p>I want to make two Propellers, embedded in their respective Activity Boards, communicate to each other, i.e. exchange at a rate of 50-500 KHz, one long variable.</p>
  532.  
  533. <p>Specifically, I am using the modified code attached below (microphone_to_headphone_2_cogs.spin), that uses one cog to do A/D conversion, stores the result in a long in the hub and there it can be taken by another cog , D/A converted and output to the jack. I would like now two split the process between two Propellers: one does A/D, stores the audio signal as a long in the hub, the signal is then sent to another Propeller to D/A converted and output again.</p>
  534.  
  535. <p>I am trying to figure out how I can correctly address the serial communication between Propellers.</p>
  536.  
  537. <p>My first thought was to use the PropBus object (<a href="https://github.com/parallaxinc/propeller/tree/master/libraries/community/p1/All/PropBus%2C%20Single%20wire%20multi-propeller%20comm%20link)" rel="nofollow">https://github.com/parallaxinc/propeller/tree/master/libraries/community/p1/All/PropBus, Single wire multi-propeller comm link)</a>, with a one wire configuration with 100k pull up resistances as the author of the object suggests (attached also the two objects I am loading to the two different Propeller Activity Boards to try to make it work, RT is the mic Propeller and BC the headphone one), but I can't make it work and do not get any results.</p>
  538.  
  539. <p>Has anyone any experience with communication between Propellers? Can someone suggest me the best serial communication to make it work and point me to some objects that can be used to make two Propellers communicate with each other, or shed some light on why I can't make the PropBus work and how to make use of it correctly?</p>
  540.  
  541. <p>I don't need much complication, just to send the long variable in full at the rate of 50-500kHz.</p>
  542.  
  543. <p>Domenico</p>
  544. ]]>
  545.        </description>
  546.    </item>
  547.    <item>
  548.        <title>MCP23017 configuring reading and writing remote IO</title>
  549.        <link>https://forums.parallax.com/discussion/175502/mcp23017-configuring-reading-and-writing-remote-io</link>
  550.        <pubDate>Tue, 05 Sep 2023 13:20:08 +0000</pubDate>
  551.        <category>Propeller 1</category>
  552.        <dc:creator>masselon</dc:creator>
  553.        <guid isPermaLink="false">175502@/discussions</guid>
  554.        <description><![CDATA[<p>Helo for all</p>
  555.  
  556. <p>I am trying to run the   MCP23017Driver Erlend Fj. 2015 object but it didn´t execute the code line: value:= bus.CallChip(Chip&lt;&lt;1)  - (line 81).<br />
  557. It stop in line 79. I would like to know how I solve that.<br />
  558. Thanks in advance.</p>
  559. ]]>
  560.        </description>
  561.    </item>
  562.    <item>
  563.        <title>Communication btw Propellers and mic-to-head object</title>
  564.        <link>https://forums.parallax.com/discussion/175521/communication-btw-propellers-and-mic-to-head-object</link>
  565.        <pubDate>Mon, 18 Sep 2023 13:03:40 +0000</pubDate>
  566.        <category>Propeller 1</category>
  567.        <dc:creator>domeniv97</dc:creator>
  568.        <guid isPermaLink="false">175521@/discussions</guid>
  569.        <description><![CDATA[<p>Dear All,</p>
  570.  
  571. <p>I wanted to ask  once more for help regarding a development project I am doing using the Propeller 1. I already posted two discussion in the past, but I have still a lot of unclear things to clarify due to my poor understanding of PASM (I am new to the job).</p>
  572.  
  573. <p><strong>Let me start by giving you an understanding of my project:</strong><br />
  574. For my university group, I am tasked to develop a way to have audio communication between two Propeller 1 Activity Boards. At the moment, I want to input, by microphone, voice into a Propeller 1 and have it come out through headphones connected to another Propeller 1, with a direct physical connection between them.</p>
  575.  
  576. <p><strong>Here is how I am attacking the problem:</strong><br />
  577. I firstly familiarized myself with the microphone to headphone object, with a few modifications (with help form the forum) and choosing the right mic, it works well and I am satisfied by the audio quality.</p>
  578.  
  579. <p>I then checked and fixed a PCM (13-bits) to A-law (8-bits) encoding script that was previously developed by my research group: the signal from the ADC part of the microphone to headphone object , is taken, encoded, decoded and output to the headphone after DAC. The conversion works well (I will push it in the GitHub once I have properly understood it).</p>
  580.  
  581. <p>At this point I would like to split the microphone to headphone object so that I talk into Propeller Activity Board <strong>(A)</strong> and output the audio from Propeller Activity Board <strong>(B)</strong>. My idea to do this (and understand PASM on the way) is the following:</p>
  582.  
  583. <p><strong>1)</strong> Modify the microphone to headphone object so that the output of the AD conversion (13-bit PCM put into a cog long register) is saved in the hub, picked later  form the hub and used for the DA conversion.</p>
  584.  
  585. <p><strong>2)</strong> Split the ADC and DAC PASM code so that two cogs run it in parallel, with the DAC picking the 13-bit PCM signal of the ADC form a shared hub register.</p>
  586.  
  587. <p><strong>3)</strong> Check/modify already available SPI drivers to connect two Propeller Activity Boards together.</p>
  588.  
  589. <p><strong>4)</strong> Make it so that the two Propeller Activity Boards <strong>(A)</strong> and <strong>(B)</strong>, now connected through one SPI connection, have both two cogs running with a reciprocal continuous ADC and DAC: <strong>(A)</strong> does ADC (13-bit PCM) sends it in 32 bit package to the HUB of <strong>(B)</strong>, the DAC cog of propeller <strong>(B)</strong> takes the 32-bit signal from the hub register and does DAC conversion on it, and vice versa.</p>
  590.  
  591. <p>I am already stuck at 1), as you can read it in the object I attached, I save the signal from the ADC to the hub and get it again for DAC two lines later, but I get a crazily distorted output from the headphones. I know that this is because of timing and sampling: I should probably sample the 13-bit PCM from the mic every "x" cycles, write it in the hub and use it  "x" time for the DA conversion, but I have no idea how this works and how to start with the problem and can't really find any "clear" way to understand PASM fastly and figure it out.</p>
  592.  
  593. <p>Another alternative that I am considering for the project is to pair the propellers with a DAC (MCP3204) and DAC (MCP4921), this would make the implementation go down to establishing the SPI communications between the components, but I would like to develop this tool only using the Propeller 1.</p>
  594.  
  595. <p>Any help is greatly appreciated, I hope to understand PASM soon and be able to also participate and help in the discussion in a more meaningful way,<br />
  596. Domenico</p>
  597. ]]>
  598.        </description>
  599.    </item>
  600.    <item>
  601.        <title>Determining  EEPROM size?</title>
  602.        <link>https://forums.parallax.com/discussion/137155/determining-eeprom-size</link>
  603.        <pubDate>Mon, 09 Jan 2012 17:25:50 +0000</pubDate>
  604.        <category>Propeller 1</category>
  605.        <dc:creator>doggiedoc</dc:creator>
  606.        <guid isPermaLink="false">137155@/discussions</guid>
  607.        <description><![CDATA[Reading some of the threads about using upper 32KB of a 64KB EEPROM for storage got my interest.   I understand that early Quickstart Boards had a 32KB (256Kb) EEPROM but later ones have 64KB (512Kb) EEPROMs.<br /><br />
  608. My question is how do I determine which I have.   I've tried cross referencing part numbers to no avail.   Is there a way to check with the Prop IDE?<br /><br />
  609. Perhaps a quick program to test read and report?<br /><br /><br />
  610. Paul]]>
  611.        </description>
  612.    </item>
  613.    <item>
  614.        <title>jm_ht16k33_4x14segs</title>
  615.        <link>https://forums.parallax.com/discussion/175519/jm-ht16k33-4x14segs</link>
  616.        <pubDate>Fri, 15 Sep 2023 19:03:04 +0000</pubDate>
  617.        <category>Propeller 1</category>
  618.        <dc:creator>masselon</dc:creator>
  619.        <guid isPermaLink="false">175519@/discussions</guid>
  620.        <description><![CDATA[<p>Hello there</p>
  621.  
  622. <p>Are there something to setup in the hardware for the refered object work?<br />
  623. In another objet it has this line of code:  htAdd = $70    ' Address of HT16K33 (Adafruit defult address module) and it worked very well. <br />
  624. I would like know what I am making wrong to it don´t work.<br />
  625. Thank you in advence.</p>
  626. ]]>
  627.        </description>
  628.    </item>
  629.    <item>
  630.        <title>(Noob) Understanding PASM timing</title>
  631.        <link>https://forums.parallax.com/discussion/175511/noob-understanding-pasm-timing</link>
  632.        <pubDate>Fri, 08 Sep 2023 03:23:20 +0000</pubDate>
  633.        <category>Propeller 1</category>
  634.        <dc:creator>Calvins_Beanie</dc:creator>
  635.        <guid isPermaLink="false">175511@/discussions</guid>
  636.        <description><![CDATA[<p>Hi Everyone;</p>
  637.  
  638. <p>I'm a long-time lurker. I've made a number of projects in spin and a few using asm. I'm in the process of really digging into asm for precisely timed projects and I am trying to RTFM, but I have a couple basic questions.</p>
  639.  
  640. <p>What is the absolute fastest that an individual cog can run stably? I read 20MHz is the book answer, but surely over the years someone has squeezed some more out of them. And what resonator and pll settings achieve this? (Stable with minimal extra cooling)</p>
  641.  
  642. <p>If the fastest asm instruction takes 4 clocks then wouldn't you divide the clock by 4 to get the actual max op/s? Meaning a 20MHz cog is only capable of 5mop/s?</p>
  643.  
  644. <p>Thank you</p>
  645. ]]>
  646.        </description>
  647.    </item>
  648.   </channel>
  649. </rss>
  650.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//forums.parallax.com/categories/propeller-1-multicore-microcontroller/feed.rss

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda