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.