Basic Stamp Development Tidbits
microcontrolleruser
Posts: 1,194
in BASIC Stamp
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.
Comments
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?
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
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.
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.
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.
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 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.
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.
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?'.
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.
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.