Basic Stamp Development Tidbits


Basic Stamp seems to use all the program memory PIC comes with.

Guess it is filled up with interpreter and bootloader.

EEPROM is where user's program is stored.

Modern use in PIC's with external memory is for special cases like data logging.

Programs will usually fit in onboard memory.

These Basic Stamps are clever.
JUNIOR ENGINEER

AMATEUR ASSEMBLY PROGRAMMER

Comments

  • 17 Comments sorted by Date Added Votes
  • You can also use WRITE and READ to store data in the BS2's EEPROM. Just be sure not to overwrite your program! Use Memory map to see what you've got available.

    Use an external EEPROM if you want to store more data than you've got space.

    It's a lot of fun to program the BS2. While I love the capabilities of everything new we offer, it also comes with a layer of abstraction where programmers need to take a leap of faith about what's running behind the scenes to make capable things, quickly. I think Blockly provides a nice parallel to the BS2 for introduction, without the limitations.

    Ken Gracey

  • Thank you Ken!

    'it also comes with a layer of abstraction where programmers need to take a leap of faith about what's running behind the scenes to make capable things, quickly.'

    That is a very concise explanation of the Basic Stamps.

    Can the Stamp 1 be compared to a PIC 16F54?

    https://www.parallax.com/product/pbasic1_p

    Or does the XT/P make a big ole' difference? Or are your PIC's ordered from Microchip altered internally somehow?

    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
  • It's been a while since I've gotten into Microchip part numbers, so I'd have to take a look at that. I assume (no time to Google it) that the 'F54 series have internal EEPROMs, which is why you're asking. I sorta doubt our firmware would easily accommodate the change, as we're using every single bit of resources in the PIC16C56 (?) for our interpreter. Probably also involves a hardware design change to eliminate the external EEPROM.

    While there could be a cost savings in these steps, we like keeping some products the way they are. Good runners warrant no changes sometimes. Customers who've been using the BS1-IC in production for 25 years don't like any surprises it seems.

    Keep up the questions and you can probably write a History of Parallax book.

    Ken Gracey
  • As far as I have seen, the PICs used for the BS1 (PIC16C56A) and BS2 (PIC16C57C) are standard PICs, just loaded with Parallax's interpreter. The BS2p/pe/px all use SCENIX microprocessors (SX48BD).
  • microcontrollerusermicrocontrolleruser Posts: 556
    edited September 6 Vote Up0Vote Down
    Thank you Ken

    Where I'm headed with this is more like 'What does a Basic Stamp do?' as opposed to a history of Parallax.

    Side by side comparison of a Basic Stamp 1 and a PIC 16F54 provides a baseline.

    Stamp 1/ PIC 16F54

    Hardware circuitry done (module) / No circuitry

    Access to some pins / All pins available

    Serial communication to Terminal program/ Write your own. No Debug statement.

    Bootloading or Serial loader/ Programmer required

    Programming in Basic./ Assembler or C

    Program on separate EEPROM/ Data and program memory on chip

    That used up all my brainpower for the moment.

    Will come up with some questions.

    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER

  • Thank you Mike

    I think P and I/P are temperature ranges. There's number suffixes on some of them too.

    Let's go with it is a regular PIC.

    Came up with 16F54 because datasheet on 16C56 supersedes to 16F54.

    I have not run across a 16F56. I own PIC 16F54, 16F57 and 16F59.

    Still thinking about part where Parallax used up all the onboard program memory and

    had to add EEPROM to shuttle program in and out of.

    Guess that was the only way to get it done at the time.

    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
  • Hello!
    It sort of makes sense. To be honest, I once looked at building a "something else" around either an embedded BS1 or a complete OEM BS2 rig. The embedded BS1 would've been the interpreter itself, as opposed to the OEM BS2 rig.

    It wasn't until I'd worked out the details behind the "something else" that I realized that the Stamp idea was perfect, but it was the code that was the sticking point. As it happens Ken this was well before the Forum was first launched. It was back in the day when things were roosting on the Yahoo Groups setup.

    In fact this was when the OEM BS2 was first announced. And was an OEM BS1 design ever announced?
    --
    Strange no erco robots involved here, they are in Houston doing cleanup and in Florida doing emergency preparations.
  • History is important. Remember that EEPROMs were small at the time the BS1 was introduced. A 256 byte EEPROM (2K bits) was pretty big. When the BS2 was introduced, 2K bytes (16K bits) was considered big. Now a big EEPROM is 128K bytes (1M bits).

    The design of the interpreter and the interpretive code is based on the 2K address space of the BS2. This would all have to be redesigned and rewritten to take effective advantage of a larger address space. The existing interpreter was extended to provide for data storage beyond 2K as well as other new features to access some of the capabilities of the SCENIX microprocessor. Rather than incrementally extending PBasic further, Parallax developed a new microprocessor (the Propeller) and a programming system for it (Spin). The BS1 and BS2 are still in significant use. I use a BS1 for a dehumidifier pump controller.
  • I agree.
    I use both for running different styles of logic examples. For stuff that's not expecting to retrieve data from something and is just making use of the attached logic, that's the BS1. For stuff that is expecting to retrieve data from something and display it on an LCD alphanumeric display then it is definitely the BS2.

    Incidentally that's my next big project, and will be making use of one of the new plastic boxes the firm is selling.

    And FYI Ken the BOE boards I'm using here, both for development, and then for a final configuration came via yourself.

    --
    Strange no erco robots involved here, they are in Houston doing cleanup and in Florida doing emergency preparations.

  • Thank you Mike!

    Looking at Stamp as a developer.

    Microchip has taken a page or two from Parallax's book.

    Witness the latest MPLAB Express and Curiosity boards.

    The mechanism of 'rewrite program/click icon to program device'.

    As far as Buck Roger's designing his own learning system I am not willing to take that on.

    Am looking at Assembler macro's to use in some way.

    Step 1 show simple Macro Step 2 show full assembler code behind it.

    I think that is doable in the near future.

    I mean very simple. 'Load address with value'.

    Help people get past Square 1 with Assembler.
    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
  • Thank you Mike!

    Looking at Stamp as a developer.

    Microchip has taken a page or two from Parallax's book.

    Witness the latest MPLAB Express and Curiosity boards.

    The mechanism of 'rewrite program/click icon to program device'.

    As far as Buck Roger's designing his own learning system I am not willing to take that on.

    Am looking at Assembler macro's to use in some way.

    Step 1 show simple Macro Step 2 show full assembler code behind it.

    I think that is doable in the near future.

    I mean very simple. 'Load address with value'.

    Help people get past Square 1 with Assembler.

    Not exactly.
    The idea was to embed an interpreter in the guise of BS1, or a complete OEM BS2 into a working system, to enable either of the two to become management engines for the target. I was stuck by the concept of the application software. This was shortly after the announcement for the OEM BS2, and about the time I found out that the interpreters for the BS1 happened to be available. Hence my question if an OEM BS1 was also.

    I have an idea to turn a working BS2 and the LCD display (alphanumeric with backlight and speaker) with both installed in the appropriate box, into the front end for one of my evolving machines.

    But as always the software is the persistent pest.

    Incidentally how come you wrote that with two individuals watching you? One was a rather large cat, and the other was a visiting erco designed robot.;

  • Thank you Buck!

    Will respond to this tomorrow.

    Not that I am opposed to getting wired up and working on projects into the wee hours.

    This is just is not one of those nights.

    Good night sir.
    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER

  • Buck

    I am not going to google Erco.

    What is an Erco?

    I don't think making any kind of Assembler learning system is a good idea now.

    Leave that to the Education minded engineers.

    I will still put the 16F54 and a Basic Stamp chip (Parallax likes to call them OEM parts) on the workbench.

    Then ask myself 'What does this mean?'.
    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
  • erco? He's one of our fellow developers. Does all his work with the help of his two kids and one cat. (Who I understand has invited her friends in to stay for the weekend. That's an amazing big gang of domestics.....)

    And again incidentally how come you wrote that with two individuals watching you? One was a rather large cat, and the other was a visiting erco designed robot.;

  • Buck

    To keep them amused?

    To do anything with a 16Fxx would throw me off track right now.

    Learning C by way of Assembler with later Brand X microprocessor.

    Using Stamp with no data registers is also off limits to me.

    Too discombobulating.
    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
  • GenetixGenetix Posts: 1,048
    edited September 17 Vote Up0Vote Down
    microcontrolleruser,

    Talking Electronics has a number of PIC projects that might be of interest to you.
    http://www.talkingelectronics.com/te_interactive_index.html

    The Machine Code that's generated from a C program depends on the compiler that is used.
    The purpose though of using a high-level language like C is that you as a programmer don't need to deal with Assembly Language since that's taken care of by the compiler.

    I found a really good book that explains how a compiler works that was written for the C-64 and uses BASIC.
    "Compiler Design and Implementation for C-64 & C-128"
    It's at the bottom of the page.
    http://www.bombjack.org/commodore/books.htm

  • Thank you Genetix

    'The Machine Code that's generated from a C program depends on the compiler that is used.'

    The players that are left are basically:

    Microchip C compilers with a steep learning curve. Like straight up kind of curve.

    Then CCS all by it's lonesome. Takes care of just about everything behind the scenes but

    it cost money. $100 and up. For more device support.

    You can do a whole lot with the Single Chip Compilers though. Get the idea at least.

    Those are $70 to $100 with various hardware to get you going.

    Plus you can write and call Assembler routines. Might be able to look at generated Assembler code too. Not sure about that.

    Looked at your Commodore link.

    Will look at the Compiler book.
    JUNIOR ENGINEER

    AMATEUR ASSEMBLY PROGRAMMER
Sign In or Register to comment.