An USB converter for the Xerox 820 Keyboard
I have a Xerox 820 in my collection for quite some time now. Recently I thought that I could use the keyboard as an USB-Keyboard on my PC. All it took was a converter where I could plug the Xerox keyboard at the one End and an USB-Cable at the other end. I ended up using an Arduino to read the scancodes and modifiers from the Xerox keyboard. The Arduino then uses a lookup table to convert those scancodes into USB-HID scancodes and sends them to the host. For interested ones I have put the Arduino sourcecode and some documentation online for download.
An USB converter for the Lyon Mouse
The so called ÔÇ×Lyon MouseÔÇť is one of the earliest optical mouse devices ever built. It was used by Xerox with its Alto Workstations and presumably later models. The chip inside the mouse has been developed by Richard F. Lyon. Thats why the mouse is often referred as ÔÇ×Lyon MouseÔÇť. I got such a mouse on my table recently and I thought it would be a nice idea to turn the mouse into an USB-Mouse that I could use with modern hardware. I did not want to modify the mouse itsself, instead I made an converter that reads the incremental encoder signals on the one end and functions as a regular USB mouse on the other end. Its even possible to power the mouse through the USB port. The Arduino sourcecode along with some documentation is available for download here.
A reader device for exotic memory chips
I own a couple of old computers from the early 80ies and late 70ies. In those machines you often find exotic memory chips that no modern programming device is capable to read. However, one needs to create backups from the firmware in those machines in order to replace the memory chips should they go faulty. To cope with this, I made my own reader device called the "Chip Helper". This is basically just a microcontroller (ATmega128) and a ZIF socket. I have designed the firmware in a way so that it is easy for me to add support for new chips on demand. Currently only a hand full of chips is supported, but the Chip Helper will grow with the demand. I also added functionality to run some kind of unit-test on TTL-ICs. This way I can just plug in a suspicious IC and test it. This is really helpful when reparing devices. The firmware is of course open-source and patches are very wellcome.
A Connection Machine look-alike
This project is about building a 19-Inch-Rack case that features the design of a connection machine. The structure is made out of wood and plated with glass on the outside to give it a nice looking finish. Details are implemented using acrylic glass lasercut parts. The iconic LED blinking effects on the front are recreated using eight 16x32 LED panels. There is also a comfortable power management unit built in. Seven programmable power outlets and Power/Reset control lines for up to four PCs are also implemented. For the interested Hobbyists and Makers out there I have released my 2D/3D CAD files, and the sourcecode for the software controlling it all.
2D/3D Cad files:
Sourcecode of the PMU:
Sourcecode of the LED-Panels:
Mini Magstripe Reader
Recently I had the need for a simple to use magstripe reader module and I managed to find a panasonic swipe reader module (PANASONIC ZU-M1363S1E1) for darn cheap. These modules output a clock signal along with a data saignal for each stripe while the card is beeing swiped. To make use of such a module some decoder logic has to be added. I implemented an easy to use firmware on an ATmega328p controller board (Arduino Nano 2.0). The Implementation allows for access to the undecoded raw bits as well as to the decoded Ascii-Data. Since there were a few unpopulated pins leftover on the arduino module. I also added some user controllable GPIO to control some LEDs or read some buttons. Bottom line is a simple to use and simple to integrate magstripe module that can be used for a various tinkering projects - go ahead and build something with magstripe cards!
Vector Graphics Interface
VGI is a vector graphics framework that enables programmers to create individual vector graphic applications that run on hardware vector displays such as laserprojectors and CRT devices (oscilloscopes, vectrex). VGI comes with 2D drawing functions and even with a basic 3D vector engine that allows the user to model 3D graphics as well. It also has an integrated vector font so that text output is possible as well. VGI has support for the output on SDL, Trammell Hudson`s V.st and M├╝ller-Elektronik`s Easylase USB lasershow controller. The underlaying protocol is TCP/IP based, so that the system controlling the hardware can be installed in a remote location. VGI is extensible and offers interfaces to integrate own hardware. As long as you know how to draw lines and dots with your hardware it can be integreated very easily into your existing system. VGI comes with examples and tools to start off immediately. The network protocol is a cleartext protocol and well specified. VGI is optimized for programming new vector graphic applications and games. However, it can also be used to route the output from existing vector games (mame, vecx) to real hardware. If you are looking for a flexible, non hackish vector graphics solution VGI might be the optional solution for your application.
I have a Fluke Multimeter for some time now. I also own the cable and the Fluke View-Forms software. View-Forms can export the measurement data as CSV-Files. I thought it would be nice to have a parser for these CSV-Files. So I integrated the format into libcodebananas and wrote a little linux tool that extracts the measurement values from the View-Forms CSV-Files and writes them to a gnuplot compatible file. My program als generates a matching gnuplot script so that the results can be viewd with gnuplot immediately.
Visual Data Inspector
This is a tool to visually inspect binary data. The data gets rendered into a PNG image. Cursurs can be added by the user in order to structure the data. Width and height of the data matrix can either be coosen by the user or determined automatically. Multiple input formats are possible. The data can be either packed binary or unpacked binary. Furthermore it is possible to hand the data in an Ascii format. Then one line in the file makes one line of pixels. The program can also be used as a diff tool to visualize the differences between two binary files.
The idea of mazewar is ingenious in various aspects. It models the fundamental aspects of an 3D-Ego-Shooter in a very pure and simplistic way. Mazewar is the proove it is the concept of a game that maks a game a good game. Unfortunately the original mazewar can nowhere be found on the net. There is an Xerox-Alto emulator avialable, but the inclulded software package does not contain a copy of mazewar. Here you can download a linux implementation of mazewar. I have oriented myself as closest as possible to the screenshots and videos i found on the internet.
As the most radio amateurs do i have some measurement equipment laying around. In this case an Agilent E4406A and an Anritsu MS2601B. I thought by myself that it would be a nice idea to have software tools to create a spectrum site survey. The software works by gathering spectrum data through the measurement equipment. Then this measurement is interpreted by a second tool which creates an HTML page with the spectrum graph and additional information comming from a bandplan. With obra.profiler, the user can create own, customized measurement and monitoring solutions. Thanks to the open design it is easy to implement support for own instruments. All tools are free software and examples are included.
I have a pdp11/53 in my collection. Instead of a console with switches and lights it has an integrated machine language monintor called ODT (Octal Debugging Technique). Through this monitor you have read and write access to the memory of your machine. So i thought it would be cool to have a tool that can load a memory image from your linux computer directly into the memory of your pdp11. My tool also features a readback and verify functionallity. You can store your memory images as binary or as octal-ascii dump.
The tool might become handy if you want to run the ZRQC tool to format a winchester drive in a pdp11/53 like it is discribed in David`s Blog. This was my original motivation as wanted to make the procedure a bit more comfortable.
Create your own magstripe cards!
MagnetcardLab is a tool to create, modify, read and process magstripe cards. You can use the interactive mode to manipulate cards and doing experiments. The commandline mode allows you to create magnetcard application by just writing a bash script. The tool was developed to work with "OMRON 3S4YR-MVFW1 JD" devices which were widely used over the past years and now available for cheep on online acutions.
dsp_buttler helps you with your USRP.
dsp_buttler is a tool to simplify the daily work with the USRP (and maybe other dsp related tasks). It includes tools that realize a comfortable interface to usrp_rx_cfile.py and baudline. It helps you generate, examine and cut and manage the usrp capture files. A waterfall diagramm which accepts raw data is also included (requires SDL). To compile the tools you need a working libcodebananas installation and of cause a working USRP toolchain as well as baudline properly installed.
When you work with airprobe or maybe other analysis tools you may often ask your self? Which frequency has ARFCN x. Or which arfcn is the frequency i am currently monitoring? With arfcncalc you have a powerful tool to quickly lookup the matching frequencies for a given arfcn and the other way around. The program also displays some additional information like to which operator the frequency belongs to or in which country the frequency band belongs to.
Start RFID with rfidLab!
rfidLab is a tool to read and write mifare-ultralight and mifare-classic transponders. For mifare-classic the program provides an integrated key-management that automaticly chooses the right key for authentication. The program also can be used to talk to T=CL cards. rfidLab also has an integrated dedector that can help to identify an unknown tag. There is also a sweeper-function that can be used to find hidden tags. rfidLab supports librfid (openPCD and omnikey5121),libnfc (acr122 and semilar devices), the elektor and the trf7960evm (as sold at 25C3).
Bildschirmtrix is there!:
In the 80s videotex-services wer very popular in some countries. France had a system called "minitel". Great Britain had a semilar system, they called it "prestel". The USA had a system called NAPLPS. In germany, we also had a videotex-service. We used to call it "Bildschirmtext". Unfortunately Bildschirmtext was not so much successful. You had to buy expensive terminal equipment and the usage costs were not so cheap at all. Bilschirmtext also had some serious security problems. Today no videotex infrastructure exists anymore - but the terminal equipment is sill existent and available through online-auctions. What would be if you would have such a terminal? Imagine you whould have a small device with a plug for the terminal on the one side and with an ethernet plug on the other side. You would plug it in the next ethernet switch and than videotex pages would fill the the terminal screen. Illusion? No! I have invented such a device - take a look to that File:
XCOS: Experimental Card Operating System:
XCOS is an operating system for smartcards which are Atmel-AVR based. You can install it on nearly every atmelcard. Funcard, Megafun, Jupiter1 or homebrew cards with ATmega8,16,128 are supported. You should use a Towitoko Chipdrive to operate the cards, other readers might cause problems (maybe this is a bug). XCOS supports some basic functions lile PIN, PIN-Change, "Secure"-Storage and some other fnacy stuff. The first version was written in Assembler (Included in the package) and was rewritten now in C. The functionality stayed the same but a powerful XXTEA encryption was added. The package also contains some utilities to use ENC-FS with an XCOS-Card. Please note that you should not expact too much security, since the Atmel-AVR processors are no security-processors. For working with the chipcards i recommend a TowitokoChipdrive (USB or Serial).
Today we are sourrounded by always-on-devices, but do we need them always? The most time this devices are on idle, especially network devices like DSL-Modems, Routers or switches. I have developed a cheap and easy cicuit to detect if a device is in use and if not to switch it off after a specified time period. Once switched off the device must be switched on if you need it again. In our House i use this circuit for managing the network infrsatructure. If the network is not in use it will be powered down. The circuit consists of a microcontroller, a trsnsistor, a relais and a few LEDs and resistors as well. It can be assembled by everyone who is a little bit familiar with electronics. It also has a serial console for debug output, but you do not really need it the status is also shown on the LEDs. The great advantage of this solution is that power-off means real power-off with zero power consumption.
Codebanans for the codemonkeys:
This is a small c library i wrote to make my c-life easier. Up to now it supports some very easy-to-use network functions, Serial-Port-Control and some other useful tools. In the future i will add new functions whenever i need them. I will do anything that is possible to keep this library compatible to older versions. Some of my projects requiere the latest version of this library. You should always download the latest version to ensure that everything works best as possible. If you use this library and if you find a bug or if you have questions, please ask.
The ChipcardLab is a small laboratory for exploring Chipcards. It is very handy if you want to evaluate Telephone cards and other memory-cards. The package contains useful things like card-imitations, adapters, a breedboard and a micro-processor frontend (You also can install XCOS on it!) which serves as an analysis tool. Please note that this was my first project i ever made with a microcontroller so it might already contain some bugs.
I ever liked the good old pdp computers from digital. Unfortunately that are big, expensive and hard to find machines. So i decided to build my own pdp-8. It consists of a homebrew panel, a special hub (called hub-8) and Douglas W. Jones great pdp-8 emulator. The hub-8 has also an 110 Baud RS232 Interface on which you can hook up a real Teletype. For the panel itsself are also various things available. The package contains also a description how to control the panel with an AVR (Think about an emulator that directly runs on an AVR...) as well as FPGA-Sources for controling it with the Spartan3E-Starter-Kit. There exist also C programming examples that illustrate how the controlling with the hub-8 works. All in all it was great project that brought me a lot of fun.
Some time ago i got an old ASR33 Teletype from an online auction. Unfortunately these machines have 20mA current loop interfaces instead of an RS232 Interface. But fortunately it is very easy build a suitable converter. So i did. My converter has a 20mA Courrent-loop interface and a motor-standby function which turns the motor off when it is not needed. The Interface is very easy to build, it does not contain any microcontrollers or anything that might cause problems. The package also contains a Software for testing and debugging teletypes.