BMOW title
Floppy Emu banner

Ready to Assemble

It took longer than I’d expected, but all the parts needed to build three Floppy Emus have finally arrived! That’s three custom-made circuit boards from Dorkbot PDX, plus the SD card sockets, CPLDs, AVRs, and a whole pile of buttons, LEDs, and other components. Now it needs some soldering love.

The boards from Dorkbot are as high-quality as ever: well-centered drills, crisp silkscreen, gold-plated pads, proper via tenting, and everything else. Unfortunately my last few Dorkbot PCB orders have been slower than normal to arrive. Even when I submit my design on the night before the deadline, the total end-to-end time from submission to boards in my mailbox is no faster than from a Chinese PCB maker delivering via China post. It’s about 17 calendar days in either case. With manufacturing done in the USA, one of Dorkbot’s big advantages is supposed to be turn-around time, but in practice it’s more a question of a higher price for a higher quality board than any question of time. I don’t mean to harp on Dorkbot– the guy who runs the PCB order is very nice, and I’m pretty sure he sinks a ton of his time into it while earning almost zero profit. I only wish it could be a little faster.

Now for the bad news: my enthusiasm for putting this board together seems to have evaporated. My hobby efforts come in waves, and I was very busy on this project in November and December, but now I can’t quite get excited about it. It’s not simply a question of soldering on the parts– I also need to modify the AVR firmware to use the ATMEGA1284 instead of the ‘328 from the prototype, implement indirect CPLD programming, and then implement the write buffering mechanism I keep talking about. I’m sure I’ll get to it soon enough, but right now when I look at the bare board, my mind wants to go read a book or go for a hike rather than jump into assembly. I’ve learned to listen to those voices, else a hobby can turn into a chore and cease to be any fun.

 

Read 8 comments and join the conversation 

8 Comments so far

  1. Andrea - January 19th, 2012 4:45 am

    Electronic is a drug.
    Sometimes I spend all my free time into an “hobby” project for weeks and weeks and then, one day, I get bored and I abandon everything for weeks or months.
    My hope is that sooner or later you will finish this amazing project beacause it is really usefull and unique.

  2. duxbridge - January 19th, 2012 10:23 pm

    Hey Steve,

    Thanks for the updates on this project, I look forward to hearing more! Hang in there!

  3. tcdev - January 20th, 2012 4:33 am

    I can relate. Though my voices tell me to start on another project, rather than read a book or go for a hike! 😉 Exactly the reason I have dozens of unfinished projects… 🙁

  4. Steve Chamberlin - January 20th, 2012 9:07 am

    Don’t worry– I haven’t given up on the project by any means, I just need a short break before I jump back into it.

  5. Paul Asselin (@AsselinPaul) - January 21st, 2012 4:14 am

    Can someone tell me what the CPLD is used for?
    Great project too.
    I really appreciate the time and effrot you put into it.
    Keep up the good work 😉

  6. Steve Chamberlin - January 21st, 2012 8:45 am

    The CPLD implements all the timing-sensitive functions, and generates the signals that are sent to the Mac. It also creates an RPM feedback square wave whose frequency varies according to the current track of the emulated floppy drive, in order to mimic the variable-speed behavior of the Mac 800K drive mechanism. And also ensures bits are sent at exactly 2 microsecond intervals. It wouldn’t be practical to do those functions on the AVR, since it’s not fast enough and interrupt timing varies slightly from one to the next.

  7. Mike Tsao - March 7th, 2012 3:22 pm

    “implement indirect CPLD programming”

    I wrote an Arduino sketch to do this. See https://github.com/sowbug/JTAGWhisperer. If your CPLD is tolerant of your ‘328 I/O voltage levels, and if you can generate an XSVF for the CPLD programming, then it shouldn’t be too hard to adapt this code to a pure AVR environment. (Or just do the Arduino version if you don’t mind the bloat.)

  8. Steve Chamberlin - March 7th, 2012 3:38 pm

    Thanks! I’ll definitely give that a try.

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.