Help with MCS in Propforth?

jamesttjamestt Posts: 4
edited 2018-08-24 - 01:53:19 in Propeller 1

I've been struggling enough with this that I thought the only real way to get any answers would be to create an account. Nice to meet you all! I'm not really a newcomer to Forth or microcontrollers, but Propforth is new territory and I can't say that I'm a Propeller master either.

So here's my issue: I've been planning out a project that includes communication between multiple independent Props, SD card storage, and perhaps other additions in the near future. To that end, I have two boards, a Quickstart I picked up for cheap some years ago and a new Propeller Project Board. The latter has working SD card storage, using the SD kernel and the standard pins. The former has the EEPROM filesystem and also works as it should. Both are otherwise stock with 5 MHz crystals, though there is a barrel jack and some female header pins on the Project Board edge.

I'd like to get 2-wire communication between the two with MCS, and here the trouble begins. Changing the pin assignment a bit, I've used 2 and 3, A and B, 1A and 1B... they all have the same result. I'm not (yet) putting resistors on the lines, since I just want to see if I can get this working first.

What I'm doing is reckoning the Project Board as the Master, hooking up the pins to corresponding pins on the Quickstart, making sure they're both powered up, connecting to the Project Board, and pasting the contents of mcs.f into the terminal, headed for /dev/ttyUSB0 (using Debian 9). This usually drops a bunch of characters, but this doesn't happen every time. Then I define mcsinit and mcs? with appropriate values, as it says to do in mcs.f. Follow that up with the usual "mcsinit mcs?", and it locks up. It doesn't take any keyboard input and has to be reset. Sometimes one of the LEDs flashes, and just in case the connection takes awhile, I've let it sit there for a few minutes. I've tried the same thing with com.f rather than mcs.f, with very similar results. Using the Quickstart as the master doesn't change anything, either.

For a serial terminal, I've tried this same process with Emacs, GNU Screen, and Minicom. None seem to improve the situation.

So, am I missing something? What could be wrong here? I've been pretty diligent about reading the documentation first, but I can't always find what I'm looking for and I'm not sure that everything is quite up to date yet. This is all using Propforth 5.5.

Thank you in advance for any help or guidance.


  • Have you considered Tachyon forth? It is very powerfull and things like the SD card reader are supported "out of the box" .
  • That's caught my eye a few times, yes. If there is a tutorial for multi-Prop communications somewhere for Tachyon, that certainly would interest me. I'll see if this can be made to work for now and consider other implementations if necessary. Thank you for the recommendation!

    Meanwhile, hopefully someone in the know about Propforth sees this thread soon.
  • Click on any of the links in my sig or have a look at this video demonstrating the versatility of the Tachyon 1-wire or RS485 multidrop network. This makes it appear as if you are communicating full-duplex console fashion with any Prop on the network but there are also transparent low-level commands that support direct memory operation too.

    Tachyon Forth - compact, fast, forthwright and interactive
    --->CLICK THE LOGO for more links<---
    P1 +++++ Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    Brisbane, Australia
  • jamesttjamestt Posts: 4
    edited 2018-08-24 - 23:39:17
    Well, I couldn't ask for a better recommendation than that! I'll be happy to give it a look. :smiley:
  • Pretty brilliant, no doubt. I really like your style and design decisions, Peter.

    So, combing around for a basic example of communication between two Propellers (send code from one cog on the first chip to a cog on the other, or "term" type connection), I didn't really find one. Is there such a thing, or did I miss it?
Sign In or Register to comment.