Some projects that I've either done personally or been
involved in. I realize the selection might seem a bit odd, but
most of my other projects (and some of these) are in a state of
disarray and aren't fit for public consumption.
Mostly, this whole page is just an excuse for me to get my documentation in better order...
is really the name of a whole project we did at ELAB for the Department of Industrial Control
Systems at KTH as a way of
making some money. Naturally we underestimated the time it would
take and charged them way too little. It is a system of four
separate model train platforms that can be connected in different
ways and is used in one of their courses.
I built the part that controls the trains and switches and also reports back the speed (or rather the drive voltage) of the trains and the state of the switches. It was reasonably successful and very cheap in parts for us to build since I only used parts we had lying around anyway. It has some shortcomings though, namely no ESD protection on some CMOS inputs, no diodes across the solenoid outputs to the switches and it requires quite a bit of trimming of the PWM parts in order to protect the MOSFETs from shoottrough. All in all, it's rather unlikely that you will find a use for it as it is, but I had to fill out this page somehow :-) And you can still use it for ideas if you're building your own model train controller. Oh, and the text is in swedish (but that shouldn't really matter, there isn't much text in the schematics anyway).
Schematics/topsilk in PDF format.
# built so far: 4
I got this idea about building an amplifier with only MOSFETs
(OK, it does have an opamp too, but that's only used as a DC
servo to prevent my headphones from catching fire).
Also, I didn't have a decent headphone amplifier so I set out to
build this one as a test. The results were fairly amusing...
Though the distortion is a bit high (slightly less than 0,1%), it consists almost entirely of the second harmonic (or first overtone, whatever you like to call it). I could have said "only the second harmonic", but with the spectrum analyzer I was using anything down by 80-90dB from the reference tone disappears into the background noise.
This wasn't terribly surprising given the MOSFETs' transfer characteristics, but I've never seen anything quite like it before and it should appeal to people who like the sound of tube amplifiers. I'm not much of a tube fan, but this amplifier sounds pretty good to me.
It really isn't ideal with things like really 'broken' electronic music (think Autechre or maybe Speedy J's later stuff), but it should be quite the thing if you like classical music or maybe just music with more 'normal' instruments.
Another great advantage is that it uses lots of green LEDs for voltage references, so it lights up the inside of the box nicely :-)
Schematic in PDF format. FAQ
Sorry, no layout. It differs some from this version of the schematic, so it doesn't really fit here. And as usual, the top silk sucks...
# built so far: 3
This is a project that I did with two other people (Andreas Ersson
and Jakob Thorell) for an "advanced" course in analog electronics.
We got four course credits for something we would have built anyway.
It is an analog (10-)channel vocoder where the frequency spectrum of one input signal is applied as a filter to another signal. (OK, maybe a bit simplified, but if you're interested you probably already know what I'm talking about.) In retrospect I can say that the input/output circuitry could have been a bit better and it would have been more fun with 12 or 14 channels instead, but all in all the result wasn't too shabby. We at least have one satisfied user in Daniel Kahlin. He has some of his music online so maybe you can hear the isr-vocoder in action. (Lucky you!)
Schematics/layout in PDF format or the design files (schematics in Protel format and pcb in Tango format). There's also a bill of materials, included with the design files or separate if you prefer.
The silkscreens are a little bit strange as only a few of the components have outlines. This derives from the fact that the tango libraries I used didn't have them and it really is too much work to add them now. This shouldn't pose much of a problem, they all have values and/or reference designators.
# built so far: 1 (+2 half-built)
Don't take it too seriously. I only write software for fun...
Although I have sometimes been stuck doing it for money, and it sucks.
is a free Gerber viewer for Linux. It's not mine, really,
but I'm helping
Stefan Petersen out with some things,
mostly the drill file support. You can find the homepage
is a program for generating drum samples (in much the same way
as an analog drum machine would do it).
I made the user interface and sound/wave file output parts
and Andreas Ersson made the math intensive parts that
generate the waveforms. It was my first attempt at using
DirectSound under windows, so don't judge it too hard.
Whohoo! I found a version that at least appears complete and reasonably bug free. Download it here.
is a program for executing
a command when a switch connected to the serial port is closed. The
switch in question must be connected between the RTS line and either
one of CTS or DSR. It only works under win32, but I could easily
make a Linux version if someone wants it.
I know it seems like a strange function for a program and, indeed,
I've never used it myself other than for testing. It was made as a
reply to a post in sci.electronics.design that I happened to read
on a night when I had trouble sleeping...
Download it here.
| || || |
| || || |
| ||C64/128 related|| |
This is both software and hardware, but with a Commodore flavor to it.
is a package for transfering files between a C64 and an host
machine (which can be an Amiga, PC or unix box).
It works in two different ways, either using the C64 as a server
to the host for accessing floppy disks or using the host as a hard
disk server for the C64. The transfer is asynchronous serial at
38400 bps, and the only hardware needed is a RS-232 level converter
(and a null modem cable of course).
It was originally written for the Amiga by
and later ported to the win32 platform (Windows 9x and all
flavours of NT) by
As Martin had already done the hard part, I ported the program to Linux. Since then I've been working on getting it more portable and now it at least compiles under a few other OSes. My very latest development version (not the one below, sorry) even seems to work with cygwin. Which is totally useless since there's a native win32 port, but it's kind of fun anyway. I'm beginning to like autoconf more and more...
If you're interested, you can visit the Over5 page or download a local copy of the Linux tarball, which can be newer, but probably isn't.
The latest development snapshot. Beware that cbm binaries are not included in this and that you have to use dasm if you want to compile new ones. (Or just use the ones from an older release, they haven't changed.) I would be very interested in feedback if you got this version to work on your platform. Right now it has been verified with:
* RedHat, Mandrake, Debian (some different, rather recent versions)
* FreeBSD (thanks lfo!)
It compiles just fine under SunOS and IRIX too, but I don't have physical access to those machines so I've been unable to test it...
The speed problem is fixed in this version and it has somewhat better autoconf support. It'll probably never have automake support though as it was a PITA to add to the existing source. Plus I'm clueless ;-)
is a really a
subproject to Over5 but it can be used by itself. It is a package
for reading/writing whole disk tracks from a 1541 with a C64. This
includes the 1571 in 1541 mode and the C128 in C64 mode, but neither
in native mode. It is a little bit slower than the fastest 'turbos',
but on the other hand it's a lot more well behaved.
is a serial port
cartridge for the C64/128. It is a clone of the Datapump cartridge
which in turn is a clone of the Swiftlink cartridge from CMD. Note: CMD has stopped producing
Commodore gear, so depending on whether someone picks up their
product line or not you may be stuck with clones such as this.
The only functional difference is an added switch for boosting the
maximum bitrate to 115200. This can be done to a regular Swiftlink
on a more permanent basis (see this file
for a description of the procedure).
If you want to use a Swiftlink (or a clone) with your own program,
SwiftLib for a really nice looking library.
I'm afraid there isn't much in the way of documentation, but
building this is pretty straightforward anyway. If there's interest,
I'll add a step-by-step description on how to build it.
Download schematics/layout in Postscript format / in PDF format or maybe the design files in Tango format
Some of the text positioning in the schematic is screwed up, but it seems to be a bug in Tango and I do not feel like hacking the Postscript output right now. It is still perfectly readable although not as pretty as it could be.
# built so far: 2
is a program to transfer
vic20/c64 tapes to a pc by playing them through an ordinary tape
recorder connected to it's soundcard. Yes, I know there are
several other programs sort of like this already out there, but
where's the fun in using someone elses program? What we're aiming
for (and have already achieved to some extent) is a command line
* works with win32 and Linux
* reads the sound input in 'real-time' (i.e. no intermediate .wav-files)
* outputs .TAP files
If there's any demand for it, I might even consider a GUI. But lets face it, such things are very rarely needed.
This is in beta state right now and only works under windows (95/98 and NT), if you're interested in testing it anyway, here's my latest snapshot. The last four digits in the filename represents the time it was made, 04:50 :-)   (No, not PM, you silly American ;-)
It works much better with my crappy walkman since I added a "tape speed" option (all my tapes ran about 5% too fast).
If you have any input on this, drop me or Martin a mail. For example, you might want to flame me for choosing such stupid names for the command line options and suggest some less brain-damaged ones. (They've improved some recently, but I'm still not happy with them...)
| || || |
| || || |
This is stuff that didn't seem to fit the other categories...
is my masters thesis. It is a design for a "bridge", connecting
different fieldbusses wirelessly via a Bluetooth link.
I might explain it in more detail later on, for now you'll have to settle for the thesis paper
Caution, It's large. You can get it in compressed form here
I'm not sure what to call this. It's a small paper Andreas Ersson
and myself wrote while doing a project work for a course in Musical
Acoustics. It an investigation into the differences in the sound of
a cymbal with regards to how hard it is struck. If you're interested
(however unlikely that may be), you can find the PDF