Category Archives: electronics

Low Cost 10Mhz Frequency Reference

I was looking at a low cost way to build a 10Mhz frequency for my electronics lab. I had a few options that I could pursue, these were…

  • GPS Disciplined Crystal Oscillator (GPSDO)
  • Rubidium atomic standard (RbXO)
  • Caesium atomic Standard
  • Oven Controlled Crystal Oscillator (OCXO)

So to make a choice on what I should use I had to come up with design parameters for my frequency standard, these were as follows.

  • Had to be low cost
  • Had to be portable
  • Had to work inside of a building
  • Had to be stable, better then +/- 0.5 hertz drift over 2 minutes

The preceding criteria ruled out a GPSDO as that requires an antenna that has a view of the GPS satellites, this would be ok at home but I didn’t want to have to make sure I had a outside view of satellites if I was taking it to someone else’s shack or like the club shack with no windows this would have been impossible to get a GPS lock.
I next looked at atomic standards. The Caesium standards were out of the question due to the cost, second hand you could expect to pay upwards of USD$5000 for one, certainly not low cost by any measure. The rubidium standards were a lot cheaper at around USD$200 so that was an option. This raised the question, did I need the accuracy of a Rubidium or could I get away with a cheaper option ?
This led me to investigate OCXO’s to see if they would suit my needs. First was to see if they met my stability requirements. A typical 10Mhz OCXO has a stability of 5×10-10 This is ±5 mHz drift per second on a 10Mhz signal, well within my requirement of 0.5hz over 2 minutes. The reason I need this stability is for WSPR digital which requires a very stable clock signal.

What about the cost of an OCXO ? Well a quick search of eBay led me to a Double Oven OCXO from a Russian company called Morion. I could get a second hand unit for less than $40 delivered. This particular unit listed stability of better than 2×10-12 over 1 second which is 0.005 mHz and stability of ±5×10-10 per day at 10Mhz. These figures were well within my requirement’s so I ordered two units from eBay.ocxo
I now started to put some thought in to the design and construction of the complete unit and what I would need.

I had an old car computer case that I could use for the project so I ripped out the old motherboard and found some rubber feet in my junk box to put on it, this gave me an idea of the size case I had to work with so I grabbed a ruler and measured it up to see if the OXCO would fit. It would fit with heaps of room for an internal 240 to 12 VDC power supply and a battery.
I was thinking about the power requirements for the unit and how I was going to power it. I needed about 1.5 amps for the oven while it is warming up with that dropping to about .5 amps once warm. Wrapping the oven in insulation should drop that even lower. I had an old 4 amp 12VDC power supply from a computer monitor that I could use so I dug that out as well.
At this stage I put the project aside for a couple of weeks while I waited for the OXCO’s to arrive in the post. When they had arrived I put one in the case with the power supply and soon realised I actually had the space for both of the OCXO’s.

top view
I had originally bought two so I had a spare but I quickly decided at the cost of them I could just run both so I would have two units that I could compare against each other to make sure they were still within specification and also It meant I could connect it to more than one device at once. The signal quickly attenuates if you are splitting it.
I then got all the other stuff together to assemble the unit this consisted of the following.

  • Trimpot’s to adjust the OXCO
  • SLA 12V Battery
  • Switches to switch power and outputs
  • Veroboard to mount it all on
  • LED’s for status indicators
  • Volt Meter for battery level
  • IEC Socket for Mains input
  • DC Barrel plug and socket for 13.8VDC to charge battery
  • DC-DC Buck/Boost converter to level out battery voltage
  • BNC Sockets for the output
  • Current limiting resistors for the LED’s

veroI soldered the two OCXO’s on to a bit of veroboard and then connected 25 turn 2KΩ trimpot’s with the wiper to the calibration pin with one side of the trimmer to GND and one to the 5VDC reference output on the OCXO, this forms a voltage divider to calibrate the oscillators. I measured the output of the power supply I was going to use and it was 12.3VDC which is within the spec of 12VDC ±5% that they require.

The next problem I would have was to power it while travelling, I didn’t want a huge battery so I used a 1.3AH SLA battery that I would charge off the car while travelling. I needed to keep the battery voltage at 12VDC into the oscillators while I would see between 14.2VDC while charging and 11VDC if the battery was a bit flat.

dcdcTo get the nice 12VDC I used a cheap $2 buck boost DC-DC converter from eBay. They wont supply the 3 amps I need to warm up but it would handle the .5 amps that I had measured once warm. I had managed to get the 400mA current per OCXO down to around 500mA for both once warm by wrapping the ovens in neoprene foam from a stubby holder.

I adjusted the DC-DC converter to output 12.3VDC so it was the same as the mains power supply, this prevents instability of the 10Mhz signal due to supply differences.

I have each oscillator feeding a DPDT switch, one pole switches the signal the other switches an LED on to show the output state, I can feed either the A or B signal to a common N Type connector or to their own BNC connector. A cheap LED volt meter was added to the front panel to show the battery voltage, these are available on eBay for a couple of dollars.

frontIf you were building the unit with one OCXO and had to buy everything instead of raiding you junk box for parts you would need to invest around 80 to 100 dollars. This includes a case the OCXO and the needed hardware. It took me around three hours to assemble.

Freq ref FLIR 02So what is it useful for ? Well some of the things you can use it for are as a stable reference to calibrate test equipment like frequency counters and signal generators. With a divider board to generate a one pulse per second signal to sync your PC time. This is useful for the digital mode WSPR that requires no more then ±1Hz drift over two minutes. With a general multiplier/divider DDS you can produce signals from 1 hertz to around 100Mhz from the 10Mhz input. This is useful for calibrating rigs to see if they are on frequency.

All in all I am very happy with the resulting unit and it makes a nice addition to my test bench.

Haceduino Nano for Christmas :)

A few days ago I got my latest parcel from Hace electronics an order I had made for Christmas. Inside were three HACEduino Nano’s with an ATmega328 on them, I carefully unpacked the package and got a bit of a surprise, Adrian had upgraded my breadboards as he had said he would, but the boards I got were much bigger then I had expected.

As well as the nano’s and breadboards there were three complimentary USB cables to program the Haceduino Nanos’s and three protoshields (Ver B) to build a project on to. I have wrapped them all up and placed them under the tree, I did solder one of the protoshields together so the kids can copy it on Christmas day.

I did have a look at one idea I have had about using the protoshield as a mounting board to prototype for the HACEduino nano, so far it looks like the concept is sound now I just have to play with it on christmas day and then I will blog about it and will also have some photos for you.

Have a great festive season.

Specifications for the HACEduino 2009 (Arduino Duemilanove clone)

The HACEduino “2009/328” is a powerful development board based on the ATMEL ATmega328P-PU AVR micro controller, and is still FULLY compatible with the Arduino Duemilanove and its shields, so basically it is an Arduino clone


When you purchase a HACEduino “2009/328” you will get a board with a small micro controller, this is a whole computer on a small chip, in this case it is an ATMEL AVR ATMega328P-PU.

The HACEduino’s design is quite simple, and its design was intended so as the micro controller could easily communicate with a variety of devices, and could be programmed with your computer with a simple design IDE or Integrated Design Environment without the need for sophisticated hardware to program it. In fact, the software, your HACEduino and a handful of components are all that you need to get started.

A standard HACEduino “2009/328” features 14 Digital I/O pins, These can be inputs or outputs, which is specified by the program, known as a sketch which you create in the IDE. The HACEduino also has 6 Analogue In pins, These dedicated analogue input pins take analogue values (0-5v), for example voltage readings from a sensor and convert them into a number between 0 and 1023.

There are also 6 PWM (pulse width modulation) Output pins, These are six of the digital pins that can be reprogrammed for PWM output using the sketch you create in the IDE, the PWM output allows you to create pseudo analogue output voltages(0-5v)

The HACEduino can be powered from your computer’s USB port, a USB charger, or an AC adapter. If using an AC adaptor then a 9 volt one is recommended, it will need to have a 2.1mm barrel tip, centre positive to use the powers socket although you can also connect to the Vin pin on the HACEduino.

If there is no power supply plugged into the power socket or the Vin pin then the power will come from the USB socket, however as soon as you plug a power supply in to the HACEduino it will automatically switch over and use it.

When operating the board with an input voltage between 12V and 14V excessive heat generated by the voltage regulator may damge it. Damage caused by this is not covered by the warranty you get on the HACEduino.

The HACEduino with the ATmega328 micro controller is the perfect entry point to learning to program a micro controller and develop using the Arduino development framework.

The HACEduino “2009/328” has the following features:

Micro controller ATmega328
Operating Voltage 5V
Input Voltage (recommended 9 volts) 7-14V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analogue Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) 2 KB used by boot loader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16MHz

Creating A Linux Arduino Development Enviroment

I started playing with my haceduino 2009 and couldn’t get it to upload sketches to my board, I played for a while trying to hit the reset switch at different times but with no luck.

I hooked the board up to a windows machine and had it uploading almost right away so this led me to my Linux machine being at fault. What to do, what to do….

So last night I played with a few different Linux distros to find one that works “right out of the box” so to speak. It had to be a mainstream distro, had to be a clean install and only need packages available from the repos so as not to have to revert to compiling from source.

This guide is to set up a machine from scratch with the latest Ubuntu release 9.10, it should work with kubuntu and xubuntu as well but I offer no warranty as to the sutablity of this guide to your own hardware and setup


Do a fresh install of Ubuntu Karmic Koala 9.10

At the command line perform the following commands to prepare your system for the arduino IDE.
  • sudo apt-get update (Update Package list)
  • sudo apt-get upgrade (Upgrade all installed packages)
  • sudo apt-get remove brltty (Remove as it conflicts when uploading sketches)
  • sudo apt-get install sun-java6-jre avrdude gcc-avr avr-libc ftdi-eeprom (Install dependencies for the Arduino IDE)

Now that the system is ready we will install the Arduino IDE, follow the next set of commands to install the latest IDE from via google code

  • cd ~/ (change to your home directory)
  • wget (Download IDE from googlecode)
  • tar xzvf arduino-0017.tgz (extract files from the archive)
  • sudo reboot (reboots the machine)

Okay with that all done and your machine rebooted you should be ready to hook up your Haceduino and upload a sketch

  • Plug your Haceduino in to a USB port and wait 10 seconds for it to connect
  • To run the IDE you need to exucute the file ~/arduino-0017/arduino this will launch the IDE
  • Go to tools/board/arduino and select Duemilanove or Nano w/ ATmega328
  • Go to tools/serial port/devttyUSBx (Select the port your board is plugged in to)
  • Load a sketch from the examples choices, the file/digital/blink is a good start to make sure it is working as it doesnt require any additional hardware apart from the haceduino and a USB cable
  • Click on the upload button second icon from the right at the top of the IDE and the sketch should compile and be uploaded to the Haceduino 2009, the red and green serial traffic LEDs should flash for a few seconds
  • You should now have an orange LED blinking on the haceduino that is different to the dit dit dah flash that was all ready on the haceduino.
  • By playing with the values in the sketch you should be able to make it blink faster or slower, why don’t you have a try now.

Well all going well that should be it and you will have a Linux environment that you can program your Haceduino in, congratulations and happy hacking


Well I am the proud owner of my first micro controller, I received my Haceduino an Arduino clone based on the ATmega328 from Hace electronics and it is really top notch.

It arrived via registered Australia Post which was included free with the ebay item. Here is some pictures of it all packed up, two envelopes anti static foam and an anti static bag all went in to protecting the item.

When I got itI had some problems loading sketches, a quick call to Adrian from HACE got me on track that it was a Linux problem, he asked if the LED on pin 13 was flashing and it was, this was the sketch he had preloaded during the testing of each unit. I tried the IDE on a win machine and it worked fime, I am going to have to play and see about getting the IDE working on my linux development machine.

The product build is excellent and is far above the quality you would expect to find from boards being sourced from china, the attention to detail is great. Adrian even took great pride in telling me that the white ink for the screen printing mask was specially sourced and shipped to the factory for the job as the local ink was inferior and bleed making it impossible to actually read the mask.

It is this attention to detail that has made me a repeat customer and I am eagerly awaiting future products to expand my collection.

Search for haceduino you wont be disappointed 🙂 thanks again to Adrian and Edmund for a great product, I am looking forward to buying a few Nanos after christmas

Waiting on my first HACEduino

I just brought an HACEduino it is a arduino compatible on ebay, It was only AUD 31.50 and that included free postage. I found some code to make it talk to a nokia S60 phone running python (my N97 has python installed)

I am thinking of setting it up to start the motorbike remotely that would be cool

Acer Aspire One Wont boot

Sometimes when switching on an Acer Aspire One it shows a black screen. The LEDs may be blinking or just the power button led may be on, and usually the fan is turning. But the screen remains black.

This is a known problem on the Aspire one and is a BIOS fault, fortunately the Acer Aspire One has a BIOS recovery procedure that makes it possible to reflash the BIOS even when the Aspire one wont boot anymore.

This procedure is only meant for non booting Aspire one’s and may void the warranty on the unit, so please follow this guide as a last resort.

Format a USB memory stick to FAT16. (It doesnt have to be a big memory stick)

Head over to Acer and download the BIOS files from the support website:

Aspire One Model A150 or Aspire One Model A110

Extract the files and put FLASHIT.EXE and the BIOS files in the root directory of the memory stick.

Rename the BIOS file to ZG5IA32.FD

Make sure to insert a charged battery and connect the AC supply.

Insert the USB Memory stick into a USB port on the Aspire One.

Press the Fn+Esc keys keep them pressed and press the power button to turn the AA1 on.

Release Fn+Esc after a few seconds, the power button will now be blinking.

Next press the power button once,. The Aspire one will now preform the BIOS flash, under no circumstances should you stop this process. After a few minutes the power button LED should stop blinking, and shortly later the Aspire One will preform a reboot.

All going well the BIOS is now flashed and all the settings will be reset to default in the BIOS