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. --