Shop OBEX P1 Docs P2 Docs Learn Events
One program - Multiple Props — Parallax Forums

One program - Multiple Props

HumanoidoHumanoido Posts: 5,770
edited 2010-02-16 19:07 in Propeller 1
There was a thread with a lot of speculation on this.
Has anyone perfected a method to load one program
into multiple props at the same time?

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2010-02-16 17:48
    I don't remember anything other than speculation. The suggestion was to connect all the Prop receive inputs together to the PC's transmit output, then connect one Prop's transmit output to the PC's receive input. If all the Props are working properly, the PC could ignore the transmit outputs of all but one Prop since they should all be transmitting the same responses to the PC.

    A number of people have experimented with one Prop loading several others. With a fanout of 7, you could quickly load up a lot of Props.

    Another option would be for you to develop your own downloader where the downloader is permanently loaded into an EEPROM on each Prop, sort of like what's done with the Propeller Backpack. You could do your downloader so it can handle a "party line" so many Props could be loaded at once.
  • Rob7Rob7 Posts: 275
    edited 2010-02-16 17:56
    Sounds like an interesting project.
  • jazzedjazzed Posts: 11,803
    edited 2010-02-16 18:42
    Mike Green said...
    I don't remember anything other than speculation. The suggestion was to connect all the Prop receive inputs together to the PC's transmit output, then connect one Prop's transmit output to the PC's receive input. If all the Props are working properly, the PC could ignore the transmit outputs of all but one Prop since they should all be transmitting the same responses to the PC.
    Exactly this configuration and method was proven to be unreliable with experiments.

    In the thread, BradC explained clearly why some Propellers would fail to properly load. In summary:
    The download starts with the internal clock which is slow and not all Propellers would start on the same phase.
    The one responding Propeller in the protocol could report success when other Propellers were not ready.

    As suggested, one Propeller acting as a download/monitor for the others may work.
    Good luck with that.
  • heaterheater Posts: 3,370
    edited 2010-02-16 19:07
    Looks like you need to put a little boot loader into all the Props EEPROMS.

    Define a boot protocol that the boot loader uses such that:
    Junks of code (256 bytes say) are "broadcast" to all Props simultaneously.
    All Props verify a checksum on the received code.
    Props reply with ACK or NACK (OK or not) to each junk.
    Replies are made at slightly different times so that they don't shout on the line simultaneously.
    Timing is determined by an ID number held in each Props boot code.
    The ID is also returned in the ACK/NACK

    The loader at the PC end "broadcasts" the junks, listens for replies, does some retries when any NACK happens.

    Somehow Get BradC to add this loader to BST [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
Sign In or Register to comment.