Shop OBEX P1 Docs P2 Docs Learn Events
Prop Stache — Parallax Forums

Prop Stache

NewzedNewzed Posts: 2,503
edited 2006-11-30 18:38 in Propeller 1
PLEASE.........won't someone invent a Stache for the Propeller!!

Sid

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sid Weaver
Don't have VGA?

Newzed@aol.com
·

Comments

  • AndreLAndreL Posts: 1,004
    edited 2006-11-25 20:01
    What is a "stache"? You mean a "stack"?

    Andre'
  • NewzedNewzed Posts: 2,503
    edited 2006-11-25 20:08
    No, Andre -· a Stache.· Take a look at the Basic Stamp Stache on the Parallax site.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • AndreLAndreL Posts: 1,004
    edited 2006-11-25 21:29
    I see its an image autoloader, what on EARTH does "stache" stand for though? I looked thru the readme, can't seem to find an acronym.

    Andre
  • parts-man73parts-man73 Posts: 830
    edited 2006-11-25 22:43
    I'm just hazarding a guess, but perhaps "Stache" is a contraction of the words "Stash" and "Cache" ?

    Brian
  • flapdoodle_dinghyflapdoodle_dinghy Posts: 17
    edited 2006-11-26 00:02
    It is a parallel processing term.

    "Stache is a full-map invalidation-based cache coherence protocol that caches
    remote data into the node’s main memory. To implement caching, Stache allocates memory at page granularity but maintains coherence at a fine-graincache block granularity."

    Generally means a cache common to all nodes.

    Bill
  • potatoheadpotatohead Posts: 10,260
    edited 2006-11-26 00:20
    Learn something every day! Thanks for the defintion. I sure didn't know this one!
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2006-11-26 03:10
    As Stache developer, I forget exactly where the name "Stache" originated. I think we meant it as a contraction of "STAmp" and "cACHE". Nothing to do with the parallel processing term, although that is interesting, and nothing to do furthermore with the contraction of "mustache".

    Sid, this subject has come up before (I seem to remember it is your abiding interest!). It would not be at all difficult to accomplish, and the means, using a propeller at the core, was outlined by Chip in this thread:

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

    With only a few changes that would hack it for you. However, there would be lots of details to iron out in order to turn it into a product like the Stamp Stache. It would need a consistent interface both to the host PC and to the slave Prop. (USB? Serial? Both?). And it might need a minimal user interface to allow it to select between a set of different programs to deliver to the slave. At this point in time, there is only one flavor of Propeller, but it would be prudent to think about upgrade paths. I am hesitant to get into it, at least until there is a set industrial market. That is where the Stamp Stache is mostly going, for factory floor and field firmware updates, as it allows for one button firmware upgrades in no-frills packaging.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
  • NewzedNewzed Posts: 2,503
    edited 2006-11-26 13:37
    Tracy, I really need a Propeller Stache.· The Demo board that runs SupermIll is out in the shop.· The computer there runs on Windows ME so it will not handle the Propeller Tool.· Everytime I want to change the mill program, I have to disconnect, power, keyboard, VGA and the 12 pins that interface the propeller to the stepper controllers.· Then I bring it into the office, connect everything up again and load the program.· Irun the program to make sure it is OK, then back out to the shop and connect everything up again.

    I looked at Chip's loader program and I really don't understand it.· Firwt, in the instruction:

    PUB Connect(PinRESn, PinP31, PinP30, Version, Command, CodePtr) : Error

    I don't know what to load into the six variables.· Also, Chip indicates the BOEn line should be pulled HIGH.· This could be done with a new "loader" board.· The Demo board uses a miniB USB female connector· so the loader board would have to have a female USB-A connector so I could use my USB A to miniB cable, of which I have a couple.· I would be happy to pay you if you could come up with a loader board schematic and a program that would load the Demo board with a program previously loaded into the loader board from my PC.· I might be able to make the board myself - if not, I can always go to Expresspcb.· The loader board would use a Prop DIP, and I presume it would have provisions for both wall transformer and 9V battery power.· I don't even know if a loader board would work with the Demo board - the Demo expects USB input - that is the only access to RESn and pins 30-31 that I know of.· Maybe I'm just dreaming.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • ForrestForrest Posts: 1,341
    edited 2006-11-26 14:45
    Check out the new Hydra - it has a 128KB memory stick where you can store data and programs. Connect one to the Supermill and keep another in the office. It sounds like a solution - although an expensive one.

    What Parallax really needs is to do is add the ability to output a standalone Propeller Object loader + object program from PropTool - similar to what's available with the Basic Stamp IDE. The Propeller Object Loader needs to run on older version of Windows.
  • GadgetmanGadgetman Posts: 2,436
    edited 2006-11-26 15:00
    Or...

    Just use DIP8 version EEPROMs in your equipment, and swap them out when you need to upgrade...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • NewzedNewzed Posts: 2,503
    edited 2006-11-26 15:14
    The EEPROM on the Demo board is SMD, so that option is not available.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2006-11-28 01:07
    Sid,

    You've hit the nail on the head with the question of interface for a "pstache". The USB master interface would add a layer of complexity and might have to deal with different flavors of USB slave, not to mention the different possible connectors and cables. The "pstache" USB model would have to act as a USB slave toward the PC and as a USB master toward the target Prop.

    The easiest thing to implement would be a simple serial interface, not USB. The program that Chip posted assumes you have direct access to the programming pins, and that would certainly be the easiest thing to implement. Just a four-pin deal that does not even have to do any physical pin swapping to act both as slave to the PC and master toward the target Prop.

    For your situation, Sid, do you have two props? No laptop portable computer? I'd agree with others that the swapable eeprom would be a viable hack. Maybe it is not that hard to pull off the SOIC eeprom and hook up the 4 essential pins to a ZIF socket.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
  • NewzedNewzed Posts: 2,503
    edited 2006-11-28 01:18
    Tracy, just about to sign off and have dinner - medium ribeye, Tater Tots and toasted biscuits.· I'll respond in the morning.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • kelvin jameskelvin james Posts: 531
    edited 2006-11-28 07:42
    Sid Why not save yourself some grief and load xp on the shop computer?

    Kelvin
  • simonlsimonl Posts: 866
    edited 2006-11-28 13:48
    For my app' -- which is truly in the field (my porp's gonna be on an R/C helicopter!) -- I'd really like to be able to upgrade the prop's firmware using a PDA yeah.gif . I'd therefore like to request a prop' loader that'll run on a PC and PDA (.NET?)

    Chip's propLoader might well be workable, but I'm not sure I'd want to have to ship upgrades that way to customers...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Cheers,

    Simon
    www.norfolkhelicopterclub.co.uk
    You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
  • NewzedNewzed Posts: 2,503
    edited 2006-11-28 15:22
    Tracy, back to your post.

    I have two Props.· One is the Demo board that runs SuperMill, the other is a one I built up from a board I made on Supermill.

    The computer in the shop will not handle XP so that is out.· It looks like I have two options - buy a new computer with XP just for the shop, or, hope that you can come up with a viable design.· As for interfacing, the loader would have a female USB-A.· This would allow direct connection to the PC with a double-ended USB-A cable.· From the loader to the target, you would switch to a USB-A/USB-miniB cable.· This would allow direct connection to the Demo board or to a PropPlug, which is what I'm using with my Propeller board.

    There is no way I would try to remove the SSOP EEPROM on the Demo board and patch in a DIP.· So what do you think - could you come up with a Prop Stache?· With all the forum members that are using the Prop for robotic and similar applications, I think there would be a good market for it.· There is a good chance I could make a prototype board on SuperMill, if it was for a DIP.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • NewzedNewzed Posts: 2,503
    edited 2006-11-28 16:03
    Tracy, if you have the time or the inclination to work on a PropStache, all I would need is an Expresspcb schematic to see if I could lay the board out for SuperMill.· I don't think it would need a PS/2 connector or a VGA/TV connector.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • bambinobambino Posts: 789
    edited 2006-11-28 18:19
    Sid,

    A Propeller stache isn't exactly what my demo board is going to be, but I have placed jumpers in it to allow the serial lines to be slaved to another MCU I want mention here. My plan was to attempt to load the Prop from it. But the jumpers are there just in case I can't make it jump through the Prop IDE hoops during start up.

    I don't want to put any wind in your sails(it's not built yet),· but if I succeed It would be a good starting point for a stache. And as far as USB goes just leave it serial, It isn't like speed is a priority loading a new program. Oops, Just saw what kind of setup you where using. If I figure it out I'll at least share my code, As far as the USB stuff goes, for now I'll stay Serial.


    Post Edited (bambino) : 11/28/2006 6:28:23 PM GMT
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2006-11-29 06:59
    Easiest to implement this if there were those jumpers or at least isolation resistors, so that the connection could be made directly to the prop programming pins. If you have the older beta demo board that uses the prop clip, then you do have direct access to the pins. I'm not sure about the newer demo board that has the USB built in.

    A simple loader might be written for your old PC, Sid, that could take the binary or the hex file produced from the buttons on the F8 screen and run those into the shop prop. But that would take some work too, to implement the protocol. Same for a PDA. I'm pretty down on Palm today--They change the serial interface with every release.

    You asked above about Chip's propellerLoader.spin program, how to make the call to...

    PUB Connect(PinRESn, PinP31, PinP30, Version, Command, CodePtr) : Error

    Early in the program listing there is a comment line that tells you how to do that...

    loader.Connect(0, 1, 2, 1, loader#LoadRun, @loadme)

    The first three parameters are the pins that are used on the master prop to connect to the reset and programming pins on the target stamp. Pins ap0 and ap1 are outputs and ap2 is an input on the master prop, and those go to the reset pin and to pin ap31 and ap30 on the target prop. The fourth parameter, 1, is compared with the version number returned by the target prop, and the program aborts if they do not match. The fifth parameter refers to one of the contants defined in the loader object, which happens to have the value 1. In the programming protocol, it is the command that is sent to the target to initiate the loadRun procedure. Finally, the @loadrun is a pointer to the start of the program image that is going to be loaded into the target. The binary image of the actual program object that you want to end up in your target shop prop is produced by selecting the Save binary option in the IDE after pressing the F8 option. Once you have that image, it gets included in the object file with this syntax...

    DAT loadme file "loadme.binary"

    Interesting syntax, good to know that you can in fact include an entire file like that.

    The program goes on to show the details of how the target propeller is put into its programming mode and how the data is transferred using the ratiometric scheme that is compatible with the 12 mhz RC clock.

    A next step toward a "pstache" would be to avoid the step that requires the separate binary image. People have some clever ideas here to do similar things. I'd be inclined to use something with hardware, to accept an image into a large eeprom, and then do tricks with the eeprom address lines to bank the image.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
  • bambinobambino Posts: 789
    edited 2006-11-29 13:59
    Tracy, That is exactly what I've implemented on my board. Jumpers on pins 31& 30, plus a jumper on EEPROM address bit O, With the I2C lines traced out to my mother board. Other jumpers let me configure it as a stand alone demo board for testing. And in case your description of the spinloader above doesn't sink through this thick cranium of mine, I can still use the board that way.
  • NewzedNewzed Posts: 2,503
    edited 2006-11-29 14:05
    Tracy, I read your post several times, and while it is not crystal clear, I generally understand what you are saying.· One of the inherent problems in this thing is my lack of knowledge.

    From reading Chip's loader program, it appears that this program would have to be an object in a top "LoadProp"· file.· Chip's program also says that pins of the loader must be connected to the Resn, 30 and 31 pins.· There is no way I can access thos pins on the Demo board - I wouldn't even want to try.· The only access to those pins is via the miniB receptacle on the Demo board.· If I tried to hack the Demo board and did something wrong, then SuperMill would die.· So...if there is anyway this can be done, it will have to be via the Demo board miniB connector.· Does this make the whole project impossible?

    i noticed a button on the F8 screen - Save full EEPROM file.· Is there anyway this could be saved, then sent to the shop PC via my router, then loaded into the Demo board via USB?· The shop PC runs on Windows ME so I really don't know how it could be accomplished.· Maybe I'm grasping at straws.· If you can help, that would be great.· If this thing appears like it is doomed to failure, then I guess my only option is another XP computer in the shop.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2006-11-29 19:22
    Sid, I don't think there is any big need for a separate "loadProp" file. You could just state those parameters directly in the Connect PUB and run propellerLoader directly. Something like this:

    PUB Connect(0, 1, 2, 1, loadRun, @loadme) : Error
    ' pa0 on master to resn on target (out from master to reset target)
    ' pa1 on master to pa31 on target (out from master, in to target)
    ' pa2 on master to pa30 on target (out from target, in to master)
    ' targets only version 1 of propeller romware
    ' sends command 1 for loadrun (1 set in the enumeration constant)
    ' @loadme is the starting address of the binary image that will be loaded into the target.

    But I don't see how to get past the USB situation with your current setup in the shop.

    On the other tack, once the binary or hex image of the file is saved and delivered to a PC or PDA, it shoud be possible to run a program that twiddles the bits on an output port in the manner necessary to program a Prop with that image. That would be a relatively simple program and might run on your shop computer, but I don't recall offhand if anyone has reported here on the list about having written or started such a standalone object loader.

    The Prop uses a ratiometric scheme to represent the 0s and 1s that are transmitted serially. A "1" is a pulse of duration t, and a "0" is a pulse of duration 2t, where the exact value of t does not matter. The target prop presumably tracks that duration dynamically. For this to be encoded on a standard bytewise serial port, one byte of eeprom data becomes several bytes of transmitted data, but it still doesn't take very long to transmit 32k. The preamble requires that the Prop be reset while the level on pa31 is high (BREAK condition). Then there is an exchange between the master and the target that involves an LFSR (linear feedback shift register) seeded with the letter "P", followed by a check of the target Prop version number, the command for the operation to be performed, the number of bytes to be transmitted (taken from the image file locations 8 and 9), then the actual binary data. It finishes up with a checksum verification (I'm not sure where the checksum is transmitted), then an eeprom burn (if the command>1, with delay for programming and verify). That's it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
  • NewzedNewzed Posts: 2,503
    edited 2006-11-29 22:43
    Tracy, I've decided to give up on the loader approach.· With the USB connection being the only doorway to the Propeller on the Demo board, it looks like the only way to go is another computer with XP.· I found one for $399 at Office Depot, but I'd rather have a laptop if I can find a good used one at a good price.· Thanks for all the help and the time you have devoted to this.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • Tim-MTim-M Posts: 522
    edited 2006-11-29 22:58
    Sid,

    · I've done quite a bit if business with TigerDirect.com and they have the best computer prices that I can find... that includes laptops too.· Check with them if you're on a tight budget.· I have an after Thanksgiving e-mail flyer from them with two laptops at $399.

    Tim
  • NewzedNewzed Posts: 2,503
    edited 2006-11-29 23:16
    Thanks for the link, Tim.· I just sent them an e-mail - we'll see what happens.

    Sid

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Don't have VGA?

    Newzed@aol.com
    ·
  • Tim-MTim-M Posts: 522
    edited 2006-11-29 23:22
    You're welcome Sid. I hope they have something that works out for you.

    Tim
  • Tracy AllenTracy Allen Posts: 6,662
    edited 2006-11-30 18:38
    This points out to me the benefit of designing Propeller boards for industrial use in the manner that Bambino has done, with means for direct connect to the programming pins. Sometimes it is just not convenient to carry around a laptop computer for reprogramming.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tracy Allen
    www.emesystems.com
Sign In or Register to comment.