Homemade stackable shield for DS1337+, DS1624 and AT24C1024B (RTC, temp & mem)

I'd like to share with you the completion of my first homemade Arduino shield. Without the valuable help of users of this forum, this project wouldn't be completed as fast.

The purpose of the project was to create a temperature data logger for the server room I run, using Arduino, and at the same time have an interface that was both efficient and ease to use.

The ICs used are:
RTC: Maxim DS1337+
TEMP: Maxim DS1624
EEPROM: Atmel AT24C1024B (1Mbit)

Everything runs on the I2C bus, which is connected to the UNO's pins A4 and A5.

The jumpers have the following functions:
Red jumper: enable/disables RW on the EEPROM chip.
Blue jumpers: enable/disables the interrupts from the DS1337+ in the Arduino's INT0 and INT1 pins. I did it this way because other shields may use the Arduino's pins 2 and 3.

To work with the DS1624, I modified the library from Federico and Riccardo Galli to add a few more options to it and also to enable R/W from/to the DS1624's built-in EEPROM (256 bytes). In the final project I'll be using this EEPROM to store settings (like LCD contrast, update interval, etc), while the Atmel 1Mbit EEPROM will be used to store the data being logged.

The LCD library is from Adafruit (NewLcdLibrary), and not the stock LCD library. The DS1337+ library is from Tim Gipson.

The PCD was designed using Diptrace, printed on cheap magazine paper using a laser printer and then transfered to the copper plane using an iron in its hottest setting for exacty 2'30". The copper was etched in iron perchlorate for 15 minutes.

Below are some photos of the project:

The video below shows how the shield will be ultimately used :

The sketch used in the video above and the modified DS1624 library are attached below. In the demo I am not using the EEPROM chip yet. Neverthless, the demo has a few nice thing such as:

  • setting date and time in the DS1337+
  • working with PROGMEM and char arrays
  • working with custom chars and the LCD
  • working with the DealExtreme LCD keypad
  • using states for menus in the Arduino

I know there are several improvements to be made to this project (such as better routing, specially in the 2 INTx lines), and I am already planning a version 2 of this board which will feature:

  • reset button
  • power led (3mm)
  • no jumper wires (there 2, green, on this board)
  • thinner tracks
  • top layer "silk" (also using thermal tonner transfer)

All your input are very welcome, so please leave them!

DS1624.zip (2.88 KB)

ClockTempShield.ino (9.85 KB)

I2C Shield.dch (51.5 KB)

i2c Shield v2.dip (43.3 KB)

Nice work on the code and the shield!

The code has nice naming and I can follow most of it. A beginner might need more commenting but, a lot of it is understandable because of the naming.

Good work, thanks for sharing!

Arduino high rise building
How many floors next?

april:
Arduino high rise building
How many floors next?

XD XD XD The sky is the limit, my friend! I could've added 2 more floors to that building: my IR leds shield and the keypad/lcd shield. I really like the compact footprint of the UNO.

Actually, one thing to note in that high stack of shields is that I changed the ICSP headers of the ethernet and USB host shields, so I can stack them together. I also made my shield's ICSP header stackable, even though it doesn't use any of those pins.

Too bad that doing that on a Mega is a bit expensive, because of the amount of stackable headers required.

Have I missed something but is the program code and DipTrace schematic & PCB posted somewhere.
Thanks for an inspiring project,

rbright:
Have I missed something but is the program code and DipTrace schematic & PCB posted somewhere.
Thanks for an inspiring project,

The 2 DipTrace files (schematics and board layout, uploaded today), my version of the DS1624 library and the demo sketch are attached to the original post.

Thanks!

Nice work! 8)

could you post the PCB file on PDF file format (on mirror) because I don't have the program to open file. :~

thanks

Overall a Very nice board and obviously you've practiced a bit... Good level soldering and at the right temperature too. All your joints are consistent in appearance, properly 'filleted' and of lead solder too.
Personally I won't use anything but my 60/40 solder. I have never used a lot of solder. I personally think that perhaps I've really used 2 pounds of solder in all the years I've been soldering. I bought a half pound of the tin stuff, cost me $20+ dollars... and I tossed the whole roll, I have Never worked with solder as bad as that... I thought I was trying to solder galvanized iron... I can see it's uses but not in the home.
One small question first though, Why not put the crystal down close to the pc board and perhaps affix it to the board. The clock will be most accurate over a long term basis if the temperature of the crystal is controlled and the simplest method is to tie the crystal case to the thermal mass of the PCB.

  1. Why Paper or phenolic PCB material... Certainly not for any of it's outstanding physical attributes like poor strength, poor heat resistance... De-lam's easily and after all that the material is hygroscopic and a health hazard if burned which includes while drilling it. FR4 or fiberglass has one drawback and that is that protective gear should be worn while working with which includes cutting or drilling or especially sanding or filing of the pc-board must be done while wearing a mask and goggles, drilling goggles and a painters mask are all the safety equipment required. It is very hazardous to burn FR4 laminate But it is very hard to do... too.
    Be very proud of that board, You DID an EXCELLENT Job. It alone would have gained you a job at anyplace I worked at.

Bob

Docedison,

first of all, thank you very much for your remarks. I did try to put my best at doing it.

I really like my 60/40 solder. Easy to work with, and I work with in 5ft away from a very large window, so I don't get to inhale any of the hazzardous fumes.

About the crystal, I wasn't aware of that and your suggestion is very welcome. I'll make that change.

Why the phenolic material: they are a lot cheaper and a lot more available than everything else here in Brasil. Only recently I started buying fiberglass single and double-sided blank PCBs from DealExtreme, but the problem is that I still have lots of the phenolic blank PCBs. About FR4, I have never even seem tham available in the usual stores in Brazil. Things in the electronics hobby in Brazil are either very expensive or impossible to come by. I'll still make some stuff with phenolic PCBs because if I make a mistake, it is cheap enough for me not to worry about the cost of the mistake. The upside of working with cheap stuff is that I can experiment more, try new things, and not be worried about the costs.

I am currently working on a Atmega328-based board that will stay in my car. that board will be made of fiberglass, and I'll be taking care when working with them.

Once again, thanks for your kind remarks!