Monday, 18 June 2012

Calunium v2.0: Preliminary design

View schematic and PCB as PDF.

Preliminary version

I'm planning to release an improved version of Calunium, my Arduino clone. Before finalising my design I'd like to have some feedback from other ATmega1284 users and would-be users. I make no promises that your suggestions will be included but I value any constructive feedback you give.

Summary of changes


Arduino 1.0 headers included

The revised Arduino headers have been included. This adds dedicated I2C connections and an IOREF pin whose purpose is to indicate the I/O voltage level.

Jumper-selectable 3.3V or 5V operation

The microcontroller supply voltage is easily selected by a single jumper setting.

Improved reset circuit

A reversed-biased diode has been added in parallel with the reset pull-up resistor to prevent overshoot of the reset signal which can cause erroneous behaviour.

Option to use surface-mount real-time clock

I've not been able to find a suitable alternative to the DS1307 which can operate at 3.3V and which is available in a dual inline package. The alternatives are only available in SOIC8 or smaller packages. To support 3.3V operation a combined DIP/SOIC8 footprint has been used.

Ceramic resonator option instead of crystal

The crystal footprint has been revised to allow a 3-pin ceramic oscillator to be fitted as an alternative to a crystal. Omit the 22pF loading capacitors when using a ceramic oscillator.

Improved analogue power supply circuitry

Analogue power supply follows the advice given in the data sheet.

Temperature sensor now powered from logic output

The optional LM61 (or similar) temperature sensor is now powered from D7. This change has been made for low power operation; I've been fitting an LM61 to other shields instead of using one on Calunium so that it can be powered off when not needed.

V-USB removed

I've had no success with the V-USB interface so the necessary circuitry has been removed. If you have had any success please let me know how to make it work! The USB connector remains as a convenient 5V power connector.

To do

There a few things to do that I can't at this stage:
  • Add white silkscreen areas on underside of the PCB for writing the serial number and crystal frequency.
  • Clean up silkscreen text.

Anything else?

There is approximately 0.7" × 1" unused space on the PCB. What should be included that is currently missing?
  • SRAM/FRAM?
  • Ciseco XRF module? Probably not enough space for the jumper settings I'd like to include, and planned for another board.
  • Add a 5V regulator connected to Vin? Without a separate power connector (too bulky and infrequently used?) I'm not sure it is very useful.

The Eagle PCB design files for Calunium v2 are available on Github and are licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.

11 comments:

  1. I'd prefer the 5V regulator :)

    PS: I've a couple of Calunium v1.0 PCBs here. If someone is interested drop me a mail s[at]sui[dot]li

    ReplyDelete
  2. Hi,

    I would prefer the SD-card interface (or microSD).

    Thanks,
    Tomas

    ReplyDelete
    Replies
    1. That's an interesting suggestion. I had overlooked that idea because I already have a combined RN-XV / SD shield. There's not enough room for a full-size SD socket but a reduced size one similar to that used on the Raspberry Pi would fit. Although a microSD socket would fit I think it could be a bit difficult for many users to solder; one of the original aims of my Calunium project was to use through hole components to allow as wide an audience as possible to build it.

      There's not enough space for logic-level translation so use with SD card would be restricted to 3.3 V operation (same as for the Hope RFM12B option).

      Delete
    2. Hi,
      there is possible to do logic level translation for SD with just 6 resistors - no need special level translator. As in this shield: http://www.hwkitchen.com/products/sd-card-shield-for-arduino-v2-1/. Or, of course with CMOS4050 - is there not enough space for this? And fullsize SD socket might be located at back side of PCB - as in RaspberryPi.

      Delete
    3. I covered logic level shifting in a previous blog post, http://blog.stevemarple.co.uk/2011/10/interfacing-33v-devices-to-5v-arduinos.html. The shield you refer to demonstrates two problems. Without level-translation on the output (MISO) the SD card can't meet the worst case limit for a high-level input at the MCU. Worse still there is no protection on MISO when used with 5V SPI devices, which could kill the SD card. The simplest approach is to run the MCU at 3.3 V.

      Delete
  3. I'm nearly ready to send the design off to Iteadstudio. I've found room to include a 5 V regulator, microSD card and Hope RFM12B.

    ReplyDelete
    Replies
    1. Great news, cannot wait till the PCBs will be ready :-) Will iteadstudio also sell those PCBs? Or will you sell them?

      Delete
    2. Iteadstudio won't be selling them and I have no immediate plans to. I'll put the Gerber files on Github so that anyone who wants to can get some made. Suat Özgür (see earlier comment) has some v1.0 boards for sale if that helps.

      Delete
  4. Hi Steve,

    I would like to contact you. I made a PCB based on your bootloader and would like you to have one.

    ReplyDelete
    Replies
    1. Thanks for your kind offer but I can't take credit for any of the bootloaders as I've not written one at all. By the way have you come across the xboot bootloader? Very nice indeed, works with avrdude and the Arduino IDE. With its API I can also upgrade my magnetometer with over-the-air firmware updates. Will have to write a blog post. In the meantime you can find the source code and my config options at https://github.com/stevemarple/xboot. The upload protocol for avrdude should be avr109.

      Delete