Big Mess o' Wires


A home-built CPU, and other messy electronics adventures

Archive for the 'BMOW 1' Category

Swag

The BMOW stickers arrived today, and they came out perfectly! Mmm, one thousand delicious 3×3 squares of BMOW goodness for the Maker Faire.

I only wish I’d made them larger. 3×3 doesn’t feel as big as I’d imagined it would. Still, they’ll make a great give-away for the Faire.

Totally unrelated to BMOW, but the mailman also brought me my new Vibram Five Fingers running shoes today:

9 comments

BMOW Road Trip

I took the BMOW 1 hardware on the road this week. A few of the people I work with have been polite enough to feign interest in the project, and I’d repeatedly promised to bring it to work for a demo when it was ready. On Monday I lugged the whole setup to the office, and left it there for two days, showing it off to whomever came by and asked about it. I wish I’d taken some photos. It turned out to be a great dry run of what I’m likely to encounter at the Maker Faire next month, and I learned some helpful things about the demo and myself in the process.

  1. From an audience of very technical people, it basically broke into two groups. Most asked one or two general questions, and left in less than a minute. A few stayed for 15 minutes or more. Some of this was detailed BMOW questions, and some was stories of their own about hardware “back in the good old days”.
  2. I had trouble summarizing what the project was in a couple of sentences, and really need to work on this. Many people didn’t seem to grasp what it meant to build a custom CPU, although they got the general idea.
  3. I found that I actually got bored of talking about the machine after the fifth or sixth repeat of the same little talk. That doesn’t bode well for the 18 hours of the Maker Faire. It actually surprised me– I thought I’d never get tired of talking about my projects.
  4. Everyone wanted to see the wiry mess, which is unsurprising given the project’s name. Sadly, all the wires are hidden on the underside of the board when it’s mounted in its case. For the Maker Faire, I’ll definitely have plenty of photos on hand of the wiring side, and a sample wire-wrap board. I wish I could think of a safe and easy way to let people see the wire side of the BMOW main board when it’s on display.
  5. Quite a few people said they’d expected it to be bigger. I’m not sure how to respond to that.
  6. I may need to add some more built-in demos. There are 12, but they basically break down to listen to some music, look at a picture, play chess, or run BASIC. Nobody got further in BASIC than: 10 PRINT “HELLO”, 20 GOTO 10.
  7. Stability was pretty good. Over two days, constantly running in a demo loop, it only crashed a couple of times. There were a few very bizarre bugs that disappeared after a reset, though, like the “C” key stopping working.
  8. A few people joked about “accidentally” spilling coffee onto the board. With a few thousand people at the Maker Faire, somebody probably will spill something on it. I’m still unsure what the best way of protecting it is. I’ll probably need some kind of transparent protective cover.

In another month, I’ll go through the same drill again at the Faire, but with better props and a much larger audience.

8 comments

Done?

I think it’s done. This evening I went to work a bit more on BMOW, and realized… there’s nothing left to do. The last little bit was finished this weekend, and involved creating a self-running demo loop of all the BMOW programs in ROM. Now it still boots to the same power-up screen as before, but after 30 seconds of idle time, it’ll start looping through a sequence of 10 different audio, video, and interactive demos. It can be interrupted at any time, and if somebody starts playing with the interactive demos (Microchess and BASIC), it will let them play as long as they wish, continuing the demo loop after another suitable idle period.

The only other bit of work I can conceive of is constructing a clear replacement cover for the BMOW case. The current case is solid steel and hides everything away inside, so a clear cover would be a nice way of showing things off while still keeping them protected. I looked a bit into some online custom plastics manufacturing options at Big Blue Saw and Polou, but they’re both limited to 2D parts. A custom replacement cover would need a top, sides, back, and guide rails on the inside, and I’m not too excited about trying to glue or screw together a 3D part from a bunch of 2D parts. Unless I come up with some great brain wave that can simplify it, I’ll probably skip this idea, and just leave the cover open when I want to show the machine off.

The timing of the Maker Faire is a lucky coincidence, giving me an excuse to polish things up nicely and have a little celebration before going on to a new project. I’ve spent more time in the past week planning for my Faire exhibit than on BMOW itself. Originally I’d planned to have some business cards printed up that summarize what the project is about, but then I asked myself why I’d want boring business cards when I could have stickers! I think I have an irrational fondness for stickers. I designed a custom 3×3 inch BMOW sticker and ordered 1000 of them from UPrinting. Take a peek at the sticker proof to see the design. Come to the Maker Faire and I’ll give you one!

I’ve still got a few more projects left to prepare for the Faire, like T-shirts, a Powerpoint presentation, notebooks of schematics and construction photos, and general booth equipment (lights, cloths, cords, monitors, wire wrap samples, and other sundries). That should keep me busy for a while.

I also updated all my online documentation recently, including quite a bit of new content, and put it all on a new Downloads page. It includes all the schematics, software, wire lists, Verilog models, PC tools, and anything else I could think of.

As one door closes, another opens, and I’ve begun thinking harder about my next project. One practical question I’m unsure how to answer is where I should write about it. I’ve really enjoyed logging my progress with BMOW here, and the great comments and dicussions it’s led to with like-minded people all over the world. I definitely want to keep that going for my next project, but is this the right place to do it? Right there at the top of the page it says “Big Mess o’ Wires”. Do I start a new site? Do I keep adding to this site, even though newer entries will be unrelated to BMOW? If so, how will future visitors understand what’s going on, or realize that there even was a machine that came before the new one?

My current thinking is to redefine “Big Mess o’ Wires” as referring generically to any electronics project of mine, since they’re all big messes of wires in one way or another. Then retroactively rename BMOW to BMOW I or BMOW Classic or something stupid, and turn this site into more of a catalog of various projects, including BMOW I. It’s also probably about time to get a real URL for this thing, instead of hanging off my content-free personal web site. Sadly, www.bmow.com is already taken (curse you, Broward Meals on Wheels!). Other options like www.bigmessowires.com seem a little verbose, and I know from my site statistics that most visitors incorrectly insert the “f” in “of” when doing a search. Maybe a .net, .org, or .info domain? Or maybe it’s fine just the way it is.

3 comments

Maker Faire

ZOMG!!! I’m exhibiting at the Maker Faire! It’s billed as “the world’s largest DIY festival”, and is happening in the San Francisco Bay Area May 30-31. If you’re anywhere remotely nearby, make a trip to come see BMOW and the other exhibits! I attended last year’s faire, and the caliber of the exhibits was excellent. Everything was fascinating and amazing, so I’m not sure BMOW will measure up to the rest. But they accepted my application, so now they’re stuck with me. Heehee!

Thanks to Bill Buzbee for pointing me to the late-entry application. (Bill and the Magic-1 will be there this year too.) The application process was surprisingly simple: just a few words about myself, my project, and some links to photos, videos, and this site. I just got a response back today, letting me know I’d been accepted. I’m wondering about the brevity of the application: I’m not sure how they really know that the projects will be any good, or of any interest to the public. Yet while some of last year’s exhibits were better than others, I didn’t see anything that struck me as boring or lame.

I’m thrilled and excited, but I’m also pretty nervous. Besides furnishing a table, chairs, and a power outlet, the faire doesn’t provide me with any other support. I’m not sure what I’ll need to make an interesting booth, but I don’t think simply having BMOW there on a table will be enough. For one thing, if you have no idea what you’re looking at, it just looks like a bunch of crap in an X-terminal case that someone drilled a hole in.

Here’s what I’m thinking:

  1. A big BMOW sign or banner. Maybe scrounge up an old dot-matrix printer and make a BMOW banner with Print Shop. Or a piece of posterboard, with a pseudo-dot-matrix BMOW logo constructed from colored squares cut from construction paper.
  2. A second PC with a looping powerpoint presentation, outlining the highlights of the project, with photos of the wire wrapping.
  3. A third PC for demonstrating the simulator, microcode compiler, and other custom tools, and for downloading data to BMOW via USB.
  4. Printouts of the schematics and all the other technical documents in a big binder, for the truly curious.
  5. A continuously-running, interruptable demo loop for BMOW.
  6. A clear plastic or glass cover for the hardware, to protect my year and a half’s work from overly-curious finger poking.
  7. Maybe print up some info/business cards with the logo, summary, this site’s address, my name, and so forth. A number of exhibitors did that least year, and I thought it was a nice touch.

San Mateo fairgrounds, here I come!

1 comment

Board Layout

While updating the BMOW documentation, I came across this diagram of the main system board layout that might be interesting to share. It shows every part on the board, and howthey’re all grouped into the subsystems that form the computer. Related parts are adjacent most of the time, but I did make some blunders.

Compare the diagram with the photo, and click either one to see a higher-resolution version. They match exactly, except for RAM1 (lower-right of the diagram), which I never got around to placing on the main board.

The core systems which form BMOW’s custom CPU are in the center of the board, shown in light blue, pink, orange, and purple. The rest of the systems are arrayed around the outside.

  • Control (light blue): Here’s where the control signals are generated to enable and coordinate everything else. It includes the three microcode ROMs, opcode register, instruction phase counter, and related demultiplexers.
  • ALU (pink): The mathematical and logical functions are all performed here. It’s a bit of glue circuitry along with a pair of 74LS181s.
  • Address Registers (purple): The program counter, stack pointer, and scratch address register are all 24 bits wide.
  • Data Registers (orange): There are three user-visible 8-bit registers named A, X, and Y. A fourth register named T is used internally by the microcode.
  • System Clock (light green): An 8MHz oscillator is used along with some flip-flops to generate two 2MHz clocks, one 90 degrees out of phase with the other. The power-on reset circuit is also part of this subsystem.
  • Memory (gray): The system has 512K ROM, 512K RAM, and the address decoder. I originally planned for two RAM chips and a total of 1MB of RAM, but later decided that was overkill.
  • Devices (dark olive): External hardware is mapped into the CPU’s address space. There’s a real time clock, and interfaces for USB, the keyboard, and the LCD front panel.
  • Discrete (dark blue): I lumped together all the miscellaneous resistors and capacitors that were needed into a single component carrier.
  • Video (tan): Four GALs serve as row and column counters to generate sequential video memory addresses during the display of each video frame. There’s 32K of VRAM, and a separate 2K character generator ROM. A palette chip pulled from an ancient video card translates VRAM values for each pixel into analog R, G, and B voltages for the monitor. There’s also some demultiplexing circuitry to let the VRAM address bus be driven by the row/column counters or by the CPU address bus. The video system has its own clock, which runs at 25.175MHz.
  • Audio (red): Some support chips and an AY-3-8913 programmable sound generator create three voices of modified square wave goodness. The three analog voltages for the voices are generated on-board, but the stereo mixing and amplification are done on a small daughter board.
1 comment

Date and Time

I’ve written one more program for BMOW: a utility to set the date and time. OK, I admit it’s not very exciting, but it is mighty useful when a buggy program overwrites the memory-mapped real-time clock registers for the fifth time. It also shows the time incrementing as you sit idle at the setting screen, demonstrating that the machine hasn’t crashed.

This will become part of the standard suite of ROM-based demo programs for BMOW. Speaking of which, I’ve put together the final menu of programs for the demo ROM (all of which have been discussed here before), and it totals 403923 bytes. That’s a bit of a problem, since I only have a bit less than 131072 bytes (128K) available.

I’m planning to compress the programs using a 6502-based LZW decompression routine. Compressed, the demo programs require only 124371 bytes, which should leave just enough space for the decompression routine, and a few last-minute odds and ends. I still need to work out the details of the decompressor, but I hope to have that wrapped up later this week.

Once that’s done, I still need to do one last pass through the BMOW schematics and documentation. Much of what’s posted online is out of date, and even what I’ve got here on my PC doesn’t reflect the true state of the hardware in some cases. I need to document it all before I forget everything, and post the updated docs back here for the curious. With that, I’ll be ready to call BMOW done. Maybe I’ll try to arrange a demo party for anyone in the San Francisco area who’s interested.

Lots of ideas have been swirling in my head for my Next Big Project, and I think it’s going to be pretty cool, but I’m forcing myself to hold off on it until BMOW is completed. I only have enough time and energy for one crazy electronics project at a time. BMOW’s almost at the finish line, though, and I’ll definitely be writing more about NBP here soon.

6 comments

« Previous PageNext Page »