5

I want to run an arduino out in the cold (-40), and use the serial communication - I believe that the crystal is the weakest link (the one for the serial chip) - however I don't see any drop-in (through-hole) replacement crystals that would work in such cold, so would a SMT version work instead? if so, which one would be possible to solder (package?), and do I need to change the caps to match?

P.S. - Yes, I could heat it/insulate it, but that comes at a fairly high power/complexity cost

duck
  • 1,258
  • 10
  • 27
user2813274
  • 197
  • 2
  • 11
  • 1
    Have you tried it at -40? The crystal may still function but be out of spec, and you might need lower standard baud rates, or to tweak the generated baud rate to match what the reciever would expect.. – Dave X Nov 21 '16 at 15:20
  • @DaveX The baudrate seems to fail around -20c at 9600, have not tried tweaking it much – user2813274 Nov 21 '16 at 18:59
  • You could run the Arduino of the internal oscillator. After that you can calibrate the oscillator on the fly using the UART. PS are you even sure crystals exist that do work at -40? – Gerben Nov 21 '16 at 19:23
  • All crystals change physical properties as their temperature changes. Heating it is always the fix. – Ignacio Vazquez-Abrams Nov 21 '16 at 19:23
  • @Gerben it's actually not the the arduino that has the issues, it's the serial to usb chip on the board @ IgnacioVazquez-Abrams I know heating can fix it.. but I would end up increasing the power draw by a factor of 10 in order to keep the thing heated - also there are different components with different temperature ratings – user2813274 Nov 22 '16 at 04:38
  • 2
    If it's the USB to serial you could try connecting to the serial pins directly and have a separate USB to serial breakout, outside of the -40 environment. – Gerben Nov 22 '16 at 08:28
  • 1
    What Gerben said--use the hardware serial instead of the 12MB USB2.0 connection, and its lower speeds should be more resistant to mismatched speeds, and should also be tunable if you get far out of spec. – Dave X Nov 28 '16 at 03:10
  • 3
    Please give more details about the application. How are you connecting the board? Maybe using a remote oscillating circuit is the best way, or you can make a small board with a compensated oscillator. But... -40° is the limit for the atmega328p, so are you sure that you really need to have a arduino out there? You will need to power it, and batteries are useless at that temperature, so you'll need a power cable. If you have to wire it, then you can wire just the sensor you need to put there... – frarugi87 Dec 02 '16 at 08:49
  • 1
    if you insulated it you wouldn't need 10X the power of running it to keep it "warm" – dandavis Feb 19 '17 at 07:29
  • @dandavis that's assuming it starts warm, if it starts cold (which without running not even insulation will help against) it will take a while to warm up – user2813274 Feb 20 '17 at 16:35
  • Why do you think the crystal is the weakest link (the one for the serial chip)? Tolerancewise it is 200 times better than the ceramic oscillator (+/- 0.5%) used by the main processor. The ceramic oscillator has a 0.2% temperature sensitivity and is only specified to work for -20 °C to +80 °C. – Peter Mortensen Feb 21 '18 at 17:47

1 Answers1

1

There is a solution for just this problem, it's a "crystal oven". It is used to keep a crystal at a constant temperature so that the oscillating ferquency remains very stable.

Crystal ovens are usually expensive as they are quite precise and have good insultaion, but here's a kit that you might adapt for your uses: http://www.minikits.com.au/Oscillator-Heater, or google around to see if you find something that might suit you better.

You could also consider making a heater with a simple temperature regulator of your own to keep the crystal warm (many temperature sensors for Arduino are available on the web).

kxtronic
  • 394
  • 2
  • 4
  • 8