Shop OBEX P1 Docs P2 Docs Learn Events
YModem data upload utility — Parallax Forums

YModem data upload utility

RaymanRayman Posts: 14,162
edited 2008-04-03 14:58 in Propeller 1
Here's a version of my Ymodem code that lets you upload recorded data as a file.

There are two test proceedures, one uploads data as a text file and the other uploads as a binary file...

Just be careful when disconnecting Hyperterminal because it can cause your Prop to reset...

Comments

  • pgbpsupgbpsu Posts: 460
    edited 2008-04-02 21:05
    Rayman-

    This utility is terrific, albeit slow. If one wanted to speed it up, where would you suggest they start?

    Thanks,
    pb
  • RaymanRayman Posts: 14,162
    edited 2008-04-02 23:06
    Easy way is change the baud from 9600 to 115200...
  • pgbpsupgbpsu Posts: 460
    edited 2008-04-03 13:06
    Rayman-

    Thanks for the quick response.

    When I posted this question, I mistakenly put it under the wrong thread. When I went back and looked at the code I'm using, I found I'm using your YModem(alpha) program


    http://forums.parallax.com/showthread.php?p=718391


    It appears the baudrate is already set to 115200 right at the of the top program, yet I only get about 1500cps (according to the YModem download dialog box). I don't see any other place where the baudrate is reset. Does this mean the bottleneck is reading from the SD card? If you have suggestions on where I start to optimize I'd really appreciate it.

    Thanks again for the great utility.
    pgb
  • RaymanRayman Posts: 14,162
    edited 2008-04-03 14:58
    Well, it would probably have to be partially converted to assembly to get much faster... That's assuming that the waiting for Hyperterminal to send an ACK isn't the holdup. 1500cps is ~15000 bps, so there's a possible improvement of about 7X.

    Reading the SD card is not the bottleneck. I would imagine that making the CRC might be one slow point. Also, I'm sending out bytes one at a time to the fullduplex object, this could definitely be optimized, probably by sending a pointer and the #of bytes to send instead...

    You could also try using 230400 baud, but that might not work...
Sign In or Register to comment.