back to my computational teenage: building a 68000 homebrew computer

68000 chip (courtesy of CBM Museum)

after my first commodore c64, i was so much in love with the amiga and it took quite some time until i had my first amiga 500 in my hands. i still remember the smell of the package and the computer. the first boot up of the workbench, the mouse et cetera. a wonderful feeling. it was the computer i learned to program c on, after i had upgraded my basic from the c64 to amiga basic. i was fascinated by this computer, its graphics capabilities and the unbelievable amount of 512kb ram. after working with “atzec c“, upgrading to 1mb ram and having a ram disk to not always change the floppy disk all the time. i had the feeling that i needed to learn assembler.

at that time i was writing 3d routines, i wanted to design my own flight simulator. and assembler was a wonderful way of learning the aesthetics of minimality. having a table of clock cycles per command next to your computer and refining algorithms to run ever faster was a great joy.

later in my life i came across minix, the microkernel architecture of a unix derivate and “the father” or at least inspiration for linux. again, i loved the simplicity of everything. the beauty of “processes vs data, input vs output” and the beauty of microkernels. i never actually did anything with minix, but now that i own the whole family of raspberry pis i’m truly tempted to give it a go.

so, here we are: the combination of the two would be a great thing: bring 68000 back into my life and have minix running on it. fortunately, people have ported minix to the 68000, so i hope that this adventure will not leave me dead in the desert (since the ports are usually for macs or atari st).

searching the web for crazy people who’ve built a 68000 homebrew computer, i immediately was inspired by 64 Katy, since this seems a simplified computer enough for me. this guy managed it to build one on a BREADBOARD! later on, he built a new version using an fpga (if i understand correctly, a cpld is an fpga) for the glue logic and an etched board. this is too far away for me, but i’d love to build one using perfboards and ic sockets.

possibly, i could then increase its clock rate from the breadboard 2mhz to maybe four or six.

i love katy’s architecture because it does a minimalistic approach, reduces all parts needed and i hope to understand how these parts work all together. especially i’m interested to learn what you need beyond cpu, ram and rom to get a system going (there’s obviously all these 74er series going on that do the glue magic). moreover, i’m happy that the guy was not over-engineering the “surroundings” like graphics, sound, keyboard etc (there’s another guy who did that) but really relies on the serial connection for input and output.

so, the initial step would really be to build the 68008 version with 512k ram and 512k flash and get the monitor programm running.

i already enjoy flipping through these two books:


the 68k book also describes a single board computer, but that is also based on the 68000 chip which has the 16bit bus and thus would be a huge effort to build compared to the 68008 that is 8 bit.

people in the internet also refer to this book that obviously also describes another design.

interestingly, cpu, ram and flash cost about 12 euro altogether which is way less than the books :-D.


minimalistic way of building a 2 DoF servo “cluster”

as you know i love to design minimalistic mechanics and always try to simplify my previous designs. many of the things in trashbot 6 have been redesign to reduce weight and the number of parts.

one study of reducing complexity was the robot foot made from two servos and coat hanger wire and it actually received quite some attention.

with the progress made on trashbot 6, i also wanted to have a compact, yet lightweight way of connecting to parts with two servos so that these two parts could move in two dimension: the shoulders and the feet. Continue reading

first “unit test” in programming an arduino mini pro

so, after i’ve connected the head and its servos to trashbot 6, it’s now time to work on the actual control of the neck servos. unfortunately, the servo-board connected to the raspberry is not sufficient to control the neck servos since the body is already using 15 servos and the controller only has space for 16.

so i thought to use an arduino mini pro for this since it has 6 PWM outputs that can control six servos (people have noted that the output pin doesn’t necessarily have to be capable of PWM to control a servo). Continue reading

deconstructing the minoru 3d stereo webcam

i’m thinking about adding stereo vision to trashbot as the raspberry pi has enough oomph to do some kind of computer vision and it seems that open cv supports this camera.

there’s not too many “3d” cams out there that actually fullfill my requirements:

  • cheap (<100€), so i can buy more when killing one
  • 3d or at least two cameras
  • strippable
  • supported by raspbian et al.
  • small enough to fit a robot’s head and
  • light (as the higher up the hardware in the bot the more it will impact stability when walking)

Continue reading

my first self-made usb plug

for trashbot 6 i planned to change the arduino nano into a raspberry pi 2. i also moved the board below the hips as luckily, the three mgr 996 servos of the hip are as wide as the raspberry pi:

raspberry pi 2 and the hip servos

but as you can see on the lower left (where the edimax wifi plug is inserted), the usb ports are pretty much flush with the outer servos, i.e. the attached legs will not leave too much space for usb plugs. Continue reading

trashbot 6, quick video walk through

most of this work has been done over christmas, but only now i found the time to at least do a quick tour around the bot. here are some highlights:

  • arduino nano changed to raspberry pi 2 & wifi
  • moved controller from back to hips
  • added 16 channel i2c servo controller
  • new foot construction adding an additional degree of freedom (DoF)
  • reconstructed legs that are lighter and now take up new batteries
  • power distribution board including i2c current / voltage measurement
  • accelerometer and gyro sensor (i2c) moved to “belly” instead of neck
  • added arms with shoulders (two DoF)
  • changed spine, reduced complexity
  • removed head for now (being redesigned)

designing a robot foot from a coathanger

I always love to obey to minimalism and I always love to construct stuff with a minimal amount of material and complexity. Of course, the question is then how replicable, durable and maintainable the result is.

In the present case it became obvious, that at some point in time, Trashbot would need to have an additional degree of freedom on his foot, namely an ankle that allows him to lean forward. The present prototype is acutally from August last year. But now I’m revisiting my designs as Trashbot recently got the long awaited additional hip servos and the logical next step is to add the ankle servos.

So let’s start with the layout:

t-shaped servor layout Continue reading

Trashbot 5, new hips, first movements

Last week I added three degrees more to Trashbot, two hip servos for forward movement (“kicking”) and one to the bone.

This week I found some time to do the first single servo movements and tests to check out the new geometry of the bot since the broader hips will affect the Center of Gravity etc. Here’s the first attempt to do what the normal gait would do: shift the body to one foot:

So, definetly software teaching me how to improve hardware… Next draft iteration: Continue reading

Working on more Degrees of Freedom in the legs of Trashbot

I’ve been working on Trashbot for quite a while now, but the basic gait mechanism is still the same as in version one. The hips’ movements and the distance between the legs define the possible step length. This is annoying since the robot is rather tall and you’d expect that he’ll walk a bit faster than he actually does. However, moving faster induces stronger vibrations in the skeleton and makes him fall much easier.

trashbot 4 in full length

Also, the upper part of the body will tilt “stronger” when Continue reading