Now that I have a baby boy, I’m coming to terms with the fact that there are so many new baby related accessories that you need to buy. Going through this process, there are plenty of times when you ask yourself:
Why is this stuff so expensive, and why isn’t it better?
One such experience that we had was on the first day that we took our baby boy home from the hospital, in the middle of winter, and we started freaking out about temperature…
Is he going to be warm enough? How warm is warm enough? How much clothing should we wrap him in? What if the room gets colder over night? What if it gets too hot during the day? What temperature is the room meant to be anyway? How large a temperature fluctuation can a baby tolerate before we end up on A Current Affair? *Hyperventilate and pass out*
Or something along those lines.
At a friends’ house, I’d seen an item which shows (via changing colours) the temperature of the room. I decided that this seemed like the way to go, so I drove 15 minutes to a shop which I knew to have these thermometers on sale. Long and painful story short, I returned home two hours later, at about 5 p.m., with “the egg”, and while I was only $30 poorer (on sale, down from $50), I was a lot more stressed out.
Almost immediately, I got to thinking about the relatively small cost of components to make a room thermometer for the baby, and (as any engineer would) thinking about the other features that I would like this thermometer to have:
- Battery power
- Ability to connect additional temperature probe (i.e. to skin temperature sensor… just to be REALLY sure that the baby is warm/cool enough)
- Adjustable temperature scale
- Easier to turn off when the light’s annoying me and I’m sleepy
- Basic night-light function
- Timed nightlight, for when the baby is older, to tell baby when it’s time to wake up (i.e. “See how the light is blue? Daddy doesn’t want to hear a peep out of you until it turns yellow. UNDERSTOOD?”)
- Replaceable outer skin; to make it more fun for the child, by making it look like their favourite animal or influential scientist (Yes, I’m talking about Tesla), instead of the basic Egg shape.
So I set about building one myself. In order to maximise the customisability of the device, I based it on an Arduino board, and went for the lowest possible cost for all components (while still being fit for purpose). Design process went along these lines:
- Write I/O Schedule
- Select control board
- Draw schematic
- Layout test circuit on breadboard
- Layout and solder circuit onto prototyping PCB
- Trim PCB and measure overall dimensions
- Design and 3D print circuit board holder (main unit to go inside outer shell)
- Design and 3D print outer shell
- Basic calibration of thermistor
- Writing the user manual
The result of this is as follows:
- PWM Out
- LED 1 – Red
- LED 1 – Green
- LED 1 – Blue
- Digital In
- Button 1 – Mode Adjust Button
- Jumper 1 – Temperature Sensing Mode
- Jumper 2 – Sleep Timer Mode
- Jumper 3 – Colour Cycle Nightlight Mode
- Jumper 4 – Colour Select Nightlight Mode
- Jumper 5 – Spare Mode
- Jumper 6 – Spare Mode
- Analogue In
- Thermistor 1 – Main Thermistor
- Thermistor 2 – Spare Thermistor
- Power Connections
- Vcc – Connection for regulated 5V power supply
- RAW – Connection for 5-12V battery pack, or 5-12V regulated power supply
My control board selection process was pretty straightforward. I wanted the cheapest board I could find, and needed to make sure it had sufficient I/O pins to perform the functions listed above. The cheapest board was an Arduino Pro Mini (a couple of dollars on eBay), and it has ~12 Digital I/O pins (6 capable of PWM) and 4 analogue input pins, it was more than sufficient for my purposes.
Note: Since the Arduino Pro Mini only has TTL communication provided by the ATMega chip, I also had to connect a Serial-to-TTL converter (USB to RS232 TTL) to the RX/RX/GND/VCC pins when programming the board.
I drew the following schematic in Design Spark PCB. I used to use ExpressPCB and ExpressSCH, which are very good for drawing a schematic and converting it into a PCB, but I have been trying to migrate over to Design Spark, since they offer some cool features, and in theory you can upload parts available from RS Components into your schematics. Still not convinced, but I have to give it a fair crack to see if DS can speed up the process of designing circuits.
Bill Of Materials:
- Arduino Pro Mini – $5
- RGB LED (Common Cathode) – $1
- Thermistor: 100 kOhm (NJ28RA0104HCC, see notes below on thermistor measurement) – $1
- 1/4W resistors: 3 x 120 Ohm, 2 x 120 kOhm – $0.20
- 5cm x 7cm prototyping PCB – $0.2
- 9V battery connector clip – $0.3
- Push button (round, outer diameter ~5mm)
- Foot switch (I used a spring return SPDT lever switch)
- 2.54mm male header strips: 2 x 6 pin, 6 x 2 pin, 1 x 4 pin – $1
- Female dupont wire terminators and housings: 5 x 2 pin, 2 x 4 pin – $0.2
- Assorted length of wire
total cost: ~$9
(Costs above are approximate based on what it cost me at the time)
I’m slowly working on a PCB router (made primarily from scrounged parts from old printers, etc), but it’s still a long way off (due to previously mentioned baby taking up a lot of my time that used to be spent on recreational engineering). In the meantime, I am using cheap prototyping PCBs (PCB equivalent of a breadboard, only about $2 on eBay for a 10 pack of 5cm x 7cm boards)… Like some kind of undomesticated animal.
For more details, see the manual below.
3D printed parts:
The printed parts are on Thingiverse.
I designed the circuit board holder to suit the circuit board and to accommodate a 9V battery, with a base that allows attachment to a variety of outer shells. It includes an opening for a small pushbutton (scrounged from a VCR) and small microswitch with a spring lever (for cutting power when the thermometer isn’t sitting on its base).
I designed the shell to fit the base. In terms of printability, I took a shortcut and thickened the top section of the egg shell to allow it to print without support. it needs to be printed in White or Opaque/Natural PLA/ABS. I printed in Natural ABS, because it’s what I had laying around.
For a copy of the Arduino code used, refer to the back of the manual below:
To calibrate the thermistor, I started by calculating the theoretical value that the Arduino analogue input will measure (from 0 to 1024 for a voltage range of 0 to 5v) for the temperatures of interest for the thermometer. To get more information on this, refer to my post on Thingiverse: Thermistor Table Generator. This calculator is for generating thermistor tables for a 3D printer, but can be used for any thermistor application.
By leaving the egg connected to my computer’s USB and monitoring the serial port, I could record the analogue readings that the Arduino sent to the serial port. I compared this to the temperature measured by a commercially produced digital thermometer, I then fine-tuned the settings in my code to be more accurate.
Here’s the manual that I wrote for the thermometer.
(Sorry, Kate, Ara was meant to email it to you a while ago)
The Glow Egg Plus worked reasonably well. Some final tweaking would be required before I’d be 100% happy with it, but I was happy enough with the Alpha version to give it to some friends who recently had a handsome pair of twin boys. Word of the day: Polyzygotic. Polyzygotic twins (Fraternal Twins) come from two separate eggs, as opposed to Identical Twins (Monozygotic, I guess), who come from one egg which splits into two embryos.