The Membership Card Manifesto ----------------------------- compiled in 2009 by Herb Johnson. (c) 2012 Herb Johnson These comments are emails by Lee Hart in the period of 2004-2006, discussing the merits of what became the 1802-processor-based Membership Card prototype of 2006, and the kit of 2009 avaiable at http://www.retrotechnology.com/memship/memship.html . While some of the content is a little dated, the theme and perspective and experiences described are still valid in 2012. - Herb Johnson Preamble (Jan 2005) ------------------ The BASIC Stamps are very popular, and widely promoted as cheap and easy and simple to use. And they are... if you are already a reasonably good engineer or technician, over-$100 for a starter kit doesn't bother you, and you have and are skilled at using a PC. What if you *aren't* at this level? Your alternatives are 100s of under-$20 dumbed-down electronics kits for building LED blinkies, noisemakers, crude radios, primitive robots, etc. They are completely stand-alone, and don't have computers (or when they do, it's as a secret "black box" chip to do some preprogrammed function). However, you quickly get bored with the limited scope (101 ways to blink an LED), and the opportunities for expansion are limited. The construction techniques they use are toy-like, and don't teach you much about building real circuits. But, I can't find any inexpensive stand-alone "starter" electronics kits that teach you about computers, programming, or building things with real parts. I'm looking for them for my son, who is 9. Also, I teach courses for 4th-6th grade students to build electric cars (see www.bestoutreach.org). Most kids come in with essentially ZERO [hand-tool[ skills. They have never built anything "real"; just played with Legos or virtual stuff on a computer. You would not believe how excited the kids get. They are DESPERATE to play with something real! Use real tools to build real things, that really work! While seeing something on a 19" LCD is more impressive than a blinking LED, seeing it in the form of a robot running around is even more impressive. So, what I'm imagining is a computer like the classic BASIC Stamp on a solderless breadboard, with a book and bag of parts. However, it won't depend on a PC to provide all its access and programming. Give it a front panel so you can start right in at the most basic level. The lessons would be ways to expand it. Add a keypad and 7-segment display. Add mass storage. Add a video display. Link it to a PC. Connect switches and lights and motors. Build a robot! In the process, they'll learn how digital logic and computers work. Write low-level programs, save them in ROM, and use them as subroutines in bigger programs. Go from machine language to hex to assembler to BASIC and beyond! But I've been trying to teach my 9-year-old son Tiny BASIC. It is hard for adults to realize is that kids think very differently from adults. Their logical abilities are almost non-existent, and they solve problems by trial-and-error. They cannot solve problems that involve more than a very few steps except by rote memorization. So, languages like Forth or C are out. They are just plain too complex for young children. Their very power and richness become a curse. The keyboard and screen are also a curse. Almost all computer languages require you to read and type well; a problem for kids. Kids also have problems with the extremely rigid syntax and grammar of computer languages. So kids today don't program because they don't have any computers that make it fun and easy to learn how. Logo was designed to address all these problems. In its most basic form, you have keys for basic functions of movement, and keys which can be assigned whatever functions a kid will come up with. So, my thought is to put a couple stepper motors and wheels on the computer card, program it with an 1802-based Logo, and let the kids have at it! Draw their name, teach it to run a maze, or sumo-wrestle. And in the process, begin learning the wonderful world of math, logic and programming. Proposition (2005) ------------------ My goals for the Membership card are: - a fully functional Elf computer - as inexpensive as possible - as simple as possible in design and in use - as easy to build as possible - suitable for a 9-year-old, interesting to anyone - low power but adequate speed - simple expansions for more elaborate use with robots or computers - but immediately usable without any other computer or device Of course it is limited. Everyone wants a more powerful, more elaborate system. But, I know only too well how my own "powerful, elaborate" projects go. I can happily dream about them forever; but they never get built or finished! This is one you can build in an afternoon. I'm out to encourage my 9-year-old son. I want a computer that is so simple that he will stick-to-it long enough to actually get it built and working. I hope to have a kit with all the parts and PC board offered at a low price. I'm designing around parts I already have, and will sell cheap (like the 5101 RAMs). For instance, the LEDs I'm using are 2 cents each, and the toggle switches are 13 cents each if we buy enough for 25 boards. With this "membership card", you can have a working Elf the same day you start. No need to wirewrap it from scratch, or assemble a kit with several times more parts. The key is [that] the beginner needs to see results quickly. If it takes too long, he'll either never start, or never finish. As the original Elf demonstrated, I don't think you will soon exhaust the possibilities of even so basic a computer. But when you do, there are ways to expand it, or you can transfer to another 1802-class computer. This design can plug its Input port into a PC's parallel port, to download once the toggle switches get old (which won't take long!) or when your work is longer or more complex. The small 5101 RAMs can be replaced with a 62256 RAM so there is enough memory to run Tiny BASIC and other "real" programs. I also intend to have a robot for which the "membership" card is its brain. Something like the Logo Turtle robot, that has a left and right motor that you can drive forward/reverse to make it move, turn, feel objects with bump switches, push them around, run mazes, etc. Einstein said, "Things should be kept as simple as possible -- but not too simple." This card, like the Elf computers, illustrates this philosophy. They are complicated enough to do the job and be "interesting", yet simple enough to fully understand and explore. My Early Days and the 1802 -------------------------- Date: Tue Jul 27, 2004 In my case, my first computer was a "Geniac". This was basically a set of twelve big home-made rotary switches (masonite disks with screws for the contacts). You wired these switches up to produce the AND, OR, and NOT functions basic to all digital logic. A battery provided power, and light bulbs were the output device (and told the operator when to rotate the switch disks. As you say, this simple device gave me the "Aha!" moments to understand how digital logic and computers work. Mar 17 2005 The Mark-8 was my first microcomputer system. It was a horrible design, and I just could NOT get it to work! I finally gave up when the RCA rep loaned me a Microtutor. Then the PopTronics Elf article came out, and I was hooked! I sold the Mark-8 to some other unsuspecting soul, and never looked back. :-) ... It is hard for people today to appreciate just how hugely complicated these early systems [like the Mark-8] were. There was no sense of finesse -- everything was brute force. Compared to this, the 1802 and the Elf were absolutely unbelievably simple. It was as if someone opened the hood of their car, and instead of the normal engine with its thousands of intricate expensive parts, there was nothing but a squirrel running on a wheel. And yet it worked! In this modern age, when everyone assumes that solutions *have* to be complicated, it's great to have counterexamples to show that ingenuity and intelligence can provide a better answer. Sept 26 2005 My [first] Elf used 4.5" x 6.5" perfboard with 22-pin double-sided edge connectors. This is a standard size that Radio Shack carries even today. RCA used that same connector on all their 1802 systems. Their schematics are all published, so if you use their bus pinouts you can use any of their "Microboards". My first CPU board had just the 1802 and its clock and reset circuit. Very empty board; just a few chips. My memory board had two bytewise memory chips, and a few decoder chips. Also very simple and empty. My front panel board had all the switches and LEDs you see on an Elf. It was fairly full because all those switches and LEDs take a lot of room, plus the were half a dozen chips to drive them. My I/O board had a current-loop "bit banger" serial interface for an old Baudot mechanical teletype. That was my keyboard and line printer. This board also had a audio cassette interface. This board was also mostly empty. As I learned, I built better boards for each of these. I could add the new boards and test them one at a time. It worked out very well, and let me develop the first TMSI BASYS board, which was the more usual "single board computer". Sep 14, 2004 7:32 am Subject: Re: [cosmacelf] 1802 robots (was Re: 1802 Logo) [In the 1970's], there were a lot of 1802-based robots because it was the only CPU you could get that was suitable to run off batteries. A friend of mine, Jeff Duntemann, built one he named "Cosmo". He wrote it all up in a great self-published booklet he called "Captain Cosmo's Whizbang." I still have a copy, and it's on my list of things to get on the web. Anyway, Cosmo's brain was an RCA VIP. The video output drove a little TV set to produce Cosmo's face. It had a huge grin, googly eyes that rolled around, could stick out its tongue, laugh, scowl, etc. at you. Very inventive! A little 12v wheelchair battery provided power. Two windshield wiper motors, side-by-side with a wheel on each, and a chair castor provided basic motivation. Jeff built a robot arm that worked pretty well, until Cosmo broke it showing off crushing beer cans. Cosmo was actually remote-controlled by Jeff via a walkie-talkie. But lots of fun at parties :-) He inspired me to build my own robot. I put a BASYS board in a 3"x5"x7" minibox. 4 nicad D-cells inside for power. Two stepper motors were mounted in the center of each side, with a wheel on each. The robot balanced on these two wheels, since all the weight was below the axles. There was also a front and rear "toe" switch, that were normally held depressed by the table but would open if the front or rear went over the edge. There was also a fixed pair of "fingers", also with microswitches that closed if the fingers bumped something. The bump switches tied to the 1802 EF1-3 lines, and there was a loudspeaker tied to Q. Finally, it had an RS-232 port using EF4 and Q for communications. I named it ITSABOX (It's a box turtle robot, get it? :-) as it was inspired by the Logo turtle robots. Itsabox was programmed in 8TH, which was my variant of the FORTH language. It had all the basic primitives to move forward, back, turn left and right, play music, and sense the bump switches. TMSI had a booth at the West Coast Computer Faire in 1982. So, I wrote a quickie program that told Itsabox to march forward and sing a little song until it found an obstacle or the edge of the table. If an obstacle, it said "ooops!" and turned. If it found the edge of the table, it said "oh-oh", backed up, then turned. It then continued on its merry way. As it turned out, our booth was right across from Heathkit's. And, this was the place that they introduced their "Hero" robot. It was big, complex, and impressive! But, they quickly discovered it was also deaf, dumb, blind, and stupid. After smashing itself into walls, bonking people in the head, and driving off the table a couple times in the first hour, it was destroyed and spent the rest of the show as a stationary exhibit. Meanwhile, Itsabox kept marching back and forth across our table, singing its silly song, never once marching off the table or pushing anyone's drink onto the floor. We were *flooded* with requests to purchase it, but we had to say, "No, it's just a one-off prototype; it shows what you can do with our 1802 board." 20/20 hindsight is wonderful. If only we'd known that people wanted robots, we'd have made them. Alas... Mar 3, 2006 My VIP [became] the brains of a robot I built long ago. I'd be hard pressed to find a modern replacement that was as easy to program, as low in power, and as simple to interface to motors and sensors. I have 1802's in a couple other gadgets I built; an az-el antenna rotator for ham radio, and an EPROM programmer. But these don't get used much any more. Mostly, I like to tinker. I can throw together an 1802 system from raw chips in a couple evenings, with no help from a PC as a 'crutch'. That's impossible with anything modern. The RCA 1802 and its competitors -------------------------------- Date: Tue Jan 18, 2005 6:43 am Subject: Re: [cosmacelf] Re: 1802 History RCA's CMOS was a logical process to use [for its time.] A chip with as high a gate count as the 1801/1802 would have been impossible in TTL -- it would have cooked itself to death. Most microprocessors were PMOS, but that is a slow process (like the Intel 8008 and TI micros mentioned). The really high-tech chips of the day were NMOS (like the 8080). RCA's CMOS made perfect sense. It was very low power, yet relatively fast (certainly compared to PMOS). Noise immunity was very high, letting them differentiate their product so they didn't have to compete head-to-head against Intel, Motorola, TI, etc. Dec 9 2005 Hughes Aircraft second sourced the 1802, and their HMDS development system was an S-100 computer with (mostly) generic S-100 boards. It had two CPU boards (Z80 and 1802), and a Micromation DSDD 8" floppy disk controller card. The Micromation board had no disk controller chip -- just a few dozen TTL ICs! They patched the Micromation board to be memory-mapped instead of I/O mapped. The 1802 did disk read/write using DMA, synchronized by using the WAIT line. I think that technique would have worked even with a 1.44meg floppy and 1802 at 8/7.5us = 1.067 MHz. The HMDS was unique in another way; its 40x24 character video board used a 40-character FIFO which was loaded with one line of characters, then recirculated 8 times to produce the display. Since the 1802 only has one DMA channel, it could generate video or do disk I/O, but not at the same time; the screen went blank as each sector was read/written, etc. Jan 5, 2006 I've found that 1802 programs are usually smaller than their equivalent for other CPUs. For instance, Tom Pittman's Tiny BASIC was written for the 1802, 8080, 6800, 6502, and Z8. They ranged in size from 2k to 3.5k; the 1802 version was the smallest. So, I have few doubts that you could keep the BDOS and CCP at the same size without having to leave anything out. 1802 programming is a bit different, however. Efficient coding requires a different approach than it would for a memory-oriented CPU like a 68xx or 6502, or for a register-limited CPU like the 8080. Mar 9 2006 The 1802 instruction set is only "weird" if you know other instructions sets. To a beginner, this is irrelevant. The nice thing (to me) about the 1802 instruction set is that it is simple to understand. My first microcomputer was a Mark-8, which had an 8008 CPU. It was a terrible, convoluted, confusing mess (both hardware and software). Then I tried the 1802, and it was like a breath of fresh air. I could finially say, "Aha! NOW I understand..." Jan 6, 2006 Lee Hart wrote: >> I've found that 1802 programs are usually smaller than their >> equivalent for other CPUs. Allison Parent wrote: > Call be sceptic on that. A lot of the code I've been reading is > bigger. I have seen TB for 8080 that was quite tiny... The smallest 8080 Tiny BASIC I've seen was 1.5k, but took some drastic measures such as all math being hexadecimal, no parentheses, and no operator precedence. 8080 Tiny BASIC with the same features as Pittman's was 2.5k bytes. The 1802 version was 2k bytes. Pittman's opinion was that the 1802 was the most memory-efficient of all the contemporary CPUs. I have to agree; I've done a lot of assembler for both the 8080 and 1802, and the 1802 wins. My IDIOT monitor is just 512 bytes, and that includes a bit-banger software UART. 8TH (a version of FORTH) was under 4k bytes. The 1802 certainly loses on speed, however. It takes more clock cycles to do most tasks, and given that its clock speed is similar to contemporary CPUs (8080, 6800, 6502, etc.), it is always slower. > The 8080 is register limited but it also does 16 bit math adds, has a > stack and call instruction, byte compare. The 8080's sole 16-bit math instruction is DAD, which is an unsigned add of two 16-bit registers. That's not enough for serious 16-bit math; you need subroutines to do any serious work. DAD tends to be a rarely used instruction in 8080 code. The 8080 has CALL and RET, so programmers tend to use them. This has come to be considered "normal programming practice". But they are the longest (4 bytes to CALL and RET) and slowest instructions (8 bus cycle to CALL and RET). It's easy and obvious, but tends to make rather inefficient code from a speed and memory point of view. The 1802 uses a different technique; it assigns program counters to each subroutine, so "call" and "ret" are shorter and faster with no stack activity (2 bytes and 4 bus cycles to SEP and RET). If you have a small enough number of subroutines, this is a more efficient technique. When 1802 programs become complex enough to outgrow this simple technique, the instruction set lets you build custom CALL and RET macros to suit the problem at hand. SCRT (Standard CALL and RETURN Technique) is one; it imitates what the 8080 and "normal" CPUs do. But when I was implementing 8TH, I found it faster and easier to use other techniques. It boils down to the old CISC-vs-RISC debate. Is it better to have many complex instructions that do a lot, but restrict what you can do and take many bytes and clock cycles? Or a few simple instructions that do little but are great building blocks, small, and execute quickly? The 1802 is more like RISC or microcode; you tend to see certain pairs of instructions frequently used to build more powerful instructions. If you are trying to build "standard" programs, this is a nuisance. But if you can re-think your problem to suit the instruction set, you come out ahead. -- Nov 2, 2004 4:43 pm Subject: Re: [cosmacelf] Re: I've built a working replacement for the 1861 (long) [In today's microprocessor-based designs] there are lots of complicated solutions, and expensive solutions, and hard-to-build solutions, and solutions that use unobtainalble parts. These aren't the kind I'm looking for. What attracts me to the 1802 (then and now) is that it tends toward simple, elegant solutions. It demonstrates how much you can do with very little. A kind of "zen" computer. The 1861 is [another] such solution. A true one-chip solution, that provides a basic video display. It is simple to build, simple to use, and simple to understand how it works (at least, by video standards). Isn't it interesting that today, 25-30 years later, we can't find a chip that does the job as well? Sure, we have lots of far more complex solutions. We can use a PLD (Programmable Logic Device); but it will have 100s of times the gates and use 100s of times more power, and it requires access to an expensive programmer and knowledge of how to use it. We can use another computer, a PC or whatever, to simulate the old 1861; but this is even more complex and is only practical if we already have that $1000 computer for some other purpose. We can use surplus parts, that we bought for 1 cent on the dollar; but that leads to a special-case solution that can't be duplicated. So, the fun for me is trying to thing of another simple, elegant solution, that is as good as the 1861 was. Is such a solution possible? Inspiration from the ZX81 ------------------------- Jan 25, 2005 Subject: Re: [cosmacelf] 1802 ZX81 leealanhart Richard wrote: > I just had to throw and Idea in here. I was thinking it wouldn't > take a lot of work to create an 1802 based version of this machine. > The hard part would be to finding someone that could make the > keyboard layout for less than an arm. The rest could be done with > software. an we wouldn't have to have RF modulator because almost > all VCR's have video connections. It could have a CF port for storage. The ZX-81 was a classic Clive Sinclair "mad genius" product. Very *VERY* tricky and clever. The original ZX-80 had about 11 generic chips; the ZX-81 got this down to 4 chips with one being a simple custom part. The keyboard was just the PC board itself with a metalized mylar overlay; when you pressed, it flexed enough to short traces on the PC board. The video circuit was even simpler than the 1802/1861. It had a Z80, static bytewide RAM, and ROM. These parts worked normally to hold the program and data, just like any microcomputer. But, at the start of the top video scan line: - The Z80 did a JMP to *execute* the ASCII data to be displayed in the RAM. - But, the hardware opened the Z80's data bus, and pullup resistors jammed in a NOP instruction instead. - The Z80 executed 32 NOPs in the time it took for one scan line. - Therefore, the Z80's address bus incremented 32 times. - This read 32 consecutive bytes from the RAM (the characters to display on the first line). - The data from the RAM was patched to the *address* inputs of the ROM. They selected the bit pattern lookup table for that character. - The data from the ROM was latched into an 8-bit video shift register, and was shifted out to become video. The top row of dots for the characters is displayed. - The Z80 finishes its 32 NOPs at the end of the line, and continues with another 32 NOPs during the next scan line. Its lower address lines A0-A4 still go to the RAM, and scan the same 32 charcters again. But the Z80's A5-A7 lines keep climbing; they are the row counter and go to the ROM to select which row of dots gets output. - This scheme continued to generate 24 lines of 32 characters, each in an 8x8 dot matrix. - When the Z80's address finally counted to FFFF (end of RAM), it wrapped around to 0000 (the ROM), and normal program execution resumed again. So, like the 1802/1861, about half the Z80's execution time is taken up in supporting the video. But the Z80 is running at 3.7 MHz (about twice as fast), and it only needs 4 clock pulses per bus cycle (compared to 8 for the 1802). So, the ZX-81 gets 32 bytes per scan line compared to 8 for the 1802/1861. Nowdays, for an 1802-based "ZX-81", I think I'd lean toward an LCD display instead of a TV set. $10 will get you a small character-based LCD, and even a 240x64 pixel full graphics display is under $50 new. The interface circuit to drive it is trivial (basically just an 8-bit output latch). You'd need a ROM with software to operate it as a usable display. Jan 25, 2005 9:01 pm Subject: Re: [cosmacelf] Re: 1802 ZX81 leealanhart What always amazed me about Clive Sinclair is how accurately he could target a market, and the design a product ABSOLUTELY suited to hit it exactly. The Sinclair ZX-80/81 went from non-existent to the #1 selling computer in the world in just 4 months! He sold at the peak (to Timex), and then happily watched as the market changed (the target moved), and the ZX-81 was no longer on-target. mc71de wrote: > He never sold to Timex... after the ZX80 was mainly sold in kit form > (only a lower percentage was built by home workers, it is said) and he > could not fill the demand for a prebuilt unit, he contracted with > Timex to manufacture the ZX80 in their british plant (Scotland, i > think). Part of the deal was that Timex got the exclusive rights for > the US market (renaming the ZX81 to the Timex 1000). Timex was clever > enough to include 2K ofRAM, and by the time the Spectrum came out, > they backed out and sold their own design (Timex 2068) instead. Thinking a bit on this... There's no point in building yet another laptop, no matter what the CPU. It's been done to death. But, there *may* be a point to designing a little programmable thing (like the ELF). It isn't a "computer" (that word's been taken :-) but you could call it a "controller". Instead of a normal CPU, perhaps it contains an FPGA that implements some "CPU" that is very easy to program and use for a beginner -- kinda like the 1802. This would be in stark contrast to the PICs, ARMs, and all the other modern chips, which you essentially have to be a professional engineer to use. Maybe this FPGA directly executes Pittman's IL code, so it runs Tiny BASIC as its native language. This would make it easier for kids to program, yet 100 times faster. Since the IL code is extensible, you could add keywords or functions as needed. Like the BASIC stamps, you could add keywords to support LCD displays, hobby servo motors, etc. Jan 26, 2005 6:28 pm Subject: Re: [cosmacelf] Re: 1802 ZX81 leealanhart Remember I said "mad genius"? [Clive Sinclair] really is a genius. The ideas for the products he built were all great. There really *were* large markets for all the products he had designed: digital watch, pocket TV, digital multimeter, oscilloscope, scientific calculator, several computers, personal electric vehicle, etc. If he could produce a product at the price/feature point, he'd be rich! But he's also mad. He built these products *before* conventional wisdom said they were possible. To do it, he had to "pull a rabbit out of his hat" -- find some fiendishly clever invention or design or construction shortcut to do the impossible. "Uncle Clive" was very good at finding such tricks. However, normal design, manufacturing, and sales people often had a lot of trouble making his tricks work in the real world. The ideas weren't bad; in fact they were often downright brilliant. But the implementations were often horrible. Too "small"? ------------- Dec 9, 2004 9:36 pm Subject: Re: [cosmacelf] cosmac elf question craigsherenow wrote: > other than making lights flash what can you do with a elf? Good heavens! This is like asking what you can do with a microcomputer! To most people, "computer" means the PC sitting on their desk. For all their power, they are really just an appliance. It only does what the manufacturer wants it to do, and it only runs software that someone else wrote. Now, there is a *lot* of hardware and software out there for it -- maybe all you care about. But, what if you wanted to do something different? Think of a PC like a radio. A super-duper radio, that can receive any station, anywhere in the world! You can listen to thousands of programs! Even save them, to listen later, again and again! Any music you want, any time, as many times as you want it! What reason could there be to have anything else? But, what if you are musician? You want to *create* new music, not listen to someone else's music. You want a musical instrument, like a guitar; not a computer. Now, a guitar is vastly simpler than a computer. But in the hands of skilled artist, you can make great music, much better than that which comes out of the tinny speakers on your computer. The 1802 is like this -- it's a musical instrument for "playing" with the hardware and software. You use it to do things that are NOT done by conventional PC. By being vastly simpler than a PC, you can get right down to the most basic level. Things become easy that would be horribly difficult and complicated on a PC. So... what'dya want? A radio or a guitar? :-) Jan 26, 2005 6:28 pm Subject: Re: [cosmacelf] Re: 1802 ZX81 leealanhart mc71de wrote: > ..it is by no way easy to learn [the 1802]. You run into > its limits too soon. Easy-to-learn implies that there are limits! The whole *point* is to deliberately have a small, limited, restricted subset specifically so it is easier to learn. > >[Lee Hart:] This would be in stark contrast to the PICs, ARMs, and > > all the other modern chips, which you essentially have > > to be a professional engineer to use. > > Nonsense. > Simple dev board for an Atmel: <$20... Everything you described [in a typical microprocessor development system] is exactly what a professional engineer would want. [But] a beginner wouldn't even know what the heck you were talking about. Look at the original Popular Electronics ELF articles, or the RCA Microtutor or VIP. They were expressly written and designed for people with ZERO computer experience, and ZERO computer hardware. Rank beginners. *ALL* of the modern micros assume a considerable amount of computer experience, and access to considerable computer hardware. While their on-chip memory and peripherals are very powerful, they also make consideralble demands on the skill level needed to use them. BASIC Stamp BASICs aren't "basic" at all, and bear essentially no relationship to the actual BASIC language -- I think they just use the name "BASIC" for marketing reasons because it implies "simple". They all use surface mount chips, and assume NO home or hobby construction. They are designed for professionals, not hobbyists. >> [Lee Hart:] Maybe this FPGA directly executes Pittman's IL code, so it >> runs Tiny BASIC as its native language. > Then, you will lose TB's easy expandability. No, because Tiny BASIC is written in IL. You could also write Logo or FORTH or some other language in IL (though it is optimized for interpreted languages). > What's bad with taking one of the existing BASICs? If it comes > hard-on-hard, you could even give them MS Word and teach its macro > language. There's a reason that it is called Visual Basic for > Applications. Depending on what you want to do, it is quite suitable. I'm talking about a computer like the ZX-81, which is *meant* to be used by a first-time novice, with no previous hardware or software experience. By its very nature, it has to be exceptionally easy to use understand and use, even when that means sacrificing power, speed, and flexibility. All these modern languages require considerable computer power and resources to run them, and demand considerable experience and expertise on the part of the user. I guess my thesis is that "kids today don't program because they don't have any computers that make it fun and easy to learn how." > [The IL code is extensible] only if you run it as interpreted language > on a 'Meta Micro' No; it is extensible even on an 1802 ELF, as Richard has shown by adding new keywords. Languages; BASIC, FORTH, Logo? ------------------------------ Jan 26, 2005 6:28 pm Subject: Re: [cosmacelf] Re: 1802 ZX81 leealanhart mc71de wrote: > What I would do if I had to design a BASIC from scratch: Implement > something like 'object modules' so that you could write your own > commands and functions just in BASIC itself, or in any other language > for that matter, just as Pascal has not only its procedures and > functions, but also Units (or is that a Borland specific?)... > combined with an easy-to-understand assembly language of the > underlying processor. I am not too sure if - given today's computer > speed - I would make it a compiler, so that every RUN would just > compile it without the user really taking notice. Just a few ideas... BASIC made a great start at being simple to learn. Unfortunately, it lost focus as it grew. Everyone expanded it in different directions, leading to an incomprehensible mess. FORTH makes an excellent start, and has a philosophical underpinning that has allowed it to expand considerably without losing its focus. It starts with a very few keywords, but defines the way to add new ones that behave exactly like existing words. FORTH includes an assembler and compiler. Programs are stored in source form, and are compiled/assembled as needed; great for learning and experimenting. But FORTH's reverse polish notation and stack orientation are difficult concepts for beginners. FORTH programs tend to be "write only" such that even the author can't figure out what they do unless well commented. I suppose you could marry the best features of the two, and have a language that is as good for beginners as BASIC, but keeps the extensibility and power of FORTH. I think Seymour Papert tried to do this with Logo; but it too has wandered off into professional programmerese. -- Jan 27, 2005 2:53 am Subject: FORTH (was: Re: 1802 ZX81) leealanhart J.C. Wren wrote: > Lee, > You are propagating the myth that Forth is difficult to learn > and is write-only. I was comparing BASIC and FORTH; in that context, FORTH is worse. I've done a lot with both BASIC and FORTH; and taught quite a number of people both languages. My experience is that FORTH *is* more difficult to learn and more "write only" than BASIC. However, BASIC is so good in these respects that virtually any other language you pick is worse. When FORTH is compared to most other languages, it comes out pretty good on being easy to learn. The main difficulty arises from teaching people who have substantial programming experience with some more traditional language. FORTH is enough different to require a lot of re-learning. > ANY language can be made write only. Yes, of course. But BASIC (and most other languages) have a rigidly defined keywords and syntax. And, the keywords are pretty much self-explanatory. Even if the programmer didn't provide any comments, you can still read his program and figure out what it is doing. But with FORTH, the whole philosophy is to create your own application-specific words, and use them to build your application. Programs can become incomprehensible very quickly! > If you look at Leo Brodies 'Starting Forth' Yes, that's an excellent book -- it was, and may still be the best there is for learning FORTH. > ..... I don't think many people are interested in simple systems > any more. Before, the disparity between a system designed for teaching > someone (like the VIP), and a system that was a full-blown system was a > lot smaller than today. Why would anyone want to layout $99 for a > ZX-81, when you look right next to it and see a 1Ghz Athlon with 40GB, > 256MB, and can run Windows or Linux for $299? Why would I buy a TV set for $99 when I can get a computer for $299? Because I want a TV set; not a computer. They are two entirely different things, that serve completely different needs. Kid's toys have always been, and still are, vastly scaled-down versions of the "real thing." You don't judge the merit of a toy based on how well it does real work. You judge it by how much fun it is to use, and by how much learning it fosters. > Maybe there's a market for more building block type widgets that > connect via the USB port that allow people to construct systems. A > small keyboard to introduce scanning keyboard concepts, with a program > that allows the lines to be single stepped, etc. A/D modules for > "little hands" that are more bullet-proof to demonstrate reading and > displaying values. A small digital block building system, where part > of the USB functionality is a logic probe? > I don't know that market very well, but it seems there's a huge > whole between the crappy 300-in-1 kits that have seriously lame > projects with less documentation than ever, and something like I've > described above. *NOW* I think you are getting onto [my] wavelength! This is exactly the sort of think I would like to develop. Sure; it's a toy computer; but it teaches *real* computer principles. And, it would make things like writing programs and developing circuits easy and fun. > Another issue is expectations. Turn[ing] on a LED isn't exciting > anymore. Ok; then turn on his room light. Same problem; just a different scale. Maybe your toy computer outputs X-10 codes, and the usual sensors (little $10 boxes that plug in between an AC outlet and some load) turn things on/off. > The power of visual feedback as encouragement is pretty large. > Seeing it on a 19" LCD is a lot more impressive than a LED. ...and seeing it in the form of a robot running around is even more impressive. > Perhaps the word I'm looking for is "jaded". Kids are jaded towards > expecting the big and shiny, and I don't think you can give them > to that with a little trainer kit. It's not the kids that are jaded -- it's the adults! I teach courses for 4th-6th grade students to build electric cars (see www.bestoutreach.org). Most kids come in with essentially ZERO tool-using skills; they have never used a hammer, saw, or screwdriver. They have never built anything "real"; just played with legos or virtual stuff on a computer. You would not believe how excited the kids get. They are DESPERATE to play with something real! Use real tools to build real things, that really work! We start them off designing small model cars. There are no plans, no kits, no supplied materials -- they have to invent it themselves, and scrounge the materials, and get them to work. When they get the models working, they then scale it up to build a go-kart sized vehicle that they can get in and drive! We have about a dozen schools participating, and run a couple hundred kids through the program each year. > Perhaps it's unfortunate that there aren't as many modern readily > produced components that kids can be introduced to (SMT vs. DIP, etc), > but that's the price of the technology curve in ANY field. I would say rather that it is a conscious decision our society has made. We treat fantasy as more important than science, [and] technology as the same as magic. There is no need to understand anything, or fix anything -- just let someone else do it all. When it breaks, throw it away and buy a new one. Sep 11, 2004 Subject: Re: [cosmacelf] 1802 Logo Lisp is one of those fascinating languages that I've always meant to get around to learning (but never did). It is the basis for so many truly unique and powerful programs. One of them is Logo. Logo came out of Seymour Papert's work on a language specifically tailored for children to learn about computing. Logo began with a "turtle" robot (a little tabletop robot shaped like a turtle). You learned the commands to tell it to go forward, back, turnleft, turnright, and raise/lower a pen so it could draw a trail of its path on a sheet of paper. My son is now 9 years old, and ready to learn about programming. Logo seems like a wonderful introduction to programming and logical thinking. I even have an 1802-based robot! So... my pet idea is to bring up Logo on my robot, and turn my son loose with it. Moreover, I have ten of the MSI/88 1802 computers that are just begging to be turned into an army of turtle robots, to take to school! Any one else think this would be an interesting idea? -- Sep 11, 2004 5:59 am Subject: Re: [cosmacelf] 1802 Logo J.C. Wren wrote: > Teach a man's programming language: Forth! The one *true* > programming language. Followed by assembly, then C. :) (This reminds me of that old joke sheet that says, "Real programmers don't program in..." and then it proceeds to denigrate every known computer language one by one :-) Seriously, I've been trying to teach [my 9-year-old son] Tiny BASIC. It is actually pretty well suited for kids. It's an interpreter, there are very few keywords, and what each one does is very simple. It is hard for adults to realize is that kids think very differently from adults. For one thing, their logical abilities are almost non-existent. For another, they solve problems by trial-and-error. They also cannot solve problems that involve more than a very few steps except by rote memorization. So, languages like Forth or C are out. They are just plain too complex for young children. Their very power and richness become a curse. The keyboard and screen are a curse for almost all computer languages. They require that you be able to read and type well. Kids also have problems with the extremely rigid syntax and grammer of computer languages. Logo was designed to address these problems. It can be used even by kids that can't read and don't even know the alphabet. In its most basic form, you have keys for: numbers forward backward left right to enter Each of these is a single key; for instance, the four arrow keys are used for forward, backward, left and right. The user types a sequence of keys, then Enter to say "do it." For example: forward enter (robot moves 1" forward) forward 5 enter (robot moves 5" forward) right 90 enter (robot turns clockwise 90 degrees) forward 12 right 120 forward 12 right 120 forward 12 enter (robot moves in a 12" triangle) "To" takes whatever key you hit next, and redefines it to do whatever the sequence of keys that follows directs (i.e. it creates a subroutine). to x forward 12 right 120 forward 12 right 120 forward 12 enter After this, x enter (robot moves in a 12" triangle) The idea is that kids learn by trial and error what the keys do. They experiment with numbers to figure out what number to type to get the robot to move a given distance, or turn a particular amount. As the child masters these, more commands are added. "Penup" and "pendown" allow the turtle to draw things on paper. "Repeat" allows repetitive actions. + - * / add math (forward 2 + 2 goes forward 4"). A complete, powerful, structured programming language gradually emerges. So, my thought is to put a couple stepper motors and wheels on the MSI/88, program it with an 1802-based Logo, and let the kids have at it! Draw their name, teach it to run a maze, or sumo-wrestle. And in the process, begin learning the wonderful world of math, logic and programming. Genesis of the "membership card" -------------------------------- Jan 28, 2005 rileym65 wrote: > > I have had several inquiries about my TMS9118 color board for the > Elf. I have found a source of TMS9118 chips, but, they are $25 ea!!!! > and with a minimum lot order of 10. If anybody is interested in > getting any of these let me know and we will pool an order together. > For those who are unfamiliar with the TMS9118 it is the upgraded > version of the TMS9918 that was used in the TI 99/4a computers. It > provides 256x192 graphcis in 15 colors. It also suports sprites and > video feed through. You know; considering all the people who visit this list and have never seen an Elf or other 1802 computer... and the recent offers of 1802's for sale at good prices... and people (like me) who still have a bunch of 256-byte RAMs cheap... Would it make sense to offer a "membership card" which is an Elf PC board and a bag of parts that interested parties could buy? I'd be happy to layout out the PC board. The 1861 is unavailable, but perhaps the TMS9118 could be used instead (obviously with a different circuit and software -- it's not compatible). Or, I could use my 1861 simulator, or the FPGA-based one (whichever works out best? Jan 28, 2005 Bob Armstrong wrote: > [regarding your "membership card", is] the Elf2K is not enough? Or the MicroElf? > What happened to the STG1861? rileym65 wrote: > So true Bob, everything for an introductory Elf already exists with > what people here have built... Sorry; I didn't mean to ignore these excellent efforts. But, they are "bigger" systems than I had in mind. Let me explain... My brainstorm was for a PC board that really *is* membership-card sized -- say, the size of a business card, 2"x3.5". It has a minimal 1802 system, basicall an Elf stripped down as simple and inexpensive as possible/reasonable. Maybe like this: - 1802 - RC oscillator clock - 256 bytes of RAM (two 5101's) - 8-bit output port (with 8 individual LEDs) - 8-bit input port (with 8 DIP switches) - 1 more LED on "Q" output - a pushbutton for EF4/load - 2 DIP switches for clear/load/wait/run - power; runs on two AA batteries - edge connector for expansion - stereo phone plug for RS-232 in/out to PC Sure, it would be hard to use with those itsy DIP switches and binary LEDs. But, I doubt the total cost would even be $20. And, one of the first things you'd do is enter a serial program into it, and henceforth plug it into your PC's serial port and do it all with it. Comments? -- Jan 28, 2005 rileym65 wrote: > It would be pretty hard to come up with an 1802 design that would be > fully funtional and be smaller than my Micro/Elf or Pico/Elf designs. I haven't seen the Pico/Elf design. The Micro/Elf is a very nice package, and quite small. However, it is still a $100+ computer, and I can see where it would be hard to justify when you can buy a BASIC Stamp for $50. I'm thinking of an entry-level project that would only cost someone $20 or so. It's not so much a serious computer as a demo or toy, just to get you started. Something to show how simple an 1802 can be. Toward this end, I would try hard to use the minimum number of parts and lowest possible cost, and make free-standing (doesn't require an outside PC to be functional). If it works, people are likely to be encouraged, and want something more. Just like with the original PopTronics Elf, where people naturally moved on to a Quest Elf or Super Elf, only today it would be the STG or Micro Elf, etc. For myself, I think I'd like to have a tiny 1802 computer for making BEAM robots (little solar-powered robots that run clock motors etc.). Thus the idea of making it credit-card sized and micropower. For a robot, you'd disable the LEDs and use the output port to run things in the robot, and use the 'front panel' switch inputs as your robot's sensing inputs. Jan 28, 2005 [q: why 5101's?] I know... but I already have 100+ 5101s, so they are free. Also, the 5101 is a true CMOS chip; micropower consumption as long as the inputs are static (even when it is chip-selected). Almost all modern "CMOS" memory chips are only low power when not selected -- they draw many mA when active. Jan 28, 2005 Kathy Quinlan wrote: > I have lots of spare time; I could do the [membership card] PCB in a day :) Same here. It should be a relatively easy board (if we don't get too clever)! > When do we start? I guess we *have* started (the thinking and planning part, anyway). I started roughing out a parts list and schematic. I'm basing it on the Elf, but trying to see how simple I can get it. There are already several "deluxe" versions of the Elf, so I don't need to duplicate them (don't need more memory, more I/O, etc.) Here are my thoughs so far: - A 10-LED bargraph for the LEDs (8 data, 1 for Q, 1 unused). These are inexpensive, very small, and fit a 20-pin DIP socket. Unplug them and use the DIP socket as your Input connector. Or plug in a ribbon cable to a "real" hex display if you want. - A DIP switch instead of toggle switches. They are tiny and cheap. Yes, I know they are a horrible pain to use! But, I wouldn't use them for much more than "to see if it works", and to load a serial loader program so I could download code into it with a PC. If you want toggle switches, unplug the DIP switch and connect a ribbon cable to its socket to "real" switches. - Slide switches for the Load, Run, and Memory Protect switches. They are almost as small, and get used more often (such as when you have the I/O connected to a robot or other project). - Pushbutton for the In switch. Pushbuttons can be very small, and are easier to use than toggle switches. [Which suggests a "mad" idea -- What if I provided "1" and "0" pushbuttons instead of the 8 data DIP switches? Press the switches in sequence to enter the desired number -- for hex 5C you'd press 0 1 0 1 1 1 0 0 In for example. Each pushbutton sets the data and clocks it into a 4094 shift register. This would allow much nicer data input switches and much faster manual loading.] - Expansion connector is an edge connector along one side. 0.1" double-sided, to fit in an insulation-displacement socket. Would have the necessary signals for memory and I/O expansion. - Stereo miniature phone jack, with ground, /EF4, and Q on it. Plugs into a PC's serial port, for uploading/downloading. I'm still looking for ideas, folks. What can be done to further the goal of keeping it as simple and inexpensive as possible? Jan 29, 2005 [Q: Why not provide more features on different daughter boards?] I would suggest that this has already been done pretty well on the other Elf boards, so there is little to be gained by doing it again. This breakdown requires multiple boards to do anything, with the attendant increases in cost (connectors, 2 boards cost more than 1, etc.) and lowered reliability (intermittent connectors, etc.). Feb 1, 2005 Mike Riley wrote: > I would rather have a slightly larger board with generic logic > than to use programmable logic to squeeze it down... I quite agree. We can still play with old 1802s because they used so many generic parts that we can understand how they work, and replace if necessary. We have all our trouble with the "odd" parts! (1861's etc.) I had some time this weekend, and worked out the schematic for a very simple "membership" card. Here's the parts list: 1 - 1802 CPU 2 - 5101 256x4 CMOS RAM 1 - 74HC273 octal latch (OUT2 port) 1 - 74HC244 octal buffer (INP2 port) 1 - 74HC32 quad 2-input OR gate (glue logic) 1 - 74HC132 quad 2-input NAND gate (glue logic) 1 - 4013 dual D flip-flop (Load mode, latch A8) 1 - 4053 triple SPDT switch (RS-232 level converter, power supply) -- 9 ICs In addition, there are about 28 resistors and 6 capacitors. It uses a 10-section LED bargraph for data output, an 8-section DIP switch for data input, and 3 switches for In, Load, and Run switches. I took your advice to heart and made it a very generic, micropower design. With LEDs off, it will certainly run a year or more on two AA batteries. I had fun with the RS-232 port design (I never get to have any fun engineering at work! :-( A single RS-232 output uses 10 times the power of the entire computer. So, I used the RS-232 input to power everything else! Even the LEDs (if you don't mind them being very dim). Rather than a special charge pump DC/DC like the 7660, I used a cheap 4053, wired to do the same job. No matter which way the RS-232 input line swings (+ or -), it is rectified, and the 4053 generates the +V and -V supplies. The basic design is exactly like the original Elf. I used real OR gates instead of the diode-resistor OR gates of the original) for lowest power consumption. There are no resistors from supply to ground in any logic state. Only the LEDs draw power, and you can pull them out and plug in an LCD or other display device if you like. There's a 40-pin edge connector that mates with an IDC ribbon cable for expansion. The pinouts are basically the 1802 itself. If anyone is interested, send me a stamped self-addressed envelope and I'll send you a schematic. If there is enough interest, we can layout a PC board. I don't know how big it would be, but a credit-card size board is possible if tightly packed. Small size makes the PC boards cheaper these days, as long as you don't pack the traces too tightly. With the inexpensive 1802 recently offered, and my 5101's, the total IC cost is well under $10. I'll post a more precise parts list and cost estimate later this week when I get time. -- Feb 2, 2005 mc71de wrote: > (keep in mind we still discuss a 'business card' Elf) Exactly! There is an *irresistible urge* to keep adding "stuff". But there are already lots of expanded Elfs. They are excellent products; I don't need to do it all again. But, I'm setting out to make it a KISS design (Keep It Simple, Stupid). Plus, I want to show off what an 1802 can do with very low power. > Stay with two hex displays (as the original Elf) and compare the > price (like $10) to one '373 and a bar graph display. It's not > *that* more expensive For a KISS display consisting of a latch and 8 LEDs (Jameco single-piece pricing): 1 - 74HC273 octal latch $0.29 each 8 - red LED $0.25 each total: $2.29 With the hex LED display used in the original Elf: 2 - TIL311 hex display $16.95 each total: $33.90 I.e. the TIL311 is a *lot* more! - and I haven't yet made up my mind which is more stylish. Style is in the eye of the beholder. I tend to think a panel of blinking lights is much more "retro stylish". :-) > I'm missing the toggle switches :-) I understand the business card > challenge that it should not only be a tiny controller board (the Pico > Elf is ideal for that) but also have display and input- just like the > original Elf. That's my thought, too. I loved the original Elf in part because it was immediately function, without any monitor ROM or terminal or other complexity. So, I considered it important to include the Elf's 'front panel' Load mode. > Looking on the original ELF design and what's available as genuine > 4000 series parts, i doubt a design with 5101 RAMs and CMOS chips > will fit the 2x3.5 inch format- but feel free to prove me wrong! > - put a switch in the LED power trace for longer battery life. It just > doesn't make sense to tweak power consumption when we are burning lots > of milliamps in the display. The LEDs I'm looking at are "high brightness" types specified for low current operation -- 3mcd at 1ma. The plain old 10-LED bargraphs are cheaper, but need more like 20ma per segment for the same brightness. What I'd *like* to find is an individual LCD "dot" display. They used to make these, but I can't find a vendor any more. It's a round or rectangular LCD, all one big "segment", with a piece of very bright colored paper behind it. When off (no AC applied to its 2 terminals), it's a dark gray. When on (AC applied), it becomes transparent and you can see the brightly colored paper behind it. You placed a legend on the paper (like "POWER") and it appeared to light up. Actually, it produced no light; it just reflected ambient light. As a result, they took essentially zero power. > - use post connector receptacles instead of (or in addition to) the > LED and DIP switches- so you can plug in a daughter board, made from > copper strip protoboard, with either the LED/DIP switch, or the HEX > displays and real switches, or the 0-1 pushbutton entry, or hook it up > to a PC's parallel port... I'm sort of doing this. What I'm imagining is a thing about the size of a credit card, that looks like the classic "blinking lights and toggle switches" type of computer front panel. It works just as it is, like an Elf. But the DIP switches and LED bargraph are socketed in ordinary 0.1"x0.3" IC sockets. To use it in a project, unplug these parts and plug in a DIP header or ribbon cable to connect it to the I/O of your project. > Dip switches have a limited lifetime anyway so they will not work > well for 'everyday use'. Yet they fit nicely into the 'business card' > format. Exactly. They aren't meant for daily use. Socketing them deals with the inevitable wear-out. >> yet with an expansion connector can be made just as useful >> as other Elf designs. > Definitely. And you can still take it with you on boring train > trips :-) Yes. For more serious work, you'd be more likely to just use one of the more capable and expandable Elfs. I'm thinking of the "expansion" connector more as just a way to plug the entire board into some project, like a robot. -- Feb 2, 2005 Mike Ventura wrote: > This is great, and very close to what I was thinking. We could even > reduce the chip count by one if we use a skinny 8K device and tie > the upper address pins to ground. [Just a thought :)] Yes. However, I happen to have the 5101's for "free", and they were used in the original Elf. Plus, if you truly want micropower, very few modern RAMs are built for it. > We could probably get a smaller foot-print if we venture into SMT > devices for the gates and flip-flops. We could; but I *hate* doing surface mount by hand! It would definitely take it out of the hands of beginners. Bill Rowe wrote: > Boy Lee, that sounds like fun but I just don't see how it could be > physically small with 3 big chips and a half dozen small ones plus > the other stuff! I entered the parts list into my spreadsheet calculator. It totals up 6.75 sq.in for all the parts. A credit card is 3.375" x 2.125" = 7.17 sq.in -- so it *barely* fits. A desperately difficult layout, but that's without using any tricks, like standing resistors on end or hiding parts underneath the socketed ICs, or mounting them on both sides of the board. So, with tricks I think it could be done. I just tried plopping the ICs on a piece of perfboard, and they do indeed fit, though they are tight-packed. More likely, I'd look for a little plastic case to put it in, and pick the PC board size to match. Feb 2, 2005 J.C. Wren wrote: > I forgot to mention the point of doing them this way: to put them on > the back. A SIP flat mounted on the back wouldn't be objectionable. > Resistors stood up on the back most certainly would be. Aha; now I understand. You're right -- having flat parts like resistors or capacitors on the back shouldn't be any problem. But of course, depending on how you were going to mount the board, tall parts on both sides might still be acceptable. I've built boards where all the LEDs were on the "back" to provide the display, and all the drivers and logic were on the front so they weren't seen. We can get it amazingly small this way. But on the other hand, I'd like to make it VERY simple to assemble -- something that a 10-year-old could build as his first kit. That implies big easy-to-solder pads, large part spacings, very clear silkscreening, etc. Like the old Heathkits. So, is a credit card *too* small? It forces those tiny DIP switches and LED bargraphs, making it hard to use. The original Elf's "miniature" toggle switches are 0.5"x0.3". Using them requires about 1.5 sq.in more PCB area, and adds about $15 to the total price (that means it *doubles* the parts cost; it's currently at $14.52). Is this a desirable change, or just a feature that sounds good but no one would use? Feb 3, 2005 Peter de Vroomen wrote: > The Nokia LCD is not hard to control. But you would certainly want > a ROM, if only to have a character set on-board. Of course it's not hard to control for someone used to these things. It's just hard for a beginner. We could supply a ROM with the necessary code, already done. But I think that would detract from the learning experience. There are already other, better Elf boards which start people off at this higher level, if that's what they want. > Hmm, what battery-backup RAM? If you use a 6264 in the design... I like the idea of nonvolatile RAM. Load a program, and it *stays* loaded (until you change it). The simplest way is to just leave the batteries connected all the time. I can make it so low powered that it will run off two AA cells for a year or more. But, not if it uses a 6264 or most other modern RAMs. Look closely at their data sheets. Most of these chips define "low power" as >50ma, and are restricted to 5v +/-10% supplies. Basically, they draw a high supply current whenever their chip select is low. In contrast, the 5101 is a true CMOS part. With all the inputs static, it draws essentially zero current, and is fully operational from 3-7 volts. > One 28-pin IC has a smaller footprint than two 5101's. Yes, though the difference is trivial; 2 x 0.4" x 1.1" = 0.88 sq.in versus 0.6" x 1.4" = 0.84 sq.in. Also, the 5101 need no high address latch, or any "glue" logic at all. So, I think I will stick with a minimal amount of RAM on the main board. If/when memory expansion is desired, it can be added on a second card. -- Feb 3, 2005 So, what is a "good" size? Playing-card sized? 3"x5" card sized? What sorts of standard common boxes come to mind? Well, one of the things I am interested in are "beam" robots; tiny light-powered autonomous robots. While there are dozens of BASIC Stamp-like microcontrollers, none of them are within orders of magnitude of being as low-powered as the 1802. [Question about a specific board easy for beginners to use.] Hmm... how about this then? Suppose the "system" consisted of TWO boards; an "application" board with the CPU, memory, and I/O -- and a "development" board that has the front panel switches, displays, etc. This doubles your overall PCB area without making the final package much bigger (only thicker). Parts are spread out more, so each board is easier to build and layout. The application board has: - 1802, crystal oscillator, and power-on-reset - two bytewide RAM/ROM sockets - 8-bit input port - 8-bit output port - RS-232 port (bit-banger using Q and EF4) The development board has: - 1802, adjustable RC oscillator - Elf toggle switch front panel (8 Data, Load, Run, Protect, In) - Elf hex display (or 8 individual LEDs) - 256 bytes RAM Here's the tricky part. Each of these boards is a fully operational stand-alone 1802 computer by itself. But, you can plug them together to make a more powerful system. I suggest using the 1802 socket itself as the bus connector that interconnects the boards. I did this at TMSI for the "Proteus" and it was very handy. Each board has a 40-pin IC socket with ~0.5" long pins. The 1802 itself plugs into the top of this socket. Additional boards are "stacked", with the long pins of the 1802 socket of one plugging into the 1802 socket of the next. There is only one 1802, which goes in the top socket. Let's say we have an application board that we need to debug. Build the development board with its toggle switches and LED displays on the "back". Plug it onto the long pins of the application board, and you have a 2-board stack. It has all the I/O and memory of both boards. The front panel can examine and load programs, to help figure out what is going on. How does that sound? -- Feb 3, 2005 A complete bit-banged RS-232 input/output routine is around 80 bytes. As little as 30-40 bytes are possible for a stripped down input-only bootloader with a fixed baud rate. I2C doesn't have to contend with variable baud rates. However, the software overhead to format the serial packets is quite large. Bit-banging I2C takes 300-400 bytes of code on the CPUs I've worked with. But once you have I2C, the door opens to a wide range of peripherals (large serial EEPROMs, A/D converters, LCD displays, etc.). SPI is a lower-level format, and the software could be as simple as an RS-232 bootloader. However, it is less popular for large serial memories. You mainly see it used for small, simple chips with relatively few functions. 8-pin serial EEPROMs are very cheap, and come in very large memory capacity (for the 1802). For example, the I2C 24C01 (1k bits; 128 bytes) is $0.36; the 24C512 (512k bits; 64k bytes) is $2.59 (Jameco single-piece quantities). They are physically small, non-volatile, and very low power. You could have an entire operating system based on using them for mass storage. Many things become possible if there is a serial EEPROM. 1. If there is no ROM, you need to hand-enter a bootloader. An SPI EEPROM will have a much smaller bootloader; but you won't find them bigger than about 2k bytes (93C86). 2. If there is no ROM, but there is battery-backed-up RAM, the bootloader can be loaded once and stay in place indefinitely (at least until you overwrite or crash it :-) 3. If there is ROM (or battery-backed-up RAM), then it can contain a bootloader to read the rest of an operating system from an I2C EEPROM. Now you have cheap easy low-power instant access to an arbitrarily large mass storage device. 4. There are no micropower EPROMs any more. They were all driven off the market by the cheap 27Cxxx parts, which need >50ma. However, there is a trick; some bipolar PROMs have zero loading on their address and data pins when their VCC is removed. So, you can "chip select" them with their VCC pin. Turn 'em on, copy their contents into RAM, then turn them off, and execute from RAM only. The PROM only draws high power (>100ma) for the brief time it is being copied into RAM. 5. SPI is so simple that an interesting kind of memory organization becomes possible. The 1802 would only have a small amount of RAM; mainly for data. Programs are both stored and *executed* from serial EEPROM. RAM just contains an interpreter (like Tiny BASIC's IL, or FORTH's Next). This interpreter fetches the "next" 8-bit or 16-bit instruction from the EEPROM, executes it, and repeats. This scheme is very slow, but very powerful. It's used by Tiny BASIC, CHIP8, the Parallax BASIC Stamps, and many other applications. Feb 3, 2005 Richard wrote: > The 2 board Idea is good, but lets get the development board down > first. What I am looking for is the lowest cost, full operation > simple board. As I currently envision it, the development board *IS* a complete working minimal 1802 Elf all by itself. It has: - 1802 - RC oscillator with pot to set clock speed - 256 bytes of RAM - Load, Run, In, and MemoryProtect switches - 8 Data input switches - LED display (probably just 8 individual LEDs) - "Q" LED > As for size I would make it as small as posible, that still leaves > beginners able to solder it. I'm trying to figure out how big that makes it. With DIP switches and LED bargraph, credit-card sized (2.125" x 3.375") is feasible but really densely packed (90% of the space is filled). If I use the original Elf-size toggle switches and discrete LEDs (or TIL311), and make the parts density 50% like the old Heathkits, the board size becomes 4.9" x 2.5" (happens to fit a standard plastic case). It also adds $15-$20 to the price. > May make good Christmas presents. Yes! Especially if we could write up some instructions, it becomes a "100-in-1" electronics kit that actually produces a working computer! > I would go with a 40 pin expansion connector at right angle, so a > board could be made to plug in flat, not on top (this would cover > up the dips and led). I was thinking that the two boards stack together, but the switches and LEDs are on the back side. That way you can get at all the parts. > You would only need a ROM board and you could have Tiny BASIC running. ...and some more RAM. > Anything beyond that, you would get a fully loaded Pico or Elf2k. Agreed. If an expanded system is your end goal, and you already have a lot of familiarity with the 1802, then these are the way to go. But I'm trying to address a slightly different need. A) the rank beginner, and B) a really low-power, really small system. It's turning out that I can't really address both of these with the same board. Thus, I think I can split it into two. The "development" board is your very simple, easy-to-build, standalone Elf for a beginner. The "application" board is the expansion board for it; plus it can also be used by itself for my itty-bitty applications. -- The ELF alternatives -------------------- Feb 5, 2005 rileym65 wrote: > Do you mean my tiny elf design? the Pico/Elf is a bit larger, > it is the same size as the Micro/Elf board. We've discussed so many versions that I'm not sure. I don't remember hearing about a "Tiny Elf"; only the Pico/Elf and Micro/Elf. I thought the Micro/Elf was sold out, and the Pico/Elf was its replacement that you are working on now. Is the Tiny Elf a third version? > I would certainly have no problem increasing the board size a > bit to space the parts out... so many people were talking about > ultra-compact designs, so that is what I tried to do. I think different people are looking for different things, so no one design will satisfy them all. I now think that rather than a one "compromise" design, it may be better to have several different designs. People can then choose whichever one they want. 1. The original PopTronics Elf Your Micro/Elf and the STG Elf2000 are great models of this as-is. The Elf2000 looks better for someone who wants to add the 1861. Your Micro/Elf has the extra address displays, and is smaller than the original Elf. Both support bigger memory, and can easily run Tiny BASIC etc. without extra boards. 2. Higher-end; RCA VIP / Quest Elf / Netronics Super-Elf These added mass storage, video, hex keypads, memory, expansion slots, etc. But they dropped the simplicity of the toggle switches and ROM-less operation. The Elf2000 does some of this, and it sounds like your Pico/Elf was moving in that direction with its IDE interface. 3. Lower-end This is what I was thinking of with my "membership card" idea. Something even simpler and cheaper than the original Elf. Something good for a beginner who wants to get familiar with the 1802 without spending a lot of time or money. Also, I wanted to make it *very* low power, for solar-powered robots and other micropower applications. Mike, is your "tiny Elf" intended to address this market? It sounds like that's the case. If so, I think you are doing a great job. I'd suggest sticking with it... drop the low-power requirement (since it doesn't matter to most people) and concentrate on a very low-cost, very simple design. I'd make the board a little bigger, with the parts more spread out, good labelling, marked test points, etc. so it is easier to build and fool around with. As we've said, use sockets with DIP switches as the input switches. If the builder wants, he can easily add his own toggle switches. Same for the display; I'll bet the board can be laid out so you can install either a latch and 8 LEDs, or two TIL311's. On power: If the CY7C199 RAM has a low power consumption when its /CE is high, you might be able to design the circuit so /CE only goes low during TPB high. This way it is only active for 1/8th of each 1802 cycle, which might cut power consumption 8:1. The CY7C199 is so fast that this still allows *plenty* of access time. > in fact, if we add to the size a bit, we can either add the 8 bit > latch for the upper addresses, or use dip switches for them to > allow multiple programs This is fine, but beware of engineer disease! It is hard to resist adding "just one more feature..." But the cost and complexity keep going up. Save the expansions for your next Micro/Elf. My priorities would be to make it 1) as cheap as possible, 2) as simple as possible, 3) do as much as possible with the parts that you have. In that order! For example, I needed a 4013 to make the Load mode work. The second half was unused, so I used it to latch A8. This would allow 512 bytes of RAM instead of 256 bytes with your CY7C199 for "free". But I wouldn't add the extra chip to latch more address bits. -- Feb 5, 2005 craigsherenow wrote: > I know that there are a few people selling elf kits but all or most > of them break the $100 or higher. What if one of the tech savvy > people in the group could sell a kit with a plain perf board, all > the chips and a easy to read plans to put together and this would > leave the buyer what the opt of using sockets or not Hi Craig, You can already download the plans for building the original Popular Electronics Elf, and all the parts (except the 1802 itself) can be ordered from suppliers like Jameco (www.jameco.com). The 1802's are currently available from several sources for $10 or less. The whole thing will certainly cost under $50. The difficulty of actually wiring it up is what stops most people. That's why we have several people offering PC board Elfs. But due to "engineer disease" (the malady that causes engineers to keep adding features forever), these kits are all significantly more powerful (and thus more expensive) than the original Elf. It was posts like yours that inspired us to start brainstorming a "membership card"; something that truly *is* very simple to build and very inexpensive! Keep reading -- chime in with comments like you have been, and we'll see what we can do! The design emerges ----------------- Feb 10, 2005 Richard wrote: > > Hello Everyone, > > I just wonted to tell everyone that though a joint effort from Mike Riley and >I have the Netronic TicTacToe program compiled. Credit also goes to this group >who's work aided in its creation. Mainly I wonted to let everyone know that even >though this was compiled using Elf/os. The runtime and the created IL code. > doesn't require. a full ELF/os system to run. other platforms can be used. >may even be fast enough for the palm emulator. to handle. It is definitely >something that can also be put in Rom and Run with as little as 256 bytes of >memory. so if you can do it in tiny basic. the sky is the limit. Wow! This is truly great! I want to thank Richard and Mike for this wonderful effort. I am getting ideas... Interpreted Tiny BASIC was a great way to learn about micros; a kid can be writing programs 5 minutes after being introduced to it. But it was slow, and needed a lot more memory. It was hard to have a really small, really low-power computer running it. But with a compiler, that all changes! We still have a very simple language to write programs in, but without the speed and memory limitatons. Instead of a computer the size of an expanded Netronics or Quest Elf, even our tiny "membership card" type Elf can be programmed to do neat things! What we've got is something like the BASIC Stamps, but even smaller, simpler, and (potentially) cheaper! Feb 10, 2005 Since my last post, here is the direction my thought are drifting... The BASIC Stamps are very popular, and widely promoted as cheap and easy and simple to use. And they are... if you are already a reasonably good engineer or technician, over-$100 for a starter kit doesn't bother you, and you have and are skilled at using a PC. What if you *aren't* at this level? There are 100s of under-$20 dumbed-down electronics kits for building LED blinkies, noisemakers, crude radios, primitive robots, etc. They are completely stand-alone, and don't have computers (or when they do, it's as a secret "black box" chip to do some preprogrammed function). However, you quickly get bored with the limited scope (101 ways to blink an LED), and the opportunities for expansion are limited. The construction techniques they use are toy-like, and don't teach you much about building real circuits. But, I can't find any inexpensive stand-alone "starter" electronics kits that teach you about computers, programming, or building things with real parts. I'm looking for them for my son, who is 9. What I'm imagining is something like the Parallax "Board of Education" (a BASIC Stamp on a solderless breadboard, with a book and bag of parts). However, don't depend on a PC to provide all its intelligence and programming. Give it a front panel (like the Elf), so you can start right in at the most basic level. The lessons would be ways to expand it. Add a keypad and 7-segment display. Add mass storage. Add a video display. Link it to a PC. Connect switches and lights and motors. Build a robot! In the process, learn about how digital logic and computers work. Write low-level programs, save them in ROM, and use them as subroutines in bigger programs. Go from machine language to hex to assembler to BASIC and beyond! The Tiny BASIC compiler fits right into this picture. It is a piece of the puzzle. Feb 13, 2005 I spent some time this weekend updating my "membership" card design, along the lines we have been discussing. It is basically a fully functional Elf, just like the original Popular Electronics Elf computer. Here's where it stands now: Lee Hart pictured: ________________________________________ | O __________________ ____________ O | | | | | | | | | 1802 | | 6116-62256 | | | |__________________| |____________| | | | | _____ _____ ______ _________ | | |_4093| |_4071| |_4013 | |_74C373__| | | | | ______ ______ ______ ______ | | |_4503_| |_4503_| |_4042_| |_4042_| | | | | (Q) POT (7)(6)(5)(4)(3)(2)(1)(0) | <--LEDs | _ _ _ _ _ _ _ _ _ _ _ _ | | | || || || | | || || || || || || || | | | IN LD MP RN D7 D6 D5 D4 D3 D2 D1 D0 | <--switches | |_||_||_||_| |_||_||_||_||_||_||_||_| | | ... .......... .......... | <--0.025" pin headers |_O____________________________________O_| power inputs outputs 1 - 1802 CPU 2 - 5101 256x4 CMOS RAM 2 - 4054 quad LCD segment driver (OUT2 port) 2 - 4503 hex tri-state buffer (INP2 port, switch debouncers) 1 - 4013 dual D flip-flop (Load mode, square wave backplane for LCD) 1 - 4070 quad 2-in XOR gate (Q LCD driver, glue logic) 1 - 4071 quad 2-input OR gate (glue logic) 1 - 4093 quad 2-input NAND gate (glue logic) -- 11 ICs I kept it a "retro" design using only parts available in the 1970's. This allows micropower operation from 3-10v, and very soft edges and slow rise/fall times for easy experimentation. I estimate that it will run for a year or more on a pair of AA cells. I used an 8-digit 7-segment LCD display for 8 data bits and Q. The 8 digits display a number 0-7 corresponding to each bit in OUT2. This provides a micropower display, and illustrates how LCDs work. The LCD is a Lumex LCD-S801C42TR, $4.20 each from Mouser Electronics (www.mouser.com). The 4054 is a standard member of the 4000-series; Digikey (www.digikey) and B.G.Micro (www.bgmicro.com) have it. Though, you could also use two 4042 quad latches and 4070 quad XOR gates (more common, but more chips). [The] N lines are fully decoded. Jumpers can set it to whatever N value you want. The original Elf didn't bother, but I included an extra gate package to do this. This is desirable if I want to plug this board into some existing 1802 computer, and so have to set the front panel's port address so it doesn't conflict. I used real toggle switches for the inputs rather than DIP switches. I found a surplus source at a good price, so the added cost isn't quite so bad. (The DIP switches and LED bargraph idea can be saved for another board where size or cost is more important). In addition, there are 15 resistors and 4 capacitors. One resistor is a 1-meg pot to set the 1802's clock speed over a wide range. I'm using the 1802 socket itself as the expansion connector -- for instance use a 2- or 3-level wirewrap socket for the 1802, and plug the entire "membership card" into another board's 1802 socket to give it a front panel and/or expand memory and I/O. The basic design is exactly like the original Elf. For lowest power consumption, I used real OR gates instead of the diode-resistor OR gates of the original. Likewise, there are no pullup resistors from supply to ground in any logic -- instead, the inputs like /EF4 and CLOCK have 10k series resistors to the on-board logic, so the logic on any external board can "fight it off" (for example, a crystal oscillator on another board). Total parts cost is $16, or around $30 with a PC board and case (assuming free labor, of course :-) Does this sound right? If anyone is interested, I can post a schematic. If there is enough interest, I'll lay out a board. Maybe we can pick a common size and 1802 location between this and any other boards in the works. -- Feb 15, 2005 What I have now is an RC oscillator, with a pot to set the clock speed to anything from 10-500 KHz. The actual speed can of course be made anything you like with an appropriate choice of R and C. This oscillator drives the 1802 Clock pin thru a 10k series resistor, so if you plug in some accessory board with an 1861, it would also have its own 3.58/2 MHz oscillator that would supercede the RC oscillator. Feb 20, 2005 > Will this still run on 3V? Yes, with 5101 RAMs. If you use a 6116, 6264, 62256 or other modern "CMOS" RAM, you'll probably find it needs a 5v +/-10% supply. -- Feb 20, 2005 [I have multiple RAM chip options] because I am interested in micropower operation. The 5101's can do this; most modern bytewide CMOS RAMs cannot. A secondary reason is that I already have a lot of 5101s (expediency :-) Feb 22, 2005 The 1802 is CMOS, and so can be damaged by static electricity. But that is just something we have to live with. *ALL* microcomputers and memory chips are static sensitive! That said, these old 1802s and 4000-series parts are pretty rugged. I haven't killed one in many years, despite occasional acts of carelessness. Many modern chips are much easier to wreck with a careless *zap* or a shorted output. So, we might as well make the best of it. Teach them how to handle static-sensitive ICs. If it's CMOS, it doesn't need much power. Taking advantage of its low-power nature can actually make failures *less* likely. For instance, low-power supplies don't deliver enough current to damage a chip if you put it in backwards, or burn traces off a board if you build it wrong. Things like voltage drops in power wiring and lack of decoupling capacitors, etc. are much less of a problem. [Regarding jumpers versus switches,] start off with one set of parts, and one set of directions. AFTER it works, then later you describe the options. On jumper options, I can think of three ways to do it. 1. Layout the board with the jumpers already etched in place for one option. Build it with the specified parts, and it works. Later, you cut traces or drill out plated-thru holes to remove the etched-in jumpers to select some other configuration. 2. Provide a DIP switch or plug-able jumpers to make setting the jumper options easy. Include clear instructions for setting them up to suit the parts you want to install. 3. Provide two sets of holes (say, for two 5101's AND for a 74HC373 and 6116 bytewide RAM). Put them in the same place on the board so you can install one or the other -- but not both. -- Feb 22, 2005 Well, my goals for the Membership card are: - a fully functional Elf computer - as inexpensive as possible - as simple as possible - as easy to build as possible Of course it is limited. Everyone wants a more powerful, more elaborate system. But, I know only too well how my own "powerful, elaborate" projects go. I can happily dream about them forever; but they never get built or finished! So, here is an Elf you can build in an afternoon. As the original Elf demonstrated, I don't think you will soon exhaust the possibilities of even so basic a computer. But when you do, there are ways to expand it. (We are debating how best to go about this now! :-) Or, just socket the 1802, and when you've got your "big" computer built, transfer the 1802 to it. It costs more than the rest of the computer put together. I hope to have a kit with all the parts and PC board offered at a low price. I'm designing around parts I already have, and will sell cheap (like the 5101 RAMs). We have to order X quantity of PC boards anyway to get a reasonable price, so we might as well order a quantity of the other parts as well. For instance, the LEDs I'm using are 2 cents each, and the toggle switches are 13 cents each if we buy enough for 25 boards. I'm out to encourage my 9-year-old son. I want a computer that is so simple that he will stick-to-it long enough to actually get it built and working. With this "membership card", he can have a working Elf the same day he starts. No need to wirewrap it from scratch, or assemble a kit with several times more parts. And, a nice feature of this design is that we can plug its Input port into a PC's parallel port, and download it once the toggle switches get old (which won't take long!) And, the 5101 RAMs can be replaced with a 62256 RAM so there is enough memory to run Tiny BASIC and other "real" programs. I also intend to have a robot for which the "membership" card is its brain. Something like the Logo Turtle robot, that has a left and right motor that you can drive forward/reverse to make it move, turn, feel objects with bump switches, push them around, run mazes, etc. Einstein said, "Things should be kept as simple as possible -- but not too simple." I think the Elf computers illustrate this philosoply. They are complicated enough to do the job and be "interesting", yet simple enough to fully understand and explore. The key is [that] the beginner needs to see results quickly. If it takes too long, he'll either never start, or never finish. Working the design options -------------------------- Feb 24, 2005 I have uploaded three iterations of the "membership card" schematics to the cosmacelf.com website. My thanks to Dave Ruske for converting them from .EPS Orcad files to .PDF files. Each "membership card" is a complete Elf computer, with the usual 8 data, Load, Run, Memory Protect, and In switches; 8 data and 1 Q display, an 1802, and at least 256 bytes of memory. Each has other features, as described below. MEMBER.PDF This is my first proposal from a couple weeks ago. It is the smallest, cheapest, simplest, and has the lowest parts count. I/O and memory are both partially decoded, limiting expansion. By socketing the DIP switch and LED bargraph, you can unplug them and use the sockets for generic I/O ports. [Here's the parts list:] CPU 1802 Memory 256 bytes (two 5101's) Inputs 8-bit DIP switch; Load, Run, MemProtect slide switches, Input pushbutton; RS-232 (on EF4) Outputs 10-segment LED bargraph; 8 for data, 1 for Q; RS-232 (on Q) Expansion 40-pin edge connector, 0.1" centers, for IDC flat cable Power 3-6v at <10ma (mainly LEDs); can be powered from RS-232 data Cost $8.51 parts cost (less 1802 and PC board) Size 6.5 square inches (3.375 x 2.25" board at 85% component density) LCD.PDF This is a micropower version with an LCD display. The 8-digit 7-segment LCD has 0.4" high characters, displays "0"-"7" for a 1 in bit 0-7, and has pins like an IC, for easy mounting. [Here's the parts list:] CPU 1802 Memory 256 bytes (two 5101's) Inputs 8-bit Data, Load, Run, MemProtect miniature toggle switches; In pushbutton Outputs 8-digit 7-segment LCD for Data and Q Expansion uses 1802 socket Power 3-6v at 1-1000 microamps (depends on clock speed) Cost $17.33 parts cost (less 1802 and PC board) Size 10 square inches (5.5" x 3.1" board at 59% component density) DEV.PDF This is the latest version (though I'm sure there will be more! :-) It has expanded memory, subminiature switches (in between DIPs and miniature in ease of use and cost), and a connector so it can downloaded from a PC's parallel port. The board size was expanded to get the component density down to make it much easier to assemble.[Here's the parts list:] CPU 1802 Memory 256 bytes (two 5101's); or one bytewide RAM (6116=2k, 6264=8k, or 62256=32k bytes); or one EPROM (27C16=2k, 27C32=4k, 27C64=8k, 27C128=16k, or 27C256=32k bytes) Inputs 8-bit Data, Load, Run, MemProtect subminiature toggle switches; In pushbutton. 10-pin header to use for PC download or as a generic input port. Outputs 8 T1-3/4 LEDs for data, one T1-3/4 LED for Q Expansion uses 1802 socket Power 3-6v at 1-100 microamps (depends on clock speed) without LEDs Separate power pin for LEDs to turn them off when not in use. Cost $9.74 parts cost (less 1802 and PC board) Size 7 square inches (3.9" x 3.1" board at 59% component density) I hope one thing is clear from the above. It really *is* possible to build very small, very cheap 1802 computers! Feb 25, 2005 Gemeny, Steve wrote: > Schematics look good for all, from my perspective. Thanks! Since they are chronological (2 weeks ago, 1 week ago, yesterday), you will see the ideas evolving. The first is the least finished, and the last is the most ready to build. Before actually laying out any of them, they need to be checked for errors. Plus, the earlier ones should be updated to reflect what was learned in the later ones. For example, I decided that PC downloading is simpler with a parallel port than serial port; so I am taking the RS-232 port out of the MEMBER.PDF schematic. This cuts its size, cost, and parts count still further. I think the goals for this board should be "small, simple, cheap". I also rearranged the gates along the lines used on the DEV.PDF board, which I think is a better design. > As I'm sure you recall, I'm particularly partial to the LCD version > and will sign up for a couple of boards depending on what it takes > to get a reasonable price on a run. > > One question occurred to me on the LCD display and I wanted you to > think just a bit about... If I understand correctly, each digit > will display its position (i.e. 0, 1, 2... 6, 7) when the bit it > represents is a "1" and will display nothing when it is a "0". > Is this correct? Correct. > In the past when I've been teaching HEX to young kids it has been > helpful to them for me to assign a DECIMAL value to each bit (i.e. > 1, 2, 4, 8). The small step of adding these digits to arrive at the > value of the HEX nibble became much more intuitive at that point. Yes; for learning hex I think having it display "8 4 2 1 8 4 2 1" when all bits are set might work better. > Perhaps even displaying a "1" or a "0" for each bit might even be > less confusing to those attempting to do the "head math" of Binary > to HEX conversion. And this can also be done. With a static LCD, you can connect the segments any way you like, to display whatever you like. There are no doubt *many* ways it can be done. If we put it to a vote, we'd probably have half a dozen competing ideas, and no two alike! But if we're actually going to lay out a board, we ultimately have to just pick one method, and go for it. All is not lost, however. The whole idea here is the journey; not the destination. Such a crude limited display may well encourage the student to build a better one. At least this design is "transparent" enough so he can see how it works -- and so, he'll have a basis for designing a better one. -- Feb 27, 2005 It is easy to use a PC's parallel port to operate the 8 data switches and In button, and so to load a program into the Elf. Is there an equally easy way to *upload* programs from the Elf to the PC? Or, to be able to use a PC as the Elf's "terminal" for keyboard/screen I/O (send bytes back and forth under program control)? The basic PC parallel port has 8 data outputs (D0-D7), and 4 control outputs (Select, Init, AutoFeed, and Strobe). D0-D7 and Strobe can be used for the Elf's 8 data switches and In button respectively. But there are only 5 inputs (Busy, Ack, PaperEnd, SelectIn, and Error). We'd need 9 inputs for a simple-as-dirt byte output transfer. Later PC parallel ports are bidirectional, but I don't know how they work or when manufacturers started using them. Besides, I know some of my older PCs don't have bidirectional ports. One obvious method that comes to mind is to use 4 PC input bits for a nibble of data, and the 5th as a strobe. For example: - Elf outputs the low nibble on Busy, Ack, PaperEnd, and Error, and sets SelectIn low (hey PC; I have a low nibble for you) - PC sees the low on SelectIn, reads the low nibble, and sets Strobe low (Ok Elf, I got it; continue) - Elf outputs the high nibble on Busy, Ack, PaperEnd, and Error, and sets Select In high (hey PC; here's the high nibble) - PC sees the high on SelectIn, reads the high nibble, and sets Strobe high (Ok Elf, I got it; continue) Would this work? It would seem to avoid any timing problems or sensitivities to the clock speeds of either Elf or PC, and so should work as fast as each computer handshakes. Further; should the PC also have the remaining 3 of its output bits (Select, Init, and AutoFeed) control the Elf's Load, Run, and Memory Protect switches? Feb 27, 2005 Thanks for the corrections. I have uploaded rev.A of the Membership card schematica MEMBER.PDF in the "Membership" folder on the cosmacelf.com website. Changes: - replaced the serial I/O with parallel download from a PC - improved the switch debounce circuits - reduced the size, cost, and parts count - fixed the multiple "U8A" designators - tied the unused 5101 chip selects high/low One more thought. Can someone who has any of the skinny-DIP 28-pin thru-hole 32k RAMs actually plug one into a breadboard and see how much power they really take? If we can find one that is reasonably inexpensive and available, we could use it on the MEMBER card to save a chip. What I would do is plug it into a solderless breadboard socket, wire all of its inputs to +5v or GND, and measure its supply current first with ChipEnable wired high (should be low power), and then with ChipEnable low (active, but static). Also, if anyone has one wired up and in a working Elf, can you vary the supply voltage and see how picky they are about supply voltage. It offends my engineering aesthetic sense to use a chip that requires 5v +/-5% and draws 100+ma on such a tiny computer! :-) -- Mar 20, 2005 I've been working on ways to interface a very simple 1802 Elf to a PC's parallel port. I think I have a good, workable scheme, but would like people's comments. If it sounds good, I'll build a board and do some testing. If that goes well, I'll lay it out and so can provide boards for others! Based on the (limited) documentation I have, here are the specs on the standard PC parallel port (at the PC's DB25 connector): pin name dir. bit Elf port --- ---- ---- --- -------- 1 Strobe output "In" button, /EF4 pin 21), and MUX 2 Data 0 output D0 INP3-D0 3 Data 1 output D1 INP3-D1 4 Data 2 output D2 INP3-D2 5 Data 3 output D3 INP3-D3 6 Data 4 output D4 INP3-D4 7 Data 5 output D5 INP3-D5 8 Data 6 output D6 INP3-D6 9 Data 7 output D7 INP3-D7 10 Ack input D6 OUT3-D2 (Strobe=0), OUT3-D6 (Strobe=1) 11 Busy input D7 OUT3-D3 (Strobe=0), OUT3-D7 (Strobe=1) 12 Paper input D5 OUT3-D1 (Strobe=0), OUT3-D5 (Strobe=1) 13 Select input D4 OUT3-D0 (Strobe=0), OUT3-D4 (Strobe=1) 14 Autofeed output "Clear" switch (0=Clear, 1=Run) 15 Error input D3 Q pin 4 16 Init output "Load" switch (0=Load, 1=Run) 17 SelectIn output "MemProtect" switch (0=write, 1=read) 18-25 Ground ground Basically, this says that the PC's parallel port can operate the switches and read the lights of an Elf. Thus it can operate the Elf with ZERO software in the Elf itself (no ROM or bootstrap loader program in the Elf is needed). To load data, the PC would 1. set Init=0 and Autofeed=0 (resets the Elf) 2. set SelectIn=0 (MemoryProtect allows writing to RAM) 3. set Autofeed=1 (set Load mode) 4. set Data0-Data7 to the desired data 5. set Strobe=0, then Strobe=1 (rising edge writes the data into the Elf's 1st RAM location) 6. repeat steps 4-5 for each successive RAM location you want to load To read the data, the PC would 1. set Init=0 and Autofeed=0 (resets the Elf) 2. set SelectIn=1 (MemoryProtect prevents writing to RAM, i.e. read) 3. set Autofeed=1 (set Load mode) 4. set Strobe=0, then Strobe=1 (rising edge reads the Elf's 1st RAM location into OUT3) 5. while Strobe=1, read Busy, Ack, Paper, and Select (reads D4-D7 of OUT3 6. set Strobe=0, and read Busy, Ack, Paper, and Select (reads D0-D3 of OUT3). Now the PC has the byte read from RAM. 7. repeat steps 5-6 for each successive RAM location you want to load To run the program loaded into the Elf's memory 1. set Init=0 and Autofeed=0 (resets the Elf) 2. set SelectIn=0 (MemoryProtect allows writing to RAM) 3. set Init=1 and Autofeed=1 (sets Run mode). 1802 begins execution starting at address 0000. If the PC wants to send data to the Elf's running program (for example, as "keyboard" input for Tiny BASIC), the PC puts the data byte on Data0-Data7 and sets Strobe=0, then Strobe=1. The Elf program reads the data on IN3 when it sees the 1->0 edge on /EF4. If the Elf wants to send data to the PC (for example, output data from Tiny BASIC), it writes the byte to OUT3 and sets Q=0, then Q=1. The PC reads the high and low nibbles respectively by setting Strobe=1 and Strobe=0 respectively. This seems to be a workable protocol that requires minimal software in the Elf, and makes no assumptions about the Elf or PC's clock speeds. I.e. it is far simpler that a bit-banger serial protocol using EF4 and Q, for example. The hardware to do all this is trivial. I only had to add one chip, a 74HC257 quad 2-input multiplexer to my membership schematics published earlier. What do you think? Mar 21, 2005 > But What kind of program > would it take to work on the PC side,.... I don't know. That's why I feel I'd have to breadboard it, write some code, to find out if it actually works. The Elf side is easy, but all sorts of bizarre stuff can happen in a PC. What I'd try first is to write a program to control the Elf from QuickBASIC in DOS. If that works, then I have the hardware correct. Then it becomes the usual challenges of fighting with Windows for control. Apr 2, 2005 awasson2001 wrote: > While I was looking for some parts the other day I found that you > can get FND500 Common Cathode displays for less than a buck a piece. The LED display itself can be very cheap. Electronic Goldmine (www.goldmine-elec.com) has MAN6110E *dual* 7-segment displays, common anode, 0.56" high digits, #LED1100 for $0.49 each. > for the price of 8 leds for a binary display (@ .25 each) $0.25 each is what I paid for white ultra-bright LEDs. Run-of-the-mill individual LEDs are $0.02 each. > All that's needed is the decoding chips and you're done. Yes. But that's the problem. Hex to 7-segment decoder chips are as rare as hen's teeth, and cost several dollars each. So, most people use the HP or TI hex LED display chips that cost a few dollars each and use 100ma or so. We discussed other alternatives (use an EPROM, or a preprogrammed dedicated micro, or an LCD), but these destroy the "purity" of the classic old design. Plus, there are already several Elfs with the HP or TIL displays. So I didn't feel I need to duplicate them again. Why the fixation on low cost? Just as a challenge; to see how inexpensively one can make an Elf. I think if it is cheap enough, more people will try building one, and perhaps get "hooked" on computing like I did as a kid. Here's a further update on where I stand on my "membership" card idea: - Present design has 9 ICs, spread between two 3.5"x2.125" boards. - The boards stack, and fit inside a Callard & Bowser "Altoids" tin (3.65" x 2.25" x 0.75"). - The top board is the actual computer; 1802, bytewide RAM, 74HC373 address latch, 4013 flip-flop for "load" mode, 74HC132 quad NAND for the clock and misc. "glue". A 16-pin header connects it to the I/O board. The top board also has holes for the switches and LEDs, to serve as a template for drilling the holes in the cover of the Altoids tin. :-) - The I/O board has the switches loose LEDs, input and output ports, and PC parallel port connector. The ICs are 74HC244 input buffer, 74HC273 output latch, 74HC257 mux for the PC port, and 74HC32 for "glue" logic. - Component density is only about 50% on each board, to make them easier to build and solder. However, the two board nest together pretty snugly, component sides facing each other, and the switches and LEDs pass thru holes in the top board to poke out the top of the case. - Ordered a couple dozen 1802's from Arron McLaughlin. They haven't arrived yet. - I already have most of the rest of the parts to build about 25-30. I don't know what the final cost for a complete kit will be, but am sure it won't exceed $50. I'll publish the plans, and will offer bare boards at cost if folks are interested. I have an unwired breadboard, and it's really cute! A tiny Elf that you can drop in you pocket, run off a couple AA cells or even solar cells, and play with anywhere. What do you guys think? May 2, 2005 If you mean my "membership" card, I am still working on it. I am breadboarding one up before layout of a PC board to make sure everything works (specifically, so I can test/debug the ability to control it from a PC's parallel port). May 27, 2005 "craigsherenow" wrote: >> I was wanting to find out what ever happend to the business card >> Elf if any one went as far as to start making and selling them? Andrew Wasson wrote: > I came in kinda late for this project but... I'm really interested > in where it goes. The last posts on the subject I saw were from > Lee Hart who was putting together a little unit that would run off > a pair of AAA cells and I imagine would run at a fairly moderate > speed. I think it was to be pocket sized fitting an Altoids case. Yes, it was me. I'm building a wire-wrap version to test the circuit. It is sitting in front of me as I speak. First, it lets me make sure everything actually fits. The wirewrap doesn't fit in the Altoids box, but it looks like it will actually consist of two boards, with the parts on each facing the other, and stacked about 3/4" apart. Also, I wanted to test the parallel port interface to be sure I picked bit assignments that will work (given the large variations between supposedly "PC compatible" PCs. I do plan to do a PC layout and sell boards and some of the key parts when it is finished. I already have enough toggle switches and 1802s to make a few dozen kits, and the rest of the parts are generic 74HC and so easy to get. So, work is progressing, if a bit slowly. This is a hobby, after all. And, I have other projects absorbing a lot of my spare time -- see www.bestoutreach.com (our Big Race is this coming Saturday, and I'm mentoring two teams!) Jul 24, 2005 Peter de Vroomen wrote: > I am working on a schematic (in Eagle CAD) for my soon-to-be > Cosmac ELF... I thought I'd start by drawing the original > schematic first... For some reason, I just received this post today (Jul 24), though it was dated a week ago (Jul 17). > According to the TIL311 datasheet, the inputs could pull 1mA max. > Should I add the buffers, or can I get away with leaving them out > for the TIL311? The display data pins are driven by the memory chip, not the 1802. The 1802 OUT instruction does a memory read, and also selects the TIL311 so it captures the data. Pretty much any memory chip can drive the TIL311 ok, so it will work without the 4050 buffers. The main reason for the buffers was so you could expand the Elf. It doesn't take long before you have a dozen chips tied to the data bus. Every chip loads the bus a little. Using buffers keeps the TIL311 from using up all the drive just for itself. > the 1802 datasheet it says that on output low, the 1802 sinks 2.2mA, > while at high, it sources -0.55mA. If I understand these figures > correctly, it means that the 1802 will sink 2.2mA when low and sink > 0.55mA when high. This would mean that I at least need some pullup > resistors on the databus, doesn't it? No, not for TTL compatibility. The standard TTL load requires 1.6ma sink, but only 0.04ma source. The 1802 exceeds both of these numbers, so it can easily drive a normal TTL load either high or low. The reason you should have pullup resistors is for lower power consumption and higher noise immunity. There are times when no device is driving the data bus. Without resistors, the lines then "float", and can thrash around aimlessly. CMOS devices with their inputs neither high nor low draw extra supply current. The probably left the resistors out of the original Elf to save parts, and didn't care about power consumption. > the 4050 IC5 behind the RUN switch and the inverter circuits > behind the LOAD and INPUT switches have their output connected > back to the input. Does this do a kind of key debouncing? Yes. Switch contacts "bounce". As the switch contacts bounce open and closed during the transition, the 4050 buffer's output could oscillate high/low, causing logic errors (for example a single push of the IN switch could produce multiple /EF4 pulses). By connecting the 4050's input to its output, the input stays at its last output value during the time when the switch is halfway between positions (when neither high nor low contact is closed). For example, as the switch moves from high to open, the 4050 output stays high. When the switch finishes moving and its low contact actually closes, its resistance is so much lower than the 4050's output resistance that the input if forced low despite the input-output connection. Once low, it stays low even if the lower switch contact bounces open-closed. -- Breadboarded and working ------------------------ July 29 2005 I have it breadboarded, and it works. So the schematic is now pretty stable. I'm working on the packaging now, to make it all fit in an Altoids tin (the size of a credit card, and 0.8" high). It requires two PC boards that stack. The easier way to do it [would be] to put half the parts on each board, so neither board by itself does anything useful. The main board has the front panel switches, LEDs, input and output ports, and 25-pin D connector to a PC's parallel port. The second board is smaller (so it doesn't overlap the rather tall switches and D connector) and has just the 1802, RAM, and a couple "glue chips. The more difficult way (which is what I'm trying to do now) is to put the computer on one board (1802, memory, I/O port) and the front panel on the other (switches, LEDs, 25-pin D connector to a PC's parallel port). This way, the computer board alone is a functional "BASIC Stamp" type computer. But it requires keeping an exceptionally low profile on each board. Aug 10 2005 Sorry Craig, but I haven't gotten any farther on my design. I have it breadboarded on an EL socket, but have been struggling with packaging issues in laying out PC boards for it. I set myself a (rather arbitrary) goal of fitting it all into an Altoids candy tin. That in itself I can do (there are enough cubic inches). But it takes some awkward hand-fitted assembly tricks. So I keep brainstorming on ways to arrange the parts to make it also easy to assemble. Sep 27, 2005 I'm still plugging away at it! Here's the layout that I'm currently working on. Elf Membership board (CPU, memory, 8 bit I/O port, clock, reset, etc.): ___________________________________ / ______ _______ _________ \ | |_4013_| |74HC132| |_74HC373_| | | __________________ ____________ | | | | | | | | | 1802 | | 32k RAM | | | |__________________| |____________| | | _________ _________ | | |_74HC244_| |_74HC373_| | | ......................... | <- 25-pin male connector \___________________________________/ (0.025" pins on 0.1" centers) Front Panel board (switches, LEDs, D connector to PC parallel port): ___________________________________ / ____________________ _________ \ | | ______________ | |_74HC257_| | | | O \____________/ O | ________ | <- 25-pin D connector | |____________________| |_74HC32_| | | | | _ _ _ _ _ _ _ _ _ | |(_) (_)(_)(_)(_)(_)(_)(_)(_)| <- LEDs | Q RUN WR D7 D6 D5 D4 D3 D2 D1 D0| |(^)(^)(^)(^) (^)(^)(^)(^)(^)(^)(^)(^)| <- toggle switches |IN LD CLR RD | | ......................... | <- 25-pin female connector \___________________________________/ (on back of board) Each board is 3.5" x 2.125". The Elf Membership board is a self-contained single-board computer; it can be used all by itself if desired. The 25-pin header has power, ground, /EF4, Q, /LOAD, /CLEAR, /MWR /WE, 8 inputs, and 8 outputs. Depending on the RAM used and clock speed selected, it runs on 3v at about 200 microamps (that's over a year on two AA batteries). The Front Panel board has a 25-pin female connector on its back. It plugs onto the top of the Elf board. To actually get them both into an Altoids tin (13/16" thick), the space between the boards needs to be 5/16". This requires either very low-profile sockets on the Elf Membership board, or no sockets at all. Also, you'll have to work hard to keep the leads very short on the backs of the two boards. I plan to bend the leads over before soldering, and then rub the board on sandpaper when finished to knock off any high spots. All in all, it's like origami to fit it all in! But the actual component spacing on the boards isn't all that high. I'm trying to keep big pads on the solder side with no traces between pins to make it easy to solder. How does this sound? Expansion ---------- Sept 30 2005 There are many applications that require large amounts of memory, yet computing speed and power requirements are low. Text editing, data logging, and games come immediately to mind. Virtual memory systems are good when the problem is large and you need to randomly access many different parts of it quickly. I agree that we rarely need to solve problems of this sort with an 1802. We could -- but there are better choices. What we're really after for the 1802 is mass storage memory. For instance, the Infocom Adventure games, or a micropower data logger. But the traditional route for mass storage (disk drives) are ill-suited to interfacing with very small computers. The disk interface would be far larger, far more expensive, and use far more power than the computer itself! So, I think large 1802 memories are perfect for implementing silicon disk drives, where the data is stored in memory chips instead of disks. That's why it is wonderful to see an operating system for the 1802 which can use these large memories as if they were a disk drive. Oct 2 2005 What exactly is the purpose for having more memory? If it is to simulate a disk drive, maybe it would be better to use serial memory chips. For instance, a 24C512 is an 8-pin DIP, holds 64k bytes, and costs $2.29 each from Jameco. They only need 2-3 wires to interface (can use Q, EF4, and TPB directly). Extremely low power. Nonvolatile (EEPROM based, keeps data without power). Once you have the serial read/write software, there is a whole world of other serial chips that become easy to interface; RAMs, UARTs, A/D converters, real-time clocks, etc. Oct 3 2005 -- Winfrey wrote: > Lee, It sounds like fun to experiment with the serial [memory] devices at > such a low cost and I would like to put a few on my next order. > Have you actually tried any of these serial devices with an 1802? Not on an 1802 yet; but I have used them many times in commercial products with a variety of other CPUs; PICs, 68HCxx, and most recently, a Z80. BASIC Stamp microcomputers use these serial EEPROMs to hold their BASIC programs and data. The CPU itself has the BASIC interpreter in its internal ROM, and fetches each tokenized BASIC statement from the EEPROM, and executes it. It's a bit slower than storing it in bytewide memory, but *lots* cheaper, smaller, lower power, simpler, and nonvolatile. This scheme would work very well for Pittman's Tiny BASIC. These chips use a bunch of different "standard" serial protocols; SPI, microwire, etc. As usual, each manufacturer has his own favorite, which he tries to coerce everyone else to use. We can probably devise a no-hardware approach for any of them using Q, TPB, the N lines for the clock and data out, and one of the flag lines (EF1-EF4) for data in. But a more general approach is to have two output bits that you can independently control; then your software can talk to any of these chips. -- Oct 9, 2005 Hello, This email message is a notification to let you know that a file has been uploaded to the Files area of the cosmacelf group. File : /Membership Card/DEV2.PDF Uploaded by : leealanhart Description : Latest iteration of "Membership Card". Two board; one an 1802 single-board computer, the other an Elf front panel for it. Both fit in an Altoids box! You can access this file at the URL: http://groups.yahoo.com/group/cosmacelf/files/Membership%20Card/DEV2.PDF To learn more about file sharing for your group, please visit: http://help.yahoo.com/help/us/groups/files Nov 16 2005 That reminds me; I finished a PCB layouts for my membership card. I'm still tweaking, but it's very close. (I won't shoot the engineer yet; he's me! :-) The membership card is an 1802 single board computer, about 3.5" x 2.125", with the 1802, 2k-32k bytewide RAM, clock, reset, 8-bit input port, and 8-bit output port. It's optimized for low power, and runs on less than 1ma at 3v. The second board has all the switches, lights, and logic to make it function as a Popular Electronics "Elf". It also has a 25-pin "D" connector to connect to a PC's parallel port. The PC can run the Membership card via this port to read and write memory, reset, run programs, and watch all the I/O. The two boards stack together via a pin header, and fit inside an "Altoids" candy box to make a 3.75" x 2.25" x 0.8" pocket computer!Nov 17 2005 I assume you're looking at the DEV2 schematic at www.cosmacelf.com? That's very close to the version I laid out. All that's changed is that I added a 0.047 farad supercapacitor to maintain RAM without power, and various pinout changes to make it easier to lay out. U5A is used as a gate, not as a flip-flop. When an OUT5 or OUT7 output instruction is executed, U4 decodes it and makes the D input of U5A high. /MRD will be low during an output instruction, so the R input of U5A is low. Thus, when TPB goes high (in the last part of the bus cycle), U5A will "set" and its Q output goes high. This lets the data on the data bus from memory to be passed to the output port's outputs (U7, 74HC373). When /MRD returns high at teh end of the OUT instruction, U5A gets reset, its Q output returns low, and the output data it captured in the output latch U7. This peculiar use a of flip-flop is a consequence of having half a flip-flop left, but no gates :-) -- Feb 19, 2006 I traced out the [PC layout for the] CPU board schematic, and started on the keyboard/display board [layout], but then I got distracted by other projects. I'd be happy to send what I have to anyone for a stamped self-addressed envelope. Mar 30, 2006 ....My Membership card has 8 ultra-bright blue LEDs. They are the most amazing LEDs I've seen yet. At 100 MICROamps they are as bright as normal red LEDs at 10 MILLIamps. All LEDs on is still less than 1 ma. FAQ's on the Membership Board ----------------------------- Oct 11, 2005 Many thanks for all the comments and encouragement, both on the list and off. A few questions came up, which are helping me to clean up some details. 1. Where's the power supply? I'm powering it off the PC's parallel port. This port has no +5v pins, but there are pullup resistors to +5v on every data pin. Any pins left high provide the power, via the CMOS IC's input protection diodes. This is adequate since the membership board only draws a few ma. But, I think I will add an "official" power connector. What would you prefer? I could just leave a couple pads to solder on wires; or expand 2-pin header J2 into 3 pins (power, ground, LED enable); or something else. Keep in mind I only have 0.35" of height above the board. 2. Can you bring out the other flag lines and other pins? The membership board is pretty small. I used a 25-pin single-row connector because it fits, and I have a bunch of them (so they are basically free :-) I don't have room to bring out a full expansion bus, and it's unlikely anyone would ever design anything for it anyway. But, I'll look for a way to get a few more pins out (EF1, EF2, EF3, and INT). Any others that aren't already there that you feel would be a "high priority"? 3. How do you use the membership board without the front panel board? That's a good question! I hadn't thought through this very well. Right now, you can use the membership card standalone with an EPROM. The EPROM ignores the floating /WE line, and there is a simple power-on reset circuit (100k pullup to VCC and 0.1uF to ground on the 1802 /CLR pin). But running with no RAM is pretty restrictive. You can install a jumper to short /MWR to /WE in the 25-pin connector to write-enable RAM. That part's easy. The hard part is, "How do you get a program into RAM with no front panel?" I need to add a mechanism to: a. Keep the RAM powered when you unplug the front panel. I can do this by changing the 22uf capacitor to a 0.047f (47,000uf) supercapacitor. Electronic Goldmine has these for $0.80 each), and they are small enough to fit. b. Protect the data in RAM while the front panel is being removed. Do this by adding a resistor to pull /WE high when the front panel board is unplugged. c. Stop the 1802 while the front panel is being removed. Replace the pullup on /CLR with a pulldown resistor. That also means an external switch will be needed to pull /CLR high when you want the board to run again. I think this would work as follows: - plug membership board onto front panel - load your program with the switches or a PC - set the RUN/CLEAR switch to 'clear' (stops the 1802) - unplug the membership board (it's now powered by the capacitor) - plug it into your project ( - flip the RUN/CLEAR switch in your project from 'clear' to 'run'. - the program stays in RAM as long as your project keeps the membership card powered I'd like the membership board to be a poor man's BASIC Stamp. Compared to the real (Parallax) BASIC Stamp, it could be cheaper, faster, more memory, lower power, no PC needed, and you can build it yourself! :-) Oct 12, 2005 Bill Rowe wrote: > Lee: I'm so excited! Thank You! You're welcome. > I'm gathering parts and planning to put mine together on an old > protoboard for starters. I'll probably start without the parallel > port and a simple dip switch led setup. That will work, as long as you have pullup resistors for the DIP switches (as I assume they are SPST). > Could I get away with something like a 3 volt watch battery? Yes; the power consumption depends on the LEDs and RAM used (the 1802 and other chips are negligible in comparison). I have some nice white LEDs that are incredibly efficient; they are clearly visible at 100 microamps! For the RAM, you'll need to do some hunting to find a true CMOS part that has a low power consumption even when active (chip select low). Most draw 5ma to 100ma when chip selected. Oct 13 2005 Bill Rowe wrote: > Will the chips work on 3V? Yes. All the chips I've tried work at 3v, and even less. Basically, the lower the supply voltage, the slower you need to run the clock. Somewhere around 2.5v is the lower limit. Below that, the chips still work but don't have enough drive for even the 100k pullup resistors. -- Jan 21 2006 >[Q: lifetime for the toggle switches?] if you don't plan to use the switches a lot (just long enough to try things out initially, before moving on to some better input device), then just get some cheap surplus toggle switches. Almost any will work. But if you expect to use the switches a lot, then "human factor" issues come to play. You'll rapidly come to hate cheap switches! In this case, get some good ones that have really nice, easy-to-use actuators. I like the "piano key" style actuators. See the C&K 7000-series toggle switches with J5 actuator. This is a flat tab about 1" long and 3/4" wide. -- Feb 9, 2006 >[Q: where can I get 1802's?] Last year, Electronic Goldmine http://www.goldmine-elec.com had a bunch of MSI88 barcode readers (a gadget about the size of a paperback book) that had an 1802, as well as a lot of other good parts. They were selling them for $2 each! I don't know if they have any left. -- --------------------------------------- This page of edited content is copyright Herb Johnson (c) 2012. Contact Herb at www.retrotechnology.com, an email address is available on the home page.