pifon: an audio baby monitor for two Raspberry Pis

Becoming a dad does not only completely change your life but also changes the scope of your hobby projects (If time still permits :)) My first self-made project made especially for my newborn baby boy Felix is called pifon and is an audio baby monitor realized with two Raspberry Pi devices.

the pifon project: two Raspberry Pis converted into an audio baby monitor

Hardware

The hardware setup is fairly simple: one Pi, the pifon server, has a USB web cam attached. I use its internal microphone to record the voice of my little boy. The other Pi is the pifon monitor and has a set of analog speakers attached for the output. Additionaly, the mon device has an Adafruit RGB LCD Plate attached and I use the LCD on this little plate as output device and its 5 keys as user input. I did not mount the plate directly on the Pi but used a ribbon cable to detach it: This allows me to package the plate in its own housing (As it is easier to find a case for the plate alone):

pifon/mon: the listening Pi with the control panel attached

Continue reading

Watterott MI0283QT-9A Display for the Rasbperry Pi

In my last post I attached the Watterott Display to my Raspi. The model MI0283QT-2 I have here is not available anymore and was replaced with the newer MI0283QT-9A display modul. Unfortunately, this new display uses a different graphics chip and thus the driver I wrote won’t work for these panels… 🙁

With my new display driver skills, I thought about adding this new module, too 🙂 A few days ago I received this new model and on the weekend I finally found a little time to investigate the new driver code… The new chip is an ILI9341 and uses a 9 bit SPI protocol to receive its commands… Phew, sounds a bit strange but notro’s fbtft driver framework again comes to the rescue: he has already supported the Adafruit22 which also uses 9 bit transfers and he also added an 9-bit SPI patch for the Raspi Linux kernel… With this starting point I was able to support the new display in a few hours:

Watterott's new MI0283QT-9A display running the boot console

Since the display supports the Linux framebuffer interface its also possible to run X11 with Xorg’s framebuffer driver on it:

The display also runs the X11 desktop

Again I was able to drive the display with a 32 MHz SPI clock (even 48 MHz works) and got a stable and smooth 25 fps for the 320×240 pixels in 16 Bit RGB.

If you want to setup this display on your own Raspi then read on…

Continue reading

Watterott Display on Raspberry Pi

I really like my Raspberry Pi, but what I am missing is a tiny display matching the size of the board that can be used as primary display, the boot console or some graphics later on.

A very nice and cheap TFT display is the MI0283QT-Adapter (note: I got the -2 version not the newer -9 version that has another display driver chip!) sold by Watterott. Its mainly focused to be an add on for the Arduinos, but it should work on every embedded system providing SPI access.

For the Linux running on the Raspberry Pi a framebuffer driver for the display would be the best solution, as it allows you to use it as a boot console and then you can run everything that runs on a framebuffer device (e.g. X11, SDL, mplayer, …).

First I thought about writing a fresh driver from scratch but some google-fu showed me that there already exists a nice solution: user notro has written fbtft, a driver framework that allows to simplify writing an own driver for those tiny TFTs.

For the R61505u display chip found on my display board, there was no driver available, but thanks to notro’s powerful framework and Watterott’s example code (Thanks to Markus for porting the code to the Raspi), I was able to derive a new driver for this chip in a few hours: See my cloned fbtft Git Hub repository for the source.

It works really nice: with 32 MHz SPI clock I can run 25 frames per second and even watch movies with smooth display:

Playing Big Bug Bunny with MPlayer's fbdev output

If you compile the driver directly in your kernel (i.e. no modules) then you can use the display directly as the boot console of your board:

Linux Boot Console running on display

If you want to build this setup yourself then read on…

Continue reading

SD Card “disk box”

Its getting colder outside and its time for cool retro projects!

Today I had a really fine idea on how to better store all the SD cards I have lying around here on my desk…

With lots of retro projects using SD card as primary storage media I have lots of them here on my desk (e.g. for sd2iec, Chameleon 64, some Raspberry Pis, Arduinos …). All are usually shipped with their crystal plastic cases that also take up space…In daily use most of them are piled on the desk and the cases fly around somewhere else. So I really needed something to clean up this mess a bit.

Today, I copied some 5.25 inch diskettes for my real C64 machine and while storing the floppy disks back in the floppy disk box, I had an idea… why no build a disk box for SD cards? 🙂

After some hours of paper work the job was done:

If you want to build your own SD card disk box: Here are some hints:

  • Basic housing was the packaging of a SAM 256 uController from Olimex
  • I cut away the top cover and used the spare cardboard to model the separator in the middle
  • Finally I completely covered the box with self-adhesive plastic foil (Here in germany its called d c fix)
  • The foldaway dividers were cut out from SD card packaging (its a mixture of cardboard and plastic foil and its really durable) and stuck into a ground plate so you can move them a bit.

Now, its on to you! Prepare your scissors and start the paper hacking today 🙂

BTW: Another retro paperware project fits very well with this project: There is a thread on Forum64 that describes how to build scale replicas of 5.25 disk sleeves for your SD cards. See this thread for details and also downloadable PDFs with the sheets of construction paper…

Build an Arduino-based Temperature Logger

Ok, this time its no retro project, but a rather useful tool to measure your temperatue at home over a longer period of time. I had trouble with my heating devices at home and so I wanted to record and present temperature curves of various rooms to show that something is wrong…

This was a friday night project and done in a few hours (some might call it a hardware hack – but it works fairly stable for weeks now!). All you need is an Arduino 2009 Board, a Logger Shield, a push button, 2 1k resistors, and a DS18S20 temperature sensor. With these ingredients I was able to build the following compact temperature logger:

Arduino and Logger Shield: Temperature Logger

The logger samples the temperature every 10s and gives you a digital temperature value with +/-0.5 degree Celsius precision. It has a RTC (real-time-clock) on board that time stamps every measurement. Addionally, the SD card allows you to store the temperature samples in log files.

The logger has two modes of operation: Either directly read the temperature via a Mac/PC connected via the virtual serial port available on USB or write a temperature log onto the SD card. The latter mode allows you to use the device stand alone in any room without the need to directly connect your computer.

Read on for the full build and usage instructions…

Continue reading

plipbox 0.2: added support for AVR-NET-IO board

I discovered a new board that is even more suitable for plipbox than the Arduino: It’s called the AVR-NET-IO and is available from german electronics distributor Pollin. Its fairly cheap (20 EUR for the kit) and you can also buy it pre-assembled (28 EUR). It contains all things we need: an AVR ATmega32, the right ethernet chip (ENC 28j60) and even the DB 25 connector for the parallel port of the Amiga!

Only a single wire is missing to make it fully compatible to plipbox. But you can add this one easily…

I added support for this board to the firmware and with v0.2 I ship a new firmware image just for this board… Besides adding the new board nothing has changed in this release. So Arduino users can still stay at v0.1 without any drawbacks.

See the plipbox hardware and firmware page for all details on the new board.

plipbox firmware 0.1 released

The wait is over: the first firmware release of the plipbox project is available. Simply head over to my plipbox page and fetch your copy…

The first release includes full DHCP support and statically configured Ethernet operation, so it should work on most local networks out there. With ARP and TCP/UDP/IP bridging in place, it has all essential features I envisioned for this project already available… And it really works well: I am already totally used to have my Amiga 500 in the network… (without thinking about starting a SLIP server first 😉

Now I hope that it works for you, too… just drop me a comment if you found bugs or have any remarks!

Introducing plipbox

My plip2slip project was the first attempt to build a cheap but quite powerful network adapter for my unmodified classic Amiga 500 to get it to the net. Its already a lot faster than a Paula based serial link but you need a host Mac/PC speaking SLIP to finally reach the Internet…

The next level is called the plipbox project: Starting from a similar setup with an Arduino board I now added a cheap Ethernet module that allows direct access to your local network. Here is a photo of the resulting device:

The parallel connector is connected to your Amiga and the Ethernet cable is connected to the network module. Now run a TCP Stack on your Amiga with a MagPLIP network device driver and you can reach the Internet from your Amiga via plipbox… (The third cable on the left is the USB Arduion serial port I use to configure the parameters of the device like IP addresses)

Continue reading

SilverSurfer patched for Amiga 500

I just purchased a new HW goodie for my classic Amiga 500. A clockport adapter and a SilverSurfer serial card that allows high baudrates (e.g. 115200 baud) on this machine without generating too much CPU load.

HW installation was fairly easy, but with the software the trouble began… The supplied drivers does not run on an Amiga 500 but only on an A1200 🙁 Being a real retro hacker I had a look at the driver binary, disassembled it and found out that the code could be easily patched to run on an A500, too.

Now it works like a charm even on the 680000 machines. Here try yourself: silversurfer104-a500.zip

If you want to know how this was done… then read on… Be warned: technical details ahead 😉

Continue reading

plip2slip 0.1 released

While playing with my A500 recently, I had the idea to try out the TCP Stacks available for this platform. Since the little Amiga lacks a decent ethernet card I had to get along with the internal serial port and a SLIP connection. With 9600 Baud this is very slooow. So I kept on searching for a faster solution and found a PLIP implementation on Aminet. PLIP using the parallel port is much faster than SLIP, but you need a peer with a parallel port, too… and that’s the hard part today 😉

Following  the same approach as found in my dtv2ser project, I just attached an AVR ATmega microcontroller to the parallel lines of my Amiga and implemented the PLIP counterpart there. The ATmega on the popular Arduino 2009 boards has a fast serial connection that maps to a USB port via a FTDI 232. This is the ideal data channel for transporting the PLIP packets to your host Mac or PC. With baudrates up to 500 kBaud (~50 KiB/s) and hardware handshaking with RTS/CTS you can easily transfer the data packets very fast to your PC and encapsulate them again in SLIP.

With this idea I started to implement the plip2slip firmware. Fortunately, the magPLIP driver for the Amiga comes with source and so I could port the code to the AVR. With slight modifications on the Amiga part (patch included) I was able to receive the first packets from the Amiga on the Arduino. Then I implemented a simple Ping mode that receives ICMP Ping Requests transforms them to Replies and returns them to the Amiga: plip2slip soon was a ping machine 😉 I repeated the same thing for the SLIP side and with a patched slattach tool on Ubuntu Linux I was soon able to ping the AVR from this side, too.

With the basic parts of plip2slip in place and working I finally added the transport/bridging mode that transfers all received PLIP packets to SLIP and vice versa. With this mode running I could ping the Ubuntu host from my Amiga! After some IP forward configuration on Ubuntu I was able to reach my home network and also the Internet with the A500.

And its real fast! An FTP download on my Amiga reaches 25 KiB/s when transferring 10k from Linux! So compared to SLIP with 9600 Baud its a real break through and worth the little hardware effort needed to build the Arduino device…

There is still lots of potential for tuning and optimizing, but I wanted to share this little project as soon as possible with you. So I crammed up everything you need into a little 0.1 release that is available on my shiny new plip2slip homepage. I hope you enjoy it and bring lots of your classic machines back to the net with decent speed…